Ë
    èÿæidÄ  ã                   óº  — d dl Z d dlZd dlZd dlmZ d dlmZ d dlm	Z	 d dl
mZmZmZmZ d dlmZ d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#d„ Z$d„ Z%d„ Z&d„ Z'd„ Z(d„ Z)d „ Z*d!„ Z+d"„ Z,d#„ Z-d$„ Z.d%„ Z/d&„ Z0d'„ Z1d(„ Z2d)„ Z3d*„ Z4d+„ Z5d,„ Z6d-„ Z7d.„ Z8d/„ Z9d0„ Z:d1„ Z;d2„ Z<d3„ Z=d4„ Z>dhd5„Z?dhd6„Z@dhd7„ZAd8„ ZBd9„ ZCd:„ ZDd;„ ZEd<„ ZFd=„ ZGd>„ ZHd?„ ZId@„ ZJdA„ ZKdB„ ZLdC„ ZMdD„ ZNdE„ ZOdF„ ZPdG„ ZQdH„ ZRdI„ ZSdJ„ ZTdK„ ZUdL„ ZV eWdM«      ZXdN„ ZYdO„ ZZdP„ Z[dQ„ Z\dR„ Z]dS„ Z^dT„ Z_dU„ Z`dV„ ZadW„ ZbdX„ ZcdY„ ZddZ„ Zed[„ Zfd\„ Zgd]„ Zhd^„ Zid_„ Zjd`„ Zkda„ Zldb„ Zmdc„ Zndd„ Zode„ Zpdf„ Zqdg„ Zry)ié    N)Úir)ÚConstant©Úimpl_ret_untracked)ÚtypingÚtypesÚerrorsÚcgutils©Úviewerc                 ó$   — | j                   rdgS g S )z;
    Return the modifier flags for integer arithmetic.
    Únsw)Úsigned)Úrettypes    új/Volumes/fast/ai/experiments/voice-extract-mac/.venv/lib/python3.12/site-packages/numba/np/math/numbers.pyÚ_int_arith_flagsr      s   € ð ‡~‚~ð ˆwˆàˆ	ó    c                 ó   — |\  }}|j                   \  }}| j                  ||||j                  «      }| j                  ||||j                  «      }	|j                  ||	t	        |j                  «      ¬«      }
t        | ||j                  |
«      S ©N)Úflags)ÚargsÚcastÚreturn_typeÚaddr   r   ©ÚcontextÚbuilderÚsigr   ÚvaÚvbÚtaÚtbÚaÚbÚress              r   Úint_add_implr&      ó{   € Ø�H€RˆØ�x‰x�H€RˆØ�‰�W˜b " c§o¡oÓ6€AØ�‰�W˜b " c§o¡oÓ6€AØ
�+‰+�a˜Ô"2°3·?±?Ó"Cˆ+Ó
D€CÜ˜g w°·±ÀÓEÐEr   c                 ó   — |\  }}|j                   \  }}| j                  ||||j                  «      }| j                  ||||j                  «      }	|j                  ||	t	        |j                  «      ¬«      }
t        | ||j                  |
«      S r   )r   r   r   Úsubr   r   r   s              r   Úint_sub_implr*   '   r'   r   c                 ó   — |\  }}|j                   \  }}| j                  ||||j                  «      }| j                  ||||j                  «      }	|j                  ||	t	        |j                  «      ¬«      }
t        | ||j                  |
«      S r   )r   r   r   Úmulr   r   r   s              r   Úint_mul_implr-   0   r'   r   c           
      ó”  — |j                   |j                   k(  sJ ‚|j                  d«      }|j                  d«      }t        j                  ||«      }t        j                  ||«      }|j                  |j	                  d||j                  |j
                  «      «      |j	                  d||j                  d«      «      «      }	|j                  |j                  |	«      d¬«      5  |j                  ||«      }
|j                  ||«      }|j	                  d|j                  ||«      |«      }|j	                  d||«      }|j                  ||«      }|j                  |«      5 \  }}|5  |j                  |
|«       |j                  ||«       d	d	d	«       |5  |j                  |j                  |
|«      |«       |j                  |j                  ||«      |«       d	d	d	«       d	d	d	«       d	d	d	«       |j                  |«      |j                  |«      fS # 1 sw Y   ŒŠxY w# 1 sw Y   ŒGxY w# 1 sw Y   ŒKxY w# 1 sw Y   ŒOxY w)
a@  
    Reference Objects/intobject.c
    xdivy = x / y;
    xmody = (long)(x - (unsigned long)xdivy * y);
    /* If the signs of x and y differ, and the remainder is non-0,
     * C89 doesn't define whether xdivy is now the floor or the
     * ceiling of the infinitely precise quotient.  We want the floor,
     * and we have it iff the remainder's sign matches y's.
     */
    if (xmody && ((y ^ xmody) < 0) /* i.e. and signs differ */) {
        xmody += y;
        --xdivy;
        assert(xmody && ((y ^ xmody) >= 0));
    }
    *p_xdivy = xdivy;
    *p_xmody = xmody;
    r   é   ú==éÿÿÿÿT©ÚlikelyÚ<ú!=N)Útyper
   Úalloca_once_valueÚand_Úicmp_signedÚminvalÚif_thenÚnot_ÚsdivÚsremÚxorÚif_elseÚstorer)   r   Úload)r   r   ÚtyÚxÚyÚZEROÚONEÚresdivÚresmodÚis_overflowÚxdivyÚxmodyÚy_xor_xmody_ltzÚxmody_istrueÚcondÚif_different_signsÚif_same_signss                    r   Úint_divmod_signedrR   9   sã  € ð$ �6‰6�Q—V‘VÒÐÐà�6‰6�!‹9€DØ
�&‰&�‹)€Cô ×&Ñ& w°Ó5€FÜ×&Ñ& w°Ó5€Fà—,‘,Ø×Ñ˜D ! Q§V¡V¨B¯I©IÓ%6Ó7Ø×Ñ˜D ! Q§V¡V¨B£ZÓ0ó2€Kð 
�‰˜Ÿ™ kÓ2¸4ˆÕ	@ð —‘˜Q Ó"ˆØ—‘˜Q Ó"ˆà!×-Ñ-¨c°7·;±;¸qÀ%Ó3HÈ$ÓOˆØ×*Ñ*¨4°¸Ó=ˆØ�|‰|˜L¨/Ó:ˆà�_‰_˜TÔ"Ñ&IÐ'9¸=ÚØ—‘˜e VÔ,Ø—‘˜e VÔ,÷ ò $Ø—‘˜gŸk™k¨%°Ó5°vÔ>Ø—‘˜gŸk™k¨%°Ó3°VÔ<÷ $÷ #÷ 
Að& �<‰<˜Ó §¡¨fÓ!5Ð5Ð5÷ �ú÷ $Ð#ú÷ #Ð"ú÷ 
AÐ	@úsV   Ã(A>H>Å&H2Å,%HÆ
H2ÆAH&Ç H2Ç(H>ÈH#ÈH2È&H/È+H2È2H;	È7H>È>Ic                 ó€   — |j                   rt        | ||||«      S |j                  ||«      |j                  ||«      fS )zD
    Integer divmod(x, y).  The caller must ensure that y != 0.
    )r   rR   ÚudivÚurem)r   r   rC   rD   rE   s        r   Ú
int_divmodrV   r   s?   € ð 
‡y‚yÜ  ¨'°2°q¸!Ó<Ð<à�|‰|˜A˜qÓ! 7§<¡<°°1Ó#5Ð5Ð5r   c           	      ó<  — |\  }}|j                   \  }}|j                  }	t        |	t        j                  «      r|	j
                  }	| j                  ||||	«      }
| j                  ||||	«      }t        j                  ||
j                  d¬«      }t        j                  ||
j                  d¬«      }|j                  t        j                  ||«      d¬«      5 \  }}|5  | j                  j                  ||f«      s$|j                  ||«       |j                  ||«       d d d «       |5  t        | ||	|
|«      \  }}|j                  ||«       |j                  ||«       d d d «       d d d «       ||fS # 1 sw Y   ŒVxY w# 1 sw Y   Œ!xY w# 1 sw Y   ||fS xY w)NÚquot©ÚnameÚremFr2   )r   r   Ú
isinstancer   ÚUniTupleÚdtyper   r
   Úalloca_oncer6   r@   Úis_scalar_zeroÚerror_modelÚfp_zero_divisionrA   rV   )r   r   r   r   Úzerodiv_messager   r    r!   r"   rC   r#   r$   rX   r[   Úif_zeroÚif_non_zeroÚqÚrs                     r   Ú_int_divmod_implrh   |   sg  € Ø�F€BˆØ�X‰X�F€Bˆà	�‰€BÜ�"”e—n‘nÔ%Ø�X‰XˆØ�‰�W˜b " bÓ)€AØ�‰�W˜b " bÓ)€AÜ×Ñ˜w¨¯©°VÔ<€DÜ
