
    J/PhP8                        d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZmZmZmZ d dlmZ d dlmZ  e
            Zej        Zg Zedd	e j        fgz  Zed
de j        fgz  Zedde j        fgz  Zg Zedde j        fgz  Zedde j        fgz  Zedde j        fgz  Zedde j        fgz  Zedde j        fgz  Zedde j         fgz  Zedde j!        fgz  Zedde j"        fgz  Zedde j#        fgz  Zed d!e j$        fgz  Zed"d#e j%        fgz  Zed$d%e j&        fgz  Zed&d'e j'        fgz  Zed(d)e j(        fgz  Zed*d+e j)        fgz  Zed,d-e j*        fgz  Zed.d/e j+        fgz  Zed0d1e j,        fgz  Zed2d3e j-        fgz  Zed4d5e j.        fgz  Zed6d7e j/        fgz  Zed8d9e j0        fgz  Zed:d;e j1        fgz  Zed<d=e j2        fgz  Zed>d?e j3        fgz  Zed@dAe j4        fgz  Zi Z5dBe5d/<   dCe5d7<   dDe5d?<   dEe5d<   dFe5d%<   dGe5d'<   dHe5d#<   g Z6e6dIdJe j7        fgz  Z6e6dKdLe j8        fgz  Z6e6dMdNe j9        fgz  Z6e6dOdPe j:        fgz  Z6e6dQdRe j;        fgz  Z6e6dSdTe j<        fgz  Z6i Z=dUe=dN<    ee j        ej>                   ee j        ej>                  dV                         Z? eej@        ej        ej                  dW             ZA ee j        ej>                  dX             ZB ee j/        ejC                  dY             ZD ee j+        ejC                  dZ             ZE ee j%        ejC                  d[             ZF ee j'        ejC                  d\             ZG ee j&        ejC                  d]             ZH ee j        ejC                  d^             ZI ee j        ejC                  d_             ZJ ee j        ejC                  d`             ZK ee j$        ejC                  da             ZL ee j        ejC                  db             ZM ee j4        ejC                  dc             ZNdd ZOde ZPdf ZQdg ZRdh ZSdi ZTdj ZUdk ZVdl ZWeD ]8\  ZXZYZZ e[eeY          Z\ e[eeX          Z] eOeZee\            eOeZee]           9eD ]R\  ZXZYZZ e[eeY          Z\ e[eeX          Z] eReZee\            eReZee]            eSeZee]            eSeZee]           Se6D ]R\  ZXZYZZ e[eeY          Z\ e[eeX          Z] eVeZee\            eVeZee]            eWeZee]            eWeZee]           Sdm Z^ e^ej        ej_                    e^ej        ej`                   dn Za eaej        ejb                    eaej        ejc                   do Zd edej        eje                    edej        ejf                   dp Zg egej        ejh                    egej        eji                   dq Zj ejej        ejk                    ejej        ejl                    eSe jl        eejl                    eSe jl        eejl                   dr Zm emej        ejn                    emej        ejo                   dS )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    |                      t          j        d          S )Nr   get_constantr   booleancontextbuildersigargss       S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/mathimpl.pymath_isinf_isnan_intrg   D   s     q111    c                 f   | j         rQt          j        t          t          t                    }|                     t
          j        |          } |||          S t          j        ||d                   5  | j	        
                    |d           d d d            n# 1 swxY w Y    |j        | }|S )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9##I$;SAAtGT"""_Wd1g.. 	Q 	Q00:OPPP	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	Q 	QglD!
