
    shD                        S SK r S SKrS SKrS SKrS SKrS SKrS SKJrJ	r	  S SK
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$ r-S% r.S& r/S' r0S( r1S) r2S* r3S+ r4S, r5S- r6 " S. S/\5      r7\8S0:X  a  \Rr                  " 5         gg)1    N)njittypes)TestCase)numpy_supportc                 .    [         R                  " U 5      $ N)mathsinxs    l/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_mathlib.pyr
   r
          88A;    c                 .    [         R                  " U 5      $ r   )r	   cosr   s    r   r   r      r   r   c                 .    [         R                  " U 5      $ r   )r	   tanr   s    r   r   r      r   r   c                 .    [         R                  " U 5      $ r   )r	   sinhr   s    r   r   r          99Q<r   c                 .    [         R                  " U 5      $ r   )r	   coshr   s    r   r   r      r   r   c                 .    [         R                  " U 5      $ r   )r	   tanhr   s    r   r   r   "   r   r   c                 .    [         R                  " U 5      $ r   )r	   asinr   s    r   r   r   &   r   r   c                 .    [         R                  " U 5      $ r   )r	   acosr   s    r   r   r   *   r   r   c                 .    [         R                  " U 5      $ r   )r	   atanr   s    r   r    r    .   r   r   c                 .    [         R                  " X5      $ r   )r	   atan2)yr   s     r   r"   r"   2       ::ar   c                 .    [         R                  " U 5      $ r   )r	   asinhr   s    r   r&   r&   6       ::a=r   c                 .    [         R                  " U 5      $ r   )r	   acoshr   s    r   r)   r)   :   r'   r   c                 .    [         R                  " U 5      $ r   )r	   atanhr   s    r   r+   r+   >   r'   r   c                 .    [         R                  " U 5      $ r   r	   sqrtr   s    r   r.   r.   B   r   r   c                 .    [         R                  " U 5      $ r   )npr.   r   s    r   npy_sqrtr1   F   s    771:r   c                 .    [         R                  " U 5      $ r   )r	   expr   s    r   r3   r3   J   r   r   c                 .    [         R                  " U 5      $ r   )r	   expm1r   s    r   r5   r5   N   r'   r   c                 .    [         R                  " U 5      $ r   )r	   logr   s    r   r7   r7   R   r   r   c                 .    [         R                  " U 5      $ r   )r	   log1pr   s    r   r9   r9   V   r'   r   c                 .    [         R                  " U 5      $ r   )r	   log10r   s    r   r;   r;   Z   r'   r   c                 .    [         R                  " U 5      $ r   )r	   log2r   s    r   r=   r=   ^   r   r   c                 .    [         R                  " U 5      $ r   )r	   floorr   s    r   r?   r?   b   r'   r   c                 .    [         R                  " U 5      $ r   )r	   ceilr   s    r   rA   rA   f   r   r   c                 .    [         R                  " U 5      $ r   )r	   truncr   s    r   rC   rC   j   r'   r   c                 .    [         R                  " U 5      $ r   )r	   isnanr   s    r   rE   rE   n   r'   r   c                 .    [         R                  " U 5      $ r   )r	   isinfr   s    r   rG   rG   r   r'   r   c                 .    [         R                  " U 5      $ r   )r	   isfiniter   s    r   rI   rI   v   s    ==r   c                 .    [         R                  " X5      $ r   )r	   hypotr   r#   s     r   rK   rK   z   r$   r   c                 .    [         R                  " X5      $ r   )r	   	nextafterrL   s     r   rN   rN   ~   s    >>!r   c                 .    [         R                  " U 5      $ r   )r	   degreesr   s    r   rP   rP          <<?r   c                 .    [         R                  " U 5      $ r   )r	   radiansr   s    r   rS   rS      rQ   r   c                 .    [         R                  " U 5      $ r   )r	   erfr   s    r   rU   rU      r   r   c                 .    [         R                  " U 5      $ r   )r	   erfcr   s    r   rW   rW      r   r   c                 .    [         R                  " U 5      $ r   )r	   gammar   s    r   rY   rY      r'   r   c                 .    [         R                  " U 5      $ r   )r	   lgammar   s    r   r[   r[      s    ;;q>r   c                 .    [         R                  " X5      $ r   )r	   powrL   s     r   r]   r]          88A>r   c                 .    [         R                  " X5      $ r   )r	   gcdrL   s     r   r`   r`      r^   r   c                 .    [         R                  " X5      $ r   )r	   copysignrL   s     r   rb   rb      s    ==r   c                 .    [         R                  " U 5      $ r   )r	   frexpr   s    r   rd   rd      r'   r   c                 .    [         R                  " X5      $ r   )r	   ldexp)r   es     r   rf   rf      r$   r   c                  B    [         R                  [         R                  4$ r   )r	   pirg    r   r   get_constantsrk      s    77DFF?r   c                   j   \ rS rSrS rS2S jrS2S jrS rS r\	R                  " \R                  S:H  S5      S	 5       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) r-S* r.S+ r/S, r0S- r1S. r2S/ r3S0r4g1)3TestMathLib   c                 l    [        [        5      nU R                  U" 5       UR                  5       5        g r   )r   rk   assertPreciseEqualpy_func)selfcfuncs     r   test_constantsTestMathLib.test_constants   s$    ]#9r   c                     [        U5      n[        X#5       HG  u  pxU" U5      n	U" U5      n