×
Ñ
˜g q§v¡v°EÔ
:€Cà	�‰œ×/Ñ/°¸Ó;ÀEˆô 
Ù4˜w¨ÚØ×&Ñ&×7Ñ7Ø˜/Ð+ô-ð
 —‘˜a Ô&Ø—‘˜a Ô%÷ ò Ü˜g w°°A°qÓ9‰DˆAˆqØ�M‰M˜!˜TÔ"Ø�M‰M˜!˜SÔ!÷ ÷
ð �ˆ9Ð÷ ˆWú÷ ˆ[ú÷
ð �ˆ9Ðús=   ÃFÃ AE7Ä"
FÄ,7FÅ#FÅ7F 	Å<FÆF	ÆFÆFc                 ó’   — t        | |||d«      \  }}t        j                  ||j                  |«      |j                  |«      f«      S )Nzinteger divmod by zero)rh   r
   Ú
pack_arrayrB   ©r   r   r   r   rX   r[   s         r   Úint_divmod_implrl   ›   sN   € Ü  ¨'°3¸Ø!9ó;�I€Dˆ#ô ×Ñ˜gØ&Ÿ|™|¨DÓ1°7·<±<ÀÓ3DÐEóGð Gr   c                 óH   — t        | |||d«      \  }}|j                  |«      S )Nzinteger division by zero©rh   rB   rk   s         r   Úint_floordiv_implro   ¥   s*   € Ü  ¨'°3¸Ø!;ó=�I€Dˆ#à�<‰<˜ÓÐr   c                 ó„  — |\  }}|j                   \  }}| j                  ||||j                  «      }| j                  ||||j                  «      }	t        j                  ||	«      5  | j
                  j                  |d«       d d d «       |j                  ||	«      }
t        | ||j                  |
«      S # 1 sw Y   Œ3xY w)N©zdivision by zero)	r   r   r   r
   rd   ra   rb   Úfdivr   r   s              r   Úint_truediv_implrs   ­   s    € Ø�H€RˆØ�x‰x�H€RˆØ�‰�W˜b " c§o¡oÓ6€AØ�‰�W˜b " c§o¡oÓ6€AÜ	�‰˜ !Õ	$Ø×Ñ×,Ñ,¨WÐ6KÔL÷ 
%à
�,‰,�q˜!Ó
€CÜ˜g w°·±ÀÓEÐE÷ 
%Ð	$ús   Á'B6Â6B?c                 óH   — t        | |||d«      \  }}|j                  |«      S )Nzinteger modulo by zerorn   rk   s         r   Úint_rem_implru   º   s*   € Ü  ¨'°3¸Ø!9ó;�I€Dˆ#à�<‰<˜ÓÐr   c                 óˆ   — t        |t        j                  «      r(| j                  j                  sd|j
                  dz
  z  S y)Nr1   r/   F)r\   r   ÚIntegerra   Úraise_on_fp_zero_divisionÚbitwidth)r   r   s     r   Ú_get_power_zerodiv_returnrz   À   s8   € Ü�;¤§¡Ô.Ø×#Ñ#×=Ò=à�k×*Ñ*¨QÑ.Ñ/Ð/àr   c                 óì   ‡‡‡— t        |j                  d   t        j                  «      Š|j                  Št        | ‰«      Šˆˆˆfd„}| j                  ||||«      }t        | ||j                  |«      S )z@
    a ^ b, where a is an integer or real, and b an integer
    r   c                 ó0  •—  ‰d«      } ‰| «      } |dk  r1d}| }|dk  rt         ‚‰r#| dk(  r‰r‰S t        d«      ‚| dk7  r
| dk7  ryd}|}|dkD  rt        j                  | t	        |«      «      S |dk7  r|dz  r|| z  }|dz  }| | z  } |dk7  rŒ|rd|z  S |S )	Nr/   r   Tú&0 cannot be raised to a negative powerr1   Fé   ç      ð?)ÚOverflowErrorÚZeroDivisionErrorÚmathÚpowÚfloat)r#   r$   rg   ÚinvertÚexpÚ
is_integerÚtpÚzerodiv_returns        €€€r   Ú	int_powerz!int_power_impl.<locals>.int_powerÑ   sÏ   ø€ áˆq‹EˆÙˆq‹EˆØˆqŠ5ØˆFØ�"ˆCØ�QŠwÜ#Ð#ÙØ˜’6Ù%Ø-Ð-ä/Ð0XÓYÐYØ˜’6˜a 2šgØàˆFØˆCØ�Š=ä—8‘8˜Aœu Q›xÓ(Ð(Ø�QŠhØ�QŠwØ�Q‘�Ø�A‰IˆCØ�‰FˆAð	 �Q‹hñ !ˆs�Q‰wÐ' aÐ'r   )r\   r   r   rw   r   rz   Úcompile_internalr   )	r   r   r   r   rŠ   r%   r‡   rˆ   r‰   s	         @@@r   Úint_power_implrŒ   É   sd   ú€ ô ˜CŸH™H Q™K¬¯©Ó7€JØ	�‰€BÜ.¨w¸Ó;€Nö(ð> ×
"Ñ
" 7¨I°s¸DÓ
A€CÜ˜g w°·±ÀÓEÐEr   c                 ód  ‡‡‡— |j                   d   j                  }t        |t        j                  «      st
        ‚t        |«      dkD  rt
        ‚|dk  }t        |«      }|j                  }t        |t        j                  «      Št        | |«      Š| j                  ‰|d   |j                   d   |«      }|j                  }ˆˆfd„}	 |d«      }
|}|dk7  r"|dz  r	 |	|
|«      }
|dz  } |	||«      }|dk7  rŒ"|r4‰rˆfd„}nd„ }| j                  ‰|t        j                  ||«      |
f«      }
|
S )zH
    a ^ b, where a is an integer or real, and b a constant integer
    r/   r~   r   c                 óP   •— ‰r‰j                  | |«      S ‰j                  | |«      S ©N)r,   Úfmul)r#   r$   r   r‡   s     €€r   r,   zstatic_power_impl.<locals>.mul  s(   ø€ ÙØ—;‘;˜q !Ó$Ð$à—<‘<  1Ó%Ð%r   c                 óF   •— | dk(  r‰r‰S t        d«      ‚| dk7  r| dk7  ry| S )Nr   r}   r/   r1   )r�   )r#   r‰   s    €r   Úinvert_implz&static_power_impl.<locals>.invert_impl  s4   ø€ Ø˜’6Ù%Ø-Ð-ä/Ð0XÓYÐYØ˜’6˜a 2šgØà�Hr   c                 ó   — d| z  S )Nr   © )r#   s    r   r’   z&static_power_impl.<locals>.invert_impl,  s   € Ø˜Q‘w�r   )r   Úvaluer\   ÚnumbersÚIntegralÚNotImplementedErrorÚabsr   r   rw   rz   r   r6   r‹   r   Ú	signature)r   r   r   r   r†   r…   rˆ   ÚvalÚltyr,   r%   r#   r’   r‡   r‰   s    `           @@r   Ústatic_power_implr�   ø   s/  ú€ ð �(‰(�1‰+×