s   4BB #B c                 B    |                      t          j        d          S )Nrj   r^   ra   s       rf   math_isfinite_intrw   W   s    q111rh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S N)r   fp16hsinxs    rf   fp16_sinzfp16_sin_impl.<locals>.fp16_sin^       y~~a   rh   compile_internal)rb   rc   rd   re   r   s        rf   fp16_sin_implr   \   -    ! ! ! ##GXsDAAArh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S rz   )r   r{   hcosr}   s    rf   fp16_coszfp16_cos_impl.<locals>.fp16_cosf   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_cos_implr   d   r   rh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S rz   )r   r{   hlogr}   s    rf   fp16_logzfp16_log_impl.<locals>.fp16_logn   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_log_implr   l   r   rh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S rz   )r   r{   hlog10r}   s    rf   
fp16_log10z#fp16_log10_impl.<locals>.fp16_log10v       y"""rh   r   )rb   rc   rd   re   r   s        rf   fp16_log10_implr   t   -    # # # ##GZdCCCrh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S rz   )r   r{   hlog2r}   s    rf   	fp16_log2z!fp16_log2_impl.<locals>.fp16_log2~       yq!!!rh   r   )rb   rc   rd   re   r   s        rf   fp16_log2_implr   |   -    " " " ##GYTBBBrh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S rz   )r   r{   hexpr}   s    rf   fp16_expzfp16_exp_impl.<locals>.fp16_exp   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_exp_implr      r   rh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S rz   )r   r{   hfloorr}   s    rf   
fp16_floorz#fp16_floor_impl.<locals>.fp16_floor   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_floor_implr      r   rh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S rz   )r   r{   hceilr}   s    rf   	fp16_ceilz!fp16_ceil_impl.<locals>.fp16_ceil   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_ceil_implr      r   rh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S rz   )r   r{   hsqrtr}   s    rf   	fp16_sqrtz!fp16_sqrt_impl.<locals>.fp16_sqrt   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_sqrt_implr      r   rh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S rz   )r   r{   habsr}   s    rf   	fp16_fabsz!fp16_fabs_impl.<locals>.fp16_fabs   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_fabs_implr      s-    ! ! ! ##GYTBBBrh   c                 8    d }|                      ||||          S )Nc                 @    t           j                            |           S rz   )r   r{   htruncr}   s    rf   
fp16_truncz#fp16_trunc_impl.<locals>.fp16_trunc   r   rh   r   )rb   rc   rd   re   r   s        rf   fp16_trunc_implr      r   rh   c                 H    fd} t          |           |           d S )Nc                     |                      t          j        t          j                            } |||          }|                     ||t          j        t          j                  S rz   )rm   r   rl   r   int32castr`   )rb   rc   rd   re   libfunc_implresultlibfunctys         rf   lower_boolean_implz(impl_boolean.<locals>.lower_boolean_impl   s[    ++G,2,<U[",M,MO Ogt,,||GVU[%-HHHrh   lower)keyr   r   r   s    `` rf   impl_booleanr      sI    I I I I I I E#rNN%&&&&&rh   c                     fd}|S )Nc                    }d }t           k    r&| j        rt                              j                  }|t          t          |          }|                     |t          j	                            } |||          S 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_implz.get_lower_unary_impl.<locals>.lower_unary_impl   s     ==W-=.2273CDD'$Y0@AAN++N,2,<R,D,DF F|GT***rh    r   r   r   r   s    `` rf   get_lower_unary_implr      s*    + + + + + + rh   c                 $   ddt           j        f}t          |gz   D ]`\  }}}| |k    rT|t          k    rt	          t
          |          }n |t          k    rt	          t
          |          }t          |||          c S at          d|  d| d          )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    
 '49-J!':,!6 7 7#99W}}y'22wy'22'R66666  CBCCRCCC
