ó
    „ñ:iG?  ã                   ó  • S r SSKrSSKrSSKrSSKrSSKrSSKJr  SSK	J
r
Jr  SSKJr  SSKJrJrJrJr  SSKJr  SSKJr  SS	KJr  \
" S
5      r\R4                  r\R6                  " \R8                  " S5      5      r\R<                  r\R@                  r!\R6                  " \R8                  " S5      5      r"\"R<                  r#\"R@                  r$Sr%Sr&Sr'Sr(S r)S r*S r+S r,S r-S r.S r/S r0S r1S r2S r3S r4ShS jr5\4" \Rl                  S5        \4" \Rn                  S5      r8\Rr                  S :¼  a  \4" \Rt                  S!5      r;\4" \Rx                  S"5      r=\4" \R|                  S#5      r?\4" \R€                  S$5      rA\4" \R„                  S%5      rC\4" \Rˆ                  S&5      rE\5" \RŒ                  S'S(5      rG\5" \R�                  S)S*5      rI\5" \R”                  S+S,5      rK\5" \R˜                  S-S.5      rM\5" \Rœ                  S/S05      rO\5" \R                   S1S25      rQ\5" \R¤                  S3S45      rS\5" \R¨                  S5S65      rU\5" \R¬                  S7S85      rW\5" \R°                  S9S:5      rY\5" \R´                  S;S<5      r[\5" \R¸                  S=S>5      r]\5" \R¼                  S?S@5      r_\5" \RÀ                  SASB5      ra\5" \R€                  SCSD5      rA\5" \RÄ                  SESFSG5      rc\5" \RÈ                  SHSISG5      re\5" \RÌ                  SJSK5      rg\5" \RÐ                  SLSM5      ri\5" \RÔ                  SNSOSG5      rk\5" \RØ                  SPSQ5      rm\" \RÜ                  \RÞ                  5      SR 5       rp\" \RÜ                  \Râ                  5      SS 5       rr\" \Ræ                  \RÞ                  5      ST 5       rt\" \Ræ                  \Râ                  5      SU 5       ru\" \Rì                  \RÞ                  5      SV 5       rw\" \Rì                  \Râ                  5      SW 5       rx\" \Rò                  \RÞ                  \RÞ                  5      SX 5       rz\" \Rö                  \RÞ                  5      SY 5       r|\" \Rú                  \RÞ                  \Rü                  5      SZ 5       r\" \GR                   \GR                  \GR                  5      S[ 5       r‚\" \GR                   \GR                  \GR                  5      S\ 5       r„\" \GR                   \RÞ                  \RÞ                  5      S] 5       r…\" \GR                  \GR                  \GR                  5      S^ 5       r‡\" \GR                  \GR                  \GR                  5      S_ 5       rˆ\" \GR                  \RÞ                  \RÞ                  5      S` 5       r‰\" \GR                  \RÞ                  5      Sa 5       r‹\3" \GR                  \‹5        \" \GR                  \RÞ                  5      Sb 5       r�\3" \GR                  \�5        \" \GR                  \RÞ                  \RÞ                  5      \" \GR                  \RÞ                  \Râ                  5      Sc 5       5       r�\" \GR                   \RÞ                  \RÞ                  5      Sd 5       r‘Se r’\" \’5      Sf 5       r“Sg r”\" \GR*                  \Râ                  \Râ                  5      " \”5        g)izA
Provide math calls that uses intrinsics or libc math functions.
é    N)ÚConstant)ÚRegistryÚimpl_ret_untracked)Útypeof)ÚtypesÚutilsÚconfigÚcgutils)Úoverload)Ú	signature)Útrailing_zerosÚmathimplÚfloat32Úfloat64iÿÿÿl        l   ÿÿÿÿ l            c                 ó&   • U R                  SX5      $ )z4
Return a condition testing whether *val* is a NaN.
Úuno)Úfcmp_unordered©ÚbuilderÚvals     ÚY/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/cpython/mathimpl.pyÚis_nanr   (   s   € ð ×!Ñ! %¨Ó2Ð2ó    c                 óè   • [        UR                  [        S5      5      n[        UR                  [        S5      5      nU R                  SX5      nU R                  SX5      nU R	                  XE5      $ )z:
Return a condition testing whether *val* is an infinite.
z+infz-infz==)r   ÚtypeÚfloatÚfcmp_orderedÚor_)r   r   Úpos_infÚneg_infÚisposinfÚisneginfs         r   Úis_infr#   .   s_   € ô �s—x‘x¤ v£Ó/€GÜ�s—x‘x¤ v£Ó/€GØ×#Ñ# D¨#Ó7€HØ×#Ñ# D¨#Ó7€HØ�;‰;�xÓ*Ð*r   c                 óH   • U R                  X5      nU R                  SX"5      $ )z7
Return a condition testing whether *val* is a finite.
Úord)Úfsubr   )r   r   Úval_minus_vals      r   Ú	is_finiter(   8   s%   € ð
 —L‘L Ó*€MØ×Ñ  }ÓDÐDr   c                 ó¼   • UR                   [        R                  R                  5       :X  d   eU R	                  U[        R                  R                  S5      5      $ )z)