Ñ
€CÜ�cœ7×+Ñ+Ô,Ü!Ð!Ü
ˆ3ƒx�'Òä!Ð!Ø�1‰W€FÜ
ˆc‹(€Cà	�‰€BÜ˜B¤§¡Ó.€JÜ.¨w¸Ó;€Nà
�,‰,�w  Q¡¨¯©°!©°bÓ
9€CØ
�(‰(€Cõ&ñ ˆa‹&€CØ€AØ
�Š(Ø�Š7Ù�c˜3“-ˆCØ�‰	ˆÙ�#�s‹mˆð	 �‹(ñ áõ	òð ×&Ñ& w°Ü'-×'7Ñ'7¸¸BÓ'?À#ÀóIˆð €Jr   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S ©Nr4   ©r9   r   r   ©r   r   r   r   r%   s        r   Úint_slt_implr¢   5  ó.   € Ø
ˆ'×
Ñ
˜cÐ
) DÒ
)€CÜ˜g w°·±ÀÓEÐEr   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S ©Nz<=r    r¡   s        r   Úint_sle_implr¦   :  ó.   € Ø
ˆ'×
Ñ
˜dÐ
* TÒ
*€CÜ˜g w°·±ÀÓEÐEr   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S ©NÚ>r    r¡   s        r   Úint_sgt_implr«   ?  r£   r   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S ©Nz>=r    r¡   s        r   Úint_sge_implr®   D  r§   r   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S rŸ   ©Úicmp_unsignedr   r   r¡   s        r   Úint_ult_implr²   I  ó.   € Ø
ˆ'×
Ñ
 Ð
+ dÒ
+€CÜ˜g w°·±ÀÓEÐEr   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S r¥   r°   r¡   s        r   Úint_ule_implrµ   N  ó.   € Ø
ˆ'×
Ñ
 Ð
, tÒ
,€CÜ˜g w°·±ÀÓEÐEr   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S r©   r°   r¡   s        r   Úint_ugt_implr¸   S  r³   r   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S r­   r°   r¡   s        r   Úint_uge_implrº   X  r¶   r   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S ©Nr0   r°   r¡   s        r   Úint_eq_implr½   ]  r¶   r   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S ©Nr5   r°   r¡   s        r   Úint_ne_implrÀ   b  r¶   r   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó&  •— |\  }}|j                  d|t        |j                  d«      «      }|j                  ‰
|t        |j                  d«      «      }|j                  ‰
||«      }|j	                  |||«      }	t        | ||j                  |	«      S ©Nr4   r   ©r9   r   r6   r±   Úselectr   r   ©r   r   r   r   ÚleftÚrightÚcmp_zeroÚlt_zeroÚge_zeror%   Úops             €r   Úimplz%int_signed_unsigned_cmp.<locals>.implh  s‡   ø€ Ø‰ˆˆuð ×&Ñ& s¨D´(¸4¿9¹9ÀaÓ2HÓIˆØ×%Ñ% b¨$´¸¿¹ÀAÓ0FÓGˆØ×'Ñ'¨¨D°%Ó8ˆØ�n‰n˜X w°Ó8ˆÜ! '¨7°C·O±OÀSÓIÐIr   r”   ©rÌ   rÍ   s   ` r   Úint_signed_unsigned_cmprÏ   g  s   ø€ ôJð  €Kr   c                 ó   ‡ — ˆ fd„}|S )Nc                 ó&  •— |\  }}|j                  d|t        |j                  d«      «      }|j                  ‰
t        |j                  d«      |«      }|j                  ‰
||«      }|j	                  |||«      }	t        | ||j                  |	«      S rÃ   rÄ   rÆ   s             €r   rÍ   z%int_unsigned_signed_cmp.<locals>.impl|  s…   ø€ Ø‰ˆˆuà×&Ñ& s¨E´8¸E¿J¹JÈÓ3JÓKˆØ×%Ñ% b¬(°5·:±:¸qÓ*AÀ5ÓIˆØ×'Ñ'¨¨D°%Ó8ˆØ�n‰n˜X w°Ó8ˆÜ! '¨7°C·O±OÀSÓIÐIr   r”   rÎ   s   ` r   Úint_unsigned_signed_cmprÒ   {  s   ø€ ôJð €Kr   c                 óÔ   — |\  }t        |j                  d «      }|j                  d||«      }|j                  |«      }|j	                  |||«      }t        | ||j                  |«      S rŸ   )r   r6   r9   ÚnegrÅ   r   r   )	r   r   r   r   rD   rF   ÚltzÚnegatedr%   s	            r   Úint_abs_implr×   ‡  sa   € Ø
�C€QÜ�A—F‘F˜DÓ!€DØ
×
Ñ
˜c 1 dÓ
+€CØ�k‰k˜!‹n€GØ
�.‰.˜˜g qÓ
)€CÜ˜g w°·±ÀÓEÐEr   c                 ó:   — |\  }t        | ||j                  |«      S r�   ©r   r   ©r   r   r   r   rD   s        r   Úidentity_implrÛ   �  ó   € Ø
�C€QÜ˜g w°·±ÀÓCÐCr   c                 ó:   — |\  }t        | ||j                  |«      S r�   rÙ   rÚ   s        r   Úuint_abs_implrÞ   •  rÜ   r   c                 óö   — |j                   \  }}|\  }}| j                  ||||j                  «      }| j                  ||||j                  «      }|j                  ||«      }t	        | ||j                  |«      S r�   )r   r   r   Úshlr   ©	r   r   r   r   ÚvaltyÚamttyr›   Úamtr%   s	            r   Úint_shl_implrå   š  sm   € Ø—X‘X�N€UˆEØ�J€Sˆ#Ø
�,‰,�w  U¨C¯O©OÓ
<€CØ
�,‰,�w  U¨C¯O©OÓ
<€CØ
�+‰+�c˜3Ó
€CÜ˜g w°·±ÀÓEÐEr   c                 óH  — |j                   \  }}|\  }}| j                  ||||j                  «      }| j                  ||||j                  «      }|j                  j                  r|j	                  ||«      }n|j                  ||«      }t        | ||j                  |«      S r�   )r   r   r   r   ÚashrÚlshrr   rá   s	            r   Úint_shr_implré   £  sŠ   € Ø—X‘X�N€UˆEØ�J€Sˆ#Ø
�,‰,�w  U¨C¯O©OÓ
<€CØ
�,‰,�w  U¨C¯O©OÓ
<€CØ
‡�×ÒØ�l‰l˜3 Ó$‰à�l‰l˜3 Ó$ˆÜ˜g w°·±ÀÓEÐEr   c                 óö   — |j                   \  }}|\  }}| j                  ||||j                  «      }| j                  ||||j                  «      }	|j                  ||	«      }
t	        | ||j                  |
«      S r�   )r   r   r   r8   r   ©r   r   r   r   ÚatÚbtÚavÚbvÚcavÚcbcr%   s              r   Úint_and_implrò   ¯  sm   € Ø�x‰x�H€RˆØ�H€RˆØ
�,‰,�w  B¨¯©Ó
8€CØ
�,‰,�w  B¨¯©Ó
8€CØ
�,‰,�s˜CÓ
 €CÜ˜g w°·±ÀÓEÐEr   c                 óö   — |j                   \  }}|\  }}| j                  ||||j                  «      }| j                  ||||j                  «      }	|j                  ||	«      }
t	        | ||j                  |
«      S r�   )r   r   r   Úor_r   rë   s              r   Úint_or_implrõ   ¸  óm   € Ø�x‰x�H€RˆØ�H€RˆØ
�,‰,�w  B¨¯©Ó
8€CØ
�,‰,�w  B¨¯©Ó
8€CØ
�+‰+�c˜3Ó
€CÜ˜g w°·±ÀÓEÐEr   c                 óö   — |j                   \  }}|\  }}| j                  ||||j                  «      }| j                  ||||j                  «      }	|j                  ||	«      }
t	        | ||j                  |
«      S r�   )r   r   r   r?   r   rë   s              r   Úint_xor_implrø   Á  rö   r   c                 ó´   — |j                   \  }|\  }|j                  |«      }| j                  ||||j                  «      }t	        | ||j                  |«      S r�   )r   rÔ   r   r   r   ©r   r   r   r   Útypr›   r%   s          r   Úint_negate_implrü   Ê  sO   € Ø�H‰H�E€SØ�E€Sà
�+‰+�cÓ
€CØ
�,‰,�w  S¨#¯/©/Ó
:€CÜ˜g w°·±ÀÓEÐEr   c                 ó’   — |j                   \  }|\  }| j                  ||||j                  «      }t        | ||j                  |«      S r�   ©r   r   r   r   rú   s          r   Úint_positive_implrÿ   Ó  óA   € Ø�H‰H�E€SØ�E€SØ
�,‰,�w  S¨#¯/©/Ó
:€CÜ˜g w°·±ÀÓEÐEr   c           
      ó   — |j                   \  }|\  }|j                  |t        |j                  t	        d|j                  j
                  z  d«      «      «      }| j                  ||||j                  «      }t        | ||j                  |«      S )NÚ1é   )	r   r?   r   r6   ÚintÚwidthr   r   r   rú   s          r   Úint_invert_implr  Ú  sp   € Ø�H‰H�E€SØ�E€Sà
�+‰+�cœ8 C§H¡H¬c°#¸¿¹¿¹Ñ2FÈÓ.JÓKÓ
L€CØ
�,‰,�w  S¨#¯/©/Ó
:€CÜ˜g w°·±ÀÓEÐEr   c                 ó†  — |\  }t        |j                  d«      }t        |j                  d«      }t        |j                  d«      }|j                  d||«      }|j                  d||«      }	t	        j
                  ||j                  «      }
|j                  d«      }|j                  d«      }|j                  d«      }|j                  d	«      }|j                  d
«      }|j                  |||«       |j                  |«      5  |j                  ||
«       |j                  |«       ddd«       |j                  |«      5  |j                  |	||«       ddd«       |j                  |«      5  |j                  ||
«       |j                  |«       ddd«       |j                  |«      5  |j                  ||
«       |j                  |«       ddd«       |j                  |«       |j                  |
«      }t        | ||j                  |«      S # 1 sw Y   ŒêxY w# 1 sw Y   ŒÉxY w# 1 sw Y   Œ˜xY w# 1 sw Y   ŒgxY w)z
    np.sign(int)
    r/   r1   r   r0   rª   z.zeroz.postestz.posz.negz.exitN)r   r6   r±   r9   r
   r_   Úappend_basic_blockÚcbranchÚ
