+ All Categories
Transcript
Page 1: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

HAL Id: inria-00071533https://hal.inria.fr/inria-00071533

Submitted on 23 May 2006

HAL is a multi-disciplinary open accessarchive for the deposit and dissemination of sci-entific research documents, whether they are pub-lished or not. The documents may come fromteaching and research institutions in France orabroad, or from public or private research centers.

L’archive ouverte pluridisciplinaire HAL, estdestinée au dépôt et à la diffusion de documentsscientifiques de niveau recherche, publiés ou non,émanant des établissements d’enseignement et derecherche français ou étrangers, des laboratoirespublics ou privés.

A Binary Recursive Gcd AlgorithmDamien Stehlé, Paul Zimmermann

To cite this version:Damien Stehlé, Paul Zimmermann. A Binary Recursive Gcd Algorithm. [Research Report] RR-5050,INRIA. 2002. �inria-00071533�

Page 2: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

ISS

N 0

249-

6399

ISR

N IN

RIA

/RR

--50

50--

FR

+E

NG

ap por t de r ech er ch e

THÈME 2

INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE

A Binary Recursive Gcd Algorithm

Damien Stehlé and Paul Zimmermann

N° 5050

Décembre 2003

Page 3: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary
Page 4: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

Unité de recherche INRIA LorraineLORIA, Technopôle de Nancy-Brabois, Campus scientifique,

615, rue du Jardin Botanique, BP 101, 54602 Villers-Lès-Nancy (France)Téléphone : +33 3 83 59 30 00 — Télécopie : +33 3 83 27 83 19

� ��������� �� ������������� ����� �����! !�"��#�$&%

')(+*-,/.1032546.17"8:9;(+0"<>=?(A@B8?CD,:*-*E.GFH*I(A0B0

JLKNMHOQPSRUT VXWHYNZ[PX\^]`_aZ^bHZ[PH\P�c�bedf\^bHgh\�ikj1O�l+]`\^Z[m1ghP

npok]rqkP�ctsGuvdfbHPHi