Bitcast a double into a 64-bit integer.
é@   )r   ÚllvmliteÚirÚ
DoubleTypeÚbitcastÚIntTyper   s     r   Úf64_as_int64r0   @   sC   € ð �8‰8”x—{‘{×-Ñ-Ó/Ó/Ð/Ð/Ø�?‰?˜3¤§¡× 3Ñ 3°BÓ 7Ó8Ð8r   c                 ó¼   • UR                   [        R                  R                  S5      :X  d   eU R	                  U[        R                  R                  5       5      $ )z)
Bitcast a 64-bit integer into a double.
r*   )r   r+   r,   r/   r.   r-   r   s     r   Úint64_as_f64r2   G   sC   € ð �8‰8”x—{‘{×*Ñ*¨2Ó.Ó.Ð.Ð.Ø�?‰?˜3¤§¡× 6Ñ 6Ó 8Ó9Ð9r   c                 ó¼   • UR                   [        R                  R                  5       :X  d   eU R	                  U[        R                  R                  S5      5      $ )z(
Bitcast a float into a 32-bit integer.
é    )r   r+   r,   Ú	FloatTyper.   r/   r   s     r   Úf32_as_int32r6   N   sC   € ð �8‰8”x—{‘{×,Ñ,Ó.Ó.Ð.Ð.Ø�?‰?˜3¤§¡× 3Ñ 3°BÓ 7Ó8Ð8r   c                 ó¼   • UR                   [        R                  R                  S5      :X  d   eU R	                  U[        R                  R                  5       5      $ )z(
Bitcast a 32-bit integer into a float.
r4   )r   r+   r,   r/   r.   r5   r   s     r   Úint32_as_f32r8   U   sC   € ð �8‰8”x—{‘{×*Ñ*¨2Ó.Ó.Ð.Ð.Ø�?‰?˜3¤§¡× 5Ñ 5Ó 7Ó8Ð8r   c                 óN   • U R                  [        UR                  S5      U5      $ )z:
Negate real number *val*, with proper handling of zeros.
g       €)r&   r   r   r   s     r   Únegate_realr:   \   s    € ð
 �<‰<œ §¡¨4Ó0°#Ó6Ð6r   c                 óœ   • U R                   nUR                  X Vs/ s H  oDR                  PM     sn5      nU R                  XR5      $ s  snf )z1
Call a LLVM intrinsic floating-point operation.
)ÚmoduleÚdeclare_intrinsicr   Úcall)r   ÚnameÚargsÚmodÚaÚintrs         r   Úcall_fp_intrinsicrD   c   sD   € ð �.‰.€CØ× Ñ  ¸Ó'=º°1¯¬¹Ñ'=Ó>€DØ�<‰<˜Ó#Ð#ùò (>s   œA	
c                 ó   ^ • U 4S jnU$ )z€
Return an implementation factory to convert the single integral input
argument to a float64, then defer to the *wrapped_impl*.
c                 ó&  >• Uu  nUR                   S   nU R                  XU[        R                  5      n[	        [        R                  [        R                  5      nT	" XXv45      nU R                  X[        R                  UR
                  5      $ )Nr   )r@   Úcastr   r   r   Úreturn_type)
Úcontextr   Úsigr@   r   Ú
input_typeÚfpvalÚ	inner_sigÚresÚwrapped_impls
            €r   ÚimplementerÚ2_unary_int_input_wrapper_impl.<locals>.implementerq   sj   ø€ Ø‰ˆØ—X‘X˜a‘[ˆ
Ø—‘˜W¨:´u·}±}ÓEˆÜœeŸm™m¬U¯]©]Ó;ˆ	Ù˜7¨Y¸ÓAˆØ�|‰|˜G¬%¯-©-¸¿¹ÓIÐIr   © )rO   rP   s   ` r   Ú_unary_int_input_wrapper_implrS   l   s   ø€ õ
Jð Ðr   c                 óZ   • [        U5      n[        U [        R                  5      " U5        g ©N)rS   Úlowerr   ÚInteger)ÚfnÚ
float_implÚimpls      r   Úunary_math_int_implr[   {   s   € Ü(¨Ó4€DÜ	ˆ"Œe�m‰mÔ˜TÕ"r   c                 ód   ^• [        U [        R                  5      U4S j5       n[        X5        U$ )zG
Implement the math function *fn* using the LLVM intrinsic *intrcode*.
c                 óL   >• [        UTU5      n[        XUR                  U5      $ rU   )rD   r   rH   )rI   r   rJ   r@   rN   Úintrcodes        €r   rY   Ú#unary_math_intr.<locals>.float_implƒ   s$   ø€ ä ¨°4Ó8ˆÜ! '°C·O±OÀSÓIÐIr   )rV   r   ÚFloatr[   )rX   r^   rY   s    ` r   Úunary_math_intrra      s4   ø€ ô ˆ2Œu�{‰{ÓôJó ðJô ˜Ô'ØÐr   c                 ó    ^^• U(       a  [         R                  OSnUU4S jn[        U [         R                  5      " U5        [	        X5        U$ )a	  
Register implementations of Python function *fn* using the
external function named *f32extern* and *f64extern* (for float32
and float64 inputs, respectively).
If *int_restype* is true, then the function's return value should be
integral, otherwise floating-point.
Nc                 ó¶  >• Uu  nUR                   nUR                  S   nU R                  U5      n[        R                  T[        R
                  T0U   n[        R                  R                  Xw/5      n	[        R                  " UR                   X˜S9n
UR                  X¤45      nU R                  XXbR                  5      n[        XUR                  U5      $ )z)
Implement *fn* for a types.Float input.
r   ©r?   )r<   r@   Úget_value_typer   r   r   r+   r,   ÚFunctionTyper
   Úinsert_pure_functionr>   rG   rH   r   )rI   r   rJ   r@   r   rA   rK   ÚltyÚ	func_nameÚfntyrX   rN   Ú	f32externÚ	f64externs               €€r   rY   Ú%unary_math_extern.<locals>.float_impl•   sº   ø€ ð ‰ˆØ�n‰nˆØ—X‘X˜a‘[ˆ
Ø×$Ñ$ ZÓ0ˆä�M‰M˜9Ü�M‰M˜9ðð ñˆ	ô �{‰{×'Ñ'¨¨UÓ3ˆÜ×)Ò)¨'¯.©.¸$ÑOˆØ�l‰l˜2˜vÓ&ˆØ�l‰l˜7¨·_±_ÓEˆÜ! '°C·O±OÀSÓIÐIr   )r   Úint64rV   r`   r[   )rX   rk   rl   Úint_restypeÚ	f_restyperY   s    ``   r   Úunary_math_externrq   ‹   s=   ù€ ö  +”—’°€IöJô$ 
ˆ"Œe�k‰kÔ˜:Ô&ô ˜Ô'àÐr   z	llvm.fabszllvm.exp)é   é   z	llvm.exp2zllvm.logz
llvm.log10z	llvm.log2zllvm.sinzllvm.cosÚlog1pfÚlog1pÚexpm1fÚexpm1ÚerffÚerfÚerfcfÚerfcÚtanfÚtanÚasinfÚasinÚacosfÚacosÚatanfÚatanÚasinhfÚasinhÚacoshfÚacoshÚatanhfÚatanhÚsinhfÚsinhÚcoshfÚcoshÚtanhfÚtanhÚlog2fÚlog2ÚceilfÚceilTÚfloorfÚfloorÚnumba_gammafÚnumba_gammaÚsqrtfÚsqrtÚtruncfÚtruncÚlgammafÚlgammac                 óN   • Uu  n[        X5      n[        XUR                  U5      $ rU   )r   r   rH   ©rI   r   rJ   r@   r   rN   s         r   Úisnan_float_implr    Ô   ó&   € à�E€SÜ
�Ó
€CÜ˜g°·±ÀÓEÐEr   c                 óP   • [         R                  n[        XUR                  U5      $ rU   ©r
   Ú	false_bitr   rH   ©rI   r   rJ   r@   rN   s        r   Úisnan_int_implr¦   Ú   ó    € ä
×
Ñ
€CÜ˜g°·±ÀÓEÐEr   c                 óN   • Uu  n[        X5      n[        XUR                  U5      $ rU   )r#   r   rH   rŸ   s         r   Úisinf_float_implr©   à   r¡   r   c                 óP   • [         R                  n[        XUR                  U5      $ rU   r£   r¥   s        r   Úisinf_int_implr«   æ   r§   r   c                 óN   • Uu  n[        X5      n[        XUR                  U5      $ rU   )r(   r   rH   rŸ   s         r   Úisfinite_float_implr­   ì   s&   € à�E€SÜ
�GÓ
!€CÜ˜g°·±ÀÓEÐEr   c                 óP   • [         R                  n[        XUR                  U5      $ rU   )r
   Útrue_bitr   rH   r¥   s        r   Úisfinite_int_implr°   ó   s    € ä
×
Ñ
€CÜ˜g°·±ÀÓEÐEr   c                 ó  • US   R                   nUR                  n[        R                  " U[        R
                  R                  XDU45      SUR                  -  5      nUR                  Xc5      n[        XUR                  U5      $ )Nr   zllvm.copysign.%s)r   r<   r
   Úget_or_insert_functionr+   r,   rf   Úintrinsic_namer>   r   rH   )rI   r   rJ   r@   rh   rA   rX   rN   s           r   Úcopysign_float_implr´   ù   sp   € à
ˆq‰'�,‰,€CØ
�.‰.€CÜ	×	'Ò	'¨¬X¯[©[×-EÑ-EÀcÐQTÈ:Ó-VØ(:¸S×=OÑ=OÑ(Oó
Q€Bà
�,‰,�rÓ
 €CÜ˜g°·±ÀÓEÐEr   c                 ó.  • Uu  nU R                  UR                  S   5      nU R                  UR                  S   5      n[        R                  " XSS9n[
        R                  R                  XU[
        R                  R                  U5      45      nSSS.[        U5         n	[        R                  " UR                  X‰5      n
UR                  X¤U45      n[        R                  " XUR                  U5      45      n[        XUR                  U5      $ )Nr   é   Úexprd   Únumba_frexpfÚnumba_frexp©r   Údouble)Úget_data_typer@   rH   r
   Úalloca_oncer+   r,   rf   ÚPointerTypeÚstrr²   r<   r>   Úmake_anonymous_structÚloadr   )rI   r   rJ   r@   r   ÚflttyÚinttyÚexpptrrj   ÚfnamerX   rN   s               r   Ú
frexp_implrÆ     sê   € à�D€CØ×!Ñ! #§(¡(¨1¡+Ó.€EØ×!Ñ! #§/¡/°!Ñ"4Ó5€EÜ× Ò  °eÑ<€FÜ�;‰;×#Ñ# E´8·;±;×3JÑ3JÈ5Ó3QÐ+RÓS€DàØñ
ô ˆe‹*ñ€Eô 
×	'Ò	'¨¯©¸Ó	D€BØ
�,‰,�r ˜=Ó
)€CÜ
×
'Ò
'¨°w·|±|ÀFÓ7KÐ1LÓ
M€CÜ˜g°·±ÀÓEÐEr   c                 óD  • Uu  pE[        U R                  UR                  5      u  pg[        R                  R                  XfU45      nSSS.[        U5         n	[        R                  " UR                  X‰S9n
UR                  X¤U45      n[        XUR                  U5      $ )NÚnumba_ldexpfÚnumba_ldexprº   rd   )Úmapr¼   r@   r+   r,   rf   r¿   r
   rg   r<   r>   r   rH   )rI   r   rJ   r@   r   r·   rÂ   rÃ   rj   rÅ   rX   rN   s               r   Ú
ldexp_implrË     s‘   € à�H€CÜ�w×,Ñ,¨c¯h©hÓ7�L€EÜ�;‰;×#Ñ# E°5¨>Ó:€DàØñ
ô ˆe‹*ñ€Eô 
×	%Ò	% g§n¡n°dÑ	G€BØ
�,‰,�r ˜:Ó
&€CÜ˜g°·±ÀÓEÐEr   c                 óL  • Uu  pEUR                  U[        R                  R                  5       5      nUR                  U[        R                  R                  5       5      n[	        [
        R                  [
        R                  [
        R                  5      n[        XXdU45      $ rU   )Úsitofpr+   r,   r-   r   r   r   Úatan2_float_impl©rI   r   rJ   r@   ÚyÚxÚfsigs          r   Úatan2_s64_implrÓ   (  ón   € à�F€QØ�‰�qœ(Ÿ+™+×0Ñ0Ó2Ó3€AØ�‰�qœ(Ÿ+™+×0Ñ0Ó2Ó3€AÜ”U—]‘]¤E§M¡M´5·=±=ÓA€DÜ˜G¨d¸°FÓ;Ð;r   c                 óL  • Uu  pEUR                  U[        R                  R                  5       5      nUR                  U[        R                  R                  5       5      n[	        [
        R                  [
        R                  [
        R                  5      n[        XXdU45      $ rU   )Úuitofpr+   r,   r-   r   r   r   rÎ   rÏ   s          r   Úatan2_u64_implr×   0  rÔ   r   c                 ó–  • [        U5      S:X  d   eUR                  nUR                  S   nU R                  U5      n[        R
                  S[        R                  S0U   n[        R                  R                  XfU45      n[        R                  " UR                  X‡S9n	UR                  X“5      n
[        XUR                  U
5      $ )Né   r   Úatan2fÚatan2rd   )Úlenr<   r@   re   r   r   r   r+   r,   rf   r
   rg   r>   r   rH   )rI   r   rJ   r@   rA   Útyrh   ri   rj   rX   rN   s              r   rÎ   rÎ   8  s¬   € äˆt‹9˜‹>Ðˆ>Ø
�.‰.€CØ	�‰�!‰€BØ
×
 Ñ
  Ó
$€Cä�‰�xÜ�‰�wð
ð ñ€Iô �;‰;×#Ñ# C¨s¨Ó4€DÜ	×	%Ò	% g§n¡n°dÑ	K€BØ
�,‰,�rÓ
 €CÜ˜g°·±ÀÓEÐEr   c                 óz  • Uu  pEUR                  U[        R                  R                  5       5      nUR                  U[        R                  R                  5       5      n[	        [
        R                  [
        R                  [
        R                  5      n[        XXdU45      n[        XUR                  U5      $ rU   ©
rÍ   r+   r,   r-   r   r   r   Úhypot_float_implr   rH   ©rI   r   rJ   r@   rÑ   rÐ   rÒ   rN   s           r   Úhypot_s64_implrâ   K  ó€   € à�F€QØ�‰�qœ(Ÿ+™+×0Ñ0Ó2Ó3€AØ�‰�qœ(Ÿ+™+×0Ñ0Ó2Ó3€AÜ”U—]‘]¤E§M¡M´5·=±=ÓA€DÜ
˜7¨T°q°6Ó
:€CÜ˜g°·±ÀÓEÐEr   c                 óz  • Uu  pEUR                  U[        R                  R                  5       5      nUR                  U[        R                  R                  5       5      n[	        [
        R                  [
        R                  [
        R                  5      n[        XXdU45      n[        XUR                  U5      $ rU   rß   rá   s           r   Úhypot_u64_implrå   U  rã   r   c                 ó  ^^• UR                   u  pEXEs=:X  a  UR                  :X  d   e   eUu  pg[        R                  [        R
                  S:X  a  SOS[        R                  [        R
                  S:X  a  SOS0U   n[        R                  " X‚5      m[        R
                  S:X  a-  [        R                  S:X  a  U" [        S5      5      mUU4S jn	OU4S	 jn	U R                  XX#5      n
[        XUR                  U
5      $ )
NÚwin32Ú_hypotfÚhypotfÚ_hypotÚhypotr4   Úinfc                 ó„   >• [         R                  " U 5      (       d  [         R                  " U5      (       a  T$ T" X5      $ rU   )ÚmathÚisinf)rÑ   rÐ   rì   Ú
plat_hypots     €€r   Ú
hypot_implÚ$hypot_float_impl.<locals>.hypot_implp  s,   ø€ Ü�zŠz˜!�}‰}¤§
¢
¨1§¡Ø�
Ù˜aÓ#Ð#r   c                 ó   >• T" X5      $ rU   rR   )rÑ   rÐ   rð   s     €r   rñ   rò   u  s   ø€ Ù˜aÓ#Ð#r   )r@   rH   r   r   ÚsysÚplatformr   ÚExternalFunctionr	   ÚMACHINE_BITSr   Úcompile_internalr   )rI   r   rJ   r@   ÚxtyÚytyrÑ   rÐ   rÅ   rñ   rN   rì   rð   s              @@r   rà   rà   _  sÙ   ù€ à�x‰x�H€CØÕ(˜Ÿ™Ó(Ð(Ñ(Ð(Ð(Ø�D€Aô
 	�‰¤C§L¡L°GÓ$;‘yÀÜ�‰¤3§<¡<°7Ó#:‘xÀðð 
ñ€Eô ×'Ò'¨Ó3€Jä
‡|�|�wÓ¤6×#6Ñ#6¸"Ó#<Ù”%˜“,Óˆ÷	$õ
	$ð ×
"Ñ
" 7¸Ó
B€CÜ˜g°·±ÀÓEÐEr   c                 ó´   • Uu  nU R                  UR                  [        R                  S-  5      nUR	                  XE5      n[        XUR                  U5      $ ©Né´   ©Úget_constantrH   rî   ÚpiÚfmulr   ©rI   r   rJ   r@   rÑ   ÚcoefrN   s          r   Úradians_float_implr  ~  sH   € à
�C€QØ×Ñ §¡´·±¸3±Ó?€DØ
�,‰,�qÓ
€CÜ˜g°·±ÀÓEÐEr   c                 ó´   • Uu  nU R                  UR                  S[        R                  -  5      nUR	                  XE5      n[        XUR                  U5      $ rü   rþ   r  s          r   Údegrees_float_implr  ‰  sH   € à
�C€QØ×Ñ §¡°´t·w±w±Ó?€DØ
�,‰,�qÓ
€CÜ˜g°·±ÀÓEÐEr   c                 óR   • U R                  [        R                  U5      nU" X5      $ rU   )Úget_functionÚoperatorÚpow)rI   r   rJ   r@   rZ   s        r   Úpow_implr  ”  s%   € ð ×Ñ¤§¡¨cÓ2€DÙ�ÓÐr   c                 ó~  • [        U5      S:X  d   eUR                  S   nU R                  U5      n[        R                  S[        R
                  S0U   n[        R                  R                  XUU45      n[        R                  " UR                  XvS9nUR                  Xƒ5      n	[        XUR                  U	5      $ )NrÙ   r   Ú
nextafterfÚ	nextafterrd   )rÜ   r@   re   r   r   r   r+   r,   rf   r
   rg   r<   r>   r   rH   )
rI   r   rJ   r@   rÝ   rh   ri   rj   rX   rN   s
             r   Únextafter_implr  œ  s£   € äˆt‹9˜‹>Ðˆ>Ø	�‰�!‰€BØ
×
 Ñ
  Ó
$€Cä�‰�|Ü�‰�{ð
ð ñ€Iô �;‰;×#Ñ# C¨s¨Ó4€DÜ	×	%Ò	% g§n¡n°dÑ	K€BØ
�,‰,�rÓ
 €CÜ˜g°·±ÀÓEÐEr   c                 ó   • g)z8Convert integer to unsigned integer of equivalent width.NrR   ©ÚTs    r   Ú	_unsignedr  ¬  s   € àr   c                 óº   ^• U [         R                  ;   a  S $ U [         R                  ;   a/  [        [         SR	                  U R
                  5      5      mU4S j$ g )Nc                 ó   • U $ rU   rR   r  s    r   Ú<lambda>Ú _unsigned_impl.<locals>.<lambda>³  s   € ™r   zuint{}c                 ó   >• T" U 5      $ rU   rR   ©r  ÚnewTs    €r   r  r  ¶  s	   ø€ ™˜aœr   )r   Úunsigned_domainÚsigned_domainÚgetattrÚformatÚbitwidthr  s    @r   Ú_unsigned_implr   °  sI   ø€ àŒE×!Ñ!Ó!ÙÐØ	
Œe×!Ñ!Ó	!Ü”u˜hŸo™o¨a¯j©jÓ9Ó:ˆÜ Ð ð 
"r   c                 ó´   • UR                   u  pEXEs=:X  a  UR                  :X  d   e   eUu  pgS nU R                  XX#5      n	[        XUR                  U	5      $ )Nc                 óê  • [        U 5      nU S:X  a  [        U5      $ US:X  a  [        U 5      $ [        U 5      n[        U5      n[        X45      n[	        [        [
        R                  " X5      5      5      n[	        [        [
        R                  " X5      5      5      nXg:w  a2  Xg:”  a  XvpvXv-  n[
        R                  " U[        U5      5      nXg:w  a  M2  [
        R                  " U" U5      U5      nU$ )z?
Stein's algorithm, heavily cribbed from Julia implementation.
r   )r   Úabsr   Úminr  ÚnpÚright_shiftÚ
left_shift)	rB   Úbr  ÚzaÚzbÚkÚuÚvÚrs	            r   ÚgcdÚgcd_impl.<locals>.gcd¾  sÅ   € ô �‹GˆØ�‹6œ#˜a›&�=Ø�‹6œ#˜a›&�=Ü˜AÓˆÜ˜AÓˆÜ�‹Kˆä”cœ"Ÿ.š.¨Ó/Ó0Ó1ˆÜ”cœ"Ÿ.š.¨Ó/Ó0Ó1ˆØ‹fØ‹uØ�1Ø‰FˆAÜ—’˜q¤.°Ó"3Ó4ˆAð	 �fô
 �MŠM™!˜A›$ Ó"ˆØˆr   )r@   rH   rø   r   )
rI   r   rJ   r@   rù   rú   rÑ   rÐ   r/  rN   s
             r   Úgcd_implr1  ¹  s[   € Ø�x‰x�H€CØÕ(˜Ÿ™Ó(Ð(Ñ(Ð(Ð(Ø�D€Aòð* ×
"Ñ
" 7°Ó
;€CÜ˜g°·±ÀÓEÐEr   )F)–Ú__doc__rî   r	  rô   Únumpyr%  Úllvmlite.irr+   r   Únumba.core.imputilsr   r   Únumbar   Ú
numba.corer   r   r	   r
   Únumba.core.extendingr   Únumba.core.typingr   Únumba.cpython.unsafe.numbersr   ÚregistryrV   ÚfinfoÚdtypeÚ_NP_FLT_FINFOÚmaxÚFLT_MAXÚtinyÚFLT_MINÚ_NP_DBL_FINFOÚDBL_MAXÚDBL_MINÚFLOAT_ABS_MASKÚFLOAT_SIGN_MASKÚDOUBLE_ABS_MASKÚDOUBLE_SIGN_MASKr   r#   r(   r0   r2   r6   r8   r:   rD   rS   r[   ra   rq   Úfabsr·   Úexp_implÚversion_infoÚexp2Ú	exp2_implÚlogÚlog_implÚlog10Ú
log10_implr‘   Ú	log2_implÚsinÚsin_implÚcosÚcos_implru   Ú
log1p_implrw   Ú
expm1_implry   Úerf_implr{   Ú	erfc_implr}   Útan_implr   Ú	asin_implr�   Ú	acos_implrƒ   Ú	atan_implr…   Ú
asinh_implr‡   Ú
acosh_implr‰   Ú
atanh_implr‹   Ú	sinh_implr�   Ú	cosh_implr�   Ú	tanh_implr“   Ú	ceil_implr•   Ú
floor_implÚgammaÚ
gamma_implr™   Ú	sqrt_implr›   Ú
trunc_implr�   Úlgamma_implÚisnanr`   r    rW   r¦   rï   r©   r«   Úisfiniter­   r°   Úcopysignr´   ÚfrexprÆ   ÚldexpÚintcrË   rÛ   rn   rÓ   Úuint64r×   rÎ   rë   râ   rå   rà   Úradiansr  Údegreesr  r
  r  r  r  r  r   r1  r/  rR   r   r   Ú<module>rv     s�  ðñó Û Û 
Û ã Ý  ç <Ý ß 4Ó 4Ý )Ý 'Ý 7ñ �JÓ€Ø�‰€ð —’˜Ÿš )Ó,Ó-€Ø
×
Ñ
€Ø
×
Ñ
€à—’˜Ÿš )Ó,Ó-€Ø
×
Ñ
€Ø
×
Ñ
€à€Ø€Ø$€Ø%Ð ò3ò+òEò9ò:ò9ò9ò7ò$òò#ò
ô!ñH �—	‘	˜;Ô 'Ù˜4Ÿ8™8 ZÓ0€Ø×Ñ�wÓÙ §	¡	¨;Ó7€IÙ˜4Ÿ8™8 ZÓ0€Ù˜TŸZ™Z¨Ó6€
Ù˜DŸI™I {Ó3€	Ù˜4Ÿ8™8 ZÓ0€Ù˜4Ÿ8™8 ZÓ0€á˜tŸz™z¨8°WÓ=€
Ù˜tŸz™z¨8°WÓ=€
Ù˜TŸX™X v¨uÓ5€Ù˜dŸi™i¨°&Ó9€	á˜TŸX™X v¨uÓ5€Ù˜dŸi™i¨°&Ó9€	Ù˜dŸi™i¨°&Ó9€	Ù˜dŸi™i¨°&Ó9€	á˜tŸz™z¨8°WÓ=€
Ù˜tŸz™z¨8°WÓ=€
Ù˜tŸz™z¨8°WÓ=€
Ù˜dŸi™i¨°&Ó9€	Ù˜dŸi™i¨°&Ó9€	Ù˜dŸi™i¨°&Ó9€	á˜dŸi™i¨°&Ó9€	Ù˜dŸi™i¨°&¸$Ó?€	Ù˜tŸz™z¨8°W¸dÓC€
á˜tŸz™z¨>¸=ÓI€
Ù˜dŸi™i¨°&Ó9€	Ù˜tŸz™z¨8°W¸dÓC€
Ù §¡¨Y¸ÓA€ñ €t‡z�z�5—;‘;ÓñFó  ðFñ
 €t‡z�z�5—=‘=Ó!ñFó "ðFñ
 €t‡z�z�5—;‘;ÓñFó  ðFñ
 €t‡z�z�5—=‘=Ó!ñFó "ðFñ
 €t‡}�}�e—k‘kÓ"ñFó #ðFñ €t‡}�}�e—m‘mÓ$ñFó %ðFñ
 €t‡}�}�e—k‘k 5§;¡;Ó/ñFó 0ðFñ €t‡z�z�5—;‘;ÓñFó  ðFñ  €t‡z�z�5—;‘; §
¡
Ó+ñ
Fó ,ð
Fñ  €t‡z‚z�5—;’; §¢Ó,ñ<ó -ð<ñ €t‡z‚z�5—<’< §¢Ó.ñ<ó /ð<ñ €t‡z‚z�5—;‘; §¡Ó,ñFó -ðFñ$ €t‡z‚z�5—;’; §¢Ó,ñFó -ðFñ €t‡z‚z�5—<’< §¢Ó.ñFó /ðFñ €t‡z‚z�5—;‘; §¡Ó,ñFó -ðFñ< €t‡|‚|�U—[‘[Ó!ñFó "ðFñ �D—L’LÐ"4Ô 5ñ €t‡|‚|�U—[‘[Ó!ñFó "ðFñ �D—L’LÐ"4Ô 5ñ €t‡x‚x�—‘˜eŸk™kÓ*Ù€t‡x‚x�—‘˜eŸm™mÓ,ñó -ó +ðñ €t‡~‚~�u—{‘{ E§K¡KÓ0ñFó 1ðFò	ñ 
ˆ)Óñ!ó ð!òFñ< €d‡h‚h�—‘˜uŸ}™}Ô -¨hÕ 7r   