goto_blockrA   ÚbranchÚposition_at_endrB   r   r   )r   r   r   r   rD   ÚPOSÚNEGrF   rÉ   Úcmp_posÚpresultÚbb_zeroÚ
bb_postestÚbb_posÚbb_negÚbb_exitr%   s                    r   Úint_sign_implr  ã  sà  € ð �C€QÜ
�1—6‘6˜1Ó
€CÜ
�1—6‘6˜2Ó
€CÜ�A—F‘F˜AÓ€Dà×$Ñ$ T¨1¨dÓ3€HØ×!Ñ! # q¨$Ó/€Gä×!Ñ! '¨1¯6©6Ó2€Gà×(Ñ(¨Ó1€GØ×+Ñ+¨JÓ7€JØ×'Ñ'¨Ó/€FØ×'Ñ'¨Ó/€FØ×(Ñ(¨Ó1€Gà‡O�O�H˜g zÔ2à	×	Ñ	˜GÕ	$Ø�‰�d˜GÔ$Ø�‰�wÔ÷ 
%ð 
×	Ñ	˜JÕ	'Ø�‰˜ ¨Ô0÷ 
(ð 
×	Ñ	˜FÕ	#Ø�‰�c˜7Ô#Ø�‰�wÔ÷ 
$ð 
×	Ñ	˜FÕ	#Ø�‰�c˜7Ô#Ø�‰�wÔ÷ 
$ð ×Ñ˜GÔ$Ø
�,‰,�wÓ
€CÜ˜g w°·±ÀÓEÐE÷# 
%Ð	$ú÷ 
(Ð	'ú÷ 
$Ð	#ú÷ 
$Ð	#ús0   Ä$HÅHÅ0$H+Æ-$H7ÈHÈH(È+H4È7I c                 ó´   — |j                   \  }|\  }| j                  ||||j                  «      }|j                  |«      }t	        | ||j                  |«      S r�   )r   r   r   rÔ   r   rú   s          r   Úbool_negate_implr    sO   € Ø�H‰H�E€SØ�E€SØ
�,‰,�w  S¨#¯/©/Ó
:€CØ
�+‰+�cÓ
€CÜ˜g w°·±ÀÓEÐEr   c                 ó’   — |j                   \  }|\  }| j                  ||||j                  «      }t        | ||j                  |«      S r�   rþ   rú   s          r   Úbool_unary_positive_implr    r   r   c                 óP   —  |j                   |Ž }t        | ||j                  |«      S r�   )Úfaddr   r   r¡   s        r   Úreal_add_implr  f  ó'   € Ø
ˆ'�,‰,˜Ð
€CÜ˜g w°·±ÀÓEÐEr   c                 óP   —  |j                   |Ž }t        | ||j                  |«      S r�   )Úfsubr   r   r¡   s        r   Úreal_sub_implr!  k  r  r   c                 óP   —  |j                   |Ž }t        | ||j                  |«      S r�   )r�   r   r   r¡   s        r   Úreal_mul_implr#  p  r  r   c                 óä   — t        j                  ||d   «      5  | j                  j                  |d«       d d d «        |j                  |Ž }t        | ||j                  |«      S # 1 sw Y   Œ0xY w)Nr/   rq   )r
   rd   ra   rb   rr   r   r   r¡   s        r   Úreal_div_implr%  u  s^   € Ü	�‰˜ $ q¡'Õ	*Ø×Ñ×,Ñ,¨WÐ6KÔL÷ 
+à
ˆ'�,‰,˜Ð
€CÜ˜g w°·±ÀÓEÐE÷ 
+Ð	*ús   šA&Á&A/c                 óš  — |j                   |j                   k(  sJ ‚|j                   }|j                  }| j                  d|j                   g«      }t        j                  |||t        j
                  |«      f«      }t        j                  |||«      }|j                  rod|_	        t        j                  |j                  d«      «      }	|j                  \  }
}}t        | |	|
|«      \  }}|	j                  ||«       |	j                  |«       t        j                   ||«      }|j#                  ||||f«      }||j%                  |«      fS )Nz.numba.python.remÚlinkonce_odrÚentry)r6   ÚmoduleÚmanglerr   ÚFunctionTypeÚPointerTyper
   Úget_or_insert_functionÚis_declarationÚlinkageÚ	IRBuilderr  r   Úreal_divmod_func_bodyrA   Úretr_   ÚcallrB   )r   r   rD   rE   Úfloattyr)  ÚfnameÚfntyÚfnÚ	fnbuilderÚfxÚfyÚpmodÚdivÚmodÚquotients                   r   Úreal_divmodr?  |  s  € Ø�6‰6�Q—V‘VÒÐÐØ�f‰f€Gà�^‰^€FØ�O‰OÐ/°!·&±&°Ó:€EÜ�?‰?˜7 W¨g´r·~±~ÀgÓ7NÐ$OÓP€DÜ	×	'Ñ	'¨°°eÓ	<€Bà	×ÒØ#ˆŒ
Ü—L‘L ×!6Ñ!6°wÓ!?Ó@ˆ	Ø—w‘w‰ˆˆB�Ü(¨°)¸RÀÓD‰ˆˆSØ�‰˜˜TÔ"Ø�‰�cÔä×Ñ˜w¨Ó0€DØ�|‰|˜B  A t Ó-€HØ�W—\‘\ $Ó'Ð'Ð'r   c           	      óü  — t        j                  ||j                  «      }t        j                  ||j                  «      }t        j                  ||j                  «      }|j                  ||«      }|j	                  |j                  ||«      |«      }|j                  ||«       |j                  ||«       |j                  d«      }	|j                  d«      }
|j                  d«      }|j                  d||	«      }|j                  d||	«      }|j                  d||	«      }|j                  |d¬«      5 \  }}|5  |j                  d||«      }|j                  |«      5  |j                  |j                  ||«      |«       |j                  |j                  ||«      |«       d d d «       d d d «       |5  |j                  ||
|	«      }|j                  ||«       d d d «       d d d «       ~~|j                  |«      }|j                  d||	«      }|j                  |«      5  t        j                   t        j"                  dœ}|t%        |j                  «         }| j'                  t(        j*                  t-        j.                  ||«      «      } |||g«      }|j                  ||«      }|j                  ||«      }t1        |j                  d	«      }|j                  d
||«      }|j                  |||«      }|j                  ||«       d d d «       t        j2                  ||«      5  |j5                  ||«      }|j                  ||«       |j	                  |j5                  ||«      |«      }|j                  ||«       d d d «       |j                  |«      |j                  |«      fS # 1 sw Y   �ŒxY w# 1 sw Y   �ŒxY w# 1 sw Y   �ŒîxY w# 1 sw Y   �ŒóxY w# 1 sw Y   ŒÖxY w# 1 sw Y   ŒkxY w)Nç        g       €r   r5   r4   Tr2   )r„   Údoubleg      à?rª   )r
   r_   r6   Úfremrr   r   rA   Úfcmp_unorderedÚfcmp_orderedr@   r±   r;   r  rÅ   rB   r   Úfloat32Úfloat64ÚstrÚget_functionr‚   Úfloorr   rš   r   Úifnotr�   )r   r   ÚvxÚwxr;  ÚpdivÚ	pfloordivr=  r<  rF   ÚNZEROrG   Ú
