
    shd                        S SK r S SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
JrJrJrJr  S SKJr  S rS rS	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS r S r!S r"S r#S 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* r4S+ r5S, r6S- r7S. r8S/ r9S0 r:S1 r;S2 r<S3 r=S4 r>ShS5 jr?ShS6 jr@ShS7 jrAS8 rBS9 rCS: rDS; rES< rFS= rGS> rHS? rIS@ rJSA rKSB rLSC rMSD rNSE rOSF rPSG rQSH rRSI rSSJ rTSK rUSL rV\W" SM5      rXSN rYSO rZSP r[SQ r\SR r]SS r^ST r_SU r`SV raSW rbSX rcSY rdSZ reS[ rfS\ rgS] rhS^ riS_ rjS` rkSa rlSb rmSc rnSd roSe rpSf rqSg rrg)i    N)ir)Constantimpl_ret_untracked)typingtypeserrorscgutilsviewerc                 .    U R                   (       a  S/$ / $ )z3
Return the modifier flags for integer arithmetic.
nsw)signed)rettypes    i/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/np/math/numbers.py_int_arith_flagsr      s     ~~ w	    c                 
   Uu  pEUR                   u  pgU R                  XXbR                  5      nU R                  XXrR                  5      n	UR                  X[	        UR                  5      S9n
[        XUR                  U
5      $ N)flags)argscastreturn_typeaddr   r   contextbuildersigr   vavbtatbabress              r   int_add_implr&      k    HRxxHRW"oo6AW"oo6A
++a"23??"C+
DCgEEr   c                 
   Uu  pEUR                   u  pgU R                  XXbR                  5      nU R                  XXrR                  5      n	UR                  X[	        UR                  5      S9n
[        XUR                  U
5      $ r   )r   r   r   subr   r   r   s              r   int_sub_implr*   '   r'   r   c                 
   Uu  pEUR                   u  pgU R                  XXbR                  5      nU R                  XXrR                  5      n	UR                  X[	        UR                  5      S9n
[        XUR                  U
5      $ r   )r   r   r   mulr   r   r   s              r   int_mul_implr-   0   r'   r   c           
         UR                   UR                   :X  d   eUR                  S5      nUR                  S5      n[        R                  " X5      n[        R                  " X5      nUR                  UR	                  SX3R                  UR
                  5      5      UR	                  SXDR                  S5      5      5      n	UR                  UR                  U	5      SS9   UR                  X45      n
UR                  X45      nUR	                  SUR                  XK5      U5      nUR	                  SX5      nUR                  X5      nUR                  U5       u  nnU   UR                  X5        UR                  X5        S	S	S	5        U   UR                  UR                  X5      U5        UR                  UR                  X5      U5        S	S	S	5        S	S	S	5        S	S	S	5        UR                  U5      UR                  U5      4$ ! , (       d  f       N= f! , (       d  f       NQ= f! , (       d  f       NZ= f! , (       d  f       Nc= f)
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   $ 66QVV66!9D
&&)C &&w5F&&w5F,,D!VVBII%67D!VVBZ02K 
k24	@ Q"Q"!--c7;;q3H$O**4=||L:__T"&I'9=e,e,  $gkk%5v>gkk%3V< $ # 
A& <<f!555  $# #" 
A	@sV   $A9I H/##H
H/AHH/I 
HH/
H,(H//
H=	9I  
Ic                     UR                   (       a  [        XX#U5      $ UR                  X45      UR                  X45      4$ )z<
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   s7     
yy 2!<<||A!7<<#555r   c           	      @   Uu  pVUR                   u  pxUR                  n	[        U	[        R                  5      (       a  U	R
                  n	U R                  XXy5      n
U R                  XX5      n[        R                  " XR                  SS9n[        R                  " XR                  SS9nUR                  [        R                  " X5      SS9 u  pU   U R                  R                  X45      (       d"  UR                  X5        UR                  X5        S S S 5        U   [        XXU5      u  nnUR                  UU5        UR                  UU5        S S S 5        S S S 5        X4$ ! , (       d  f       NX= f! , (       d  f       N*= f! , (       d  f       X4$ = f)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   |   sR   FBXXFB	B"enn%%XXW")AW")AwV<D


gvvE
:C	//;E 
4w&&77+- -
 a&a%  gq9DAqMM!T"MM!S! 
 9 W [
 
 9s=   FAE+
F#5E<F+
E9	5F<
F
	F
Fc                     [        XX#S5      u  pE[        R                  " UUR                  U5      UR                  U5      45      $ )Nzinteger divmod by zero)rh   r
   
pack_arrayrB   r   r   r   r   rX   r[   s         r   int_divmod_implrl      sH     3!9;ID g&||D17<<3DEG Gr   c                 B    [        XX#S5      u  pEUR                  U5      $ )Nzinteger division by zerorh   rB   rk   s         r   int_floordiv_implro      s$     3!;=ID<<r   c                 ~   Uu  pEUR                   u  pgU R                  XXbR                  5      nU R                  XXrR                  5      n	[        R                  " X5         U R
                  R                  US5        S S S 5        UR                  X5      n
[        XUR                  U
5      $ ! , (       d  f       N6= f)Nzdivision by zero)	r   r   r   r
   rd   ra   rb   fdivr   r   s              r   int_truediv_implrs      s    HRxxHRW"oo6AW"oo6A		$,,W6KL 
%
,,q
CgEE 
%	$s   !B..
B<c                 B    [        XX#S5      u  pEUR                  U5      $ )Nzinteger modulo by zerorn   rk   s         r   int_rem_implru      s$     3!9;ID<<r   c                     [        U[        R                  5      (       a-  U R                  R                  (       d  SUR
                  S-
  -  $ g)Nr1   r/   F)r\   r   Integerra   raise_on_fp_zero_divisionbitwidth)r   r   s     r   _get_power_zerodiv_returnrz      s;    ;..##==k**Q.//r   c                    ^^^ [        UR                  S   [        R                  5      mUR                  m[        U T5      mUUU4S jnU R                  XX#5      n[        XUR                  U5      $ )z8
a ^ b, where a is an integer or real, and b an integer
r   c                 j  > T" S5      nT" U 5      n US:  a@  SnU* nUS:  a  [         eT(       a'  U S:X  a  T(       a  T$ [        S5      eU S:w  a  U S:w  a  gOSnUnUS:  a   [        R                  " U [	        U5      5      $ US:w  a  US-  (       a  X -  nUS-  nX -  n US:w  a  M  U(       a  SU-  $ U$ )	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_power!int_power_impl.<locals>.int_power   s    qEqEq5F"CQw##6%--/0XYY6a2gFC=88AuQx((QhQwAICFA	 Qh !sQw'a'r   )r\   r   r   rw   r   rz   compile_internalr   )	r   r   r   r   r   r%   r   r   r   s	         @@@r   int_power_implr      s^     CHHQK7J	B.w;N(> 
"
"7s
ACgEEr   c                   ^^^ UR                   S   R                  n[        U[        R                  5      (       d  [
        e[        U5      S:  a  [
        eUS:  n[        U5      nUR                  n[        U[        R                  5      m[        X5      mU R                  TUS   UR                   S   U5      nUR                  nUU4S jn	U" S5      n
UnUS:w  a'  US-  (       a  U	" X5      n
US-  nU	" Xw5      nUS:w  a  M'  U(       a:  T(       a  U4S jnOS nU R                  TU[        R                  " Xf5      U
45      n
U
$ )z@
a ^ b, where a is an integer or real, and b a constant integer
r/   r~   r   c                 V   > T(       a  TR                  X5      $ TR                  X5      $ N)r,   fmul)r#   r$   r   r   s     r   r,   static_power_impl.<locals>.mul  s$    ;;q$$<<%%r   c                 V   > U S:X  a  T(       a  T$ [        S5      eU S:w  a  U S:w  a  gU $ )Nr   r}   r/   r1   )r   )r#   r   s    r   invert_impl&static_power_impl.<locals>.invert_impl  s4    6%--/0XYY6a2gHr   c                     SU -  $ )Nr    )r#   s    r   r   r   ,  s    Qw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c7++,,!!
3x'!!1WF
c(C	BB.J.w;N
,,wQ!b
9C
((C& a&CA
(7c-C	#m	 ( 	 &&w'-'7'7'?#I Jr   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ Nr4   r9   r   r   r   r   r   r   r%   s        r   int_slt_implr   5  *    


c
)D
)CgEEr   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ Nz<=r   r   s        r   int_sle_implr   :  *    


d
*T
*CgEEr   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ N>r   r   s        r   int_sgt_implr   ?  r   r   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ Nz>=r   r   s        r   int_sge_implr   D  r   r   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ r   icmp_unsignedr   r   r   s        r   int_ult_implr   I  *    



+d
+CgEEr   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ r   r   r   s        r   int_ule_implr   N  *    



,t
,CgEEr   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ r   r   r   s        r   int_ugt_implr   S  r   r   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ r   r   r   s        r   int_uge_implr   X  r   r   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ Nr0   r   r   s        r   int_eq_implr   ]  r   r   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ Nr5   r   r   s        r   int_ne_implr   b  r   r   c                    ^  U 4S jnU$ )Nc                   > Uu  pEUR                  SU[        UR                  S5      5      nUR                  T
U[        UR                  S5      5      nUR                  T
XE5      nUR	                  XgU5      n	[        XUR                  U	5      $ Nr4   r   r9   r   r6   r   selectr   r   r   r   r   r   leftrightcmp_zerolt_zeroge_zeror%   ops             r   impl%int_signed_unsigned_cmp.<locals>.implh  s     &&sD(499a2HI%%b$A0FG''D8nnX8!'COOSIIr   r   r   r   s   ` r   int_signed_unsigned_cmpr   g  s    J  Kr   c                    ^  U 4S jnU$ )Nc                   > Uu  pEUR                  SU[        UR                  S5      5      nUR                  T
[        UR                  S5      U5      nUR                  T
XE5      nUR	                  XgU5      n	[        XUR                  U	5      $ r   r   r   s             r   r   %int_unsigned_signed_cmp.<locals>.impl|  s}    &&sE8EJJ3JK%%b(5::q*A5I''D8nnX8!'COOSIIr   r   r   s   ` r   int_unsigned_signed_cmpr   {  s    J Kr   c                     Uu  n[        UR                  S 5      nUR                  SXE5      nUR                  U5      nUR	                  XgU5      n[        XUR                  U5      $ r   )r   r6   r9   negr   r   r   )	r   r   r   r   rD   rF   ltznegatedr%   s	            r   int_abs_implr     s[    
CQAFFD!D


c1
+Ckk!nG
..q
)CgEEr   c                 8    Uu  n[        XUR                  U5      $ r   r   r   r   r   r   r   rD   s        r   identity_implr         
CQgCCr   c                 8    Uu  n[        XUR                  U5      $ r   r   r   s        r   uint_abs_implr     r   r   c                     UR                   u  pEUu  pgU R                  XXBR                  5      nU R                  XXRR                  5      nUR                  Xg5      n[	        XUR                  U5      $ r   )r   r   r   shlr   	r   r   r   r   valtyamttyr   amtr%   s	            r   int_shl_implr     s]    XXNUJS
,,wUOO
<C
,,wUOO
<C
++c
CgEEr   c                 @   UR                   u  pEUu  pgU R                  XXBR                  5      nU R                  XXRR                  5      nUR                  R                  (       a  UR	                  Xg5      nOUR                  Xg5      n[        XUR                  U5      $ r   )r   r   r   r   ashrlshrr   r   s	            r   int_shr_implr     sx    XXNUJS
,,wUOO
<C
,,wUOO
<C
ll3$ll3$gEEr   c                     UR                   u  pEUu  pgU R                  XXBR                  5      nU R                  XXRR                  5      n	UR                  X5      n
[	        XUR                  U
5      $ r   )r   r   r   r8   r   r   r   r   r   atbtavbvcavcbcr%   s              r   int_and_implr     s]    xxHRHR
,,wB
8C
,,wB
8C
,,s
 CgEEr   c                     UR                   u  pEUu  pgU R                  XXBR                  5      nU R                  XXRR                  5      n	UR                  X5      n
[	        XUR                  U
5      $ r   )r   r   r   or_r   r   s              r   int_or_implr     ]    xxHRHR
,,wB
8C
,,wB
8C
++c
CgEEr   c                     UR                   u  pEUu  pgU R                  XXBR                  5      nU R                  XXRR                  5      n	UR                  X5      n
[	        XUR                  U
5      $ r   )r   r   r   r?   r   r   s              r   int_xor_implr     r   r   c                     UR                   u  nUu  nUR                  U5      nU R                  XXBR                  5      n[	        XUR                  U5      $ r   )r   r   r   r   r   r   r   r   r   typr   r%   s          r   int_negate_implr    sI    HHESES
++c
C
,,wS//
:CgEEr   c                     UR                   u  nUu  nU R                  XXBR                  5      n[        XUR                  U5      $ r   r   r   r   r   r   s          r   int_positive_implr    ;    HHESES
,,wS//
:CgEEr   c           
         UR                   u  nUu  nUR                  U[        UR                  [	        SUR                  R
                  -  S5      5      5      nU R                  XXBR                  5      n[        XUR                  U5      $ )N1   )	r   r?   r   r6   intwidthr   r   r   r   s          r   int_invert_implr    sj    HHESES
++c8CHHc#2F.JK
LC
,,wS//
:CgEEr   c                    Uu  n[        UR                  S5      n[        UR                  S5      n[        UR                  S5      nUR                  SXG5      nUR                  SXG5      n	[        R
                  " XR                  5      n
UR                  S5      nUR                  S5      nUR                  S5      nUR                  S	5      nUR                  S
5      nUR                  XU5        UR                  U5         UR                  Xz5        UR                  U5        SSS5        UR                  U5         UR                  XU5        SSS5        UR                  U5         UR                  XZ5        UR                  U5        SSS5        UR                  U5         UR                  Xj5        UR                  U5        SSS5        UR                  U5        UR                  U
5      n[        XUR                  U5      $ ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nz= f)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    CQ
1661
C
1662
CAFFAD$$T13H!!#q/G!!'662G((1G++J7J''/F''/F((1GOOHz2			G	$d$w 
% 
		J	'0 
( 
		F	#c#w 
$ 
		F	#c#w 
$ G$
,,w
CgEE# 
%	$ 
(	' 
$	# 
$	#s0   #H?H+#H-'#H>
H
H*-
H;>
Ic                     UR                   u  nUu  nU R                  XXBR                  5      nUR                  U5      n[	        XUR                  U5      $ r   )r   r   r   r   r   r   s          r   bool_negate_implr    sI    HHESES
,,wS//
:C
++c
CgEEr   c                     UR                   u  nUu  nU R                  XXBR                  5      n[        XUR                  U5      $ r   r  r   s          r   bool_unary_positive_implr    r  r   c                 N    UR                   " U6 n[        XUR                  U5      $ r   )faddr   r   r   s        r   real_add_implr"  f  #    
,,
CgEEr   c                 N    UR                   " U6 n[        XUR                  U5      $ r   )fsubr   r   r   s        r   real_sub_implr&  k  r#  r   c                 N    UR                   " U6 n[        XUR                  U5      $ r   )r   r   r   r   s        r   real_mul_implr(  p  r#  r   c                     [         R                  " XS   5         U R                  R                  US5        S S S 5        UR                  " U6 n[        XUR                  U5      $ ! , (       d  f       N4= f)Nr/   rq   )r
   rd   ra   rb   rr   r   r   r   s        r   real_div_implr*  u  sX    	q'	*,,W6KL 
+
,,
CgEE 
+	*s   A%%
A3c                    UR                   UR                   :X  d   eUR                   nUR                  nU R                  SUR                   /5      n[        R                  " XDU[        R
                  " U5      45      n[        R                  " XWU5      nUR                  (       ak  SUl	        [        R                  " UR                  S5      5      n	UR                  u  pn[        X	X5      u  pU	R                  X5        U	R                  U5        [        R                   " X5      nUR#                  XX<45      nXR%                  U5      4$ )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_divmodrD  |  s   66QVVffG^^FOO/!&&:E??7gr~~g7N$OPD		'	'e	<B	#
LL!6!6w!?@	ww(RD"cw0D||BA-H\\$'''r   c           	         [         R                  " XR                  5      n[         R                  " XR                  5      n[         R                  " XR                  5      nUR                  X#5      nUR	                  UR                  X'5      U5      nUR                  Xt5        UR                  X5        UR                  S5      n	UR                  S5      n
UR                  S5      nUR                  SXy5      nUR                  SX95      nUR                  SXy5      nUR                  USS9 u  nnU   UR                  SX5      nUR                  U5         UR                  UR                  X5      U5        UR                  UR                  Xs5      U5        S S S 5        S S S 5        U   UR                  XU	5      nUR                  Xt5        S S S 5        S S S 5        AAUR                  U5      nUR                  SX5      nUR                  U5         [        R                   [        R"                  S.nU[%        UR                  5         nU R'                  [(        R*                  [,        R.                  " UU5      5      nU" X/5      nUR                  UU5      nUR                  UU5      n[1        UR                  S	5      nUR                  S
UU5      nUR                  UUU5      nUR                  UU5        S S S 5        [         R2                  " UU5         UR5                  X5      nUR                  X5        UR	                  UR5                  X5      U5      nUR                  UU5        S S S 5        UR                  U5      UR                  U5      4$ ! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       GN= f! , (       d  f       N= f! , (       d  f       N= f)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	pfloordivrB  rA  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   r6  r6    s    \ w0Dw0D##GWW5I
,,r
C
,,w||B,b
1CMM#MM# 773<DGGDME
''#,C''c8J!!#r0F""32G	D	15Rnk !( 5 5dF L!23gll34d;gll33T: 4   ..5CMM#$	  
2  	S
,,t
C%%dC6J		$ %!&0s277|,&&tzz'-'7'7('KM7E*||C2||Hc2%##Ct<>>$h?h	* 
% 
w
	+ll3$c <<S 5r:h	*	 
, <<	"GLL$666G 43 ^ [ 
2	1* 
%	$ 
,	+so   .O4$N2AN N2#
O-$OOC*O( AO9 
N/*N22
O	<O
O	O
O%(
O69
Pc                    Uu  pV[         R                  " XR                  SS9n[         R                  " XR                  SS9nUR                  [         R                  " X5      SS9 u  pU	   U R
                  R                  USU5      (       dD  UR                  XV5      nUR                  XV5      nUR                  X5        UR                  X5        S S S 5        U
   [        XXV5      u  pUR                  X5        UR                  X5        S S S 5        S S S 5        [         R                  " UUR                  U5      UR                  U5      45      $ ! , (       d  f       N= f! , (       d  f       N^= f! , (       d  f       Ng= f)NrX   rY   r[   Fr2   zmodulo by zero)r
   r_   r6   r@   r`   ra   rb   rr   rH  rA   rD  rj   rB   )r   r   r   r   locrD   rE   rX   r[   rd   re   rf   rg   s                r   real_divmod_implrh    s9   DAwV<D


gvvE
:C	//;E 
4w&&77,c3 3 LL&LL&a&a%  w6DAMM!"MM!! 
  g&||D17<<3DEG G W [
 
s=   'E7,A'E
E71E&E7
E#	E7&
E4	0E77
Fc                 L   Uu  pV[         R                  " XR                  5      nUR                  [         R                  " X5      SS9 u  pU   U R
                  R                  USU5      (       d"  UR                  XV5      n
UR                  X5        S S S 5        U	   [        XXV5      u  pUR                  X5        S S S 5        S S S 5        [        XUR                  UR                  U5      5      $ ! , (       d  f       Nf= f! , (       d  f       NM= f! , (       d  f       NV= f)NFr2   rf  )r
   r_   r6   r@   r`   ra   rb   rH  rA   rD  r   r   rB   )r   r   r   r   rg  rD   rE   r%   rd   re   r[   _s               r   real_mod_implrk    s    DA


gvv
.C	//;E 
4w&&77,c3 3 ll1(c'   18FAMM## 
 g%ll3/1 1 W [
 
=   	DAC3
D D=D3
D	=D
D	D
D#c                 L   Uu  pV[         R                  " XR                  5      nUR                  [         R                  " X5      SS9 u  pU   U R
                  R                  USU5      (       d"  UR                  XV5      n
UR                  X5        S S S 5        U	   [        XXV5      u  pUR                  X5        S S S 5        S S S 5        [        XUR                  UR                  U5      5      $ ! , (       d  f       Nf= f! , (       d  f       NM= f! , (       d  f       NV= f)NFr2   rq   )r
   r_   r6   r@   r`   ra   rb   rr   rA   rD  r   r   rB   )r   r   r   r   rg  rD   rE   r%   rd   re   rX   rj  s               r   real_floordiv_implrn  +  s    DA


gvv
.C	//;E 
4w&&77.5 5 ||A)d(  !'A9GDMM$$ 
 g%ll3/1 1 W [
 
rl  c                 $   Uu  pEUR                   nU R                  (       a)  U R                  [        R                  U5      nU" X5      nO0UR                  SUR                  /5      n	UR                  XU45      n[        XUR                  U5      $ )Nzllvm.pow)
r.  implement_powi_as_math_callrN  r   r   declare_intrinsicr6   r8  r   r   )
r   r   r   r   rD   rE   r.  impr%   r<  s
             r   real_power_implrs  >  sx    DA^^F**""488S1' %%j166(;ll21v&gEEr   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ r   rJ  r   r   r   s        r   real_lt_implrv  J  *    


s
*T
*CgEEr   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ r   ru  r   s        r   real_le_implry  O  *    


t
+d
+CgEEr   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ r   ru  r   s        r   real_gt_implr|  T  rw  r   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ r   ru  r   s        r   real_ge_implr~  Y  rz  r   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ r   ru  r   s        r   real_eq_implr  ^  rz  r   c                 V    UR                   " S/UQ76 n[        XUR                  U5      $ r   )rI  r   r   r   s        r   real_ne_implr  c  s*    

 
 
-
-CgEEr   c                     UR                   u  n[        R                  " XD5      nU R                  [        R
                  U5      nU" X5      $ r   )r   r   r   rN  r   fabs)r   r   r   r   rC   r   s         r   real_abs_implr  h  s>    88DR


2
"C		3/Dr   c                 d    SSK Jn  UR                  XS   5      n[        XUR                  U5      $ Nr   mathimpl)numba.cpythonr  negate_realr   r   )r   r   r   r   r  r%   s         r   real_negate_implr  o  s,    &


wQ
0CgEEr   c                     UR                   u  nUu  nU R                  XXBR                  5      n[        XUR                  U5      $ r   r  r   s          r   real_positive_implr  u  r  r   c           	      `   Uu  n[        UR                  S5      n[        UR                  S5      n[        UR                  S5      n[        R                  " XR                  5      nUR	                  SXG5      n	UR	                  SXG5      n
UR                  U	5       u  pU   UR                  XX5        SSS5        U   UR                  U
5       u  pU   UR                  Xh5        SSS5        U   UR                  XH5        SSS5        SSS5        SSS5        SSS5        UR                  U5      n[        XUR                  U5      $ ! , (       d  f       N= f! , (       d  f       N{= f! , (       d  f       Np= f! , (       d  f       Ny= f! , (       d  f       N= f! , (       d  f       N= f)z
np.sign(float)
r/   r1   r   r   r4   N)
r   r6   r
   r_   rJ  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  |  s8    CQ
1661
C
1662
CAFFAD!!'662G!!#q/F!!#q/F		 $:WMM#' (,BWMM#/   MM!- ! )  
! ,,w
CgEE W W [ )( [ 
!	 s   F!E
3
F=FE=E	&
E=0E,	E=
FF

E	F
E)%E=,
E:6E==
FF
F	F
F-c                 R    U R                  XUS9nUR                  n[        XX%5      $ Nr   )make_complexrealr   r   r   r   r   cplxr%   s         r   complex_real_implr    -    E:D
))Cg99r   c                 R    U R                  XUS9nUR                  n[        XX%5      $ r  )r  imagr   r  s         r   complex_imag_implr    r  r   c                     SSK Jn  U R                  XR                  S   US   5      nUR	                  XR
                  5      Ul        UR                  5       n[        XUR                  U5      $ r  )	r  r  r  r   r  r  	_getvaluer   r   )r   r   r   r   r  zr%   s          r   complex_conjugate_implr    sW    &Whhqk47;A!!'662AF
++-CgEEr   c                     [        XX#5      $ r   r   )r   r   r   r   s       r   real_real_implr    s    g;;r   c                 Z    [         R                  " UR                  5      n[        XX$5      $ r   )r
   get_null_valuer6   r   )r   r   r   r   r%   s        r   real_imag_implr    s#    

 
 
,Cg99r   c                 6    [        XUR                  US   5      $ Nr   r   r   r   r   r   s       r   real_conjugate_implr    s    gaIIr   c           	         Uu  pEUR                   S   nUR                  nU R                  XUS9nU R                  XUS9n	U R                  X5      n
UR                  nUR	                  5       nU	R	                  5       nU
R	                  5       nU R                  US5      nU R                  US5      nUR                  SU	R                  U5      nUR                  SU	R                  U5      nUR                  UU5      nUR                  U5       u  nnU   [        XX$U45      nU R                  XUS9nUR                  U
l        UR                  U
l        S S S 5        U   [        R                  S[        R                  S0U   n[        R                   " [        R"                  " 5       UR$                  /S-  5      n[&        R(                  " UUU5      nUR+                  UXU45        S S S 5        S S S 5        UR-                  U5      n[/        XUR0                  U5      $ ! , (       d  f       N= f! , (       d  f       NO= f! , (       d  f       NX= f)Nr   r  r  r0   numba_cpowf
numba_cpow   )r   underlying_floatmake_helperr.  _getpointerget_constantrJ  r  r  r8   r@   complex_mul_implr   	complex64
complex128r   r0  VoidTyper6   r
   r2  r8  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_namer;  cpows                              r   complex_power_implr    s   HR	!B


CGr2AGr2AG(A^^F	
B	
B	
B 

sA
&CQ'D((qvvs;M))$=N||M>:H		"&7tY"7Sr(CC&&w#&>DYYAFYYAF     , I ??2;;=277)a-@D11&$	JDLL|,  
#$ ,,r
CgEE% T Y 
#	"s>   IAH!
IB
H2)I!
H/	+I2
I 	<I
Ic                    Uu  pEUR                   S   nU R                  XUS9nU R                  XUS9nU R                  X5      n	UR                  n
UR                  nUR                  nUR                  nUR	                  X5      U	l        UR	                  X5      U	l        U	R                  5       n[        XUR                  U5      $ 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        HR	!BW3AW3AW)A	A	A	A	A\\!AF\\!AF
++-CgEEr   c                    Uu  pEUR                   S   nU R                  XUS9nU R                  XUS9nU R                  X5      n	UR                  n
UR                  nUR                  nUR                  nUR	                  X5      U	l        UR	                  X5      U	l        U	R                  5       n[        XUR                  U5      $ r  )r   r  r  r  r%  r  r   r   r  s                  r   complex_sub_implr    r  r   c                    Uu  pEUR                   S   nU R                  XUS9nU R                  XUS9nU R                  X5      n	UR                  n
UR                  nUR                  nUR                  nUR	                  X5      nUR	                  X5      nUR	                  X5      nUR	                  X5      nUR                  X5      U	l        UR                  UU5      U	l        U	R                  5       n[        XUR                  U5      $ )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     HR	!BW3AW3AW)A	A	A	A	A	a	B	a	B	a	B	a	B\\"!AF\\"b!AF
++-CgEEr   nanc                 Z    S nU R                  XX#5      n[        XUR                  U5      $ )Nc                     U R                   nU R                  nUR                   nUR                  nU(       d  U(       d  [        S5      e[        U5      [        U5      :  aB  U(       d  [	        [
        [
        5      $ XT-  nXEU-  -   n[	        X#U-  -   U-  X2U-  -
  U-  5      $ U(       d  [	        [
        [
        5      $ XE-  nXF-  U-   n[	        U R                   U-  U R                  -   U-  U R                  U-  U R                   -
  U-  5      $ )Nzcomplex division by zero)r  r  r   r   complexNAN)r#   r$   arealaimagbrealbimagratiodenoms           r   complex_div%complex_div_impl.<locals>.complex_divE  s    U#$>??u:U#sC((MEEM)E&%/&%/1 1
 sC((MEME)E%!&&(E1%!&&(E13 3r   r   r   r   )r   r   r   r   r  r%   s         r   complex_div_implr  D  s.    36 
"
"7
CCgEEr   c                 B   SSK Jn  UR                  u  nUu  nU R                  XUS9nU R                  X5      nUR	                  XR
                  5      Ul        UR	                  XR                  5      Ul        UR                  5       n[        XUR                  U5      $ )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    &HHESES  S 9E


w
,C##GZZ8CH##GZZ8CH
--/CgEEr   c                 8    Uu  n[        XUR                  U5      $ r   r   r   r   r   r   r   s        r   complex_positive_implr  p  s    ESgEEr   c                 T   Uu  pEUR                   S   nU R                  XUS9nU R                  XUS9nUR                  SUR                  UR                  5      n	UR                  SUR                  UR                  5      n
UR                  X5      n[        XUR                  U5      $ )Nr   r  r0   )r   r  rJ  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    HR
((1+CW4AW4A''affaff=L''affaff=L
,,|
2CgEEr   c                 T   Uu  pEUR                   S   nU R                  XUS9nU R                  XUS9nUR                  SUR                  UR                  5      n	UR                  SUR                  UR                  5      n
UR                  X5      n[        XUR                  U5      $ )Nr   r  r5   )r   r  rI  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    HR
((1+CW4AW4A))$?L))$?L
++l
1CgEEr   c                 Z    S nU R                  XX#5      n[        XUR                  U5      $ )z!
abs(z) := hypot(z.real, z.imag)
c                 X    [         R                  " U R                  U R                  5      $ r   )r   hypotr  r  )r  s    r   complex_abs%complex_abs_impl.<locals>.complex_abs  s    zz!&&!&&))r   r  )r   r   r   r   r  r%   s         r   complex_abs_implr    s.    * 
"
"7
CCgEEr   c                     US   $ )z3
The no-op .item() method on booleans and numbers.
r   r   r  s       r   number_item_implr    s     7Nr   c                     UR                   u  nUu  nU R                  XXBR                  5      nUR                  U5      n[	        XUR                  U5      $ r   )r   r   r   r<   r   )r   r   r   r   r   r   istruer%   s           r   number_not_implr    sI    HHESES\\'__=F
,,v
CgEEr   c                     Uu  nU$ r   r   r  s        r   bool_as_boolr    s    ESJr   c                 X    Uu  nUR                  SU[        UR                  S5      5      $ )Nr5   r   )r   r   r6   r  s        r   int_as_boolr    s)    ES  sHSXXq,ABBr   c                 X    Uu  nUR                  SU[        UR                  S5      5      $ )Nr5   rF  )rI  r   r6   r  s        r   float_as_boolr    s)    ES!!$Xchh-DEEr   c                    UR                   u  nUu  nU R                  XU5      nUR                  UR                  p[	        UR
                  S5      n	UR                  SXy5      n
UR                  SX5      nUR                  X5      $ )NrF  r5   )r   r  r  r  r   r6   rI  r   )r   r   r   r   r   r   r  r  r  zeroreal_istrueimag_istrues               r   complex_as_boolr    sx    HHESES  s3EUZZ$DIIs#D((t:K((t:K;;{00r   c                     U R                  UUR                  UR                  5      nU R                  XUR                  U5      $ r   )get_constant_genericliteral_typeliteral_valuer   r   r   fromtytotyr   lits         r   literal_int_to_numberr    sB    

&
&
C
 <<f&9&94@@r   c                 P   UR                   UR                   :X  a  U$ UR                   UR                   :  a   UR                  X@R                  U5      5      $ UR                  (       a   UR	                  X@R                  U5      5      $ UR                  X@R                  U5      5      $ 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                 B    UR                  X@R                  U5      5      $ r   )inttoptrr  r  s        r   integer_to_voidptrr     s    C!7!7!=>>r   c                     U R                  U5      nUR                  UR                  :  a  UR                  XE5      $ UR                  XE5      $ r   )r  ry   fpextfptruncr   r   r  r  r   r   s         r   float_to_floatr%    s@    

 
 
&C&}}S&&s((r   c                     U R                  U5      nUR                  (       a  UR                  XE5      $ UR                  XE5      $ r   )r  r   sitofpuitofpr$  s         r   integer_to_floatr)    s7    

 
 
&C}}~~c''~~c''r   c                     U R                  U5      nUR                  (       a  UR                  XE5      $ UR                  XE5      $ r   )r  r   fptosifptouir$  s         r   float_to_integerr-    s7    

 
 
&C{{~~c''~~c''r   c                     U R                  XX#R                  5      nU R                  UR                  S5      nU R                  X5      nXWl        Xgl        UR                  5       $ r  )r   r  r  r  r  r  r  )r   r   r  r  r   r  r  r  s           r   non_complex_to_complexr/  !  sW    <<f.C.CDD 5 5q9D  /EJJ??r   c                    UR                   nUR                   nU R                  XUS9nU R                  X5      nU R                  XR                  XV5      Ul        U R                  XR                  XV5      Ul        UR                  5       $ r  )r  r  r   r  r  r  )	r   r   r  r  r   srctydsttysrcdsts	            r   complex_to_complexr5  +  su    ##E!!E


wc

:C


w
-C||GXXu<CH||GXXu<CH==?r   c                 &    U R                  XU5      $ r   )is_truer  s        r   any_to_booleanr8  6  s    ??7C00r   c                     UR                  U[        R                  " S5      5      nU R                  X[        R
                  U5      $ )N    )r  r   IntTyper   r   int32)r   r   r  r  r   asints         r   boolean_to_anyr>  :  s1    LLbjjn-E<<T::r   c                     U R                  UUR                  UR                  5      nU R                  XR                  U5      $ r   )r  r  r  r7  r  s         r   literal_int_to_booleanr@  A  s@    

&
&
C
 ??7$7$7==r   c                     UR                   nU R                  XUR                  5      nU R                  XUR                  5      n[        R
                  " XV45      $ r   )r  r  r  r  r   literal_struct)r   r   rC   pyvalr  r  r  s          r   constant_complexrD  M  sL    


C''ejjAD''ejjAD""D<00r   c                     [        U[        R                  5      (       a  [        U5      nU R	                  U5      nU" U5      $ r   )r\   npbool_boolr  )r   r   rC   rC  r   s        r   constant_integerrI  V  s8    
 %""U

 
 
$Cu:r   c                 4   [        U [        R                  [        R                  45      (       ai  [        U[        R                  R
                  5      (       a?  U R                  UR                  R                  :w  a  [        R                  " S5      eS nU$ gg)z(Typing for the np scalar 'view' method. zOChanging the dtype of a 0d array is only supported if the itemsize is unchangedc                     [        X5      $ r   r   )scalarviewtys     r   r   scalar_view.<locals>.implm  s    &))r   N)
r\   r   Floatrw   abstract	DTypeSpecry   r^   r	   TypingError)rL  rM  r   s      r   scalar_viewrS  d  su    6EKK78865>>#;#;<<??fll333$$() )	* = 	9r   r   )sr   r   numpyrF  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*  rD  r6  rh  rk  rn  rs  rv  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-  r/  r5  r8  r>  r@  rD  rI  rS  r   r   r   <module>rZ     sS         2 5 5 /"FFF66r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7ZG21&1&	FF
F
F
F
F
F
FFF@::F<:J'FRF F F. ElF@	FF
	F	FFFF
C
F
14A??)((1;>1r   