w?dauhux]`oycLzNPo{P�b|KNPHokb|KNP}YA~p�a���f��T �tW�bHP�O�lNo{PURa�`�a�!T Ra�QuNda_`PHi

���B���e�r�N�a��� JLKhP!lhZ^Yvdaoyj)da\[_`]`okZ[c�KhO�Z[i�d��adfo{Z�dfY�c�]a�"c{KNP�pgNbH\[Z^zNPHdaY&da\^_a]`o{Z�c�KNO�c�KNdfcuxP�ok�/]`okO�it�DPH\[\�Z^Y�uNo�dab�c�Z[bHPa�x��P�uNokPHikPHY�cSd�m1gNdai{Z���\^Z[YNPedfo?c�Z[O�PSo{P�bHgNoki{Z[�aPQda\^_`]ao{Z[c{KNOc�Kvdfc�bH]`OQuNghc{PHi�c�KNP)_ao{Pedrc�PHiyc bH]`OQOQ]`YEzNZ[�1Z[i{]`oS]a�?c��D]¡Z^Y�c�P�_`PHoki�l�jEi{Z[O�gN\�drc�Z^Yh_;di{\^Z[_`K�c�\�j¢OQ]GzNZ�£vPHz�`P�o{ikZ^]`Y�]f�hc�KhP¤lNZ[Yvdaokj!df\^_`]`okZ[c{KNO¥��JLKNP¤iyc�okgNb�c{gNo{PD]a�Nc�KhPDokPHbHgho{i{Z��`Pda\^_`]ao{Z[c{KNO¦Z^i��`P�okjQbH\[]`i{PLc{]c{KNP§]`YNP�]a�¨c{KNPL�¤P�\^\���©�YN]6��Y«ªXY�ghc{KG�ysGb|Kh¬`YNKvda_aP?�:daiycD_abHzda\^_`]ao{Z[c{KNO&­�lhghc�c�KNP)zhPHi{b�o{Z[uhc�Z[]`Y®daYNzEc�KNP)uho{]1]a�§]a�tb�]`o{okPHb�c�YNP�i{i�dao{P)ikZ^_`YNZ�£vbedfY�c{\[ji{Z^OQuN\[PHo§Z^Y¯]`gNo?bedaikPa��JLKNZ[i¢\^PHdazNitc{])d�i{Z[O�uh\^Z[£Nbedfc{Z^]`Y&]a�pc�KhP�Z^OQuN\^P�O�P�Y�c�dfc�Z[]`Y¥daYNzc�] lxP�c{c{PHo�o{gNYhYNZ^YN_�c{Z^OQPHiH�°¥±�²¨³k´�µ �r¶"�a� VXbHzQbH]`OQuNghc�dfc�Z[]`Y5­`�pgNb�\^Z[zNPedaY�da\[_`]`o{Z�c�KNO&­fªY�ghc{KG�ys1b|KN¬`YNKvdf_`Ptdf\^_`]f�o{Z[c{KNO&­hm�gvdaikZ���\[Z^YNPHdaoDc{Z^OQP¢bH]aO�uN\[P�·GZ[c�ja�

Page 5: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

� � �����S �B��#�$�% ���������B� ��� �) ��>�S��� ���H������"

�� �� � � ����� da\[_`]`o{Z�c�KNOQP&lNZ^YvdfZ^o{P�PHikc&gNYhP;�adfo{Z�dfY�c{P¯zNP¡\ � da\^_a]`o{Z�c�KNOQP�z � �pgNb�\^Z[zNPuvdaokc{Z^b�gN\^Z[MHo{P�O�P�Y�c�P��QbHdabHP§PHY uNo{dfc�Z[m1ghPa���§]`gNi zNWHb�o{Z��`]`YNi gNY�da\[_`]`o{Z�c�KNOQP o{WHb�gNo{ikZ[�xzNPbH]`OQuN\^P�·GZ[c�W�m�gvdfi{Z�� \^Z[YNWedaZ[o{P�m�gNZ bHda\^b�gN\^P \^P uN\[gNi_`o�dfYNz�b�]`O�OUgNY¡zNZ[�1Z^ikPHgNo!zNPQzNPHg1·PHY�c�Z[PHo{iXP�Y¯i{Z[O�gN\�dfY�ctgNYNP�\[WH_`M�o{P�OQ]GzhZ[£vbHdfc�Z[]`Y¥zhP�\ � da\^_`]ao{Z[c{KNOQP!lhZ^YvdaZ[o{Pf� � d�ikc{o{gNb��c�gNokPXzNPbHP�c?da\[_`]`okZ[c�KhO�P§PHiyc§c{o{M�i§uho{]1b|KNPzNPXbHP�\^\^PXzhg&b�WH\[MHlNokPSdf\^_`]`okZ[c{KNO�P§zNPbedf\^bHgh\o�dauNZ[zNPLzNPLuN_abHzQzNP§ªY�ghc{K�P�cDsGb|KN¬`YhKvda_`Pf­�O«daZ[i�i�dzNP�i{bHokZ^uhc{Z^]`YQdaZ[YNi{ZGm�gNP?i{dXuNo{P�gh�`Pi{]`Y�c YNP�c{c�P�O�P�Y�c uN\^gNi�ikZ^OQuN\^P�iH���¤PH\^d d;u+]`gNoUbH]`YNikWHm�gNP�YNbHP¥gNYNP)i{Z[O�uh\^Z[£Nbedfc{Z^]`Y zNP\ � Z^OQuN\�daY�c�dfc�Z[]`Y�P�c§zNPO�P�Z^\^\[PHgNokiDc{PHOQuNi�zNPbeda\[bHgN\ �� µ � � ³ ��� � �3� ��da\[bHgN\?zNP¯uN_`b�z5­Lda\[_`]`o{Z�c�KNOQP&z � �pgNb�\^Z[zNPa­¤da\^_`]ao{Z[c{KNOQP¥zNP¡ªXY�ghc{KG�sGb|KN¬`YNKNda_`Pa­vb�]`OQuN\^P�·hZ�c�WXm�gvdaikZ�� \^Z^YhWedaZ[o{Pa�

Page 6: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

������������ ������������������������! #"$���%�&#' �

( )*,+#-/.10�2�3�+�45.6*

Vb�zIb�]`O�uhghc|dfc{Z^]`Y-Z[i�d¡bHP�Y�c�o�df\�c�dai{©EZ[YIb�]`OQuNghc�P�oQda\^_`P�lNo�dG­pZ^Y-uvdaoyc�Z^b�gN\�dfo���KNPHYbH]`OQuNghc{Z^YN_;]6�aPHo o�dfc{Z^]`YNda\DY�gNOUlxP�o{i�]`o�]6�`P�o O�]1zNgN\^daoSZ[Y�c�PH_aPHo{i���JLKNP)�DPH\^\���©�YN]6��Y� ghbH\^Z[zNPedfY�df\^_`]`okZ[c{KNO i{]`\��`PHipc{KNZ^ipuNok]`lN\[PHO Z[Y�c�Z^OQP�m�gvdazho�dfc{Z^bLZ^Y�c{KNP�i{Z87�PL]a�+c�KNP�Z^Y1�uNghc�i��`s1P��`P�o�da\1�fdao{Z^daY�c�i ]a�Nc{KNZ^i"da\^_a]`o{Z�c�KNO Kvde�`P�l+PHP�Y�uNo{P�i{P�Y�c{PHz�Z[YSc�KhP¤\�dfikc�zNPHbHdazNP�iH�9A]aoSP�·NdfO�uN\[Pa­ l�j c�da©�Z^YN_&bHP�Y�c�PHokPHz-m�gN]ac{Z^PHY�c{iUZ^Yhikc�PHdaz ]a��ux]`ikZ[c{Z[�`PQm�gN]ac{Z^PHY�c{iH­B]aYNPda\^okPedazhj;_`P�c{iUd�i{Z[_`YNZ[£NbedaY�c!Z^OQuNo{]6�aPHOQPHY�c;::i{P�P=< R$> �/]`o!d�zNP�c�daZ^\[PHz daYvda\�j1i{Z^i]a���pgG�bH\^Z[zNPedfYda\^_`]ao{Z[c{KNOQix��Z[c{KzNZ[�aPHo{ikPDzhZ[�1Z^ikZ^]`YNi�?��A@�Y�BDCFEa�h­6ªXY�ghc�K�< �$>�uNo{P�i{P�Y�c{PHz!c�KNPp£vokikcm1gNdai{Z���\^Z[YNPedfo"c�Z[O�P¤_`bHzQda\[_`]`o{Z�c�KNO&­ lvdaikPHzQ]`Y��:daikc O�gh\[c�Z[uN\^Z[bedfc{Z^]`Y�<GE$> �aJLKNP�bH]`OQuN\^P�·��Z[c�j ]a�Lc�KhZ^i�df\^_`]`okZ[c{KNO��¤dai�Z^OQuNok] �aPHz l�j sGb|KN¬`YhKvda_`PH<!IJ>Dc�]LK;MONQPSRFTFUVNQP8RFTWPSRFT6NYX��Z bH]`OQuNokPHKNP�YNi{Z��`PzNPHikbHokZ^uhc{Z^]`Y)]a� c{KNPªXY1gGc�KG� sGb|KN¬`YNKNda_`Pda\[_`]`o{Z�c�KNO�bHdaY�lxP¢�/]agNYNzZ^YH<[BFB\> �hJLKNPXb�]`o{okPHb�c�YNP�i{i�]a��c�KhZ^iLda\[_`]`okZ[c�KhO�Z^i¤m�gNZ�c�P¢KNdao{z�c{]�PHikc�dalN\[Z^i{K¨­GP�i{i{P�Y�c�Z�df\^\[jlxP�bedagNikP]a� c�KNPXc�P�b|KNYNZ[beda\5zhP�c|dfZ^\^i�dao{]`ghYNz�c�KNPik]f��bHda\^\[PHz^] £h·���gNu�uNok]Gb�PHzNgNokP�_a`��NJLKNZ[i]�£h·���ghu®uho{]1bHPHzhgNo{P�_)Z^iUo�dfc{KNPHo�zNZ �QbHgN\�c�c�]¡Z^OQuN\[PHOQPHY�c�dfYNz-O«da©fPHi�c�KhP�da\^_`]ao{Z[c{KNOgNYNZ^Y�c{PHo{P�ikc{Z^YN_!gNYN\[PHi{ip�/]`o��aPHoyj�\^dao{_aP�Y�gNO�l+PHo{i�::]f�¨\[PHYN_ac{K�ikZ^_`YhZ[£vbHdaY�c�\[jSKNZ[_`KNPHopc{KvdaYbDcd lNZ[c{i�?��

@�Y�c�KNZ[iDuvdfuxP�oH­��¤P?uNo{P�i{PHY�c�d�fdao{Z^daY�c¤]a�¨c�KNP?ªXY1gGc�KG� sGb|KN¬`YNKNda_`PXda\[_`]`okZ[c�KhO c�KNdfczN]GP�iSYh]ac!Kvde�`P�c{KNP�]�£h·���ghu uNok]Gb�PHzNgho{P�_Qzho�de��lvdab|©A��J"]�dab|KNZ^P��`PQc�KNZ[iH­5�DP�zNP�i{b�o{Z^l+Pd�YhP���zNZ��1Z^i{Z[]`Ye: Vgf>�/]`o!VP�YNPHo{da\^ZS7HP�zhfDZ^Yvdaoyji?�­¨��KNZ[b|K�bHdaY l+P i{P�PHY dfiSd�Yvdfc{gNo�df\_`PHYNP�o�da\[Z87Hdfc�Z[]`Y¥]f�pc�KNPSlNZ^Yvdfokj&zNZ[�1Z[i{Z^]aY5�V@ cXzN]1PHitYh]acXi{P�PHO ux]ai{i{Z[lN\^P!c�]�ghi{PUc{KNP�lNZ��Yvdaokj�zNZ[�1Z^ikZ^]`Y�Z�c�ikPH\[�+Z[Y�d!ªXY�ghc�KG� sGb|KN¬`YhKvda_`P���\^Z[©aP�da\[_`]`okZ[c�KhO¥­rlxP�bedaghi{P§Z[c�ipzhP�£vYNZ�c�Z[]`YZ^iQdaikj1OQO�P�c�okZ^bjBZ[cQPH\[Z^OQZ^Yvdfc{PHi�\[PedaiycQi{Z^_aYNZ[£vbHdaY�cQlNZ[c{iQlhghc«Z�c�da\^ik] b�]`YNikZ^zNP�o{iQO�]`iyci{Z^_aYNZ[£vbHdaY�c�lNZ�c�iUc{]¯uxP�ok�/]`okO b�]`OQuvdao{Z[i{]`YhiH�BJLKhPHo{P)Z[i�YN]¯ikgNb|K dfikj1O�OQP�c{okj Z^Y�c{KNPVkf�zNZ��GZ[i{Z[]`Y5�BJLKhP¥okPHbHgho{i{Z��`P�Vkf}�pgNb�\^Z^zhPedaY®da\[_`]`o{Z�c�KNO Z[i�O�gNb|K ikZ^OQuN\^P�oUc�]¡zNP��i{bHokZ^l+PtdfYNz«c�]SuNo{]6�aP?c�KNdaY«c�KhP¢ªXY�ghc�KG� sGb|KN¬`YhKvda_`Ptda\^_`]ao{Z[c{KNO&­`daYNz«Z[c Kvdai c�KNP?i�daOQPdaikj1OQuhc�]ac{Z^b¢b�]`OQuN\^P�·hZ�c�j`�

JLKhZ^i�i{Z[O�uN\[Z[£vbHdfc�Z[]`YQ]a�"c{KNPzNPHikbHokZ^uhc{Z^]`Y�c{gNo{YNi�]`gGc§c{]�lxP!daY�Z[O�u+]`okc�daY�cLdazG�adfYG�c|da_`PUZ^Y;uNo{dab�c{Z^b�Pjx�DP�Z^OQuN\[PHOQPHY�c�P�z�c�KNP df\^_`]`okZ[c{KNO Z^Y¡V ��l�m�n"­�dfYNz¯Z[cto{P��aPeda\[PHzlxP�c��¤P�PHY¡c�KNokPHPQdaYNz;�/]`ghotc�Z[O�P�it�:daikc{PHo¢c{KvdaY;c�KhP�Z^OQuN\^P�O�P�Y�c�dfc�Z[]`YNi§]a� c�KNP ªXY�ghc{KG�sGb|KN¬`YNKNda_`P§da\^_a]`o{Z�c�KNO Z^Y^m¥da_`O�dXdaYNz�m�dfc{KNPHO�dfc�Z[bedh�J@�Y�V ��lnm¥n"­`c�KhP�da\^_`]ao{Z[c{KNOgNi{P�z��/]`oD_abHz�b�]`O�uhghc|dfc{Z^]`YhiD]a� \^dao{_aP§Z[Y�c�PH_aPHo{i¤Z^i c�KNP¢]aYNPt]a� sG]`o{P�YNi{]aYo<GpJ> ­���KNZ^b|K�Z[iYN]ac m�gvdai{Z���\[Z^YNPHdaoH�fJLKNPtb�ghc�]q)��Z�c�K«sG]`okPHYNik]`Y � i�da\[_`]`o{Z�c�KNO¦Z^i daok]`gNYNz�Ra�`�`�XO�dab|KNZ[YNPr�s�tVuwvyx{zAu}|W~\��x���t�x���x{�Ou}�J|W��t��Ou}��x�t���u}vy�DxYv\�}���!�{x��,��v����Ax�~A�����}���w�/�������[�auwtV������uwvy�Dx����\t�x�����x���u5�V���\x� x��\~\uw��xY������~$� �w� �����Y� ��t � v� �¡ � x��A¡¢�}��tO���£u}��¡\���8 \�� �uw~¢�}�D�����A�5x{���Ou}�Ou � ����|W�

¤¥¤ vD¦�§w¨�§w¨

Page 7: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

� � �'��{�����V%5��&#��� ������1��#�� ��'�';���'^����

�¤]`okzNiH­¨Z � Pa��I � �`�`�«lhZ[c�i�� Z i¢�:dfo¢dai¢�DP�©�YN]6�­�]`gNo¢b�]GzNP�Z[itc�KhP��:daikc{PHikc_abHz¯o{]aghc�Z[YNP�/]`oL\�daok_`P¢Z[Y�c{PH_`P�o{i��

JLKhP¤uvdau+PHo�Z^i ]`ok_�daYNZS7HP�zUdai �/]`\[\^]6��iH�D@�Y�sGPHb�c�Z^]aY�R��¤PDZ^Y�c�ok]GzNghbHP c�KNP¤Vkf zNZ[�1Z[i{Z^]aYdaYNz�_aZ[�`PQi{]aO�P�lvdai{Z[b�okPHikgN\[c{iUdal+]`ghcSZ[cH� @�YEsGP�b�c�Z[]`Y �G­��DP«zNP�i{b�o{Z^l+P«uho{PHb�Z^ikPH\[j¯c{KNPYNP�� o{P�bHgNoki{Z[�aPda\^_a]`o{Z�c�KNO&�`��PXuho{]6�`PXZ�c�i�b�]`o{okPHb�c{YNPHiki�Z^Y�sGP�b�c{Z^]`Y � daYhz�daYvda\�j�7�P¢Z[c{ibH]`OQuN\^P�·GZ[c�jXZ[YUs1PHb�c{Z^]`Y��G�rsG]`OQP Z^OQuN\^P�O�P�Y�c|dfc{Z^]`Y¢Z[i{ikgNPHiBdao{P zNZ^ikbHgNiki{P�z�Z^YUsGPHb�c�Z[]`Y IG�

¥µ �6�h��� µ� �f� JLKNP§YN]ac�dfc�Z[]`YNi6K M�� X�­��iM�� XpdaYhz��;M�� X dfo{P�ikc�daYNzvdaokz5��JLKNP§bH]`OQuN\^P�·GZ[c�j�Z[iO�PHdai{gNokPHz;Z[Y�P�\^PHOQPHY�c�daokj�]`u+PHo{dfc�Z[]`YNi§]`Y�lhZ[c�i���l§YN\^P�i{i?i{u+PHbHZ�£vPHz�P�·GuN\^Z[bHZ�c�\[ja­Ada\^\5c{KNP\^]`_�dfo{Z[c{KNOQi�dao{Ppc�da©aP�YUZ^Y!lvdaikP�R1�$@ ���¢Z^i�d�YN]`YG��7HPHok]tZ[Y�c{PH_`P�oH­��FM��#X�zNPHYh]ac�P�i�c{KNPD\[PHYN_fc�K]a�Bc{KNPUlNZ[Yvdaoyj�o{PHuho{PHikPHY�c|drc�Z^]aY�]a���v­AZ � Pa���FM��#X�����P8RFT! "� #%$ b �'&�M��#X§zNP�YN]ac{PHi?c{KNP�R6�dazNZ^b �fda\^gvdrc�Z^]aYU]a�(�v­aZ � Pf�fc�KhP�Y�gNO�l+PHop]a�Ab�]`YNi{P�bHghc{Z[�aP 7�PHok]GP�ipZ^YUc{KNPL\^PHdaikcpikZ^_`YhZ[£vbHdaY�clNZ[c{i§]f�Bc�KhPSlNZ[Yvdaoyj�o{P�uNo{P�i{P�Y�c�dfc�Z[]`Y;]a�)�+*Al�j�zhP�£vYNZ�c�Z[]`Y5­�&�M c X��-, �+.0/1�2�«bHOQ]1z43zNPHYN]fc�PHi�c{KNPXbHP�Y�c�PHokPHz&o{P�O«daZ[YNzNP�o�]a�5��OQ]1zNgN\^]636­NZ � Pa�7.Ui�drc�Z^iy£vPHi8�9�:.�OQ]Gz43?daYNz;=<U?> .�@ <U �`� P§okPHbHda\^\hc{KvdfcBA�M�NYX��C� M�NQP8RFT NQP8RFT6P8RTWNYX�Z^i�c{KNP§daikj1OQuhc�]ac{Z^b�c{Z^OQPo{PHm�gNZ[o{P�z�c�]XO�gN\�c�Z[uN\[j¢c��D]gN+� lNZ[cBZ^Y�c�P�_`PHokiB��Z[c{KQsGb|KN¬`YNKNda_`P�� s1c�o{dai{ikPHYQO�gN\�c�Z^uh\^Z^bHdfc�Z[]`Y:/�DP!okP��/P�o�c{] < B6�$>��/]`o�d�bH]`OQuN\^P�c�PXzNP�i{b�o{Z^uGc�Z^]aY&]f�Blvdfi{Z^bdfo{Z[c{KNOQP�c�Z[bt]`u+PHo{dfc�Z[]`YNi�?��

D EGFIHKJLHY*IH�-NM�O}4�P(HY0�Qh45*RM6-7SUTn4�Vy4�W#45.6*@�Y-c{KNZ^i�ikPHb�c�Z^]aY-�DP�£vo{iyc o{PHbHda\^\Dc�KNP�lNZ[Yvdaokj da\^_a]`o{Z�c�KNO&� JLKNPHY-�¤P�zNP�£vYNP�c�KNP&VgfzNZ[�1Z^ikZ^]`Y&daYhz¥_`Z��`P!i{]`OQP!lvdai{Z[buNo{]`u+PHoyc�Z[PHi?dalx]aghc§Z[ce�vsGgNlNikPHb�c{Z^]`Y¯RG� � P�·GuN\^daZ^Yhi§Kh] �c�]tb�]`OQuNghc�PDO�]1zNgN\^dao�Z^Y��aPHo{ikPHiB�/ok]`O>c�KNPD]`ghc{uNghc"]a�vc�KNP¤�pgNbH\[Z^zNPHdaY�da\[_`]`okZ[c�KhO lvdaikPHz]`Y�c�KNP!Vgf zNZ��GZ[i{Z[]`Y5�1JLKNZ^i�ikgNlNikPHb�c{Z^]`Y&Z^i¤Z^YNzNP�uxP�YNzNP�Y�cL�/ok]`O}c�KNPXokPHO�daZ^YNzhPHo¤]f��c{KNPuvdau+PHo�lNghc�Z[ivqkghikc�Z�£vPHzSl�j!c{KNPD�:dfb�c�c�Kvdfc"bH]aO�uNgGc�Z^Yh_?OQ]GzhgN\�dao�Z[Y��`PHoki{P�ipZ^i�d?iyc|daYNzNdao{zdauNuN\[Z^bedrc�Z^]aY�]a��c�KNP!�pgNbH\[Z^zNPHdaY&da\^_a]`o{Z�c�KNO&�

XZY\[ ]6^ ± �)� �N� ²`_ "���\� ¶ ± � � �\a µ �b�/� ^ �JLKNP¤lNZ[YvdaoyjzNZ[�1Z^ikZ^]`Y!o{P�\^Z[PHi ]`YUc{KNPD�/]`\[\^]6��Z^Yh_LuNo{]`u+PHoyc�Z[PHi\jr_`b�z Mdce�+fgch3AXi�Cc�_abHz M��+fj3�X�­_`bHz M�ce�k$ b fgce3�X�� _`bHzYMdce�k$ b fj3�X�­vdaYNz)_`b�z Mdch�R$ b fgce35$ b Xi� _`bHz M�ce35$ b fj� ; 3AX��@ cXbH]`Yhi{Z^iyc�i¢]f� PH\^Z[O�Z[Yvdfc{Z^YN_�c{KNP�\^PHdaikc¢i{Z^_aYNZ[£vbHdaY�c¢lNZ�c¢drcXPedab|K¯\[]G]au�Z[c{PHo{dfc�Z[]`Y5��l?P�o{PZ^i�d�zNPHikbHokZ^uhc{Z^]`Y�]a��c�KNPlNZ[Yvdaoyj)da\[_`]`o{Z�c�KNO j

JLKhPUl+PHKvde�1Z^]`o§]a�"c�KNZ[itda\[_`]`okZ[c�KhO Z^iL�aPHokj&�DPH\^\ gNYhzNPHokikc�]1]1z :/�DPUokP��/P�o?c�] < R$> �/]`odaYEde�`P�o�da_`P)b�]`OQuN\^P�·hZ�c�j daYvda\�jGikZ^i�?�� Z \[c{KN]`gN_aK�Z[cUZ^iSikc�Z[\^\ m�gvdazNo{dfc�Z[b�Z^Y c�KNP«i{Z87�P�]a�

m�n�¤�m s

Page 8: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

������������ ������������������������! #"$���%�&#' �

������������ ���� ��v¢u5�� �������� �������� �� �"!$#&%(' �) � � ��� �*� ������+ �"!,#.- �� � m �0/ # /213/ � / ����x{��¡A��v � ��v¢u5�� ��������4+ #!$�5- �6 � m � #87:9 �A��x���¡A��v � �; � m � � u}v¢� # u}��xY�D�w���,x���x�v ���\x�v ��x{��¡A��v=<2> � ��v¢u5�� 2�,������+ �5? < !,#.? < - �@ � m � � ��tVx���x�v�uwv\� # ��tV���\�6���\x�v ��x{��¡A��v � ��v¢u}�� 2�������4+ ��? < !A#B- �§ � m � � ��tV���\�,uwv¢� # ��tVx���x�v ���\x�v ��x{��¡A��v � ��v¢u}�� 2�������4+ �C!,#.? < - �D �FE ���\x{� � ��t�x���x{��¡���v � ��v\u}�� 2������� +$+ �HGI#B-$? < !A#.- �

J ���KML�K4N �\xY�\��v\u}�� PO#¡A�����!�Ax�u}v1uw�����}�������\|

c�KNP�Z[YNuNghc{iH­Ac�KNP�o{P�Z[i¢d«ikZ^_`YNZ�£vbedfY�ct_�daZ[Y¥c�]6�¤dao{zhi¢c�KNP�ghi{gvda\B�pgNbH\[Z^zNPHdaY¯da\[_`]`o{Z�c�KNO&­Z^Y�uvdaoyc�Z^b�gN\�dfo¤l+PHbedfgNi{Pc�KNP�o{PZ^iLYh]�YNP�PHz�c�]QbH]`OQuNghc{PdaY�j)m�gN]ac{Z^PHY�cH�

XZY X ]6^ ± a ±7 ± � � ���AQ ± ¶I� � �N� ²`_ "���\�:¶ ± � � �\a µ �b�/� ^ �@�Y c�KNP�bHdai{P)]f�§c{KNP�iyc|daYNzNdao{z-�pgNb�\^Z^zhPedaYEzNZ��1Z^i{Z[]`Y�]f�I�¡l�j 3 ��Z[c{KC "� SR 3 ­B]aYNPbH]`OQuNghc{PHi�d�m�gN]ac{Z^PHY�cUTSi{gNb|K�c�KNdfc���KNP�YVTh3?Z[i�i{ghlNikc{o�dab�c�PHz�c�]0�v­1c�KNPXOQ]`ikc�i{Z^_aYNZ[£h�bedaY�c?lNZ[c{i§]f�i�«�fdaYNZ[i{K5�vJLKNPUVgf zNZ��GZ[i{Z[]`Y)Z^iLc�KhPSokP��`P�o{ikPj¨Z[Y¥]ao{zNP�o§c{]�Vgf ��zhZ[�1Z^zNP �l�j�3§��Z[c�K &�M\��X%@:&�M\3AX�­A]`YNPbH]`OQuNghc{PHi?dQm�gN]fc�Z^P�Y�cWT�ikgNb|K¥c{Kvdfc���KNP�YXT <U�Y[Z]\_^a`CY[Z b�^ Z[idazNzNP�z&c{] �v­Nc{KNP\^Pedfikc�i{Z[_`YNZ�£vbedaY�c�lNZ�c�iL]a�)���fdaYNZ[i{K5�c ± � ��� [ed2fhg i �$j �:� � µ( lk Ynm ��% �+fj3po � ��"$�8qsr$���" ����%��{ #����3tW��%�& &�M\��X @ &�M�3�X�uv &����L%�&�������wF�8��%�� �;�#���sx\�V�=yi����"�zQ����%��{ #���� MsT f .X ������& %�&i�%B{| M b X-. � � $}T <U Y�Z]\�^~`CY[Z�b.^��| M�cFX T �@ c �5� <A�$� ����� � �| Ms� XK&�M\.X=RL&�M\3AX5uv &��^����%5�{ #���� T ���� . ��� ������8���=����.y�����%O������£� %�&��=�,��x\�V"$%O�{����%g����=%�&��L�,� ���q'^������#�� "�z M��+fj3�X�u�� � �#�A�6�����,� M��+fj3�X �$�k%�&��Uyi��� MAT7f .X�u���"D"�z u�TXZ^ipP�·hdab�c�\�j ; �

U�Y[Z b�^ �8M <U�Y[Z]\_^ X �8� b�O�]1z c �5� <A�$� ����� �_�&� �1sGZ[YNbHP�TXZ^ip]1zNz5­`c{KNP§i{PHb�]`YNzbH]`YNzhZ[c�Z[]`Y®Z^i��/gh\[£v\[\^PHzIdaYNz _`Z[�aPHi«c{KNP;gNYNZ[m�gNPHYNP�i{i)]a�nTG� Z i)d bH]`YNikPHm�gNP�YNbHPf­%. �� $�T <U�Y[Z]\_^a`"Y[Z�b�^ Z^iLghYNZ^m�gNPf�

¤¥¤ vD¦�§w¨�§w¨

Page 9: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

I � �'��{�����V%5��&#��� ������1��#�� ��'�';���'^����

� P�YN]6��_`Z��`P«c��D]¡da\^_a]`o{Z�c�KNOQiXc�];b�]`O�uhghc�P T¥daYNz .1��JLKNP«£vokikc�]`YhP�Z^iSZ^iSc{KNPPHm�gNZ[�fda\[PHY�c]a� c�KhPQYNdaZ[�aP�zNZ[�1Z^ikZ^]`Y¡df\^_`]`okZ[c{KNO¥­AdfYNz Z[iXdaiyjGOQuhc{]ac�Z[beda\[\[j&i{\[] �DPHoXc{KvdaYc�KNPLikPHbH]aYNz«]`YhPa­a��KNZ[b|K�Z[i�c�KNPLP�m�gNZ[�fda\[PHY�c ]a�+c�KNP��:daiyc zNZ[�1Z^ikZ^]`Y�da\^_`]ao{Z[c{KNO&�J9v]`oBO�]`iyc]a�5c�KhPtuvdaZ[o{i�M��+fj3�X�­�c�KhP¢�pgNbH\[Z^zNPHdaY�df\^_`]`okZ[c{KNO�lvdaikPHz)]`YQc�KNP¢Vkf®zNZ[�1Z[i{Z^]aY�u+PHoy�/]`o{OQida\^OQ]`ikc�da\^\`Z�c�i�zNZ��1Z^i{Z[]`YNi�]`Y!uvdaZ[o{i M � f��#Xx�/]`o5��KhZ^b|K�&�M��#X ; &�M � X�Z^i i{O�da\[\ ��JLKNZ^i�PHYN\[Z^_`K�c{ic�KNPX�:dab�cLc�KvdfcLc{KNPX£vo{iyc?da\^_`]ao{Z[c{KNO�i{g �QbHP�i?Z[Y�uNo�dab�c�Z[bHPa�

������������ �� O#��x�|Wx{v��Ou5�� 2�,� � �������� ���N � � vA��v5����x���� ��v���x{��x{��t �"!$# t�u5���!t��G ��!vA��� + �5- � + #B- �) � � ��� �*� +�� !� - 7���� + �C!,#.- �� � ��� 7:9 � � 7 � �6 ��� �\����x�� + *-� � + #B- �A�; � ��� 7 � G < Y[Z�� ^~`CY[Z�b.^ �@ � � 7� G < Y[Z�� ^~`CY[Z]\_^ # �§ � ��� 7 � ��|W���(< Y[Z�\�^a`"Y[Z�b�^���� � � 7 � \ �!#"%$'&)(*!+"-,�&/. � �D � ¤ x���¡A��v +�� !� *- �

J ���K104K s��!�w�w�������\|32 ��45�54 � �#6��87:9<;>=

@ c§Z[iLbH\^PHdao�c�KNdfcLc�KNPX�/]`\[\^]6��Z^Yh_�o{P�i{gN\�c�KN]`\^zhi\jc ± � ��� XY v &�� ��! #"$���%�&#' _ � ± � ± �6�N� ²¨³ f g "�z@?6� �#��BA �8����"$������%,������ z %�&������y���% M��+fj3�X �\�%O�8�A�y��� �FM��#Xgf �FM�3�X > N � %�&����L��% �6���8��&����Q���H%���';� K;MON Md&�M\3AX ; &�M��#X�XwX�u

JLKhP�i{P�bH]`YNz df\^_`]`okZ[c{KNO b�]`O�uhghc�P�iDCFE M��+fj3�X�Z[YUm�gvdaikZ�� \^Z^YhPedao5c{Z^OQPa­ Z^Y!c�KNPDbedaikP¤]a�sGb|KN¬`YNKNda_`P�� s1c�o{dai{ikPHY;OUgN\[c{Z^uN\[Z^bedrc�Z^]aY5­�l�j�gNi{Z[YN_ �§P��Lc{]`Y � i?Z�c�PHo{dfc�Z[]`Y5�/@ c§Z[i?dfzvdauhc{PHz�/o{]`O < � >�daYNz��¤P!o{P��/PHoLc�] < �J>5�/]`o�d�uNok]G]a�"]a��c�KNPX�/]`\[\^]6��Z^Yh_�\^P�O�O�dh�c ± � ���HG Y v &�� ��! #"$���%�&#'JI �N��� ³ f g "�zK?6� �#��ML �8����"$������%�����;���H%�&������$�D��"�z����&/N$�i&i�D #��q �V%�w�$���D��� '����£%O��y��£�{���%O�{"$� � � z � ���� 3 �\�%��8�Az��g%�&�����"$�����%O�{"$�i� �FM��#Xgf �FM�3�X >cJN ���� &�M�3�X ; &�M��#X > N � %�&����L��%&�6���8��&���� ���H%���';��OU A MONYX $ �iM�A�MON�X�X�u

Z Vgf �pgNb�\^Z[zNPedaY!da\[_`]`okZ[c�KhO bHdaYUl+P zNPHokZ[�`P�zS�aPHokjYNdfc�gNo{da\^\�jt�/ok]`O c{KNPDzhP�£vYNZ�c�Z[]`Y]a�"c{KNPSVkf zNZ��1Z^i{Z[]`Y5­Gi{PHP 9BZ[_`gNo{P � �

m�n�¤�m s

Page 10: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

������������ ������������������������! #"$���%�&#' E

������������ ���� uwt��$��� � �������� ���N � � vA��v5����x���� ��v���x{��x{��t �"!$# t�u5���!t��G ��!vA��� + �5- � + #B- �) � � ��� �*� +�� !� - 7���� + �C!,#.- �� ��� � 73G b !+"-,�& � � � 7 \ !#"%$'& ��� � 7 �4+ #.-�G �4+ �5- .�� �6 � ��� 7 � �; � � �w���� ���w| ������ ��������� G � ���@ � ��� 7 �

.�5+ � G@� � - |W���(< �� �§ � ��� � 7 � � |W���(<�� �D � � � � 7 � �

.�5+ � G@� � � - ��|W���=< � �

� � � 7 � . ��� �� (�� # � � ¤ x���¡A��v +�� � !� - �

J �� K�!4K s¥�����}�������\| J 6�"B�#9�;>=

������������ �� � � � ����� �������� ���N � � v\�wv5����x{��� �!v���x��wx{��t �"!$# t�u5���!t��G ��!vA��� + �5- � + #.- �) � � ��� �*�$# !+"�%�& � � �\x{��x'&6��t����\x��w��x�u5��x�t����{��|W|W��v,�A������t��w���w� � u}v¢� # �� � m � # 7 9 �A��x{��¡���v b !#"%,<& �6 � +�� !� *- � 7 ��� + �"!$#.- �; � ¤ x{��¡���v=� � �S�w��� + #!� *- �

J ���K)( K�N �Ax � � O#¡A�����!�Ax�u}v1uw�����}�������\|

¤¥¤ vD¦�§w¨�§w¨

Page 11: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

p � �'��{�����V%5��&#��� ������1��#�� ��'�';���'^����

c ± � ����� Y v &�� �,���,�V���£�O�#����L��! #"$���%�&#' "�z ?6� �#����=�8����"$������% � ����^� znt��Q���D�%�&��1��! #"$���%�&#' _ � ± � ± �6�N� ²¨³ f g "�z ?6� �#�� A � %�&���� z¢"$y���������y��#% M��+fj3�X �\�%O�8�Az��J���# � M\�#X f �FM�3�X > N � ��%0�6���8��&����Q���H%O��';� K;MON U X�u���"D"�z u � P�ck.�� �:�+f .

��C3 f . U f ��� �LlxPXc{KNPXi{P�m1ghPHYNb�PU]a�"o{P�O«daZ[YNzNP�o{i�c�KNdfc§dauNu+PedaoLZ[Yc�KNPSP�·GPHb�ghc�Z[]`Y¯]a��c{KNP�da\[_`]`o{Z�c�KNO&�h� PS£vokikcti{KN]6�¦c�Kvdfc§c�KhZ^itikPHm�gNP�YNbHP Z^i�£vYNZ�c�PUdaYNz

c�K�gNiLc�Kvdrc§c{KNP!da\^_a]`o{Z�c�KNO�c�P�o{OQZ^Yvdrc�PHi��� P!Kvde�`PS�/]ao?dfY�j�� c ­� .�� � U > .��

�&� �$K . � ­vi{]�c{Kvdfc0 . �7 > c�� �&��� � ��� dU�� � �

m¥]`o{P�]6�`PHo�­ c � zNZ��1Z^zNP�ik .�� ­6��KNZ^b|KS_`Z[�aPHi"c{KNP Z^YNP�m1gNda\^Z�c�Z^P�i5c � > .��� > c � �&� � � ��� dU�� �daYNz M b ; P8RFT � ��� dU X�� > N"�aJLKNP�o{P��/]`o{P�c{KNPHokP�dao{P1K;MON�X�o{P�O«dfZ^YNzNP�o{i"Z^YUc{KNPLo{P�O«daZ[YNzNP�oi{PHm�gNP�YNbHPf� � P�c�� � K;MON�XQl+P¥c�KhP;\^P�YN_ac�K ]a�Xc�KNP¥o{P�O«daZ[YNzNP�o«i{P�m�gNPHYNb�Pa�§sGghuNux]ai{Pc�Kvdfc . �tZ^i�c{KNP¥\^daikc Yh]`YG��7�PHok]�o{P�O«dfZ^YNzNP�oH�W9"o{]`O � P�O�O�d¡RG­��DP�©�YN]6��c�KNdfcQPedab|K]a�c�KNP;bHda\^\[i«c�]-d-Vgf � zNZ[�1Z^ikZ^]`Y®Z^Y��a]`\[�aPHi�dEY�gNO�l+PHo�]a�!lNZ�c)]`u+PHo{dfc�Z[]`YNi«l+]`gNYhzNPHzl�j K MOPSRFT . � £Md&�M .��

�&�X ; &�M\.��¢X�XwX�� K M�NWM�&�M\.��

�&�X ; &�M .��DXwX�X�­�i{]¡c�Kvdrc�c�KNP�]6�`P�o�da\[\

bH]`OQuN\^P�·GZ[c�j�Z[iLlx]agNYNzNP�z¥l�j K;MONZ&�M\. ��XwX��JLKhP¯bH]`oko{PHb�c�YNP�i{i�bH]aO�P�i«�/o{]`O c�KhP��:dab�c«c�Kvdfc�Z[��� � _`bHz M\�+fj3�X«daYNz MAT7f .X �

CME M\�+fj3�X�­Nc�KhPHY&_`bHz M\3 f .FX�����Z^i§d�ux]6�DPHo�]a� cG�Z lxP�c{c�P�o lx]`ghYNz-]`YK .��� �daYNzEc�K�gNiQ]`Y��UZ[i�uNo{]6�aPHz Z[YIsGPHb�c�Z^]aY �1�SB`� �?]`YNP�c�KNP�\^P�i{ic�KNP�uNokPHikPHY�c!lx]`ghYNz¡Z^iXi{g ��b�Z^P�Y�cc{])_`gvdao{daY�c�PHP�c{KNP m�gvdai{Z���\[Z^YNPHdao§c{Z^OQP�daiyjGOQuhc{]ac�Z[bbH]`OQuN\^P�·GZ[c�j�]f�xc{KNP?okPHb�gNo{ikZ[�`P?da\[_`]`o{Z�c�KNO&�rJLKNP?Z[O�uho{]6�`P�z�l+]`gNYNzQ]`YN\�j�zNP�bHokPedaikPHiDc{KNPO�gN\[c{Z^uN\�j1Z^YN_SbH]`YNiyc|daY�c§]a��c�KNP!daiyj1O�uhc{]ac�Z[bXbH]`OQuN\[P�·GZ[c�ja�

9v]`o�N� b daYhzXT! #" ; c � $ b fgc � ; b%$ �¤PSzNP�£vYhP!c{KNPSO�dfc{o{Z�·&"�T $ � �(' c c �c��}T�) �

� P�c�.��6­ .�l+P�c��D]!YN]`YG��7HPHok]SZ[Y�c�PH_aPHo{ip��Z�c�K c �2&�M\. ��XB@ &�M\.

�X�­�daYhz .���f .

�f . U f � � � l+Pc�KNP�Z^oSVkf o{P�O«dfZ^YNzNP�oXi{P�m1ghPHYNb�Pa­�dfYNz T

�f T U f�� � �lxP c�KhP�b�]`o{okPHi{u+]`YNzhZ^YN_&m�gN]ac�Z[PHY�c�iAj. *

�&��:. *

�8�$ T%* +-,

U Y�Z-� , ^a`CY�Z-� , ` � ^ �/]`oLdaY�j/.0 b �hJLKNPHY�c�KNPX�/]`\[\^]6��Z^Yh_Uo{P�\�dfc{Z^]`Y)Kh]`\^zNiD�/]`odaY�j/.0 b j ' . *

. *�&�) � b

c �5� +-, � "�T%* $ � , � � ��"]T � $ � � ' .��. � ) f��KNPHokP N21%�C&�M .31AX ; &�M\.31 �8� X4 b �/]`o�daY�j65� b �@�Y���Kvdfc��/]`\[\^]6��iH­1�¤P!gNikP!Z[O�uh\^Z^b�Z[c{\[j�c{KNPX�/]`\^\[] ��Z[YN_�ikZ^OQuN\^Pt�:dfb�c�i{P��`P�o�da\ c�Z[O�P�iH�

m�n�¤�m s

Page 12: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

������������ ������������������������! #"$���%�&#' C

c ± � ����� Y m ��% .�� � . � o ��%st�"=��"$�8qsr$���" ����%��{ #����3tW��%�& c � &�M .���X @ &�M .�X � ����.�� � . � � . U � u"u"u"o � %�&�������,� ���'^������#�� �D�*x\��������� u m ��% � c uIv &����o%�&����� �wF�8��%����

�����sx\��� . c ������& %�&i�% &�M\.%*OX > ��@L&�M\. *�&�X5u

XZY G � µ ��� ���� a � µ ¶ �/�N� � j ± �r� ± �� P�c��+fj3¥l+P;c��¤]-YN]aYG��7�PHo{]-Z[Y�c{PH_`P�o{i���Z�c�K c � &�M\�#X @ &�M\3AX��§sGgNuNu+]`ikP;c�Kvdfc)�DP��daY�cc�]�b�]`O�uhghc�P�c{KNP Z^Y��`P�o{i{PQ]a�B3UOQ]GzNgh\^]=�v­�l�j¯gNikZ^YN_&daY¡P�·1c{PHYNzNP�z �aPHo{ikZ^]`Y ]a�c�KNP��pgNb�\^Z[zNPedaY¡df\^_`]`okZ[c{KNO�lvdaikPHz¡]`Y;c{KNPQVkf zNZ[�1Z^ikZ^]`Y¨�xJLKNP�P�·GPHbHgGc�Z^]aY¯]a� c�KNP Vgf� ghbH\^Z[zNPedfYEda\^_a]`o{Z�c�KNO _aZ[�`P�iUc��D]¯Z^Y�c�P�_`PHoki�� daYNz E i{gNb|KEc�KNdfc��I��$ E93�� c�� �+­��KNPHokP � K M�NYX�daYNz �4� _`b�z M��+fj3�X���9Bok]`O�i{gNb|K d�o{P�\�dfc{Z^]`Y¨­vZ[c¢Z[itPHdaikj&c�])b|KNP�b|©c�Kvdfc ��� b �¨sGgNuhux]`ikP�YN]6� c�Kvdfctc�KNP�Z[Y��`PHoki{P�E��5]a� 3!OQ]1zNgN\^]��&zh]GP�i¢P�·GZ^iyce��9Bo{]`Oc�KNPo{P�\�dfc{Z^]`Y � �!$ E93%�2c��h­N�¤P©�YN]6� c�KNdfc¢j

E � � Ec � OQ]Gz4�+�

JLKNPHokP��/]`okPa­�Z^Y ]`okzNPHo)c{]®]alhc|daZ[Y E���­LZ�c�Z^i)i{g ��b�Z^P�Y�c�c{]Ib�]`O�uhghc�P;c{KNP¡Z^Y��`P�o{i{P ]a�c���OQ]GzNgh\^] �v��fDj&gNikZ^YN_ �?P��Lc�]`Y � i¢Z�c�PHo{dfc�Z[]`Y ::\^Z[©aPZ^Y&c�KNPUda\^_a]`o{Z�c�KNO I �N��� ³ f g ]a�9BZ^_`gho{PD� ?�­ �¤P¤]`lhc|dfZ^YSc{KNP¤Z[Y��`PHoki{P�]f���OQ]1zNgN\^]Ic��N�fJLKNZ^i"_`Z[�aPHi��«dfYNz��Xc�Kvdrc�i�drc�Z^iy� j�j���!$��Nc��?� b � �¤\[Pedaok\[j���Z^i�c{KNPZ^Y��`P�o{ikPS]a� c��QO�]1zNgN\[]��v�

s1Z^YNb�P&OUgN\[c{Z^uN\[Z^bedrc�Z^]aY5­ �?P��Lc�]`Y � iQZ[c{PHo�drc�Z^]aY-daYNz-zNZ[�1Z[i{Z^]aYE]`Y-Y1ghO�lxP�o{iQ]a�?i{Z87�PK MON�X�bedaY�lxP§uxP�ok�/]`okO�P�z�Z[YQc{Z^OQP�K M�A�MON�X�X�­�_`Z��`P�Y�c��D] N+� lNZ[c Z[Y�c{PH_`P�o{i���daYNz�36­�c{KNPdazNzNZ�c�Z^]aYvda\�bH]`iyc!c{]�bH]`OQuNghc{P�c�KNP�Z[Y��aPHoki{PQ]a� 3!O�]1zNgN\[]=��_`Z��`P�Y¡c{KNP ]`ghc{uNghc]a�¤daYP�·1c�P�YNzNPHz��pgNbH\[Z^zNPHdaY&da\^_`]ao{Z[c{KNO�lvdai{P�z¥]aY&c{KNP!Vkf zNZ��GZ[i{Z[]`Y�Z^i�K;MdA�M�NYXwX��

� EGFIH�� HY3�2 -�W#4 V�H�� O�� .W-i4�+7F����P�YN]6� zNPHikbHokZ^l+P�c�KNP�okPHb�gNo{ikZ[�`PQda\[_`]`okZ[c�KhO lvdai{P�z¡]`Y¯c�KNPQVgf zNZ[�1Z[i{Z^]aY5�AJLKNZ^iXzNP��i{bHokZ^uhc{Z^]`Y�b�\^]`ikPH\[j�o{PHikPHO�lh\^PHi�c�KhPS]`YhP!]f�1<[BFB\> ��@ c?ghi{PHi§c��¤]�o{]`gGc�Z^YhPHi\jNc{KNPSda\^_`]ao{Z[c{KNO� � ��� ³ f g ³ ax��¶ dfYNz c{KNP da\^_`]ao{Z[c{KNO I �v��� ³ fhg ³ a+��¶ �?VZ��`PHY c��D] YN]`Y1��7HP�o{]IZ^Y�c�P��_`PHoki=.���dfYNz .

���Z[c�K c � &�M\.���X @ &�M\.

�X�­Dc{KNP da\^_`]ao{Z[c{KNO � � ��� ³ f g ³ a+��¶ ]`ghcy�

uNghc�i?c�KNP Vgf okPHO�daZ^YhzNPHokiI. * dfYNz . *�&�]f�pc�KNP�Vkf okPHO�daZ^YhzNPHo?i{PHm�gNP�YNbHP ]a��M\.�� f .

�X

c�Kvdfc¢i�dfc{Z^ik� j &�M . *OX > �FM\. ��X � c=@ &�M\. *�&�X���@ cXda\^ik])]`ghc�uhghc�i¢c{KNP�bH]`oko{P�i{u+]`YNzNZ[YN_)O«d �

c�o{Z�· c � � � � �! " " � � , � "�T%* $ � , � � ��"]T � $ � � �hJLKhPHY)�¤PXzhPHi{b�o{Z[lxP¢c{KNPXda\[_`]`o{Z�c�KNO I �v��� ³ fhg ³ a+��¶ ­��KNZ^b|K5­¤_`Z[�aPHY c��¤]®Z^Y�c{PH_`P�o{i4� daYhz 36­�]aghc�uNgGc�i)c�KNP¯_abHz ]a�6� daYNz:3&l�j O«da©�Z[YN_i{gNb�bHPHiki{Z��`PUbHda\^\[i¤c�] c�KhPSdf\^_`]`okZ[c{KNO#� � ��� ³ f g ³ ax��¶ �

¤¥¤ vD¦�§w¨�§w¨

Page 13: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

B6� � �'��{�����V%5��&#��� ������1��#�� ��'�';���'^����

G Y\[ � � ��� ³ f g ³ ax��¶JLKNP�da\[_`]`okZ[c�KhO�� � � � ³ fhg ³ a+��¶ �¤]ao{©�i�dai �/]`\[\^]6��i\j d�m�gvdaokc{PHo"]a�hc{KNPD\[PedaiycBikZ^_`YhZ[£vbHdaY�clNZ[c{i�]a�)�«daYNz�3tZ[i�PH\[Z^OQZ^Yvdrc�PHz«l�j�zN]`Z^Yh_ d okPHb�gNo{ikZ[�`PbHda\^\x]`Y)c�KNP\^]6�L�FM��#X �ec�]f��c{KNPlNZ[c{i�]a�?� daYhz 36��JLKhPHY c�KNP;c��D]-bH]`oko{PHikux]aYNzNZ^Yh_Eo{PHO�daZ[YNzNPHoki M�� � f 3 � X�]a�c�KNP Vgfo{PHO�daZ[YNzNPHo�ikPHm�gNPHYhbHP�]a��M��+fj3�X§dfo{P!bH]`OQuNghc{PHz�c{KvdaYN©�i�c�]�c{KNPUokP�c{gNo{YNP�z;O�dfc�okZ�·��

��

Z i{Z[YN_`\^P«ikc�P�u-]a��c�KNP&Vgf��pgNbH\[Z^zNPHdaY-da\^_a]`o{Z�c�KNO Z[i�uxP�ok�/]`okO�P�zE]`Y M�� ��fj3 � X�­���KNZ^b|K_`Z[�aPHi�d YNP���o{PHO�daZ[YNzNPHo uvdfZ^o M�3 � f .FX��pJLKNPHY c{KNPHokP�Z[i«d¡i{P�bH]`YNz o{PHb�gNo{ikZ[�aP;beda\[\L]`YdauNuNok]6·GZ[O«dfc{PH\�j �FM\��X�� c ]a�c�KNP¯\[Pedaiyc�i{Z[_`YNZ[£NbedaY�c)lNZ�c�i)]a�;M\3 � f .FX��¤JLKNP¡ikZ87HP¯]f�!c{KNPZ^YNuNgGc�iX]a� c�KNZ[iXi{P�bH]`YNz o{P�bHgNoki{Z[�aP�bHda\^\"Z^iXikZ^OQZ^\�dfo§c{]�c{KNP ]`YNP ]a� c�KNP�£vokikcokPHbHgho{i{Z��`Pbeda\[\ �a9BZ[Yvda\^\�j`­Hc{KNP¤b�]`o{okPHikux]`YhzNZ^YN_to{PHO�daZ[YNzNPHokiyM � f ��X�]a�vc{KNPLVgf okPHO�daZ^YNzhPHo�i{PHm�gNP�YNbHP]a� M\� f 3AX daokPDb�]`O�uhghc�P�zSc�KNdaYN©�i"c{]§c{KNP¤okP�c�gho{YNP�zUO�dfc�okZ�·�� U ­fdfYNzSc{KNPD]aghc�uNgGcBO�dfc�okZ�·� Z^ipbHda\^b�gN\�drc�PHz��/ok]`O��

�­�� U daYNz�c{KNP¢VgfEm�gN]ac�Z[PHY�c ]a� M�� � fj3 � X���9BZ^_agNo{P§�XZ^\[\^gNiyc�o�drc�PHic�KNPP�·GP�bHghc{Z^]`Y&]a��c�KNZ[i�da\^_`]ao{Z[c{KNO&�

�§]ac�P?c�Kvdfc�Z^Y«c{KNP¢zNP�i{bHokZ^uhc{Z^]`Y)]f��c�KNPda\[_`]`okZ[c�KhO � � ��� ³ f g ³ a+��¶ Z^Y 9BZ^_`gho{P IG­Ndo{]`ghc{Z^YNP!Vgf � Z[iLgNi{P�z5�AJLKNZ^i�Z[i�d ikZ^OQuN\^PtO�]1zNZ[£Nbedfc{Z^]`Y�]f�"c{KNPzNZ[�1Z^ikZ^]`Y&Vgf�jN_aZ[�`P�Y �daYNz�3¢dai�Z^YhuNghcL��Z[c{K c �2&�M��#X @ &�M�3�X�­vZ[c�]`ghc{uNghc{i�c{KNPHZ[o§Vkf m�gN]ac{Z^P�Y�c T1­vdaYNz +U Y[Z]\_^Z[�5.�Z^i�c{KNPHZ[o§Vkf okPHO�daZ^YNzhPHoH�

G Y X I �N��� ³ f g ³ ax��¶JLKNP!da\^_`]ao{Z[c{KNO I �v��� ³ f g ³ a+��¶ gNi{P�i?ikP��`P�o�da\�c{Z^OQPHi¤c{KNP!da\^_`]ao{Z[c{KNO#� � ��� ³ f g ³ a+��¶Z^Y�]`o{zhPHo�c�] zNP�bHokPedaikPSc�KhP!\[PHYN_fc�KNiL]a��c�KhP!okPHO�daZ^YhzNPHokiLm1ghZ^b|©�\[ja�

JLKhPtO�daZ^YQdazh�fdaY�c�da_`P�c�]6��dfo{zNi c�KNP?]ac�KNP�oDm�gvdfi{Z�� \^Z[YNPedao�c{Z^OQP�da\^_a]`o{Z�c�KNOQipZ^ipc�KNdfcZ[� d�O�dfc�okZ�·��}Z^itokP�c{gNo{YNP�z¡l�j¯d�o{PHb�gNo{ikZ[�aP�beda\[\B]a�pc{KNP da\^_a]`o{Z�c�KNO � � � � ³ fhg ³ a+��¶ ­c�KNP�Y�Z[c"bH]`Y�c�daZ^YNi"]`YN\�j�] bH]ao{o{P�b�cBm1gh]ac�Z[PHY�c�i5_|�rJLKNPHokP�Z^i"YN]¢YNP�PHz�_`]`Z[YN_§lvdab|©!Z^YSc{KNPLVgfo{PHO�daZ[YNzNPHo§i{P�m�gNPHYNb�P�c�]�O�da©aP!c�KNPUm1gh]ac�Z[PHY�c�i¢b�]`o{okPHb�ce­5dfYNz�c�K�gNitYN]�YNP�PHz¯c�]�ikc�]ao{Pc�KNP�i{PHm�gNP�YNbHP)]f�Lm�gN]ac�Z[PHY�c�i��BJLKNP�gNYNzNP�o{\�jGZ[YN_�okPedaik]`Y Z[i!c{KvdfcUc{KNP«okPHO�daZ^YhzNPHokiUdaokPi{KN]`oyc�P�YNPHz�l�jQc�KNP§\^PHdaikcDi{Z[_`YNZ�£vbedaY�cDlNZ[c{iH­1daYNz�i{Z[YNbHP§c�KNP?bedaoko{Z^P�iD_a]UZ^Y c�KhPtzNZ[o{PHb�c�Z[]`Y]a��c�KhP«OQ]`ikcSi{Z[_`YNZ[£NbedaY�cSlNZ[c{iH­�c�KNP�i{P«c��D]¯uNKNP�YN]`OQPHYvd&zN];YN]fcUZ[Y�c{PHoy�/PHo{Pf� 9v]`oc�KNdfco{Pedfi{]`Y5­ c�KhP«da\[_`]`okZ[c�KhO Z^i!daiSi{Z^OQuN\[P�dfi!c{KNP�ªXY�ghc�K1�ysGb|KN¬aYNKvda_`P�da\^_`]ao{Z[c{KNO�Z[Y c{KNPbedaikP!]f�Bu+]`\[j1YN]aO�Z^da\^i��

� � .W-i-NHY3�+�*IHZW W .�+7FIH �`HY3�2�-NW�4 V�H�� O��6.W-/4�+7F �@�Y&c{Kvdfc§i{P�b�c�Z[]`Y5­N�DPSikKN]6� c�KNdfc�c�KNP!da\[_`]`o{Z�c�KNO I �v��� ³ f g ³ a+��¶ ]a� 9"Z^_`gNokPkE Z[iLbH]`o �o{PHb�ce�v� P!£vokikc?_`Z[�aPSik]`OQP!okPHikgN\[c{itdal+]`ghc§c�KhP�Vgf3zhZ[�1Z^ikZ^]`Y5­NdaYNz¥c{KNPHY&�¤PSi{KN]6� c{KNP

m�n�¤�m s

Page 14: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

������������ ������������������������! #"$���%�&#' BFB

GB Division

Recursive Call

Truncation

R1x

Truncation

Recursive Call

R2x

n 3n/4 n/2 n/4 0

c,d

a’,b’

b’,r

a,b

c2,d2

b’0,r0

c1,d1

a0,b0

R1

R2

J ���K��4K4N �Ax uw�����}�������A|�� 6����'9�;>=�9$����

¤¥¤ vD¦�§w¨�§w¨

Page 15: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

B R � �'��{�����V%5��&#��� ������1��#�� ��'�';���'^����

�P�������[��� ���� uw������� � � ����� ��B����� �*�4�"!$# t�u5���!t��G ��!vA� 9H7 � + �5- �4+ #.- �) � � ��� �� s�v���v���x���x����A�¢uwv,�!v���x��wx{��|6u}������z�� uwv\�,� � � ��v���x���x{��t��Yu}v¢��Wt�¡\�O����¢u5�� �� � 7 < ` �� �� � # � �\uwv\����� 7 < � �w����� 7 < � � u}��x����\x¥� � � ����vAt�x���¡A������x��x�|6uw��v\�Ax{��t��}�F���\x � � ��x�|6u}��v¢�Ax��Vt�x���¡\x�vA��x��w� + �C!,#.- ���¢u5�Vt�u}����t��  

�4+�� � - ��� + �5-$? < �4+�� � - u}v¢� 9H7 �4+�� - � +�� - �� ��� � 7���� + �5-$? <�� �6 � m � � + #B- 1 � �A���Ax�v,��x���¡A��v 92! � 99 � � !A�"!,# �; ��� � � 7�� � ? <�� �@ � � � 7:� � < �� � � � . �! � # � 7:# � < �� � � � . #" � ����� 9�� �! *!$#" < �� � � � �§ � � � ! � � ! � � ! � � � 7 � 6����'9�;>=�9$���� + � !$# - �D � � �# �#� � 7 < �� � ���$` �� � � � � �# � � . � ��

�� >

� � m � � + # � - . � � 1 � �����\x{v,��x{��¡���v$� � ! � � !,� � !$# � � � +�� !� *- � 7 ��� � + � � !,# � - �%� � 7 �4+ # � - �& ��� � 7 � G +'�4+ # � - . � � - ���¨ � \ � �!+"-$ � &� 7 # � � < ��(' ��� . # � � � 7� �

< ��)' � � . * � ����� 9�� # � ! * < ��(' ��� ���� � � ! � ! � ! � � 7 � 6����'9�;>=�9$���� + # � !� - �� 6 � �� � � 7 < ��)' � �$` ��+'�� # � � � � . � � � >� ; � ¤ x{��¡A��v,� � . � . � ! � #- �*. �+/ � � ! � ! � �

J ���K#04K s������w�������A| � 6����'9�;>=�9$����

���������[��� �� � u}t��$��� � � ����� ��B� ��� �*�4�"!$# t�u5���!t��G ��!vA� 9H7 � + �5- � + #.- �) � � ��� �*� & 7 ����� + �"!$#.- �� � m � #07 9 �A��x{��¡A��v � �6 � � ! � !,� � !$# � � 7 � 6����'9�;>=�9$���� + �"!$#.- �; � ¤ x{��¡���v & � 7 J 6 "B�#9�; = 9$��� � + � � !$# � - �

J ���K#1CK s¥���w�w�������\| J 6�"B�#9�;>=�9$����

m�n�¤�m s

Page 16: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

������������ ������������������������! #"$���%�&#' B6�

bH]`oko{PHb�c�YNP�i{i¢]f�pc�KNPUda\^_`]ao{Z[c{KNO � � ��� ³ fhg ³ a+��¶ ��KNZ^b|K�bH\^PHdao{\�j�Z^OQuN\^Z[PHi�c{KNPUb�]`o{okPHb�cy�YNPHiki?]a��c�KhPSdf\^_`]`okZ[c{KNO I �N��� ³ f g ³ ax��¶ �

� Y\[ � µ � ± �"� µ � ± � � � ± � µ ��� ^ ± fhg ¶5�$j � ��� µ� JLKNP«uNok]`u+PHokc{Z^P�iUzNP�i{bHokZ^l+PHz l+PH\[]6��dao{PQ�`PHoyj�ikZ^OQZ^\^daotc�]¥c�KNP�]`YNPHiS]a��c{KNP«iyc|daYNzNdao{z� ghbH\^Z[zNPedfY&zhZ[�1Z^ikZ^]`Y�c{Kvdfc�O�da©aPXc�KhPSªXY�ghc{KG�ysGb|Kh¬`YNKvda_aPSdf\^_`]`okZ[c{KNO}ux]`iki{Z[lN\^Pf�

c ± � ����� Y m ��% �+fj3 � � � ���� 3 �Wo � ������& %�&i�% � �i� � ';"\� c�� ���� 3 ��� 3 ';"\� c��tW��%�&�� c &�M\3AX)$ b u � �����#';�^%�&i�% c � &�M��#X9@ &�M\3�X�u m ��% MAT7f .X �JCME M��+fj3�X ����MsT � f . �£X�� CFE M\� ��fj3 � X�u�v &���� T � T � ���� . � .�� ';"\� c�� � �5� <A� u���"D"�z u fDj¢zNP�£vYNZ�c�Z^]aY5­�T � ; �� <U Y�Z]\�^� �8� bHOQ]Gz c ��� <A�a�&� �eJLKNP�o{P��/]ao{Pa­6ikZ^YNb�P � :c &�M\3�X $b ­ <U�Y[Z]\_^ � < �U Y[Z�\ � ^ OQ]1z�c �5� <A�_�&� ­��L� � �+O�]1z�c �5� <A�_�&� dfYNz T � T ����m¥]`okPH]6�`P�oH­B. �� $�T <U Y[Z]\_^ daYNz�.��N�:� �e$}T < �U�Y[Z�\ � ^ � �¤]`YNikPHm�gNP�Y�c{\[j4. � .��+OQ]Gz�c�� � �5� <A� �

9"o{]`O�c�KNPuNokP��1Z^]`ghi§okPHikgN\[cH­N�¤P]`lhc�daZ^Y)c{Kvdfc¢jc ± � ��� � Y m ��% � � 3 � � � ���� 3 � ������&g%�&i�% � ��� � ';"\� c U � �&� ���� 3 �+�:3 ';"\� c U � �&� �tW��%�& � c u �V�"y�y�"D�D� %�&i�% c � &�M��#X9@ &�M\3AX5u m ��% .��?� � � . � � 3 � . U � u"u"u"o ��%�&���,� ���'^������#��;�D�*x\�V������� "�z M��+fj3�X � ����h�8��% T

�f T U f � � � o � %�&��L��"$�����.y�"$������# �,�

x\�V"$%O�{����%���{ .31�&��2.31

�8�$�T 1 + �U � � � tW��%�& N 1k� &�M\. 1\X ; &�M .31 �8� X5u m ��% .��� �-� � � . � �

�23 � �. �U � u"u"u"o �g%�&�� �,� ���'^������#����D�*x\����������"�z M�� � f 3 � X � ����;�8��% T ��f T �U f � � � o �k%�&�����"$����q�.y�"$������# �,� x\��"$%��{����%���{ . �1

�&��:. �1

�8�$ T �1 + ��

U � �� � tW��%�& N �1 � &�M\. �1 X ; &�M . �1 �8� X�u�v &���� � z. *�&�

�8��%�&��P�6���%����'^������#�� ������&L%�&i�% &�M . *�&�XWR � � %�&����:z¢"$����� 5 > . � t��k&i���T 1%� T �1 ���� .31 �&� � . �1

�&�';"\� c U � �&�.� �5� + � � u

���"D"�z uL��P§uNo{]6�aP?c�KhZ^i o{PHikgN\[c l�jQZ^YNzhgNb�c{Z^]`Y ]`Y 5� b ��JLKNZ[iDZ[i c{o{gNP§�/]`o 59� b ­�i{Z^YhbHP� � �K�QO�]1z c U � �&� dfYNz 3 � � 3tO�]1z�c U � �&� �¨s1gNuNu+]`i{P�Yh] �>c{Kvdfc c > 5 > .k�+� PUghi{P� P�O�O�d I¥��Z[c{K + � ` �U Y[Z-� � ` � ^ f + �

U Y[Z-� � ` � ^ f + �� ` �U Y[Z-� � ` � ^ f + ��U Y[Z-� � ` � ^ dfYNz � � c � $ b ; c &�M .31

�8�X�� f j

Z^YNzNghb�c�Z[]`Y5­NOQ]1zNgN\^] c U � �&�.� �5� + � ` � � ­�. 1 �8� �2. �1�8�dfYNz . 1R�2. �1 �xsGZ[YNbHP 5 > .k­v�¤PSKvde�`Pl�jQzNP�£vYNZ�c�Z^]aY«]a� .k­�c �%$ b ; c &�M\. 1 �8� X4:c/Md&�M\.31AX ; &�M\.31 �8� X�X�$ b ­GdaYNz�b�]`YNi{P�m�gNPHY�c�\�j

�¤PbedfY�dauhuN\[j � P�O�O�d�Ih�JLK�gNi T 18� T��1 dfYNz . 1 �&� � . �1

�&�OQ]1z c U � �&�.� �5� + � � �

¤¥¤ vD¦�§w¨�§w¨

Page 17: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

B � � �'��{�����V%5��&#��� ������1��#�� ��'�';���'^����

� Y X � µ � � ± �a� �± �e� µ ��� ^ ± � � ��� ³ f g ³ a+��¶ � � a µ �b� � ^ �J"]¯ikKN]6� c�KhP)bH]`oko{PHb�c�YNP�i{iQ]a��c�KNP�df\^_`]`okZ[c{KNO I �N��� ³ f g ³ ax��¶ ­�Z�c�i{g �Qb�PHi�c�]¡i{Kh] �c�KNP&bH]`oko{P�b�c�YhPHi{i«]a�tc{KNP�df\^_`]`okZ[c{KNO � � � � ³ fhg ³ a+��¶ ­ ��KhZ^b|K Z[i�P�ikc�dalN\^Z[i{KNP�zIZ[Y®c{KNP�/]`\^\[] ��Z[YN_Uc{KNPH]`okPHO&�]6^ ±1µ � ± � � Y v &��k��! #"$���%�&#' � � � � ³ fhg ³ a+��¶ "�z@?6� �#������8����"$������% u���"D"�z uL��P�uNok]6�`P�c�KhP�bH]`oko{PHb�c�YNP�i{i]a� c�KhP da\^_`]ao{Z[c{KNO l�j;Z[YNzNgNb�c�Z^]aY;]`Y;c�KhP�i{Z87�P�]a�c�KNP?Z^YNuNgGc�iH�#@ ��FM��#Xi� b ­�c�KhPHY«c{KNP¢da\[_`]`okZ[c�KhO £vYNZ[i{KNP�iLdfc�s1c�P�u&R!l+PHbedfgNi{P &�M�3�X b �sGgNuNu+]`i{PYN]6� c�Kvdfc �/:c�daYNz�c�KvdfcR&�M�3�X > �+�s1Z^YNb�PBc � � U #e$ b @ �FM��#X�­rs1c�P�u��LZ^i d�o{P�bHgNoki{Z[�aPDbHda\^\�: daYNzc�KhP Z[YNuNghc{i i�dfc{Z^ik� jtc�KNP Z^Y1�uNghc bH]`YhzNZ[c{Z^]`YNi�?��fDj Z^YNzhgNb�c{Z^]`Y 5

�­��

�­ � �

daYNz ��i{dfc�Z[ik� j#' � ��

�) �2c � U 1 � � � ' � �33� ) ­

daYNz c 1 � � � daYNz`c 1 � � � daokP�c{KNP�bH]`Yhi{PHb�ghc�Z��`P&o{P�O«daZ[YNzNP�o{i�. �* � daYNz . �* � �&� ]a�§c�KhP�Vgfo{PHO�daZ[YNzNPHoLikPHm�gNP�YNbHP�]f� . �� �C� �¢daYNz .���� 3 �?c�Kvdfc§i{dfc�Z[ik� j�&�M .��*

�X > � � @:&�M .��*

� �&�X��

9Bo{]`O � PHOQO«doE1­"�DP&©�YN]6� c�Kvdfc c � 1 � � � ' � 3 ) dao{P�c��D] b�]`YNikPHbHgGc�Z[�aP�o{PHO�daZ[YNzNPHokic 1 � � �R� . *

�daYNzLc 1 � 3 �I� .%*

� �&�]a�?c�KNP�Vgf o{P�O«dfZ^YNzNP�o�i{P�m1ghPHYNb�P¯]a� .�� � �EdaYNz

.�� 36­¨dfYNz�c�KhP�j¥i�dfc{Z^ik� j�. *

��K. �*

�daYNz . *

� �&��K. �*

� �&�O�]1zNgN\[] c � � �&� �¥9Bok]`O c�KNP�i{P

\�daiycLPHm�gvda\[Z[c{Z^PHi�­G�DPXKvde�`Pc�Kvdrck&�M\.%*�X��2&�M .��*

�X > � � @ &�M\.%*

� �&�X > &�M\. �*

� �&�X��hJLKNPHokP��

�/]`o{Pf­¤Z[�c{KNP;P�·GP�bHghc{Z^]`Y3]a�c�KNP¡df\^_`]`okZ[c{KNO ikc{]`uNi�dfc&s�c�PHu EG­Dc�KNP�Y c{KNP¯]`ghc{uNghc)Z[ibH]`oko{PHb�ce�

� c{KNPHoy��Z^i{Pf­!. *� � U

Z^i¯b�]`OQuNghc�P�z¦dfc s1c�P�u ph� Z c�s1c�P�u C �DP®bH]`OQuNghc{P � U �� ; &�M . *� �&�

X���s�c�PHu E PHYhi{gNokPHi�c�KNdfc/� U c ��s1Z^YNb�PG&�M . *� �&�

X R � �2� cb#�­ �¤P�Kvde�`P� U > � �2� c�� ; b �DJLKNP�o{P��/]`o{P s1c{PHu BFB�Z^i�d o{PHb�gNo{ikZ[�aP¯beda\[\ ::daYNz c{KNP;Z^YhuNghc�i�i�dfcy�Z^ik� j c�KNP�Z[YNuNghc b�]`YNzNZ�c�Z^]aYNi�?�� fDjEZ[YNzNgNb�c�Z[]`Y5­ 5 U ­�� U ­ � U daYNz � U i�dfc{Z^ik� j�j ' � U� U ) �c � U 1 � U ' 3 � �. � ) ­�daYNz c 1 � U daYhz�c 1 � U dao{PLc{KNPLbH]`Yhi{PHb�ghc�Z��`P§o{P�O«daZ[YNzNP�o{i . �* dfYNz0.��* �&�]a��c�KNP�Vgf�o{P�O«dfZ^YNzNP�o�i{P�m�gNPHYNb�P�]a� M�33� f . �� X��6m¥]`okPH]6�`P�oH­�&�M\. �* X > � U @U&�M .��* �&� X��9Bo{]`O � P�O�O�d�EG­��DP¢©�YN]6� c�Kvdfc%c � 1 � U ' c 1 � 3 �c 1 � . � ) dfo{P?c��D]�bH]aYNi{P�bHghc{Z[�`Pto{PHO�daZ[YNzNPHoki. *"daYNz�. *

�&�:/��Z[c{K�.)� .

�$#. U $ b ?¤]f�Bc�KhPUVgf o{P�O«daZ[YNzNP�oLi{PHm�gNP�YNbHPU]a�1M\�+fj3�X�­Nc�KNdfc+ ,

U � � � Y[Z�\ � ^ � c 1 � U OQ]1z c � � U dfYNz;c�Kvdrc +-, ���U � � � Y�Z]\ � ^ � c 1 � U O�]1z c � �&� �¨JLKhPHo{P��/]`o{P�c{KNP�/]`\^\[] ��Z[YN_¢ikPHm�gNPHYhbHP¢]a�¨Z^YNP�m�gvda\^Z�c�Z[PHi�Z[i �fda\[Z^z�j &�M\. *�X�� 5�$�5 U $ &�M\3 �SX > �=@L&�M . *

�&�X��

JLKNZ^iLP�YNzNi�c�KNPuNok]G]a�"]a��c�KNPXc{KNPH]`okPHO&�

m�n�¤�m s

Page 18: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

������������ ������������������������! #"$���%�&#' B �

� � *RM�O�S W7HZW .�+7FIH � O �6.W-/4�+7F � W@�Y¡c{KvdfcikPHb�c{Z^]`Y¨­5�¤P�£vokikc!ikc{gNzhj;c{KNP�Vkf �pgNbH\[Z^zNPHdaY da\^_a]`o{Z�c�KNO&�V@�Y uNdaokc{Z^bHgh\�daot�DP_`Z[�aP�d«�¤]ao{ikcy��bHdai{P�l+]`gNYNz¯okPH_�dfo{zNZ[YN_«c�KhP�\^PHYh_ac�K;]f� c{KNP Vgf o{P�O«daZ[YNzNP�oti{P�m�gNPHYNb�Pa�JLKNPHY��DPQlx]`ghYNz c{KNP�b�]`OQuN\^P�·hZ�c�j¯]a�Dc�KNPQo{P�bHgNoki{Z[�aP�da\[_`]`okZ[c�KhO�Z^Y¡c�KhP�bHdai{PQ]a�¤c{KNPgNi{P�]a�¢sGb|KN¬`YhKvda_`P��ys1c{o�daiki{PHY®O�gN\�c�Z[uN\^Z[bedfc{Z^]`Y5­ dfYNzE�¤P�_`Z��`P�i{]`OQP�Z[Y�c{gNZ[c{Z^]`Y dalx]aghcc�KNP!de�`P�o�da_`Pb�]`O�uh\^P�·GZ�c�j`�

� Y\[ � � � ² � �:� µ �§� ^ ± � ± aA� ^ µ �§� ^ ± fhg � ± ���+� ¶ ± ��� ±�� ± � ±@�Y®c{KNZ^i�ikgNlNi{P�b�c{Z^]`Y5­p�DP&£No{ikcQl+]`gNYNz-c�KhP&ikZ87�P&]f�?c{KNP¥O�dfc{o{Z�· �U Y[Z-� , ^ "]T * $ � , � � � "�T � $ � � ­��KNPHokP�c�KNP T 1 � i daokP�c�KhP&Vkf m�gN]fc�Z^P�Y�c�i�]a�§d�c{o{gNYNbHdfc�P�zIVkf okPHO�daZ^YhzNPHoSi{PHm�gNP�YNbHP.�� f � ����f . *

�&���Z�c�K &�M\.%*�X > &�M\.���X $ �G@ &�M\. *

�&�X¢�/]aoXi{]`OQP��� c ��JLKNZ[i��Z[\^\"O«da©fP

ux]`iki{Z[lN\^P§c�KNPdaYNda\[j1i{Z[i¤]a� c{KNPX\^P�YN_ac�KhiLdaYNz�c{KNPXY�gNO�l+PHo�]a� c{KNP!Vkf okPHO�daZ^YhzNPHokiH� Z iO�P�Y�c{Z^]`YhPHz Z[Y®sGPHb�c�Z^]aY-RG­"c{KNZ^iUi{gNlNikPHb�c�Z^]aY®Z[iUYN]fc�YNPHb�PHiki�daoyj c�]¯uNok]6�`P�c�KhP�m�gvdai{Z��\^Z^YhPedao¤c{Z^OQP¢bH]aO�uN\[P�·GZ[c�j«]a��c�KNP!da\[_`]`o{Z�c�KNO&�

]6^ ±1µ � ± � � Y m ��% � b u m ��% .�� � . � tW��%�& c �C&�M .���X @L&�M .�X � ���� .�� f . � f . U f � ����f . * �&�%�&�����(�6���%k�,� ���'^������#���� � t &����� . �8� ������&H%�&i�% &�M\. *�X > � @K&�M\.%*

�&�X�u � �;��"$�8q

���O�#��^%�&���'^�%���~w �U Y[Z-� , ^ "]T * $ � , � � ��"�T � $ � � � t &�����^%�&�� T 1�� � ���^%�&��H�,� x\�V"$%O�{����%�� ����N 1%�2&�M\.31AX ; &�M\.31 �8� X z¢"$Q���� b > 5 > . u m ��% A o ��%�&���'^��wF��'���' "�z�%�&��Q� o �D"$�£�#%5��$��£�V����"�zg%�&��Sz¢"$�# ����%���{����"�zQ%�&#�8�k'^�%���~w uWv &���� t���&i����{|�� z �9� c "$ b � A � b �|�� z �9� � � A > bb �� �|�� z �9�� � A > ��� ��� c �|�� z �9�Cc7f�� "$ � � � A > U� � O ' � � ��� � O� � � �&� ; � �.� � � O� � � �&� ) u

� "$���"$��� � ����#%�&����D� o "$�����$�1���1����#��&���� � ����yi��%��{���#� � � %�&��1� �$��% "$�����8�1����#��&����t &���� N 1%� b ���� T 1 � b z¢"$ ���� b > 5 > .MuJLKhP uho{]1]a�hokPHikPHO�lN\[PHi�c�KhP �D]`okikc�bedaikP daYvda\�jGikZ^i�]a�1c�KhP V!daghi{i{Z^daY!da\^_a]`o{Z�c�KNO Z^Y^<!CJ> �

���"D"�z uL��P�Z^Y�c{o{]1zNgNbHP�dXuvdfokc�Z^da\h]ao{zNP�o ]aY c{KNPRc���ctO«drc�o{Z[bHP�i\j �-@ E>Z��5daYhzQ]aYN\[jUZ[��/]`o�daY�jXb�]G]`okzNZ^YNdfc�P4" . f 5 $ ­ � " . f 5 $ > E/" . f 5 $ �a9BZ^okikce­�c�KhP uho{]1]a�1bedaYl+Ppo{PHiyc�okZ^b�c{PHzXc�]�c{KNPbedaikPU��KNPHokP�c�KNP T 1 � i¢dao{PSYN]`YG� YNPH_�drc�Z[�aP�Z^Y�c{PH_`P�o{iH­+l+PHbedfgNi{P��DP�Kvde�`P�c{KNP�Z[YNPHm�gvda\[Z[c�j "�T%* $ � , � � ��"]T � $ � � > " T%* $ � , ��� � " T � $ � � �vJLKhZ^i§bedaY&lxPPHdai{Z[\[j)ikKN]6�¤P�z;l�j�Z^YNzNghb�c�Z[]`Y�]`Y¤¥¤ vD¦�§w¨�§w¨

Page 19: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

BDI � �'��{�����V%5��&#��� ������1��#�� ��'�';���'^����

.Bl�jQgNi{Z[YN_Sc{KNP¢uNok]`uxP�okc{Z^PHiAjZ �6� E > � � �E ­�daYNz�Z��5c�KhPtPHY�c{o{Z^P�i¤]a� �6f � � f�E�f E��vdaokPYN]`YG� YNPH_�drc�Z[�aPa­ � > � �¨dfYNz E > E��+Z^OQuN\[Z^PHi �6� E > � � � E�� ��¤]aYNi{P�m1ghPHY�c�\�j��¤P?dao{PL\[]G]a©1Z[YN_t�/]`o�c{KNPLO�dr·GZ^O�da\GP�\^P�O�P�Y�c{ip�/]`oBc�KhP§uNdaokc{Z�da\G]`o{zNP�oR�Z^Y®c�KNP&i{P�c¢j ��� � � �! " " � � ,�� � "�T%* $ � , � ����"]T � $ � � ��� b > 5 > . f c @ T 1 > c�� � ;b daYNz N21 b�� ���P§bedaY�o{P�ikc�okZ^b�cDc{KNPtdfYvda\[j1ikZ^ipc�]!c�KNP§bedaikP?��KNP�o{P�N

�$ � � � $LN *(� ��daYNz�da\^\Nc{KNPIT 1 � i

dao{PXO�dr·GZ^O�da\ ­���KNZ[b|K¥_`Z��`P�i�c{KNPi{P�c¢j��� � � �! " " � � ,� � " c�� , ; b $ � , � � ��" c�� � ; b $ � � � �w�PHO�daok©SYN]6�®c�Kvdrc " c � ; b%$ � > " b $ � � �/]`o�dfY�j N� �h�aJLKNP�o{P��/]`o{Pf­`Z[cBZ^i�ikg �QbHZ^P�Y�cpc�]bH]`YNikZ^zNP�oDc{KNP¢bedfi{Pt��KNP�o{Ptc{KNP�N21 � iLdaokPtZ[Y�� b fgc � �im&]`o{P�] �aPHo�­h�/]`oDdaY�j«Z[Y�c{PH_`P�o 5� c ­" � $ U " b $ 1 � " � $ U > " b $ 1 � ��

­adfYNzS�DP�da\[i{]§Kvde�`P c�KNPDZ^YNP�m1gNda\^Z�c�Z^P�i " � $ UU > " b%$ � � ­ " b $8d � � "]� $ U > " b $ O ­" � $ U � " b%$ d � > " b $ O�daYNz " b%$ U�� "]� $ U � " b $ U � > " b $ � � �9"o{]`O�c�KNP�i{P!o{PH\^dfc�Z[]`YNi�­G�DPSPHdai{Z[\[j�]`lhc|dfZ^Y)c�KNPO�dr·GZ^O�da\+PH\^P�O�P�Y�c�i\j

| 9v]`o �6� b ­ " b $ � �| 9v]`o �6�CcG­ " b $ U�dfYNz " � $ U �

| 9v]`o �6� �h­ " b $���­ "]� $ U � " b $ � daYhz " b $ � � "]� $ U �| 9v]`o �6� �N­ " b $ ��­ "]� $ U � " b $ U � ­ " b%$ � � " � $ U � " b $ � daYNz " b $ U � � "]� $ U �| 9v]`o �6��G­ " b $ d�­ "]� $ U � " b $�� � ­ " b%$ U � � " � $ U � " b $ � ­ " b $ � � " � $ U � " b%$ U � daYNz " b%$ � � � "]� $ U �| 9v]`o �6� � ­ " b $ � � ­ "]� $ U � " b $ � � ­ " b%$ � � � " � $ U � " b $ � ­ " b $ � � " � $ U � " b%$ � � daYNz " b%$ � � � "]� $ U �| 9v]`o �6� � ­ " b $ O � ­ " b $ � � "]� $ U � " b $ � � daYhz " b $ � � � "]� $ U � " b $ � �| 9v]`o � �h­ " b $ ���

JLKhPXPHYNz�]a� c�KhPXuNo{]1]a� Z^i¤]`l��GZ[]`gNiL]`YhbHP¢�DPXYN]ac�P?c�KvdfcRc � � " b $ � � � '�� � �8� � �� � � � �&� ) ­��Z[c�K � *(� � * � U $ �U � * �8� ­ � ��� c daYhz � � � b �9"o{]`O�c{KNZ^i o{P�i{gN\�c�]`YQc�KNP?m1gh]ac�Z[PHY�c�O�dfc�okZ^b�PHiH­`�DP¢bHdaY�Pedfi{Z^\�j�zNP�zNgNbHP?c�KNP§�/]`\^\[] ���

Z^YN_!]`Y c�KNP?i{Z87�P?]f�¨c�KhPto{P�O«dfZ^YNzNP�o{i daYNz�]`Y�c{KNP§\^PHYh_ac�KQ]a�5c{KNP?okPHO�daZ^YhzNPHo i{P�m�gNPHYNb�Pa�]6^ ±1µ � ± � [��ZY m ��% .�� � . � o ��% t�" ��"$�8qsr$���" ����%5�{ #����WtW��%�& c �2&�M .���XB@ &�M .

�X � ����.�� f .

�f . U f ��� ��f . � �&� %�&����� ��"$'Iy��8��%5�=�,� ���'^������#����D�*x\�V������� � � u � u tW��%�& . � �&� � c u

� �����#';�k%�&i�% � > 5 > � uWv &���� {

c 1 > . 1 > c� b �" .�� ���� b $ � b �� � 1 �8� ; � b ; � b �� � 1 �8����$K .

� ���� b $ � b �� � 1 ; � b ; � b �� � 1 �� $ �

m�n�¤�m s

Page 20: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

������������ ������������������������! #"$���%�&#' BaE

v &����D�g�8"4t���k������"y�y��� o "$�#���$� ���k����#��&����^%�"� #��%�&��� z¢"$

' .��.�) � " b $ � �� ' c �c ) �

� "$���"$��� � � z �FM\.���X f �FM\. � X > N � %�&���� t��Q&i����{ � > N � P8RFTVM � � O �8�U X�uZ i§d b�]`OQuvdao{Z[i{]`Y¨­G�DPSokPHbedf\^\¨c{KvdfcLc�KhP�D]`okikc§bedaikPX�/]`o�c�KNPiyc|daYNzNdao{z&�pgNbH\[Z^zNPHdaY

zNZ[�1Z^ikZ^]`Y�bH]`oko{P�i{u+]`YNzNiLc�]�c{KNPQ9BZ[lx]aYvdabHb�Z¨ikPHm�gNPHYhbHPa­v��Z�c�K ���nN � P8RTVM � ��� dU X�$ �iM�NYX���?]ac{P¢c�Kvdfc b � PSRFT�M � ��� dU X�� b � �� c daYNz b � P8RFT/M � � O �8�U X�� b � ��1�

� Y X � µ ��� � ±�� �/� ² � µ ¶ � µ ��� ^ ± � ± �� �r� �Aj ± � �\a µ �b�/� ^ �@�YQ��Kvdrcp�/]`\^\[] ��i�­�� M�NYX�daYhz C�MON�XBo{PHikuxP�b�c{Z[�`P�\[j zNP�YN]ac{P�c{KNP�O«d ·hZ[O�gNO¦]a�+c�KNPLY�gNO��lxP�o�]a�hlhZ[c ]`u+PHo{dfc�Z[]`YNi5zN]aYNP l�jXc{KNP da\[_`]`o{Z�c�KNOQi � � ��� ³ fhg ³ a+��¶ dfYNz I �v��� ³ fhg ³ a+��¶ ­_`Z[�aPHY&dai�Z^YNuhghc�iLc��D]�Z[Y�c{PH_`P�o{i�]a�"\^P�YN_ac�K&dfc�OQ]`iyc�NB�c ± � ��� [ [+Y v &��g%st�"�z¢"$���8"4tW���# ^���� �%��{"$�i��&�"$� ��{

| C�MON�X���� M�NYXZ$ C�M � NYXZ$eK M�NYX �| � MONYXi�Cc�� M�� � U #B$ b XZ$ K M�A�MON�X�X �t &����� � � � b $ePSRFTVM � ��� � O� X � � c u���"D"�z u�JLKNPp£vo{iyc o{PH\^dfc�Z[]`YXZ^i5daY]`l��GZ[]`gNi�b�]`YNi{P�m�gNPHYNb�P¤]a�GJLKNP�]`o{P�O Ch�H� PpYN]6� uNok]6�`Pc�KNPQi{P�bH]`YNz o{P�\�dfc{Z^]`Y5�¨JLKNP�b�]`ikc{iU]a�Ls1c�P�uNi^B`­"RG­ �h­ � ­ EG­ C&daYNzeB6�&dao{PQYNPH_a\^Z^_aZ^lN\[Pa�s1c�P�uNi���daYhz BFB;daokP;o{P�bHgNoki{Z��`P;bHda\^\[i«daYhz c�KNP;b�]`ikc«]a�Pedfb|K ]`YNP;Z[i«l+]`gNYNzNP�z l�j� M�� � U # $ b X���s1c�P�uNi Ih­,B R�daYNz Be�;bH]`YNikZ^iyc�]a�§O�gN\�c�Z^uh\^Z^bHdfc�Z[]`YNi¢]f�?Z[Y�c�PH_aPHo{iU]a�§i{Z87�PK MON�X��i9BZ^Yvdf\^\[ja­Ns�c�PHu p�Z^i�d�ikZ^YN_a\^PVgf zNZ[�1Z^ikZ^]`Y¨­NdaYNz)�DPuNo{]6�`P�z¥Z[Y � P�O�O�d���c�KNdfcZ[cLbHdaY¥l+PuxP�ok�/]`okO�P�z�Z^Y)c�Z[O�PQK;MdA�M�NYXwX��

9"o{]`O c{KNP�uho{P��1Z[]`gNiUokPHikgN\[cUdaYNz c�KNPQ�:dab�c!c�Kvdrc � @ b ­ ]`YhP«Pedfi{Z^\�j¯]`lhc�daZ^Yhic{KNP�/]`\^\[] ��Z[YN_Uc{KNPH]`okPHO j

]6^ ±1µ � ± � [7XY v &�����! #"$���%�&#' I �v��� ³ fhg ³ a+��¶ "�z ?6� �#�� ����i� ��� x\�/�$���$q��£�������%���';� u � "$��Uy�������8�D���£� C�MON�X�� K M�A�MON�XiP8RFTWN�X�u

¤¥¤ vD¦�§w¨�§w¨

Page 21: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

BDp � �'��{�����V%5��&#��� ������1��#�� ��'�';���'^����

JLKhP�bH]`Yhikc|dfY�c{iBc�KNdfcB]aYNP¤bHdaY�zNP�o{Z[�aPD�/ok]`O c�KNPDuNo{P��1Z^]`gNi"uNo{]1]a�/iBdao{P o�dfc{KNPHo"\�daok_`Pa­daYNz�YN]acB�`PHoyj�ikZ^_`YNZ�£vbedfY�cBZ^Y�uho�dab�c�Z^b�Pa�J@�Y��:dab�cH­f�/]`o�o{daYNzN]aO�\�jb|KN]`i{P�Y�NA��lNZ�cBZ[Y�c�PH_aPHo{i�­c�KNPXm�gN]ac{Z^P�Y�c{iL]a��c�KNP!Vgf o{P�O«daZ[YNzNP�o�i{P�m1ghPHYNb�PUdaokPgK M b X�­GdaYNz)c�KhPHo{P��/]`o{PSs1c{PHu p�]a�c�KNP«da\^_`]ao{Z[c{KNO � � � � ³ fhg ³ a+��¶ Kvdai�d¥YNPH_`\[Z^_`Z[lN\^P�b�]`ikcH�Wm¥]ao{PH]6�aPHoH­�c�KNP��¤]`okikcy��bedfi{PdaYvda\�jGikZ^i§]`Y�c{KNPUikZ87HPS]a�pc�KhPUbH]1P��Qb�Z^PHY�c{i¢]a��c{KNP�o{P�c�gNokYNPHz¯O�dfc{o{Z^b�PHi§_`Z[�aPHitd��¤]ao{ikcy�bedaikP?l+]`gNYNz�K � � � ��� � OU � � � ­`��KhZ^b|KQKvdauNu+PHYNi c�]!l+P�K;Mdc��XBZ[YQuho�dab�c�Z^b�Pa�`� Z�c�K c�KNP�i{Pc��¤]�KNP�gNo{Z[ikc�Z[bHi�­¨c�KNP ]�uNo�dfb�c�Z[beda\[_!bH]`iyc]a�Dda\^_a]`o{Z�c�KNO � � � � ³ fhg ³ a+��¶ i{dfc�Z[ik£vP�iH­¨��Z�c�Ks1c�o{dai{ikPHY � i?OUgN\[c{Z^uN\[Z^bedrc�Z^]aY�]a� c � c�O«dfc{o{Z[bHPHiAj

� MON�Xi�2c�� M N c XZ$ b�� A�M N � X �JLKNZ^iD_`Z[�aPHi � MONYX�� ���� A�M�NYXiPSRFT6N;daYNz C;M�NYX�� ���� A�MON�XiP8RFT6NB� Z ikZ^OQZ^\^dao�KNP�gNo{Z[ikc�Z[bdaYvda\�jGikZ^iL_`Z��`P�i�c{KNPXi�dfO�PPHiyc�Z[O«dfc{PHi��/]`o�c{KNP!ªXY1gGc�KG� sGb|KN¬`YNKNda_`PSda\^_`]ao{Z[c{KNO&�

� ) ��� O�H � HY*,+7M +i45.6* 4�W W#2IHZW��PXKvde�aP!Z[O�uh\^PHOQPHY�c{PHz«c{KNPda\^_a]`o{Z�c�KNOQiDzhPHi{b�o{Z[lxP�z¥Z[Y�c�KNZ[i�uvdau+PHoLZ[Y&V ��l m�n <[B\> �@�Y�c�KhZ^i i{PHb�c�Z[]`Y5­��¤P?£vo{iyc¤_`Z��`P§i{]`OQPy]�c�okZ^b|©�i}_�c{Kvdfc �¤P?Z^OQuN\^P�O�P�Y�c�PHz c�]SZ^OQuNo{]6�aP�c{KNPP��QbHZ[PHYNb�j�]a�"c{KNP!da\^_a]`o{Z�c�KNO&­1daYNz�c�KNP�Y&�DP_`Z[�aP!ik]`OQPXlxP�YNb|KNO�dao{©�iH�

� Y\[ � µ � ± �H��j � a+�9BZ^okikcX]a�Dda\[\ ­+YN]ac{P�c�Kvdfcik]`OQP�O�gN\[c{Z^uN\[Z^bHdfc�Z[]`YNi�bedaY¡l+P�i�de�`P�z�PHdai{Z[\[j&�/o{]`O c�KNP��:dab�cc�Kvdfc«��KNPHY c�KhP¯da\^_a]`o{Z�c�KNO I �v��� ³ fhg ³ a+��¶ bHda\^\[i�c�KhP¯da\^_a]`o{Z�c�KNO � � � � ³ fhg ³ a+��¶ ­c�KNP�o{P�c�gNokYNPHzIO«drc�o{Z�·EZ[iQYh]acQgNi{P�z5� JLKNPHokP��/]`okPa­p�/]`o i{gNb|K ]�c{]`uG��\[P��aPH\ _�beda\[\^i�c{]¡c{KNPda\^_`]ao{Z[c{KNO#� � ��� ³ f g ³ a+��¶ ­Nc{KNPHokP!Z[iLYN] YNPHP�z�b�]`O�uhghc�Z[YN_�c�KNPuNok]GzhgNb�c � U "�T $ 1 � � ��§]ac�P�df\^i{];c{Kvdfc��/]`oUZ^Y�c�P�o{PHiyc�Z[YN_¯i{ZS7HPHi ]a�§Z[YNuNghc{i ::]`gNo�Z[O�uh\^PHOQPHY�c�dfc�Z[]`Y ]f�§c{KNPo{PHb�gNo{ikZ[�aPXda\^_a]`o{Z�c�KNO�Z[iD�:daiyc�P�oDc�KNdaY�gNikgvda\5�pgNb�\^Z[zNPedaY�da\^_`]ao{Z[c{KNOQi��/]`o¤ikP��`P�o�da\+c�KN]agG�i�daYNzhiS]a�DlNZ�c�i�?�­5�¤P�daokPQZ[Y¯c�KNP zN]`O�daZ[Y ]f��ªdao{dfc�ikgNlvd&daYNz J"]1]`O�� �¤]1]`©¥OUgN\[c{Z^uN\[Z��bedfc{Z^]`YNi�­+daYNz;YN]fc?�:dao§l+PH\^]6� c{KNPUzh]`O«dfZ^Y&]a��c�KhP�9 9BJ¤� lvdaikPHz;O�gh\[c�Z[uN\^Z[bedfc{Z^]`Y¨�GJLKNZ[i\^PedfzNi�c{]¢i{]aO�P Z^OQuNo{]6�aPHOQPHY�c�i��9v]`o�P�·hdaOQuN\^Pf­6c�KNP¤da\^_`]ao{Z[c{KNO I �v��� ³ fhg ³ a+��¶ i{KN]`gh\^zgNi{P¢bHda\^\[i c{]Sc{KNPXda\[_`]`o{Z�c�KNO � � ��� ³ f g ³ ax��¶ Z^Y�]`o{zhPHo¤c{]U_�daZ[Y��N;lNZ�c�i Z^YNiyc�PHdaz�]a� � U ­��Z[c�K&d�bH]aYNikc�daY�c���� �U c{Kvdfc�KvdaiLc{]Ql+P]`uhc{Z^OQZ87HP�z5�Z O�]aYN_`ikc�]ac�KNP�o{i�­`lxP�\^]6�Id¢bHP�okc|dfZ^Y�c�Kho{PHikKN]`\[zQZ[YUc�KhPLi{Z87�PL]a�Ac�KNP¤Z^YNuNgGc�i ::YNdaO�P�\[ji{P��aPHo{da\�K�gNYNzNokPHzNi�]a�GlNZ[c{i�?�­HdLYvdaZ[�aPpm�gvdazNo{dfc�Z[bpda\^_a]`o{Z�c�KNO c�KNdfc Kvdai5c{KNPpo{P�m1ghZ^o{P�O�P�Y�c�i

m�n�¤�m s

Page 22: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

������������ ������������������������! #"$���%�&#' BDC

]a��da\^_a]`o{Z�c�KNO � � � � ³ fhg ³ a+��¶ Z[i�gNikPHz5�Vm&]`o{P�] �aPHo�­vPedab|K)c�Z[O�P�c�KhPda\^_`]ao{Z[c{KNO�KvdaiDc�]bH]`OQuNghc{Ptd�VgfIm�gN]fc�Z^P�Y�ce­�Z^YNzhPHPHz«Z[cDbH]`OQuNghc{PHi¤ikP��aPHo�df\¨]a�5c{KNPHO}Z[Y«]`okzNPHo c�]U]alhc|daZ[Yd c � c;O«dfc{o{Z�·���Z�c�K-PHY�c�okZ^P�iQ]f�?\[PHYN_fc�K®dai�bH\[]`i{P)c{];c�KNP�i{ZS7HP)]a�?O�dab|KNZ^YhP��¤]`okzNidai�u+]`i{ikZ^lN\[Pa�hJLKhZ^iLZ^i¤zN]`YNPXl�j�b�]`YNikZ^zNP�o{Z^Yh_�]`YN\[jQc�KhP¢c��¤] \^PHdaikc�i{Z^_aYNZ[£vbHdaY�c�O�dab|KNZ[YNP�¤]`okzNi�]a��c�KNPo{P�O«dfZ^YNzNP�o{ik: ��KNZ^b|K&_`Z[�aPHi§d bH]`oko{PHb�c§o{PHikgN\[cH­Nl+PHbedfgNi{P!]a� � P�O�O�d�I ?��

� Y X � µ �����N�b�:� µ� � µ�µ � ^ ± � � ��� � ± � ± �6�G��� µ� � µ �?���� � ��v¶ � �h���:� a+��¶��PXb�]`O�uNdao{P�z)]`gNo�Z[O�uN\[PHOQPHY�c|drc�Z^]aY«Z^Y�d zhP��`P�\^]`uhO�P�Y�cL�aPHoki{Z^]aY&]f��V ��l m�n®��Z�c�Kc�KN]`ikP)]a��m�da_`O�d��XRG�SBe�r��B R¥daYNz m�dfc{KNPHO�dfc�Z[bed¯�1� �h­���KNZ^b|K-l+]ac�K-uNok]6�GZ[zNP)d¯i{ghlG�m1gNdazNo�drc�Z^bEZ[Y�c�PH_aPHo¯_`b�z5�XJLKNZ^i¡b�]`O�uNdao{Z[i{]`Y �¤dai¡uxP�ok�/]`okO�P�z ]`Y dfY Z c{KN\^]aY m¥nR`Ra�`����­��������� ������������������������! "��#��$���&%" '�)(��$���+*�A� � gho5Z^OQuN\^P�O�P�Y�c|dfc{Z^]`Y§��Z^YNi5]6�aPHoc�KNP§m�gvdazNo{dfc�Z[b?_`b�z�]a��V ��l m�nEgNu��/o{]`O}dal+]`ghc�R`�a�a��D]`o{zhi¤]a�H� c!lNZ�c�iH­�Z � Pf��dalx]aghcR � �`�`�XzNP�bHZ[O«da\vzhZ^_`Z�c�iH�`� P§gNi{P�z)dai c�PHiyc�Y�gNO�l+PHoki¤l+]ac�K c�KhP§�D]`o{iyc�bHdai{P?]a�¨c{KNPtb�\�dai �i{Z^bHda\BikgNl+m1gNdazNo�drc�Z^bU_`bHz5­¨Z � Pa�¨b�]`YNikPHbHgGc�Z[�aP^9BZ^l+]`Yvdab�bHZ�Y�gNO�l+PHo{i-, � daYNz., � �8� ­5daYNzc�KNPL�D]`o{iyc¤bHdai{P§]a�+c�KNP�lNZ[YvdaokjU�adfo{Z�dfY�cH­`Z � Pa� C � daYhz c C � �8� ­`��KNPHokP@C � � c ­�C �

� b ­C � � ; C � �8� $ ��C � � U ­N��KNZ^b|K&_`Z��`P!da\^\xlNZ^YNdaokj«m1gh]ac�Z[PHY�c�i�PHm�gvdf\ c{] b �

�8 �~Dx�� � /yuw��|6u10 6 � ��¨[��� 6 /yu}���Ax�|6u}������u6§ � ¨ � u}t��$�,� � �S�w���32a� n54 /76�89 � � � 9;: 6 � #& 6 � ��� ¨ � � ¨9 � �"<5< � 9;: � � � @ § � @ D � � & �9 � ��=5< � 9 : 6[; � ; � � � § ; D � � @9 � � � 9?> § & � � @ ; � § & � � � ; @� � ��='< � 9A@ 6 � � 6 � ¨ D ¨ � � �� � � � 9;: � � &#& § � ; ¨ � � & @

J ���KCB4K0N ��|W��v\�wt ��vgt�x�� � �w�¥���\x �����Q����¡�����v\x�t �w�D/yu}��|6u���/yu}���\x{|6u}������u uwv¢�Q�w¡A�W��|W~\��x�|Wx{v��Ou5������vQ��v� n'4 /76 �

� gNo¤P�·GuxP�o{Z[O�P�Y�c{i�i{Kh] � c�Kvdrc�]`gNo¤Z^OQuN\^P�O�P�Y�c�dfc�Z[]`YQZ^Y�V ��l m¥n®]a� c{KNP¢lNZ[Yvdaokjo{PHb�gNo{ikZ[�aPQ_abHz Z^i�«c�] � c�Z[O�P�it�:daiyc�PHoXc{KvdaY¯c�KNP Z[O�uN\[PHOQPHY�c|drc�Z^]aYNi?]f�Dc{KNP�bH\^dai{ikZ^bedf\o{PHb�gNo{ikZ[�aPS_`b�z¥Z[Y m�da_`O�d�]`o m�dfc{KNPHO�dfc�Z[bedh�hJLKNZ^i�o�drc�Z^]�zh]GP�i§Yh]ac��adfokj)O�ghb|K&��Z�c�Kc�KNPZ^YhuNghc�i�­Ni{Z[YNbHPo{dfc�Z[]`i��/]`oE, � daYNz C � dfo{Pm�gNZ[c{P!ikZ^OQZ^\^daoH�

¤¥¤ vD¦�§w¨�§w¨

Page 23: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

Ra� � �'��{�����V%5��&#��� ������1��#�� ��'�';���'^����

����� µG´ � ± ¶ a ± � ±7 � � YJLKNPQ£No{ikcUdaghc{KN]`oXc�KNdaYN©�i fDo{Z^_aZ[c{c{P � da\^\[WHP��/]`oXZ[Y�c�o{]1zNgNb�Z^YN_�KNZ[O�c�]��:daiycS_abHz df\^_`]f�o{Z[c{KNOQi daYNz�/]`o5�`P�okj!KNPH\[uh�/gN\�zNZ[i{b�gNi{ikZ^]`YNi ]`Yc�KNdfc c�]`uNZ[ba�H� PDda\^ik]�c{KvdaYN©¢c{KNP,m¥PHzhZ^bHZ[ibHPHY�c{PHo��/]`o�da\^\[]6��Z^YN_Uc{KNPbH]`OQuvdaokZ^ik]`Y�c�]�m�da_aO«d�daYhzLm�drc�KNP�O«dfc{Z^bHdh�

� H jH�-�HY*�3'HZW� � N �AxH� n'4 /76 � ����v�¡\|��$���A�Ou}��  ������� �������������������������� � !�! �����#"�$%�&��'("*)%�+,!.-+/��!¢�6 � s � s¥���\u5���wuwv\� � � 0�uw����0�x � s��x{�Ou}��x�� �\���J����|W~A��x{z����S ��}�5O#¡A�����G��x�uwv u}�!�w�w�������\|Wt � m v2143 ��)5" �7698;:=<?> 1A@ B�B}����w��¡\|Wx � § ; �w� >C�D)E��F 3 �HGH��I�J$HKLM:��;+/� F��I� 32N )EKO�J )P� �¢~¢u}��x�t ;�� @;Q ;� �� �SR ~�����v\��x��$� 0#x{���!uw��� 6 ¨�¨w¨ �; � � � � u}vA���w����/ �UT ¡\x{�����!u��/u}v¢� 6 �4V ��|W|Wx{��|6u}v\v � N �Axy|W�!�\�A��xy~������A¡A�{� uw�����}�������\| �XWU�J���.� 3 �Y�(�

W?�D)P�Z� 3 )P�Z�[8DG,W?8D<]\_^�^E\ � 6 ¨�¨ 6 �@ � s �=` u5��~guwv¢� 6 � /yu}����t���x���v � � �����Q~A��x{����t��!�wvk�A�����!t����wvguwv¢� t ��¡\u}��xW�����w� �a<�:=bdc 3 �Z$J��)E��Ke�;Z$f�ba�;�*�Z�J+Y���K�)P�� N �g6J���&� 3 � � 6; � § D � Q § #& ��� &#& � �§ �ih � ` v�¡A��� �jcS�Z�k< 3 �H�76f:��+,� F��I� 3A143 �%- 3 �+k+�KL(-lnm;���"&o.� N �J+�K*ZF�+p� 3 Ke)%���C<,� -�� 3 K*�*��+�$�� sV�\���!t��wv5�� x�t���x{ ��a� &� � �D � s �R �O�Zq�vA�¢u}��x��ws � � �8� � �¥���}��x{� x{�G�a��u}v¢� O � 0#x{����x{� �.rS�$%� <,� -�� 3 KL�*��+k$Pl <sbtFu� ��K*�O�J�u�2cuF 3 KL(-[ba��)P�(KL��8P+,�_���J+p�Ju�O���Ke�A� � m � � ��t�t�x�vAt����\u}� ��t���x{���!uw�A�� & & @ �

� � s �uR �O�Zq�vA�¢u}��xYu}v¢� 0 �uR ���Ou}t�t�x�v �&R ���Av\x�����x /�¡A������~A�!���wu}������v��w����t�t�x�� V uw�A��x�v �[:��;+/� F���KL(- � � � 6 � Q 6#&*6 �� & � � � �wvA� R �}��x�v\t��wv � N � � �£u}t����w����u}�!�w�w�������\|Wt �nx��F 3 _���C�76,<,� -�� 3 K*�*��+�$ �$� D ���w��¨ Q � @@ ��� &#& @ �& � � � 0�uw����0�x � ��uw¡At�t�yDuw���w�w�������\|H��x�����t�����x�� �?x��F 3 _���=�76/<,� -�� 3 K*�*��+�$ �$� 6 � §w§ D Q § �6 ��� &#& � ���¨ �wvA� ����v ��¡A� ��u}���\x{v�u}v¢� vA� ��x{���¢u5�O� ��ba���(� 3 z:��+,� F��I� 3 <,� -(��� 3 �}�Y{ u}| �A���!����x 4 v\����x{��t����S E6���x{t�t��6 v¢�,x��A��������vJ� 6 ¨w¨ ; ���� �f{¥�u` �u| uw~ ��r F�_���+p�Ju�O��� 1#3 �������J+k$[KLf<,� -�� 3 KL�*��+kKe)H<,� -(��� 3 �w� E z�� �w�O� 4 v\����x{��t����S �6���x�t�t�� 6 ¨w¨�¨ �

m�n�¤�m s

Page 24: A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary

Unité de recherche INRIA LorraineLORIA, Technopôle de Nancy-Brabois - Campus scientifique

615, rue du Jardin Botanique - BP 101 - 54602 Villers-lès-Nancy Cedex (France)

Unité de recherche INRIA Futurs : Parc Club Orsay Université - ZAC des Vignes4, rue Jacques Monod - 91893 ORSAY Cedex (France)

Unité de recherche INRIA Rennes : IRISA, Campus universitaire de Beaulieu - 35042 Rennes Cedex (France)Unité de recherche INRIA Rhône-Alpes : 655, avenue de l’Europe - 38334 Montbonnot Saint-Ismier (France)

Unité de recherche INRIA Rocquencourt : Domaine de Voluceau - Rocquencourt - BP 105 - 78153 Le Chesnay Cedex (France)Unité de recherche INRIA Sophia Antipolis : 2004, route des Lucioles - BP 93 - 06902 Sophia Antipolis Cedex (France)

ÉditeurINRIA - Domaine de Voluceau - Rocquencourt, BP 105 - 78153 Le Chesnay Cedex (France)��������� ���� ���������� ��� ���

ISSN 0249-6399


Top Related