mod_istrueÚwx_ltzÚmod_ltzÚif_nonzero_modÚif_zero_modÚwx_ltz_ne_mod_ltzÚ
div_istrueÚrealtypemapÚrealtypeÚfloorfnÚfloordivÚfloordivdiffÚfloordivincrÚHALFÚpreds                              r   r1  r1  ’  sH  € ô\ ×Ñ˜w¨¯©Ó0€DÜ×Ñ˜w¨¯©Ó0€DÜ×#Ñ# G¨R¯W©WÓ5€Ià
�,‰,�r˜2Ó
€CØ
�,‰,�w—|‘| B¨Ó,¨bÓ
1€Cà‡M�M�#�tÔØ‡M�M�#�tÔð �7‰7�3‹<€DØ�G‰G�D‹M€EØ
�'‰'�#‹,€CØ×'Ñ'¨¨c°4Ó8€JØ×!Ñ! # r¨4Ó0€FØ×"Ñ" 3¨¨TÓ2€Gà	�‰˜¨DˆÔ	1Ñ5R°nÀkÚð !(× 5Ñ 5°d¸FÀGÓ LÐà—‘Ð!2Õ3Ø—‘˜gŸl™l¨3°Ó4°dÔ;Ø—‘˜gŸl™l¨3°Ó3°TÔ:÷ 4÷ ò ð —.‘. ¨°Ó5ˆCØ�M‰M˜#˜tÔ$÷	 ÷ 
2ð  	ˆSà
�,‰,�tÓ
€CØ×%Ñ% d¨C°Ó6€Jà	�‰˜Õ	$Ü %§¡Ü!&§¡ñ0ˆàœs 2§7¡7›|Ñ,ˆØ×&Ñ&¤t§z¡zÜ'-×'7Ñ'7¸À(Ó'KóMˆá˜7 S EÓ*ˆØ—|‘| C¨Ó2ˆØ—|‘| H¨cÓ2ˆÜ˜Ÿ™ Ó%ˆØ×#Ñ# C¨°tÓ<ˆØ—>‘> $¨°hÓ?ˆØ�‰�h 	Ô*÷ 
%ô 
�‰�w 
Õ	+Ø�l‰l˜3 Ó$ˆØ�‰�c˜4Ô Ø—<‘< §¡¨S°"Ó 5°rÓ:ˆØ�‰�h 	Ô*÷	 
,ð �<‰<˜	Ó" G§L¡L°Ó$6Ð6Ð6÷G 4Ñ3ú÷ ‰^ú÷ ‰[ú÷ 
2Ñ	1ú÷* 
%Ð	$ú÷ 
,Ð	+úso   Ä8OÄ>%N?Å#AN2Æ(N?Æ0
OÆ:&OÇ OÈ'C*O&Ì/AO2Î2N<Î7N?Î?O		ÏOÏO	ÏOÏO#Ï&O/Ï2O;c                 ó  — |\  }}t        j                  ||j                  d¬«      }t        j                  ||j                  d¬«      }|j                  t        j                  ||«      d¬«      5 \  }	}
|	5  | j
                  j                  |d|«      sH|j                  ||«      }|j                  ||«      }|j                  ||«       |j                  ||«       d d d «       |
5  t        | |||«      \  }}|j                  ||«       |j                  ||«       d d d «       d d d «       t        j                  ||j                  |«      |j                  |«      f«      S # 1 sw Y   Œ‡xY w# 1 sw Y   ŒSxY w# 1 sw Y   ŒWxY w)NrX   rY   r[   Fr2   ©zmodulo by zero)r
   r_   r6   r@   r`   ra   rb   rr   rC  rA   r?  rj   rB   )r   r   r   r   ÚlocrD   rE   rX   r[   rd   re   rf   rg   s                r   Úreal_divmod_implrc  ÿ  sP  € Ø�D€A€qÜ×Ñ˜w¨¯©°VÔ<€DÜ
×
Ñ
˜g q§v¡v°EÔ
:€Cà	�‰œ×/Ñ/°¸Ó;ÀEˆô 
Ù4˜w¨ÚØ×&Ñ&×7Ñ7ØÐ,¨cô3ð —L‘L  AÓ&�Ø—L‘L  AÓ&�Ø—‘˜a Ô&Ø—‘˜a Ô%÷ ò Ü˜w¨°°AÓ6‰DˆAˆqØ�M‰M˜!˜TÔ"Ø�M‰M˜!˜SÔ!÷ ÷
ô  ×Ñ˜gØ&Ÿ|™|¨DÓ1°7·<±<ÀÓ3DÐEóGð G÷ ˆWú÷ ˆ[ú÷
ð 
ús=   Á1E;Á7A&E#Ã
E;Ã'6E/ÄE;Å#E,	Å(E;Å/E8	Å4E;Å;Fc                 ó<  — |\  }}t        j                  ||j                  «      }|j                  t        j                  ||«      d¬«      5 \  }}	|5  | j
                  j                  |d|«      s$|j                  ||«      }
|j                  |
|«       d d d «       |	5  t        | |||«      \  }}
|j                  |
|«       d d d «       d d d «       t        | ||j                  |j                  |«      «      S # 1 sw Y   ŒfxY w# 1 sw Y   ŒDxY w# 1 sw Y   ŒHxY w)NFr2   ra  )r
   r_   r6   r@   r`   ra   rb   rC  rA   r?  r   r   rB   )r   r   r   r   rb  rD   rE   r%   rd   re   r[   Ú_s               r   Úreal_mod_implrf    sü   € Ø�D€A€qÜ
×
Ñ
˜g q§v¡vÓ
.€CØ	�‰œ×/Ñ/°¸Ó;ÀEˆô 
Ù4˜w¨ÚØ×&Ñ&×7Ñ7ØÐ,¨cô3ð —l‘l 1 aÓ(�Ø—‘˜c 3Ô'÷ ò Ü  ¨'°1°aÓ8‰FˆAˆsØ�M‰M˜#˜sÔ#÷ ÷
ô ˜g w°·±Ø%Ÿl™l¨3Ó/ó1ð 1÷ ˆWú÷ ˆ[ú÷
ð 
úó=   ÁDÁAC:Â
DÂ$DÃDÃ:D	Ã?DÄD	ÄDÄDc                 ó<  — |\  }}t        j                  ||j                  «      }|j                  t        j                  ||«      d¬«      5 \  }}	|5  | j
                  j                  |d|«      s$|j                  ||«      }