U[        R                  L a  SOUnSU< 3nU R                  " X4XS.UD6  MI     g )Nsingle
for input precmsgr   zipr   float32rp   )rr   pyfuncx_typesx_valuesrz   kwargsrs   txvxgotexpectedactual_precr{   s                r   	run_unaryTestMathLib.run_unary   sg    V',FB)CbzH&(EMM&9(tK$&(C##C . .&,. -r   c                     [        U5      n[        X#U5       HH  u  pxn	U" X5      n
U" X5      nU[        R                  L a  SOUnSU< SU	< S3nU R	                  XXS9  MJ     g )Nrw   zfor inputs (z, )ry   r|   )rr   r   r   r   y_valuesrz   rs   tyr   r#   r   r   r   r{   s                 r   
run_binaryTestMathLib.run_binary   sa    VGx8HB1+Ca|H&(EMM&9(tK+,a0C##C#M 9r   c                    [         R                  [         R                  [         R                  [         R                  [         R
                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  [         R                  /nSSSSSS[        S5      S[        S5      [        S5      S[        S5      /nU R                  XU5        g )Nr   inf        nan)r   int16int32int64uint16uint32uint64r~   float64floatr   rr   r   r   r   s       r   check_predicate_func TestMathLib.check_predicate_func   s    ;;U[[<<u||==%--==%--@ q!Q1%L#uU|%L#uU|5 	v1r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g Nr         r   皙?皙?)r
   r   r   r   r   r   r   r   r~   r   r   r   s       r   test_sinTestMathLib.test_sin   V    ;;U[[<<u||==%--1 1v1r   win32z'not exactly equal on win32 (issue #597)c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r   r   r   r   r   r   r   r   r~   r   r   r   s       r   test_cosTestMathLib.test_cos   sX     ;;U[[<<u||==%--1 1v1r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r   r   r   r   r   r   r   r   r~   r   r   r   s       r   test_tanTestMathLib.test_tan   r   r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g )Nr   r   r   r   r   r   r   r   )r.   r   r   r   r   r   r   r   r~   r   r   r   s       r   	test_sqrtTestMathLib.test_sqrt   V    ;;U[[<<u||==%--1 .v1r   c                 V   [         n/ SQn[        R                  [        R                  /nU R	                  XUSS9  [        R
                  [        R                  [        R                  [        R                  [        R                  [        R                  /nU R	                  XU5        g )Nr   rw   rz   )r1   r   r   r   r   r   r   r   r   r~   r   rr   r   r   r   s       r   test_npy_sqrtTestMathLib.test_npy_sqrt   sn    -;;-vx@;;<<==%--1 	v1r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r3   r   r   r   r   r   r   r   r~   r   r   r   s       r   test_expTestMathLib.test_exp   r   r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r5   r   r   r   r   r   r   r   r~   r   r   r   s       r   
test_expm1TestMathLib.test_expm1  sV    ;;U[[<<u||==%--1 1v1r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g N)r   
   d   i  i i@B r   g?)r7   r   r   r   r   r   r   r   r~   r   r   r   s       r   test_logTestMathLib.test_log  sW    ;;U[[<<u||==%--1 Av1r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r9   r   r   r   r   r   r   r   r~   r   r   r   s       r   
test_log1pTestMathLib.test_log1p  W    ;;U[[<<u||==%--1 Av1r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r;   r   r   r   r   r   r   r   r~   r   r   r   s       r   
test_log10TestMathLib.test_log10   r   r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r=   r   r   r   r   r   r   r   r~   r   r   r   s       r   	test_log2TestMathLib.test_log2(  sW    ;;U[[<<u||==%--1 Av1r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g Nr   r   r   r   r   r         ?r   )r   r   r   r   r   r   r   r   r~   r   r   r   s       r   	test_asinTestMathLib.test_asin0  r   r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r   r   r   r   r   r   r   r   r~   r   r   r   s       r   	test_acosTestMathLib.test_acos8  r   r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r    r   r   r   r   r   r   r   r~   r   r   r   s       r   	test_atanTestMathLib.test_atan@  sV    ;;U[[<<u||==%--1 1v1r   c                 b   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU Vs/ s H  oDS-  PM	     nnU R                  XX55        g s  snf Nr   r   )r"   r   r   r   r   r   r   r   r~   r   r   rr   r   r   r   r   r   s         r   
test_atan2TestMathLib.test_atan2H  sq    ;;U[[<<u||==%--1 1#+,8aE8,< -   	B,c                 .   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XUSS9  g )Nr   doubler   )r&   r   r   r   r   r   r   r   r~   r   r   r   s       r   
test_asinhTestMathLib.test_asinhQ  sZ    ;;U[[<<u||==%--1 .vx@r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r)   r   r   r   r   r   r   r   r~   r   r   r   s       r   
test_acoshTestMathLib.test_acoshY  sV    ;;U[[<<u||==%--1 .v1r   c                 .   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XUSS9  g )Nr   r   r   r   r   r   r   r   r   r   )r+   r   r   r   r   r   r   r   r~   r   r   r   s       r   
test_atanhTestMathLib.test_atanha  sZ    ;;U[[<<u||==%--1 0vx@r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r   r   r   r   r   r   r   r   r~   r   r   r   s       r   	test_sinhTestMathLib.test_sinhi  r   r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r   r   r   r   r   r   r   r   r~   r   r   r   s       r   	test_coshTestMathLib.test_coshq  r   r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g )Nr   )r   r   r   r   r   r   r   r   r~   r   r   r   s       r   	test_tanhTestMathLib.test_tanhy  V    ;;U[[<<u||==%--1 0v1r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g N)r   r   r   r   r   r   r   gffffff?)r?   r   r   r   r   r   r   r   r~   r   r   r   s       r   
test_floorTestMathLib.test_floor  V    ;;U[[<<u||==%--1 0v1r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )rA   r   r   r   r   r   r   r   r~   r   r   r   s       r   	test_ceilTestMathLib.test_ceil  r   r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )rC   r   r   r   r   r   r   r   r~   r   r   r   s       r   
test_truncTestMathLib.test_trunc  r   r   c                 .    U R                  [        5        g r   )r   rE   rr   s    r   
test_isnanTestMathLib.test_isnan      !!%(r   c                 .    U R                  [        5        g r   )r   rG   r  s    r   
test_isinfTestMathLib.test_isinf  r  r   c                 .    U R                  [        5        g r   )r   rI   r  s    r   test_isfiniteTestMathLib.test_isfinite  s    !!(+r   c           	      8   [         n[        R                  [        R                  [        R                  [        R
                  /n/ SQnU Vs/ s H  oDS-   PM	     nnSnU R                  XX5U5        S n[        U5      n[        R                  [        R
                  4 H  n	[        R                  " U	5      R                  n
U
" [        R                  " U
5      R                  S-  5      nU" X5      nU R                  X" X5      SS9  U R                  [        R                   " U5      5        ["        R$                  " 5          ["        R&                  " S[(        5        U R+                  [(        SX{U5        S S S 5        M     g s  snf ! , (       d  f       M  = f)	N)r   r               zG?(\?r   rw   c                 <    [         R                  " X -  X-  -   5      $ r   r-   rL   s     r   naive_hypot+TestMathLib.test_hypot.<locals>.naive_hypot  s    99QUQU]++r   g      >@r   errorz overflow encountered in .*scalar)rK   r   r   r   r~   r   r   r   r   as_dtypetyper0   finfomaxrp   
assertTruerI   warningscatch_warningssimplefilterRuntimeWarningassertRaisesRegex)rr   r   r   r   r   r   rz   r  rs   flttydtvalnb_anss                r   
test_hypotTestMathLib.test_hypot  s4   ;;==%--1/#+,8aE8,TB	, VmmU]]3E''.33BRXXb\%%+,C3_F##FF3,<8#LOOBKK/0((*%%g~>&&~(J(3#? +* 4 -$ +*s   F4F


F	c                 >   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  /n/ SQnU Vs/ s H  oDS-   PM	     nnU Vs/ s H  oDS-
  PM	     nnU R                  XX55        U R                  XX65        U R                  X/ SQ[        R                  /S-  5        U R                  X/ SQ[        R                  * /S-  5        U R                  XX35        g s  snf s  snf )N)r   r  r  g%.AgS9r   )r               ?r  )rN   r   r~   r   r   r   r   r   r   r	   r   )rr   r   r   r   r   	y1_values	y2_valuess          r   test_nextafterTestMathLib.test_nextafter  s    ==%--;;<</ 9$,-HqUH	-$,-HqUH	-== 	$((AF488)QG 	< .-s   +D?Dc                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )rP   r   r   r   r   r   r   r   r~   r   r   r   s       r   test_degreesTestMathLib.test_degrees  V    ;;U[[<<u||==%--1 .v1r   c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )rS   r   r   r   r   r   r   r   r~   r   r   r   s       r   test_radiansTestMathLib.test_radians  r4  r   c           
          [         nSSSSSSS[        S5      /n[        R                  [        R                  /[        U5      S-  -  nU R                  XUS	SS
9  g )Nr                r   r,  r  r   r   r   rz   ulps)rU   r   r   r~   r   lenr   r   s       r   test_erfTestMathLib.test_erf  sU    CsCE%LA==%--0CMQ4FGvxaHr   c           
          [         nSSSSSSS[        S5      /n[        R                  [        R                  /[        U5      S-  -  nU R                  XUS	S
S9  g )Nr   r9  r:  r   r,  r  r   r   r   r  r;  )rW   r   r   r~   r   r=  r   r   s       r   	test_erfcTestMathLib.test_erfc  sU    CsCE%LA==%--0CMQ4FGvxaHr   c                    [         n/ SQn[        R                  [        R                  /[	        U5      S-  -  nU R                  XUSSS9  SSSS	S
[        S5      /n[        R                  /[	        U5      -  nU R                  XUSSS9  g )N)r   r+  r,  r   r   r  r;  皙r         @g333333$@g      I@r      )rY   r   r~   r   r=  r   r   r   s       r   
test_gammaTestMathLib.test_gamma  s~    (==%--0CMQ4FGvxaH#sD#uU|<==/CM1vxaHr   c           
          [         nSSSSSSS[        S5      /n[        R                  [        R                  /[        U5      S	-  -  nU R                  XUS
S9  g )Nr   rD  rE  r   g      i@g    _Bgꌠ9Y>)Fr   r   r   r   )r[   r   r   r~   r   r=  r   r   s       r   test_lgammaTestMathLib.test_lgamma  sS    dCtT5<H==%--0CMQ4FGvx@r   c                 b   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU Vs/ s H  oDS-  PM	     nnU R                  XX55        g s  snf r   )r]   r   r   r   r   r   r   r   r~   r   r   r   s         r   test_powTestMathLib.test_pow  sq    ;;U[[<<u||==%--1 1#+,8aE8,< -r   c                    SSK JnJnJn  [        nU" [        [        R                  5      /U" SS5      Q76 nU" [        [        R                  5      /U" SS5      Q76 n[        U" XV5      6 u  pxn	U R                  XGX5        g )Nr   )productrepeatchain)r   r   r   r   r      r   r   )r   r   r   rT  	      )	itertoolsrQ  rR  rS  r`   sortedr   signed_domainunsigned_domainr}   r   )
rr   rQ  rR  rS  r   signed_argsunsigned_argsr   r   r   s
             r   test_gcdTestMathLib.test_gcd  s    445&&'
*01I1*M
  5(()
,23F,J
 '*5+L&M#8<r   c                    [         n[        R                  [        R                  /nSSSSSS[	        S5      [	        S5      [	        S	5      /	n[        [        [        R                  " X#U5      6 5      u  pEnU R                  XXV5        g )
Nr   r   r:  r   r   r   -infr   r   )
rb   r   r~   r   r   listr}   rW  rQ  r   )rr   r   value_typesvaluesr   r   r   s          r   test_copysignTestMathLib.test_copysign  st    }}emm4b$Q5=%,, &*3{F;,= '>#8<r   c           	          [         n[        R                  [        R                  /nSSSS[	        S5      [	        S5      [	        S5      /nU R                  XUSS	9  g )
Ng      r:  r   g      @r`  r   r   exactr   )rd   r   r~   r   r   r   r   s       r   
test_frexpTestMathLib.test_frexp  sN    ==%--0$S&M5<u?vw?r   c                    [         n[        U5      n[        R                  [        R                  4 HT  nSSSSSS[        S5      S4[        S	5      S4[        S
5      S44	 H!  nSU< 3nU R                  U" U6 U" U6 5        M#     MV     g )N)rF  r   )rF  r   )r   r   )r   r   )r:  r   )r:  r   r   r   r`  r   rx   )rf   r   r   r~   r   r   rp   )rr   r   rs   r$  argsr{   s         r   
test_ldexpTestMathLib.test_ldexp"  s    VmmU]]3E"Hh"I,*U6]A,>,*, )-.''tfdmD, 4r   rj   N)rg  )5__name__
__module____qualname____firstlineno__rt   r   r   r   r   unittestskipIfsysplatformr   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/  r2  r6  r>  rA  rH  rK  rN  r]  rd  rh  rl  __static_attributes__rj   r   r   rm   rm      s   :.N22 __S\\W,>@2@222	2222222222=A2A222222)),?:=&22IIIA=
==@	Er   rm   __main__):rW  r	   rt  rr  r  numpyr0   numbar   r   numba.tests.supportr   numba.npr   r
   r   r   r   r   r   r   r   r    r"   r&   r)   r+   r.   r1   r3   r5   r7   r9   r;   r=   r?   rA   rC   rE   rG   rI   rK   rN   rP   rS   rU   rW   rY   r[   r]   r`   rb   rd   rf   rk   rm   rn  mainrj   r   r   <module>r}     s     
     ( " {E( {E| zMMO r   