D
DDrh   c                 Z    t          | ||          } t          | |          |           d S rz   )r   r   r   s       rf   
impl_unaryr      s3    +CW==E#rNN#$$$$$rh   c                 D    fd} t          | |          |           d S )Nc                 h   |j         d         t          k    r|j        }n/|j         d         t          k    r|j        }nd}t          |           ||d         t          j                              }t          j	        t          t                    }|                     |          } |||g          S )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_implz,impl_unary_int.<locals>.lower_unary_int_impl   s    8A;%nGGXa[F""nGGNAA,,gd1gr}//w00++GS99|GcU+++rh   r   )r   r   r   r   s     ` rf   impl_unary_intr      s=    , , , , , E#rNN'(((((rh   c                     fd}|S )Nc                    }d }t           k    r&| j        rt                              j                  }|t          t          |          }|                     |t          j	                            } |||          S rz   )
r	   rk   binarys_fastmathr   r   r   r   rm   r   rl   r   s	          rf   lower_binary_implz0get_lower_binary_impl.<locals>.lower_binary_impl   s     ==W-=/33G4DEE'$Y0@AAN++N,2,<RR,H,HJ J|GT***rh   r   r   r   r   r   s    `` rf   get_lower_binary_implr      s*    + + + + + + rh   c                     t           D ]`\  }}}| |k    rT|t          k    rt          t          |          }n |t          k    rt          t          |          }t          |||          c S at          d|  d| d          )Nr   r   r   )binarysr	   r   r   r
   r   r   )r   r   r   r   r   rs   s         rf   get_binary_impl_for_fn_and_tyr     s    !( 8 8#99W}}y'22wy'22(b$77777  CBCCRCCC
D
DDrh   c                 \    t          | ||          } t          | ||          |           d S rz   )r   r   r   s       rf   impl_binaryr     s7    -c2w??E#r2()))))rh   c                 F    fd} t          | ||          |           d S )Nc                 J   |j         d         t          k    r|j        n/|j         d         t          k    r|j        nd}t          |          fd|D             }t          j        t          t          t                    }| 	                    |          } |||          S )Nr   z=Only 64-bit integers are supported for generic binary int opsc                 J    g | ]} |t          j                               S r   )r   r   ).0r   r   s     rf   
<listcomp>zBimpl_binary_int.<locals>.lower_binary_int_impl.<locals>.<listcomp>#  s+    >>>#R]__-->>>rh   )
re   r   r   r   r   r   r   rl   r
   rm   )rb   rc   rd   re   r   r   r   r   s         @rf   lower_binary_int_implz.impl_binary_int.<locals>.lower_binary_int_impl  s    8A;%nGGXa[F""nGGOAA,,>>>>>>>w99++GS99|GT***rh   r   )r   r   r   r   s     ` rf   impl_binary_intr    sA    + + + + + E#r2,-----rh   c                 r      fd} t          t          j         t          j                  |           d S )Nc                     t          j        t          j                  }|                     |          } |||          S rz   r   rl   r   r   rm   )rb   rc   rd   re   powi_sigr   r   r   s         rf   lower_pow_impl_intz(impl_pow_int.<locals>.lower_pow_impl_intE  s@    #BEK88++GX>>|GT***rh   )r   r   rT   r   r   )r   r   r  s   `` rf   impl_pow_intr  D  sK    + + + + + +
 %E$(B$$%788888rh   c                      t          j         d           fd} t          t          j                   |           d S )N   c                 r    t          j                  }|                     |          } |||          S rz   r   rl   rm   )	rb   rc   rd   re   modf_sigr   r   rettyr   s	         rf   lower_modf_implz"impl_modf.<locals>.lower_modf_implT  s<    #E2..++GX>>|GT***rh   )r   UniTupler   r   modf)r   r   r  r  s   `` @rf   	impl_modfr  Q  s]    N2q!!E+ + + + + + +
 E$)R)))))rh   c                      t          j         t           j        f           fd} t          t          j                   |           d S )Nc                 r    t          j                  }|                     |          } |||          S rz   r  )	rb   rc   rd   re   	frexp_sigr   r   r  r   s	         rf   lower_frexp_implz$impl_frexp.<locals>.lower_frexp_implc  s<    $UB//	++GY??|GT***rh   )r   Tupler   r   r   frexp)r   r   r  r  s   `` @rf   
impl_frexpr  `  sc    KU[)**E+ + + + + + +
 E$*b*+++++rh   c                 r      fd} t          t          j         t          j                  |           d S )Nc                     t          j        t          j                  }|                     |          } |||          S rz   r  )rb   rc   rd   re   	ldexp_sigr   r   r   s         rf   lower_ldexp_implz$impl_ldexp.<locals>.lower_ldexp_implp  s@    $RU[99	++GY??|GT***rh   )r   r   ldexpr   r   )r   r   r  s   `` rf   
impl_ldexpr  o  sK    + + + + + +
 'E$*b%+&&'788888rh   c                 \      fd} t          t          j                   |           d S )Nc                      d } 	fd}fd}	t           k    r! j        r |            }|dk    r
 |            S  |            S )Nc                  Z    t          j                                                    } | j        S rz   )r   ConfigStacktopcompute_capability)flagss    rf   get_compute_capabilityzBimpl_tanh.<locals>.lower_tanh_impl.<locals>.get_compute_capability~  s%     ,..2244E++rh   c                  r    t          j                  }                     |           } |          S rz   r  )tanh_sigr   re   rc   rb   r   r   s     rf   tanh_impl_libdevicez?impl_tanh.<locals>.lower_tanh_impl.<locals>.tanh_impl_libdevice  s<    'B//H"//BBL<...rh   c                      t          j        t          j                    t          j                    g          } t          j        | dd          }                    |          S )Nztanh.approx.f32 $0, $1;z=f,f)r   FunctionType	FloatType	InlineAsmcall)fntyasmre   rc   s     rf   tanhf_impl_fastmathz?impl_tanh.<locals>.lower_tanh_impl.<locals>.tanhf_impl_fastmath  sK    ?2<>>BLNN3CDDD,t%>GGC<<T***rh   )      )r	   rk   )