|j                  |
|«       d d d «       |	5  t        | |||«      \  }
}|j                  |
|«       d d d «       d d d «       t        | ||j                  |j                  |«      «      S # 1 sw Y   ŒfxY w# 1 sw Y   ŒDxY w# 1 sw Y   ŒHxY w)NFr2   rq   )r
   r_   r6   r@   r`   ra   rb   rr   rA   r?  r   r   rB   )r   r   r   r   rb  rD   rE   r%   rd   re   rX   re  s               r   Úreal_floordiv_implri  +  sü   € Ø�D€A€qÜ
×
Ñ
˜g q§v¡vÓ
.€CØ	�‰œ×/Ñ/°¸Ó;ÀEˆô 
Ù4˜w¨ÚØ×&Ñ&×7Ñ7ØÐ.°ô5ð —|‘| A qÓ)�Ø—‘˜d CÔ(÷ ò Ü! '¨7°A°qÓ9‰GˆD�!Ø�M‰M˜$ Ô$÷ ÷
ô ˜g w°·±Ø%Ÿl™l¨3Ó/ó1ð 1÷ ˆWú÷ ˆ[ú÷
ð 
úrg  c                 ó"  — |\  }}|j                   }| j                  r*| j                  t        j                  |«      } |||«      }n1|j                  d|j                  g«      }	|j                  |	||f«      }t        | ||j                  |«      S )Nzllvm.pow)
r)  Úimplement_powi_as_math_callrI  r‚   rƒ   Údeclare_intrinsicr6   r3  r   r   )
r   r   r   r   rD   rE   r)  Úimpr%   r7  s
             r   Úreal_power_implrn  >  s€   € Ø�D€A€qØ�^‰^€FØ×*Ò*Ø×"Ñ"¤4§8¡8¨SÓ1ˆÙ�'˜4Ó ‰à×%Ñ% j°1·6±6°(Ó;ˆØ�l‰l˜2  1˜vÓ&ˆÜ˜g w°·±ÀÓEÐEr   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S rŸ   ©rE  r   r   r¡   s        r   Úreal_lt_implrq  J  ó.   € Ø
ˆ'×
Ñ
˜sÐ
* TÒ
*€CÜ˜g w°·±ÀÓEÐEr   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S r¥   rp  r¡   s        r   Úreal_le_implrt  O  ó.   € Ø
ˆ'×
Ñ
˜tÐ
+ dÒ
+€CÜ˜g w°·±ÀÓEÐEr   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S r©   rp  r¡   s        r   Úreal_gt_implrw  T  rr  r   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S r­   rp  r¡   s        r   Úreal_ge_implry  Y  ru  r   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S r¼   rp  r¡   s        r   Úreal_eq_implr{  ^  ru  r   c                 óX   —  |j                   dg|¢­Ž }t        | ||j                  |«      S r¿   )rD  r   r   r¡   s        r   Úreal_ne_implr}  c  s.   € Ø
 ˆ'×
 Ñ
  Ð
-¨Ò
-€CÜ˜g w°·±ÀÓEÐEr   c                 óœ   — |j                   \  }t        j                  ||«      }| j                  t        j
                  |«      } |||«      S r�   )r   r   rš   rI  r‚   Úfabs)r   r   r   r   rC   rÍ   s         r   Úreal_abs_implr€  h  sB   € Ø�8‰8�D€RÜ
×
Ñ
˜2˜rÓ
"€CØ×Ñ¤§	¡	¨3Ó/€DÙ�˜ÓÐr   c                 óh   — ddl m} |j                  ||d   «      }t        | ||j                  |«      S ©Nr   ©Úmathimpl)Únumba.cpythonr„  Únegate_realr   r   )r   r   r   r   r„  r%   s         r   Úreal_negate_implr‡  o  s0   € Ý&Ø
×
Ñ
˜w¨¨Q©Ó
0€CÜ˜g w°·±ÀÓEÐEr   c                 ó’   — |j                   \  }|\  }| j                  ||||j                  «      }t        | ||j                  |«      S r�   rþ   rú   s          r   Úreal_positive_implr‰  u  r   r   c           	      ó4  — |\  }t        |j                  d«      }t        |j                  d«      }t        |j                  d«      }t        j                  ||j                  «      }|j	                  d||«      }	|j	                  d||«      }
|j                  |	«      5 \  }}|5  |j                  ||«       ddd«       |5  |j                  |
«      5 \  }}|5  |j                  ||«       ddd«       |5  |j                  ||«       ddd«       ddd«       ddd«       ddd«       |j                  |«      }t        | ||j                  |«      S # 1 sw Y   ŒœxY w# 1 sw Y   ŒsxY w# 1 sw Y   ŒbxY w# 1 sw Y   ŒfxY w# 1 sw Y   ŒjxY w# 1 sw Y   ŒnxY w)z
    np.sign(float)
    r/   r1   r   rª   r4   N)
r   r6   r
   r_   rE  r@   rA   rB   r   r   )r   r   r   r   rD   r  r  rF   r  Úis_posÚis_negÚgt_zeroÚnot_gt_zerorÊ   Únot_lt_zeror%   s                   r   Úreal_sign_implr�  |  sJ  € ð �C€QÜ
�1—6‘6˜1Ó
€CÜ
�1—6‘6˜2Ó
€CÜ�A—F‘F˜AÓ€Dä×!Ñ! '¨1¯6©6Ó2€Gà×!Ñ! # q¨$Ó/€FØ×!Ñ! # q¨$Ó/€Fà	�‰˜Ô	 Ñ$: W¨kÚØ�M‰M˜#˜wÔ'÷ âØ—‘ Ô(Ñ,B¨W°kÚØ—M‘M # wÔ/÷ â ð —M‘M ! WÔ-÷ !÷ )÷ ÷ 
!ð �,‰,�wÓ
€CÜ˜g w°·±ÀÓEÐE÷ ˆWú÷ �Wúç �[ú÷ )Ð(ú÷ ˆ[ú÷ 
!Ð	 ús„   ÂFÂ$EÂ7
FÃFÃE6ÃE	Ã,
E6Ã6E*	Ä	E6ÄFÄFÅE	ÅFÅE'Å#E6Å*E3Å/E6Å6E?Å;FÆF	ÆFÆFc                 ó^   — | j                  |||¬«      }|j                  }t        | |||«      S ©N©r•   )Úmake_complexÚrealr   ©r   r   rû   r•   Úcplxr%   s         r   Úcomplex_real_implr˜  ¼  ó3   € Ø×Ñ ¨°EÐÓ:€DØ
�)‰)€CÜ˜g w°°SÓ9Ð9r   c                 ó^   — | j                  |||¬«      }|j                  }t        | |||«      S r’  )r”  Úimagr   r–  s         r   Úcomplex_imag_implrœ  Â  r™  r   c                 óæ   — ddl m} | j                  ||j                  d   |d   «      }|j	                  ||j
                  «      |_        |j                  «       }t        | ||j                  |«      S r‚  )	r…  r„  r”  r   r†  r›  Ú	_getvaluer   r   )r   r   r   r   r„  Úzr%   s          r   Úcomplex_conjugate_implr   È  s]   € Ý&Ø×Ñ˜W c§h¡h¨q¡k°4¸±7Ó;€AØ×!Ñ! '¨1¯6©6Ó2€A„FØ
�+‰+‹-€CÜ˜g w°·±ÀÓEÐEr   c                 ó   — t        | |||«      S r�   r   )r   r   rû   r•   s       r   Úreal_real_implr¢  Ï  s   € Ü˜g w°°UÓ;Ð;r   c                 ó\   — t        j                  |j                  «      }t        | |||«      S r�   )r
   Úget_null_valuer6   r   )r   r   rû   r•   r%   s        r   Úreal_imag_implr¥  Ò  s'   € Ü
×
 Ñ
  §¡Ó
,€CÜ˜g w°°SÓ9Ð9r   c                 ó8   — t        | ||j                  |d   «      S ©Nr   rÙ   ©r   r   r   r   s       r   Úreal_conjugate_implr©  Ö  s   € Ü˜g w°·±ÀÀaÁÓIÐIr   c           	      ó¨  — |\  }}|j                   d   }|j                  }| j                  |||¬«      }| j                  |||¬«      }	| j                  ||«      }
|j                  }|j	                  «       }|	j	                  «       }|
j	                  «       }| j                  |d«      }| j                  |d«      }|j                  d|	j                  |«      }|j                  d|	j                  |«      }|j                  ||«      }|j                  |«      5 \  }}|5  t        | ||||f«      }| j                  |||¬«      }|j                  |
_        |j                  |
_        d d d «       |5  t        j                  dt        j                  di|   }t        j                   t        j"                  «       |j$                  gdz  «      }t'        j(                  |||«      }|j+                  ||||f«       d d d «       d d d «       |j-                  |«      }t/        | ||j0                  |«      S # 1 sw Y   ŒÌxY w# 1 sw Y   ŒFxY w# 1 sw Y   ŒJxY w)Nr   r“  r  r0   Únumba_cpowfÚ
numba_cpowé   )r   Úunderlying_floatÚmake_helperr)  Ú_getpointerÚget_constantrE  r•  r›  r8   r@   Úcomplex_mul_implr   Ú	complex64Ú
complex128r   r+  ÚVoidTyper6   r
   r-  r3  rB   r   r   )r   r   r   r   ÚcaÚcbrC   Úftyr#   r$   Úcr)  ÚpaÚpbÚpcÚTWOrF   Úb_real_is_twoÚb_imag_is_zeroÚb_is_twoÚthenÚ	otherwiser%   ÚcresÚ	func_namer6  Úcpows                              r   Úcomplex_power_implrÆ  â  s  € Ø�H€RˆØ	�‰�!‰€BØ
×
Ñ
€CØ×Ñ˜G R¨rÐÓ2€AØ×Ñ˜G R¨rÐÓ2€AØ×Ñ˜G RÓ(€AØ�^‰^€FØ	
�‰‹€BØ	
�‰‹€BØ	
�‰‹€Bð ×
Ñ
˜s AÓ
&€CØ×Ñ  QÓ'€Dà×(Ñ(¨¨q¯v©v°sÓ;€MØ×)Ñ)¨$°·±¸Ó=€NØ�|‰|˜M¨>Ó:€Hà	�‰˜Ô	"Ñ&7 t¨YÚä" 7¨G°S¸2¸r¸(ÓCˆCØ×&Ñ& w°¸#Ð&Ó>ˆDØ—Y‘YˆAŒFØ—Y‘YˆAŒF÷ ò ô —‘ Ü× Ñ  ,ðð ñˆIô —?‘?¤2§;¡;£=°2·7±7°)¸a±-Ó@ˆDÜ×1Ñ1°&¸$À	ÓJˆDØ�L‰L˜  B¨˜|Ô,÷ ÷ 
#ð$ �,‰,�rÓ
€CÜ˜g w°·±ÀÓEÐE÷% ˆTú÷ ˆYú÷ 
#Ð	"ús>   ÄIÄAH0Å%
IÅ/BH<Ç7IÈ0H9	È5IÈ<I	ÉIÉIc                 óª  — |\  }}|j                   d   }| j                  |||¬«      }| j                  |||¬«      }| j                  ||«      }	|j                  }
|j                  }|j                  }|j                  }|j	                  |
|«      |	_        |j	                  ||«      |	_        |	j                  «       }t        | ||j                  |«      S ©Nr   r“  )r   r”  r•  r›  r  rž  r   r   ©r   r   r   r   ÚcxÚcyrC   rD   rE   rŸ  r#   r$   r¹  Údr%   s                  r   Úcomplex_add_implrÍ    óÀ   € Ø�H€RˆØ	�‰�!‰€BØ×Ñ˜W b°ÐÓ3€AØ×Ñ˜W b°ÐÓ3€AØ×Ñ˜W bÓ)€AØ	�‰€AØ	�‰€AØ	�‰€AØ	�‰€AØ�\‰\˜!˜QÓ€A„FØ�\‰\˜!˜QÓ€A„FØ
�+‰+‹-€CÜ˜g w°·±ÀÓEÐEr   c                 óª  — |\  }}|j                   d   }| j                  |||¬«      }| j                  |||¬«      }| j                  ||«      }	|j                  }
|j                  }|j                  }|j                  }|j	                  |
|«      |	_        |j	                  ||«      |	_        |	j                  «       }t        | ||j                  |«      S rÈ  )r   r”  r•  r›  r   rž  r   r   rÉ  s                  r   Úcomplex_sub_implrÐ    rÎ  r   c                 ó:  — |\  }}|j                   d   }| j                  |||¬«      }| j                  |||¬«      }| j                  ||«      }	|j                  }
|j                  }|j                  }|j                  }|j	                  |
|«      }|j	                  ||«      }|j	                  |
|«      }|j	                  ||«      }|j                  ||«      |	_        |j                  ||«      |	_        |	j                  «       }t        | ||j                  |«      S )z'
    (a+bi)(c+di)=(ac-bd)+i(ad+bc)
    r   r“  )
r   r”  r•  r›  r�   r   r  rž  r   r   )r   r   r   r   rÊ  rË  rC   rD   rE   rŸ  r#   r$   r¹  rÌ  ÚacÚbdÚadÚbcr%   s                      r   r²  r²  +  s  € ð �H€RˆØ	�‰�!‰€BØ×Ñ˜W b°ÐÓ3€AØ×Ñ˜W b°ÐÓ3€AØ×Ñ˜W bÓ)€AØ	�‰€AØ	�‰€AØ	�‰€AØ	�‰€AØ	�‰�a˜Ó	€BØ	�‰�a˜Ó	€BØ	�‰�a˜Ó	€BØ	�‰�a˜Ó	€BØ�\‰\˜"˜bÓ!€A„FØ�\‰\˜"˜bÓ!€A„FØ
�+‰+‹-€CÜ˜g w°·±ÀÓEÐEr   Únanc                 ó`   — d„ }| j                  ||||«      }t        | ||j                  |«      S )Nc                 ó  — | j                   }| j                  }|j                   }|j                  }|s|st        d«      ‚t        |«      t        |«      k\  rA|st	        t
        t
        «      S ||z  }|||z  z   }t	        |||z  z   |z  |||z  z
  |z  «      S |st	        t
        t
        «      S ||z  }||z  |z   }t	        | j                   |z  | j                  z   |z  | j                  |z  | j                   z
  |z  «      S )Nzcomplex division by zero)r•  r›  r�   r™   ÚcomplexÚNAN)r#   r$   ÚarealÚaimagÚbrealÚbimagÚratioÚdenoms           r   Úcomplex_divz%complex_div_impl.<locals>.complex_divE  s  € à—‘ˆØ—‘ˆØ—‘ˆØ—‘ˆÙ™UÜ#Ð$>Ó?Ð?Üˆu‹:œ˜U›Ò#áÜœs¤CÓ(Ð(Ø˜E‘MˆEØ˜E E™MÑ)ˆEÜØ˜ ™Ñ&¨%Ñ/Ø˜ ™Ñ&¨%Ñ/ó1ð 1ñ
 Üœs¤CÓ(Ð(Ø˜E‘MˆEØ˜E‘M EÑ)ˆEÜØ—‘˜%‘ !§&¡&Ñ(¨EÑ1Ø—‘˜%‘ !§&¡&Ñ(¨EÑ1ó3ð 3r   ©r‹   r   r   )r   r   r   r   rá  r%   s         r   Úcomplex_div_implrã  D  s4   € ò3ð6 ×
"Ñ
" 7¨K¸¸dÓ
C€CÜ˜g w°·±ÀÓEÐEr   c                 óR  — ddl m} |j                  \  }|\  }| j                  |||¬«      }| j                  ||«      }|j	                  ||j
                  «      |_        |j	                  ||j                  «      |_        |j                  «       }t        | ||j                  |«      S )Nr   rƒ  r“  )
