grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026ó fkæÞ*E~æãód•SrSSKrSSKrSSKrSSjr\R "5R5r\R\l \R\l \R\lS\R\R 'SrSrSrSrS rS rS rS rS rSrSrSrg!\a SrNžf=f)aþPython implementations of some algorithms for use by longobject.c. The goal is to provide asymptotically faster algorithms that can be used for operations on integers with many digits. In those cases, the performance overhead of the Python implementation is not significant since the asymptotic behavior is what dominates runtime. Functions provided by this module should be considered private and not part of any public API. Note: for ease of maintainability, please prefer clear code and avoid "micro-optimizations". This module will only be imported and used for integers with a huge number of digits. Saving a few microseconds with tricky or non-obvious code is not worth it. For people looking for maximum performance, they should use something like gmpy2.éNcóΕ[5n[5nU1nU(a{UR5nX;dX::aM#URU5 US- nURU5 URU5 US-(aURUS-5 U(aM{0nU(dU$[[ U55n [ U 5n U(a [ SU 5 X-XŠ'U H‚n U S- U;a!U(a [ SU 5 X‹S- U-X‹'M-U S- nX·- n Xx;deU(a [ SU 5 X‡X‡-n XÇ:wa XÇS-:XdeU(a [ S5 XÑ-n XØU 'M„ U$)Nézpow atz * base atz square atz and * base)ÚsetÚpopÚaddÚiterÚsortedÚnextÚprint)ÚwÚbaseÚ more_thanÚshowÚseenÚneedÚwsÚloÚdÚitÚfirstÚthisÚhiÚsqs Ú./opt/alt/python313/lib64/python3.13/_pylong.pyÚcompute_powersr3sQ€Ü ‹5€DÜ ‹5€DØ ˆ€BÞ Ø �F‰F‹HˆØ ‹9˜›Ù Ø �‰�Œ Ø �!‰Vˆà �‰�Œ Ø �‰ˆrŒ Ø ˆq�5Ø �F‰F�2˜‘6ŒN÷ ˆ"ð €AÞ ØˆÜ Œf�T‹lÓ €BÜ �‹H€EÞ Ü ˆh˜Ô؉}€A�HÛˆØ �!‰8�q‹=ÞÜ�k 4Ô(ؘq™‘k DÑ(ˆA‹Gà˜‘ˆBØ‘ˆBØ“7ˆN�7ÞÜ�k 4Ô(𑘙‘ˆBØ‹xØ !™V“|Ð#�|ÞÜÐ*Ô+Ø‘ �؈d‹Gñ'ð( €Hórcó ^^^^•SSKJm SmUUUU4Sjm[R"[5 UR 5n[ UT"S5T5mUS:aSnU*nOSnT"X5nU(aU*nSSS5 U$!,(df  W$=f) z6Asymptotically fast conversion of an 'int' to Decimal.r)ÚDecimaléÈcó|>•UT::aT"U5$US- nX- nUSU-S- -nT"XB5T"X1U- 5TU--$©Nr©) Únr Úw2rrÚBITLIMÚDÚinnerÚw2pows €€€€rr'Úint_to_decimal..innerysVø€Ø �‹;Ù�Q“4ˆKØ �!‰VˆØ ‰WˆØ �1˜‘7˜a‘-Ñ ˆÙ�R‹}™u R¨R©Ó0°5¸±9Ñ<Ñ<ÐÁ> B cóp^^^•UR5nUS:”a[b[[U55$SmUUU4Sjm[ US-S-5n[ UST5mTR 5H up#X2-TU'M US:aU*nSnOS nT"X5nUSS :XaU(aURS 5nXE-$) z?Asymptotically fast conversion of an 'int' to a decimal string.iÐÝiècó˜>•UT::a [U5$US- n[UTU5up4T"X1U- 5T"XB5RU5-$r!)ÚstrÚdivmodÚzfill)r#r r$rrÚDIGLIMr'Úpow10s €€€rr'Ú$int_to_decimal_string..inner�sQø€Ø �‹;Ü�q“6ˆMØ �!‰VˆÜ˜˜5 ™9Ó%‰ˆÙ�R˜R™Ó ¡5¨£=×#6Ñ#6°rÓ#:Ñ:Ð:rgÿyŸPDÓ?rérÚ-ÚÚ0)r.Ú_decimalr5r2ÚintrÚitemsÚlstrip) r#r ÚkÚvÚsignÚsr8r'r9s @@@rÚint_to_decimal_stringrGŽs¾ú€à � ‰ ‹€A؈7ƒ{”xÑ+ô”> !Ó$Ó%Ð%ð€F÷;ô ˆAÐ"Ñ " QÑ &Ó'€AÜ ˜1˜a Ó (€EØ— ‘ – ‰ˆØ‘6ˆˆa‹ñàˆ1ƒuØ ˆBˆØ‰àˆÙ ˆa‹ €A؈�tˆsƒ{–qð �H‰H�S‹MˆØ ‰8€Orcóp^^^^•SmUUUU4Sjm[[T5ST5mT"S[T55$)z6Asymptotically fast conversion of a 'str' to an 'int'.icó~>•X- T::a [TX5$X-S-S- nT"X!5T"X5TX- -X- --$r!)r@)ÚaÚbÚmidr8r'rFÚw5pows €€€€rr'Ú _str_to_int_inner..innerÊsWø€Ø ‰5�F‹?Ü�q˜�v“;Р؉u�q‰y˜QшÙ�c“ Ù˜!“M E¨!©'¡NÑ2Ø™ñ!ñ"ð #rr;r)rÚlen)rFr8r'rMs`@@@rÚ_str_to_int_innerrP»s9û€ð€F÷#ð#ô œ3˜q›6 1 fÓ -€EÙ �”C˜“FÓ ÐrcóX•UR5RSS5n[U5$)zkAsymptotically fast version of PyLong_FromString(), conversion of a string of decimal digits into an 'int'.Ú_r=)ÚrstripÚreplacerP)rFs rÚint_from_stringrUÖs'€ð �‰‹ ×ј3 Ó#€AÜ ˜QÓ Ðrcó¼•[R"SU5nU(d [S5e[UR S55nUR S5S:XaU*nU$)zBAsymptotically fast version of decimal string to 'int' conversion.z\s*([+-]?)([0-9_]+)\s*z&invalid literal for int() with base 10r*rr<)ÚreÚmatchÚ ValueErrorrUÚgroup)rFÚmrDs rÚ str_to_intr\àsR€ô �ŠÐ*¨AÓ.€AÞ ÜÐAÓBÐBܘŸ™ › Ó#€A؇w�wˆqƒz�SÓØ ˆBˆØ €Hri có(•UR5U- [::a [X5$US-nU(aUS-nUS-nUS- nUS- nSU-S- nX- X-pv[X- X- U-XXt5up‰[X�U-XXt5up©U(aU S-n X„-U -U 4$)a2Divide a 2n-bit nonnegative integer a by an n-bit positive integer b, using a recursive divide-and-conquer algorithm. Inputs: n is a positive integer b is a positive integer with exactly n bits a is a nonnegative integer such that a < 2**n * b Output: (q, r) such that a = b*q+r and 0 <= r < b. r)r.Ú _DIV_LIMITr6Ú_div3n2n) rJrKr#ÚpadÚhalf_nÚmaskÚb1Úb2Úq1ÚrÚq2s rÚ_div2n1nrhôs·€ð ‡|�|ƒ~˜ÑœZÓ'Ü�a‹|ÐØ ˆa‰%€CÞ Ø ˆa‰ˆØ ˆa‰ˆØ ˆQ‰ˆØ �!‰V€FØ �‰K˜1Ñ €DØ ‰[˜!™(ˆÜ �Q‘V˜a™k¨TÑ1°1¸"Ó E�E€BÜ �Q˜D™ !¨Ó 4�E€BÞ Ø ˆa‰ˆØ ‰<˜"Ñ ˜aÐ Ðrcóž•X- U:XaSU-S- XU-- U-pvO[XU5upgXu-U-Xd-- nUS:aUS-nXr- nUS:aMXg4$)zAHelper function for _div2n1n; not intended to be called directly.rr)rh)Úa12Úa3rKrcrdr#Úqrfs rr_r_sn€à �x�2ƒ~Ø�Q‘˜!‰|˜S¨!¡G™_¨rÑ1‰1䘠Ó#‰ˆØ ‰�"‰˜™Ñ€AØ ˆa‹%Ø ˆQ‰ˆØ ‰ˆð ˆa�%ð ˆ4€KrcóŠ^^^•S/UR5T-S- T--mUUU4SjmU(aT"US[T55 T$)a2Decompose non-negative int a into base 2**n Input: a is a non-negative integer Output: List of the digits of a in base 2**n in little-endian order, meaning the most significant digit is last. The most significant digit is guaranteed to be non-zero. If a is 0 then the output is an empty list. rrcóz>•US-U:XaUTU'gX-S- nX1- T -nX- nXU-- nT"XaU5 T"XSU5 gr!r") ÚxÚLÚRrLÚshiftÚupperÚlowerÚa_digitsr'r#s €€€rr'Ú_int2digits..inner.sWø€Ø ˆq‰5�A‹:؈H�Q‰KØ Ø‰u˜‰lˆØ‘˜A‘ ˆØ‘ ˆØ˜e‘^Ñ$ˆÙ ˆe˜ÔÙ ˆe˜!Õr)r.rO)rJr#rur's `@@rÚ _int2digitsrwsEú€ðˆs�q—|‘|“~¨Ñ)¨AÑ-°!Ñ3Ñ4€H÷ ö Ù ˆa�”C˜“MÔ"Ø €OrcóN^^^•UUU4SjmT(aT"S[T55$S$)zxCombine base-2**n digits into an int. This function is the inverse of `_int2digits`. For more details, see _int2digits. cód>•US-U:XaTU$X-S- nX - T-nT"X!5U-T"X5-$r!r")rprqrLrrÚdigitsr'r#s €€€rr'Ú_digits2int..innerCsFø€Ø ˆq‰5�A‹:ؘ!‘9Р؉u˜‰lˆØ‘˜A‘ ˆÙ�c“  Ñ&©%°«-Ñ7Ð7rr)rO)rzr#r's``@rÚ _digits2intr|>s"ú€÷ 8ö%+‰5�”C˜“KÓ Ð1°Ð1rcóè•UR5n[X5nSn/n[U5H'n[XB-U-X5uptUR U5 M) UR 5 [ XR5nX„4$)zWDivide a non-negative integer a by a positive integer b, giving quotient and remainder.r)r.rwÚreversedrhÚappendÚreverser|) rJrKr#rurfÚq_digitsÚa_digitÚq_digitrls rÚ _divmod_posr„Msr€ð � ‰ ‹€Aܘ1Ó €Hà €AØ€HܘHÖ%ˆÜ˜q™v¨Ñ0°!Ó7‰ ˆØ�‰˜Ö ñ&ð ×ÑÔÜ�HÓ €AØ ˆ4€Krcóž•US:Xa[eUS:a[U*U*5up#X#*4$US:a[U)U5up#U)X)-4$[X5$)zyAsymptotically fast replacement for divmod, for 'int'. Its time complexity is O(n**1.58), where n = #bits(a) + #bits(b). r)ÚZeroDivisionErrorÚ int_divmodr„)rJrKrlrfs rr‡r‡^se€ð ˆAƒvÜÐØ ˆQ‹Ü˜1˜"˜q˜bÓ!‰ˆØ�"ˆuˆ Ø ˆQ‹Ü˜1˜"˜aÓ ‰ˆØˆr�1�r‘6ˆzÐä˜1Ó Ð r)F)Ú__doc__rWr+r?Ú ImportErrorrÚ getcontextÚcopyr-ÚMAX_PRECÚprecÚMAX_EMAXÚEmaxÚMIN_EMINÚEminÚtrapsÚInexactr2rGrPrUr\r^rhr_rwr|r„r‡r"rrÚr”sÔðñ >ó ÛðÛôB, ð\!×+Ò+Ó-×2Ñ2Ó4ÐØ%×.Ñ.ÐÔØ%×.Ñ.ÐÔØ%×.Ñ.ÐÔØ01Ð×јWŸ_™_Ñ-ò%òN+òZò6 ò  ð"€ ò ò< òò> 2òó" !øðW óØ‚HðúsŒB$Â$B/Â.B/