
    shP8                     f   S SK r S SKrS SKJr  S SKJrJrJrJr  S SK	J
r
  S SKJrJrJrJr  S SKJr  S SKJr  \
" 5       r\R*                  r/ r\SS	\ R.                  4/-  r\S
S\ R0                  4/-  r\SS\ R2                  4/-  r/ r\SS\ R6                  4/-  r\SS\ R8                  4/-  r\SS\ R:                  4/-  r\SS\ R<                  4/-  r\SS\ R>                  4/-  r\SS\ R@                  4/-  r\SS\ RB                  4/-  r\SS\ RD                  4/-  r\SS\ RF                  4/-  r\S S!\ RH                  4/-  r\S"S#\ RJ                  4/-  r\S$S%\ RL                  4/-  r\S&S'\ RN                  4/-  r\S(S)\ RP                  4/-  r\S*S+\ RR                  4/-  r\S,S-\ RT                  4/-  r\S.S/\ RV                  4/-  r\S0S1\ RX                  4/-  r\S2S3\ RZ                  4/-  r\S4S5\ R\                  4/-  r\S6S7\ R^                  4/-  r\S8S9\ R`                  4/-  r\S:S;\ Rb                  4/-  r\S<S=\ Rd                  4/-  r\S>S?\ Rf                  4/-  r\S@SA\ Rh                  4/-  r0 r5SB\5S/'   SC\5S7'   SD\5S?'   SE\5S'   SF\5S%'   SG\5S''   SH\5S#'   / r6\6SISJ\ Rn                  4/-  r6\6SKSL\ Rp                  4/-  r6\6SMSN\ Rr                  4/-  r6\6SOSP\ Rt                  4/-  r6\6SQSR\ Rv                  4/-  r6\6SSST\ Rx                  4/-  r60 r=SU\=SN'   \" \ R0                  \R|                  5      \" \ R.                  \R|                  5      SV 5       5       r?\" \R                  \R                  \R                  5      SW 5       rA\" \ R2                  \R|                  5      SX 5       rB\" \ R^                  \R                  5      SY 5       rD\" \ RV                  \R                  5      SZ 5       rE\" \ RJ                  \R                  5      S[ 5       rF\" \ RN                  \R                  5      S\ 5       rG\" \ RL                  \R                  5      S] 5       rH\" \ R<                  \R                  5      S^ 5       rI\" \ R8                  \R                  5      S_ 5       rJ\" \ R6                  \R                  5      S` 5       rK\" \ RH                  \R                  5      Sa 5       rL\" \ R:                  \R                  5      Sb 5       rM\" \ Rh                  \R                  5      Sc 5       rNSd rOSe rPSf rQSg rRSh rSSi rTSj rUSk rVSl rW\ H-  u  rXrYrZ\[" \\Y5      r\\[" \\X5      r]\O" \Z\\\5        \O" \Z\\]5        M/     \ HA  u  rXrYrZ\[" \\Y5      r\\[" \\X5      r]\R" \Z\\\5        \R" \Z\\]5        \S" \Z\\]5        \S" \Z\\]5        MC     \6 HA  u  rXrYrZ\[" \\Y5      r\\[" \\X5      r]\V" \Z\\\5        \V" \Z\\]5        \W" \Z\\]5        \W" \Z\\]5        MC     Sm r^\^" \R                  \R                  5        \^" \R                  \R                  5        Sn ra\a" \R                  \R                  5        \a" \R                  \R                  5        So rd\d" \R                  \R                  5        \d" \R                  \R                  5        Sp rg\g" \R                  \R                  5        \g" \R                  \R                  5        Sq rj\j" \R                  \R                  5        \j" \R                  \R                  5        \S" \ R                  \\R                  5        \S" \ R                  \\R                  5        Sr rm\m" \R                  \R                  5        \m" \R                  \R                  5        g)s    N)ir)typestypingcgutilstargetconfig)Registry)float32float64int64uint64)	libdevice)cudaisnandisnanfisinfdisinff	isfinitedfinitefceilceilffloorfloorffabsfabsfexpexpfexpm1expm1ferferfferfcerfcftgammatgammaflgammalgammafsqrtsqrtfloglogflog2log2flog10log10flog1plog1pfacoshacoshfacosacosfcoscosfcoshcoshfasinhasinhfasinasinfsinsinfsinhsinhfatanatanfatanhatanhftantanftrunctruncf	fast_cosf	fast_sinf	fast_tanf	fast_expf
fast_log2ffast_log10f	fast_logfcopysign	copysignfatan2atan2fpowpowffmodfmodfhypothypotf	remainder
remainderf	fast_powfc                 B    U R                  [        R                  S5      $ )Nr   get_constantr   booleancontextbuildersigargss       g/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/mathimpl.pymath_isinf_isnan_intrg   D   s     q11    c                 |   U R                   (       aL  [        R                  " [        [        [        5      nU R	                  [
        R                  U5      nU" X5      $ [        R                  " XS   5         U R                  R                  US5        S S S 5        UR                  " U6 nU$ ! , (       d  f       N= f)N   )zdivision by zero)fastmathr   	signaturer	   get_functionr   fast_fdividefr   if_zeroerror_modelfp_zero_divisionfdiv)rb   rc   rd   re   implress         rf   maybe_fast_truedivru   J   s    w9##I$;$;SAG""__W1g.00:OP /llD!
 /.s   7B--
B;c                 B    U R                  [        R                  S5      $ )Nrj   r^   ra   s       rf   math_isfinite_intrw   W   s    q11rh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ N)r   fp16hsinxs    rf   fp16_sinfp16_sin_impl.<locals>.fp16_sin^       yy~~a  rh   compile_internal)rb   rc   rd   re   r   s        rf   fp16_sin_implr   \       ! ##GsAArh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ rz   )r   r{   hcosr}   s    rf   fp16_cosfp16_cos_impl.<locals>.fp16_cosf   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_cos_implr   d   r   rh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ rz   )r   r{   hlogr}   s    rf   fp16_logfp16_log_impl.<locals>.fp16_logn   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_log_implr   l   r   rh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ rz   )r   r{   hlog10r}   s    rf   
fp16_log10#fp16_log10_impl.<locals>.fp16_log10v       yy""rh   r   )rb   rc   rd   re   r   s        rf   fp16_log10_implr   t       # ##GCCrh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ rz   )r   r{   hlog2r}   s    rf   	fp16_log2!fp16_log2_impl.<locals>.fp16_log2~       yyq!!rh   r   )rb   rc   rd   re   r   s        rf   fp16_log2_implr   |       " ##GBBrh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ rz   )r   r{   hexpr}   s    rf   fp16_expfp16_exp_impl.<locals>.fp16_exp   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_exp_implr      r   rh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ rz   )r   r{   hfloorr}   s    rf   
fp16_floor#fp16_floor_impl.<locals>.fp16_floor   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_floor_implr      r   rh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ rz   )r   r{   hceilr}   s    rf   	fp16_ceil!fp16_ceil_impl.<locals>.fp16_ceil   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_ceil_implr      r   rh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ rz   )r   r{   hsqrtr}   s    rf   	fp16_sqrt!fp16_sqrt_impl.<locals>.fp16_sqrt   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_sqrt_implr      r   rh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ rz   )r   r{   habsr}   s    rf   	fp16_fabs!fp16_fabs_impl.<locals>.fp16_fabs   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_fabs_implr      s    ! ##GBBrh   c                 ,    S nU R                  XX#5      $ )Nc                 @    [         R                  R                  U 5      $ rz   )r   r{   htruncr}   s    rf   
fp16_trunc#fp16_trunc_impl.<locals>.fp16_trunc   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_trunc_implr      r   rh   c                 :   ^^ UU4S jn[        U T5      " U5        g )Nc                    > U R                  T[        R                  " [        R                  T5      5      nU" X5      nU R                  X[        R                  [        R                  5      $ rz   )rm   r   rl   r   int32castr`   )rb   rc   rd   re   libfunc_implresultlibfunctys         rf   lower_boolean_impl(impl_boolean.<locals>.lower_boolean_impl   sO    ++G,2,<,<U[[",MOg,||GU[[%--HHrh   lower)keyr   r   r   s    `` rf   impl_booleanr      s    I 
#rN%&rh   c                    ^^ UU4S jnU$ )Nc                   > TnS nT[         :X  a0  U R                  (       a  [        R                  TR                  5      nUb  [        [        U5      nU R                  U[        R                  " TT5      5      nU" X5      $ rz   )
r	   rk   unarys_fastmathget__name__getattrr   rm   r   rl   	rb   rc   rd   re   actual_libfuncfast_replacementr   r   r   s	          rf   lower_unary_impl.get_lower_unary_impl.<locals>.lower_unary_impl   su     =W--.2273C3CD'$Y0@AN++N,2,<,<R,DFG**rh    r   r   r   r   s    `` rf   get_lower_unary_implr      s    + rh   c                    SS[         R                  4n[        U/-    HN  u  p4nX:X  d  M  U[        :X  a  [	        [
        U5      nOU[        :X  a  [	        [
        U5      n[        XQW5      s  $    [        SU  SU S35      e)NtanhtanhfImplementation of  for 
 not found)	mathr   unarysr	   r   r   r
   r   RuntimeError)fnr   
tanh_implsfname64fname32r   rs   s          rf   get_unary_impl_for_fn_and_tyr      s    
 '499-J!':,!6#9W}y'2wy'2'66 "7 +B4uRD
C
DDrh   c                 >    [        XU5      n[        X5      " U5        g rz   )r   r   r   s       rf   
impl_unaryr      s    +CW=	#N#$rh   c                 4   ^ U4S jn[        X5      " U5        g )Nc                 `  > UR                   S   [        :X  a  UR                  nO1UR                   S   [        :X  a  UR                  nOSn[        U5      eU" US   [        R                  " 5       5      n[        R                  " [        [        5      nU R                  TU5      nU" X/5      $ )Nr   z<Only 64-bit integers are supported for generic unary int opsre   r   sitofpr   uitofp	TypeErrorr   
DoubleTyper   rl   r
   rm   	rb   rc   rd   re   convertmargr   r   s	           rf   lower_unary_int_impl,impl_unary_int.<locals>.lower_unary_int_impl   s    88A;%nnGXXa[F"nnGNAA,d1gr}}/w0++GS9GU++rh   r   )r   r   r   r   s     ` rf   impl_unary_intr      s    , 
#N'(rh   c                    ^^ UU4S jnU$ )Nc                   > TnS nT[         :X  a0  U R                  (       a  [        R                  TR                  5      nUb  [        [        U5      nU R                  U[        R                  " TTT5      5      nU" X5      $ rz   )
r	   rk   binarys_fastmathr   r   r   r   rm   r   rl   r   s	          rf   lower_binary_impl0get_lower_binary_impl.<locals>.lower_binary_impl   sw     =W--/33G4D4DE'$Y0@AN++N,2,<,<RR,HJG**rh   r   r   r   r   r  s    `` rf   get_lower_binary_implr     s    + rh   c                     [          HN  u  p#nX:X  d  M  U[        :X  a  [        [        U5      nOU[        :X  a  [        [        U5      n[        XAW5      s  $    [        SU  SU S35      e)Nr   r   r   )binarysr	   r   r   r
   r  r   )r   r   r   r   r   rs   s         rf   get_binary_impl_for_fn_and_tyr	    sf    !(#9W}y'2wy'2($77 ") +B4uRD
C
DDrh   c                 @    [        XU5      n[        XU5      " U5        g rz   )r  r   r  s       rf   impl_binaryr    s    -cw?	#2()rh   c                 6   ^ U4S jn[        XU5      " U5        g )Nc                   > UR                   S   [        :X  a  UR                  nO1UR                   S   [        :X  a  UR                  nOSn[        U5      eU Vs/ s H  od" U[        R                  " 5       5      PM      nn[        R                  " [        [        [        5      nU R                  TU5      nU" X5      $ s  snf )Nr   z=Only 64-bit integers are supported for generic binary int opsr   r   s	           rf   lower_binary_int_impl.impl_binary_int.<locals>.lower_binary_int_impl  s    88A;%nnGXXa[F"nnGOAA,9=>#R]]_->w9++GS9G** ?s   %C r   )r   r   r   r  s     ` rf   impl_binary_intr    s    + 
#2,-rh   c                 t   ^ ^ UU 4S jn[        [        R                  T [        R                  5      " U5        g )Nc                    > [         R                  " TT[        R                  5      nU R	                  TU5      nU" X5      $ rz   r   rl   r   r   rm   )rb   rc   rd   re   powi_sigr   r   r   s         rf   lower_pow_impl_int(impl_pow_int.<locals>.lower_pow_impl_intE  s8    ##BEKK8++GX>G**rh   )r   r   rT   r   r   )r   r   r  s   `` rf   impl_pow_intr  D  s$    +
 
$((B$%78rh   c                    ^ ^^ [         R                  " T S5      mUUU 4S jn[        [        R                  T 5      " U5        g )N   c                 f   > [         R                  " TT5      nU R                  TU5      nU" X5      $ rz   r   rl   rm   )	rb   rc   rd   re   modf_sigr   r   rettyr   s	         rf   lower_modf_impl"impl_modf.<locals>.lower_modf_implT  s2    ##E2.++GX>G**rh   )r   UniTupler   r   modf)r   r   r  r  s   `` @rf   	impl_modfr"  Q  s-    NN2q!E+
 
$))R)rh   c                    ^ ^^ [         R                  " T [         R                  45      mUUU 4S jn[        [        R
                  T 5      " U5        g )Nc                 f   > [         R                  " TT5      nU R                  TU5      nU" X5      $ rz   r  )	rb   rc   rd   re   	frexp_sigr   r   r  r   s	         rf   lower_frexp_impl$impl_frexp.<locals>.lower_frexp_implc  s2    $$UB/	++GY?G**rh   )r   Tupler   r   r   frexp)r   r   r&  r  s   `` @rf   
impl_frexpr*  `  s5    KKU[[)*E+
 
$**b*+rh   c                 t   ^ ^ UU 4S jn[        [        R                  T [        R                  5      " U5        g )Nc                    > [         R                  " TT[        R                  5      nU R	                  TU5      nU" X5      $ rz   r  )rb   rc   rd   re   	ldexp_sigr   r   r   s         rf   lower_ldexp_impl$impl_ldexp.<locals>.lower_ldexp_implp  s8    $$RU[[9	++GY?G**rh   )r   r   ldexpr   r   )r   r   r.  s   `` rf   
impl_ldexpr1  o  s$    +
 
$**b%++&'78rh   c                 V   ^ ^ UU 4S jn[        [        R                  T 5      " U5        g )Nc                    >^ ^^ S nUUU UU	4S jnUU4S jnT	[         :X  a%  T R                  (       a  U" 5       nUS:  a  U" 5       $ U" 5       $ )Nc                  `    [         R                  " 5       R                  5       n U R                  $ rz   )r   ConfigStacktopcompute_capability)flagss    rf   get_compute_capabilityBimpl_tanh.<locals>.lower_tanh_impl.<locals>.get_compute_capability~  s%     ,,.224E+++rh   c                  h   > [         R                  " TT5      n TR                  TU 5      nU" TT5      $ rz   r  )tanh_sigr   re   rc   rb   r   r   s     rf   tanh_impl_libdevice?impl_tanh.<locals>.lower_tanh_impl.<locals>.tanh_impl_libdevice  s4    ''B/H"//BL..rh   c                     > [         R                  " [         R                  " 5       [         R                  " 5       /5      n [         R                  " U SS5      nTR	                  UT5      $ )Nztanh.approx.f32 $0, $1;z=f,f)r   FunctionType	FloatType	InlineAsmcall)fntyasmre   rc   s     rf   tanhf_impl_fastmath?impl_tanh.<locals>.lower_tanh_impl.<locals>.tanhf_impl_fastmath  sF    ??2<<>BLLN3CDD,,t%>GC<<T**rh   )      )r	   rk   )
rb   rc   rd   re   r9  r=  rF  ccr   r   s
   `` `    rf   lower_tanh_impl"impl_tanh.<locals>.lower_tanh_impl}  sI    	,	/ 	/
	+
 =W--')BU{*,,"$$rh   )r   r   r   )r   r   rK  s   `` rf   	impl_tanhrM  |  s    %, 
$))R)rh   c                    ^ ^ UU 4S jn[        [        R                  TT5      " U5        [        [        R                  TT5      " U5        [        [        TT5      " U5        g )Nc                 6   > UU4S jnU R                  XX#5      $ )Nc                 J  > UR                   T" S5      :X  a'  UR                  T" S5      :X  a  T" S5      T" S5      -   $ U R                   T" S5      :X  a'  UR                   T" S5      :X  a  T" S5      T" S5      -   $ [        R                  " U R                   U R                  5      n[        R                  " X!R                   5      n[        R
                  " U R                  U R                   5      nXAR                   -  nUR                  T" S5      :w  aJ  U[        R                  " XAR                  -  5      -  nXQR                  [        R                  " U5      -  -  nUT" [        R                  " U5      5      T" [        R                  " U5      T" S5      -  5      -   -  $ )Ng        g      ?y                y              ?)
realimagr   rX   rT   rR   r   r)   r5   r=   )abvabslenatphasectyftys         rf   cpow_internal3cpow_implement.<locals>.core.<locals>.cpow_internal  s0   vvS!affC&83x#d)++3s8##c((:3x#d)++::affaff-D((4(CAFFAFF+BKEvvS!txxVV,,$((4.00#dhhuo.dhhuoD	9:; < <rh   r   )rb   rc   rd   re   r[  rY  rZ  s        rf   corecpow_implement.<locals>.core  s    	<$ ''JJrh   )r   operatorrT   ipow)rZ  rY  r]  s   `` rf   cpow_implementra    sF    K* 
(,,S!$'	(--c"4(	#sCrh   )pr   r_  llvmliter   
numba.corer   r   r   r   numba.core.imputilsr   numba.typesr	   r
   r   r   
numba.cudar   numbar   registryr   booleansisnanisinfisfiniter   r   r   r   r   r   r   r!   gammar%   r'   r)   r+   r-   r/   r1   r3   r5   r7   r9   r;   r=   r?   rA   rC   rE   rG   r   r  rP   rR   rT   rV   rX   rZ   r  Integerrg   truedivru   rw   float16r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r	  r  r  r   r   r   r   impl32impl64r  powifpowir"  modffr!  r*  frexpfr)  r1  ldexpfr0  rM  r   r   ra  	complex64
complex128r   rh   rf   <module>rz     s_      ; ; ( 7 7   :  h$**-. . h$**-. . k9dmm45 5	 FGTYY'
( ( GXtzz*
+ + FGTYY'
( ( E6488$
% % GXtzz*
+ + E6488$
% % FGTYY'
( ( Hi,
- - Hi-
. . FGTYY'
( ( E6488$
% % FGTYY'
( ( GXtzz*
+ + GXtzz*
+ + GXtzz*
+ + FGTYY'
( ( E6488$
% % FGTYY'
( ( GXtzz*
+ + FGTYY'
( ( E6488$
% % FGTYY'
( ( FGTYY'
( ( GXtzz*
+ + E6488$
% % GXtzz*
+ +% % % % ' ) % 
 Zdmm45 5 Wh

+, , UFDHH%& & VWdii() ) Wh

+, , [,78 8 &   tzz5==!tzz5==!2 " "2 x6	 7	 t}}emm$2 %2 txxB  B txxB  B txxB  B tzz5==!D "D tyy%-- C !C txxB  B tzz5==!D "D tyy%-- C !C tyy%-- C !C tyy%-- C !C tzz5==!D "D' E$%
)$ 
E*
.$ &GWcY(FY(Fgv&gv&	 & $GWcY(FY(FsGV$sGV$3v&3' $ %GWcY(FY(FWf%Wf%C'C( %9 U]]IOO , U]]INN +* 
%-- ) 	%-- (, 5==)** + 
5==)// *9 5==)** + 
5==)// **4 
%-- ) 	%-- ( tyy% 0 tyy&).. 16 u}}eoo . u}}e.. /rh   