r…  r„  r   r”  r†  r•  r›  rž  r   r   )	r   r   r   r   r„  rû   r›   Úcmplxr%   s	            r   Úcomplex_negate_implræ  d  s�   € Ý&Ø�H‰H�E€SØ�E€SØ× Ñ  ¨#°SÐ Ó9€EØ
×
Ñ
˜w¨Ó
,€CØ×#Ñ# G¨U¯Z©ZÓ8€C„HØ×#Ñ# G¨U¯Z©ZÓ8€C„HØ
�-‰-‹/€CÜ˜g w°·±ÀÓEÐEr   c                 ó:   — |\  }t        | ||j                  |«      S r�   rÙ   ©r   r   r   r   r›   s        r   Úcomplex_positive_implré  p  s   € Ø�E€SÜ˜g w°·±ÀÓEÐEr   c                 ój  — |\  }}|j                   d   }| j                  |||¬«      }| j                  |||¬«      }|j                  d|j                  |j                  «      }	|j                  d|j                  |j                  «      }
|j                  |	|
«      }t        | ||j                  |«      S )Nr   r“  r0   )r   r”  rE  r•  r›  r8   r   r   )r   r   r   r   rÊ  rË  rû   rD   rE   Úreals_are_eqÚimags_are_eqr%   s               r   Úcomplex_eq_implrí  u  s£   € Ø�H€RˆØ
�(‰(�1‰+€CØ×Ñ˜W c°ÐÓ4€AØ×Ñ˜W c°ÐÓ4€Aà×'Ñ'¨¨a¯f©f°a·f±fÓ=€LØ×'Ñ'¨¨a¯f©f°a·f±fÓ=€LØ
�,‰,�| \Ó
2€CÜ˜g w°·±ÀÓEÐEr   c                 ój  — |\  }}|j                   d   }| j                  |||¬«      }| j                  |||¬«      }|j                  d|j                  |j                  «      }	|j                  d|j                  |j                  «      }
|j                  |	|
«      }t        | ||j                  |«      S )Nr   r“  r5   )r   r”  rD  r•  r›  rô   r   r   )r   r   r   r   rÊ  rË  rû   rD   rE   Úreals_are_neÚimags_are_ner%   s               r   Úcomplex_ne_implrñ  �  s£   € Ø�H€RˆØ
�(‰(�1‰+€CØ×Ñ˜W c°ÐÓ4€AØ×Ñ˜W c°ÐÓ4€Aà×)Ñ)¨$°·±¸¿¹Ó?€LØ×)Ñ)¨$°·±¸¿¹Ó?€LØ
�+‰+�l LÓ
1€CÜ˜g w°·±ÀÓEÐEr   c                 ó`   — d„ }| j                  ||||«      }t        | ||j                  |«      S )z)
    abs(z) := hypot(z.real, z.imag)
    c                 óV   — t        j                  | j                  | j                  «      S r�   )r‚   Úhypotr•  r›  )rŸ  s    r   Úcomplex_absz%complex_abs_impl.<locals>.complex_abs‘  s   € Ü�z‰z˜!Ÿ&™& !§&¡&Ó)Ð)r   râ  )r   r   r   r   rõ  r%   s         r   Úcomplex_abs_implrö  �  s4   € ò*ð ×
"Ñ
" 7¨K¸¸dÓ
C€CÜ˜g w°·±ÀÓEÐEr   c                 ó   — |d   S )z;
    The no-op .item() method on booleans and numbers.
    r   r”   r¨  s       r   Únumber_item_implrø  °  s   € ð �‰7€Nr   c                 ó´   — |j                   \  }|\  }| j                  ||||j                  «      }|j                  |«      }t	        | ||j                  |«      S r�   )r   r   r   r<   r   )r   r   r   r   rû   r›   Úistruer%   s           r   Únumber_not_implrû  º  sO   € Ø�H‰H�E€SØ�E€SØ�\‰\˜' 3¨¨S¯_©_Ó=€FØ
�,‰,�vÓ
€CÜ˜g w°·±ÀÓEÐEr   c                 ó   — |\  }|S r�   r”   rè  s        r   Úbool_as_boolrý  Â  s   € Ø�E€SØ€Jr   c                 óX   — |\  }|j                  d|t        |j                  d«      «      S )Nr5   r   )r±   r   r6   rè  s        r   Úint_as_boolrÿ  Ç  s)   € Ø�E€SØ× Ñ   s¬H°S·X±X¸qÓ,AÓBÐBr   c                 óX   — |\  }|j                  d|t        |j                  d«      «      S )Nr5   rA  )rD  r   r6   rè  s        r   Úfloat_as_boolr  Ì  s)   € Ø�E€SØ×!Ñ! $¨¬X°c·h±hÀÓ-DÓEÐEr   c                 ó  — |j                   \  }|\  }| j                  |||«      }|j                  |j                  }}t	        |j
                  d«      }	|j                  d||	«      }
|j                  d||	«      }|j                  |
|«      S )NrA  r5   )r   r”  r•  r›  r   r6   rD  rô   )r   r   r   r   rû   r›   rå  r•  r›  ÚzeroÚreal_istrueÚimag_istrues               r   Úcomplex_as_boolr  Ñ  s‚   € Ø�H‰H�E€SØ�E€SØ× Ñ  ¨#¨sÓ3€EØ—‘˜UŸZ™Zˆ$€DÜ�D—I‘I˜sÓ#€DØ×(Ñ(¨¨t°TÓ:€KØ×(Ñ(¨¨t°TÓ:€KØ�;‰;�{ KÓ0Ð0r   c                 óŒ   — | j                  ||j                  |j                  «      }| j                  |||j                  |«      S r�   )Úget_constant_genericÚliteral_typeÚliteral_valuer   ©r   r   ÚfromtyÚtotyr›   Úlits         r   Úliteral_int_to_numberr  ë  sD   € Ø
×
&Ñ
&ØØ×ÑØ×Ñó
€Cð
 �<‰<˜  f×&9Ñ&9¸4Ó@Ð@r   c                 óH  — |j                   |j                   k(  r|S |j                   |j                   k  r!|j                  || j                  |«      «      S |j                  r!|j	                  || j                  |«      «      S |j                  || j                  |«      «      S r�   )ry   ÚtruncÚget_value_typer   ÚsextÚzext©r   r   r  r  r›   s        r   Úinteger_to_integerr  õ  s„   € Ø‡}�}˜Ÿ™Ò'àˆ
Ø	�‰˜Ÿ™Ò	(à�}‰}˜S '×"8Ñ"8¸Ó">Ó?Ð?Ø	�Šà�|‰|˜C ×!7Ñ!7¸Ó!=Ó>Ð>ð �|‰|˜C ×!7Ñ!7¸Ó!=Ó>Ð>r   c                 óD   — |j                  || j                  |«      «      S r�   )Úinttoptrr  r  s        r   Úinteger_to_voidptrr    s    € Ø×Ñ˜C ×!7Ñ!7¸Ó!=Ó>Ð>r   c                 óž   — | j                  |«      }|j                  |j                  k  r|j                  ||«      S |j                  ||«      S r�   )r  ry   ÚfpextÚfptrunc©r   r   r  r  r›   rœ   s         r   Úfloat_to_floatr    sD   € Ø
×
 Ñ
  Ó
&€CØ‡�˜Ÿ™Ò&Ø�}‰}˜S #Ó&Ð&à�‰˜s CÓ(Ð(r   c                 ó„   — | j                  |«      }|j                  r|j                  ||«      S |j                  ||«      S r�   )r  r   ÚsitofpÚuitofpr  s         r   Úinteger_to_floatr"    s;   € Ø
×
 Ñ
  Ó
&€CØ‡}‚}Ø�~‰~˜c 3Ó'Ð'à�~‰~˜c 3Ó'Ð'r   c                 ó„   — | j                  |«      }|j                  r|j                  ||«      S |j                  ||«      S r�   )r  r   ÚfptosiÚfptouir  s         r   Úfloat_to_integerr&    s;   € Ø
×
 Ñ
  Ó
&€CØ‡{‚{Ø�~‰~˜c 3Ó'Ð'à�~‰~˜c 3Ó'Ð'r   c                 óÖ   — | j                  ||||j                  «      }| j                  |j                  d«      }| j                  ||«      }||_        ||_        |j                  «       S r§  )r   r®  r±  r”  r•  r›  rž  )r   r   r  r  r›   r•  r›  rå  s           r   Únon_complex_to_complexr(  !  sa   € Ø�<‰<˜  f¨d×.CÑ.CÓD€DØ×Ñ × 5Ñ 5°qÓ9€Dà× Ñ  ¨$Ó/€EØ€E„JØ€E„JØ�?‰?ÓÐr   c                 ó*  — |j                   }|j                   }| j                  |||¬«      }| j                  ||«      }| j                  ||j                  ||«      |_        | j                  ||j                  ||«      |_        |j                  «       S r’  )r®  r”  r   r•  r›  rž  )	r   r   r  r  r›   ÚsrctyÚdsttyÚsrcÚdsts	            r   Úcomplex_to_complexr.  +  s�   € Ø×#Ñ#€EØ×!Ñ!€Eà
×
Ñ
˜w¨°cÐ
Ó
:€CØ
×
Ñ
˜w¨Ó
-€CØ�|‰|˜G S§X¡X¨u°eÓ<€C„HØ�|‰|˜G S§X¡X¨u°eÓ<€C„HØ�=‰=‹?Ðr   c                 ó(   — | j                  |||«      S r�   )Úis_truer  s        r   Úany_to_booleanr1  6  s   € Ø�?‰?˜7 F¨CÓ0Ð0r   c                 ó�   — |j                  |t        j                  d«      «      }| j                  ||t        j
                  |«      S )Né    )r  r   ÚIntTyper   r   Úint32)r   r   r  r  r›   Úasints         r   Úboolean_to_anyr7  :  s3   € à�L‰L˜œbŸj™j¨›nÓ-€EØ�<‰<˜ ¬¯©°TÓ:Ð:r   c                 óŠ   — | j                  ||j                  |j                  «      }| j                  ||j                  |«      S r�   )r  r	  r
  r0  r  s         r   Úliteral_int_to_booleanr9  A  sB   € Ø
×
&Ñ
&ØØ×ÑØ×Ñó
€Cð
 �?‰?˜7 F×$7Ñ$7¸Ó=Ð=r   c                 ó¼   — |j                   }| j                  |||j                  «      }| j                  |||j                  «      }t	        j
                  ||f«      S r�   )r®  r  r•  r›  r   Úliteral_struct)r   r   rC   Úpyvalr¸  r•  r›  s          r   Úconstant_complexr=  M  sR   € Ø
×
Ñ
€CØ×'Ñ'¨°°e·j±jÓA€DØ×'Ñ'¨°°e·j±jÓA€DÜ×"Ñ" D¨$ <Ó0Ð0r   c                 ó~   — t        |t        j                  «      rt        |«      }| j	                  |«      } ||«      S r�   )r\   ÚnpÚbool_Úboolr  )r   r   rC   r<  rœ   s        r   Úconstant_integerrB  V  s5   € ô
 �%œŸ™Ô"Ü�U“ˆØ
×
 Ñ
  Ó
$€CÙˆu‹:Ðr   c                 ó  — t        | t        j                  t        j                  f«      rbt        |t        j                  j
                  «      r=| j                  |j                  j                  k7  rt        j                  d«      ‚d„ }|S yy)z) Typing for the np scalar 'view' method. zOChanging the dtype of a 0d array is only supported if the itemsize is unchangedc                 ó   — t        | |«      S r�   r   )ÚscalarÚviewtys     r   rÍ   zscalar_view.<locals>.implm  s   € Ü˜& &Ó)Ð)r   N)
r\   r   ÚFloatrw   ÚabstractÚ	DTypeSpecry   r^   r	   ÚTypingError)rE  rF  rÍ   s      r   Úscalar_viewrK  d  so   € ä�6œEŸK™K¬¯©Ð7Ô8Ü˜6¤5§>¡>×#;Ñ#;Ô<Ø�?‰?˜fŸl™l×3Ñ3Ò3Ü×$Ñ$ð(ó)ð )ò	*àˆð =ð 	9r   r�   )sr‚   r–   Únumpyr?  Úllvmliter   Úllvmlite.irr   Únumba.core.imputilsr   Ú
numba.corer   r   r	   r
   Únumba.cpython.unsafe.numbersr   r   r&   r*   r-   rR   rV   rh   rl   ro   rs   ru   rz   rŒ   r�   r¢   r¦   r«   r®   r²   rµ   r¸   rº   r½   rÀ   rÏ   rÒ   r×   rÛ   rÞ   rå   ré   rò   rõ   rø   rü   rÿ   r  r  r  r  r  r!  r#  r%  r?  r1  rc  rf  ri  rn  rq  rt  rw  ry  r{  r}  r€  r‡  r‰  r�  r˜  rœ  r   r¢  r¥  r©  rÆ  rÍ  rÐ  r²  r„   rÚ  rã  ræ  ré  rí  rñ  rö  rø  rû  rý  rÿ  r  r  r  r  r  r  r"  r&  r(  r.  r1  r7  r9  r=  rB  rK  r”   r   r   Ú<module>rR     sS  ðÛ Û ã å Ý  å 2ß 5Ó 5Ý /òò"FòFòFò66òr6òò>GòòFòòò(Fò^:òzFò
Fò
Fò
Fò
Fò
Fò
Fò
Fò
Fò
Fò
ò(	òFòDò
Dò
Fò	FòFòFòFòFòFòFò'FòTFòFòbFò
Fò
Fò
Fò(ò,i7óZGó21ó&1ò&	FòFò
Fò
Fò
Fò
Fò
Fò
òFòFòFò@:ò:òFò<ò:òJò'FòRFò Fò Fñ. ˆEƒl€òFò@	FòFò
	Fò	FòFòFòFòò
Cò
Fò
1ò4Aò?ò?ò)ò(ò(òòò1ò;ò>ò1òór   