rb   rc   rd   re   r&  r)  r1  ccr   r   s
   `` `    rf   lower_tanh_implz"impl_tanh.<locals>.lower_tanh_impl}  s    	, 	, 	,	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/ 	/
	+ 	+ 	+ 	+ 	+ 	+
 ==W-=''))BU{{**,,,""$$$rh   )r   r   r   )r   r   r5  s   `` rf   	impl_tanhr6  |  sF    % % % % % %, E$)R)))))rh   c                       fd} t          t          j                  |            t          t          j                  |            t          t                    |           d S )Nc                 @    fd}|                      ||||          S )Nc                    |j          d          k    r+|j         d          k    r d           d          z   S | j          d          k    r+|j          d          k    r d           d          z   S t          j        | j         | j                  }t          j        ||j                   }t          j        | j        | j                   }||j         z  }|j         d          k    r>|t          j        ||j        z            z  }||j        t          j        |          z  z  }| t          j        |                     t          j	        |           d          z            z   z  S )Ng        g      ?y                y              ?)
realimagr   rX   rT   rR   r   r)   r5   r=   )abvabslenatphasectyftys         rf   cpow_internalz3cpow_implement.<locals>.core.<locals>.cpow_internal  sc   vS!!afC&8&8s3xx##d))++33s88####c(((:(:s3xx##d))++:afaf--D(4((CAFAF++BKEvS!!txQV,,,$(4..00##dhuoo..#dhuooD		9::; < <rh   r   )rb   rc   rd   re   rD  rB  rC  s        rf   corezcpow_implement.<locals>.core  s=    	< 	< 	< 	< 	< 	<$ ''TJJJrh   )r   operatorrT   ipow)rC  rB  rE  s   `` rf   cpow_implementrH    s    K K K K K K* "E(,S!!$'''"E(-c""4(((E#sCrh   )pr   rF  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  r  ldexpfr  r6  r   r   rH  	complex64
complex128r   rh   rf   <module>ra     s
           ; ; ; ; ; ; ; ; ; ; ; ; ( ( ( ( ( ( 7 7 7 7 7 7 7 7 7 7 7 7                  8::  h$*-. . h$*-. . k9dm45 5	 FGTY'
( ( GXtz*
+ + FGTY'
( ( E648$
% % GXtz*
+ + E648$
% % FGTY'
( ( Hi,
- - Hi-
. . FGTY'
( ( E648$
% % FGTY'
( ( GXtz*
+ + GXtz*
+ + GXtz*
+ + FGTY'
( ( E648$
% % FGTY'
( ( GXtz*
+ + FGTY'
( ( E648$
% % FGTY'
( ( FGTY'
( ( GXtz*
+ + E648$
% % GXtz*
+ +% % % % ' ) % 
 Zdm45 5 Wh
+, , UFDH%& & VWdi() ) Wh
+, , [,78 8 &   tz5=!!tz5=!!2 2 "! "!2 x66	 	 76	 t}em$$2 2 %$2 txB B  B txB B  B txB B  B tz5=!!D D "!D ty%-  C C ! C txB B  B tz5=!!D D "!D ty%-  C C ! C ty%-  C C ! C ty%-  C C ! C tz5=!!D D "!D' ' '   E E E$% % %
) ) )$   
E 
E 
E* * *
. . .$ & ' 'GWcWY((FWY((FLgv&&&Lgv&&&& $ ( (GWcWY((FWY((FJsGV$$$JsGV$$$N3v&&&N3'''' % ) )GWcWY((FWY((FKWf%%%KWf%%%OC'''OC((((9 9 9 U]IO , , , U]IN + + +* * * 
	%- ) ) ) 		%- ( ( (, , , 
5=)* + + + 

5=)/ * * *9 9 9 
5=)* + + + 

5=)/ * * ** * *4 
	%- ) ) ) 		%- ( ( ( ty% 0 0 0 ty&). 1 1 1  6 u}eo . . . u}e. / / / / /rh   