+ All Categories
Home > Documents > A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien...

A Binary Recursive Gcd Algorithm · 2021. 1. 15. · A Binary Recursive Gcd Algorithm Damien...

Date post: 24-Jan-2021
Category:
Upload: others
View: 11 times
Download: 0 times
Share this document with a friend
24
HAL Id: inria-00071533 https://hal.inria.fr/inria-00071533 Submitted on 23 May 2006 HAL is a multi-disciplinary open access archive for the deposit and dissemination of sci- entific research documents, whether they are pub- lished or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destinée au dépôt et à la diffusion de documents scientifiques de niveau recherche, publiés ou non, émanant des établissements d’enseignement et de recherche français ou étrangers, des laboratoires publics ou privés. A Binary Recursive Gcd Algorithm Damien Stehlé, Paul Zimmermann To cite this version: Damien Stehlé, Paul Zimmermann. A Binary Recursive Gcd Algorithm. [Research Report] RR-5050, INRIA. 2002. inria-00071533
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


Recommended