
     iE                        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 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& r0S' r1S( r2S) r3S* r4S+ r5S, r6S- r7S. r8S/ r9 " S0 S1\5      r:\;S2:X  a  \Rx                  " 5         gg)3    N)njittypes)TestCase)numpy_support)	PYVERSIONc                 .    [         R                  " U 5      $ N)mathsinxs    O/mnt/rpi/venvs/whisper/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#   3       ::ar   c                 .    [         R                  " U 5      $ r	   )r
   asinhr   s    r   r'   r'   7       ::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/   C   r   r   c                 .    [         R                  " U 5      $ r	   )npr/   r   s    r   npy_sqrtr2   G   s    771:r   c                 .    [         R                  " U 5      $ r	   )r
   expr   s    r   r4   r4   K   r   r   c                 .    [         R                  " U 5      $ r	   )r
   exp2r   s    r   r6   r6   N   r   r   c                 .    [         R                  " U 5      $ r	   )r
   expm1r   s    r   r8   r8   Q   r(   r   c                 .    [         R                  " U 5      $ r	   )r
   logr   s    r   r:   r:   U   r   r   c                 .    [         R                  " U 5      $ r	   )r
   log1pr   s    r   r<   r<   Y   r(   r   c                 .    [         R                  " U 5      $ r	   )r
   log10r   s    r   r>   r>   ]   r(   r   c                 .    [         R                  " U 5      $ r	   )r
   log2r   s    r   r@   r@   a   r   r   c                 .    [         R                  " U 5      $ r	   )r
   floorr   s    r   rB   rB   e   r(   r   c                 .    [         R                  " U 5      $ r	   )r
   ceilr   s    r   rD   rD   i   r   r   c                 .    [         R                  " U 5      $ r	   )r
   truncr   s    r   rF   rF   m   r(   r   c                 .    [         R                  " U 5      $ r	   )r
   isnanr   s    r   rH   rH   q   r(   r   c                 .    [         R                  " U 5      $ r	   )r
   isinfr   s    r   rJ   rJ   u   r(   r   c                 .    [         R                  " U 5      $ r	   )r
   isfiniter   s    r   rL   rL   y   s    ==r   c                 .    [         R                  " X5      $ r	   )r
   hypotr   r$   s     r   rN   rN   }   r%   r   c                 .    [         R                  " X5      $ r	   )r
   	nextafterrO   s     r   rQ   rQ      s    >>!r   c                 .    [         R                  " U 5      $ r	   )r
   degreesr   s    r   rS   rS          <<?r   c                 .    [         R                  " U 5      $ r	   )r
   radiansr   s    r   rV   rV      rT   r   c                 .    [         R                  " U 5      $ r	   )r
   erfr   s    r   rX   rX      r   r   c                 .    [         R                  " U 5      $ r	   )r
   erfcr   s    r   rZ   rZ      r   r   c                 .    [         R                  " U 5      $ r	   )r
   gammar   s    r   r\   r\      r(   r   c                 .    [         R                  " U 5      $ r	   )r
   lgammar   s    r   r^   r^      s    ;;q>r   c                 .    [         R                  " X5      $ r	   )r
   powrO   s     r   r`   r`          88A>r   c                 .    [         R                  " X5      $ r	   )r
   gcdrO   s     r   rc   rc      ra   r   c                 .    [         R                  " X5      $ r	   )r
   copysignrO   s     r   re   re      s    ==r   c                 .    [         R                  " U 5      $ r	   )r
   frexpr   s    r   rg   rg      r(   r   c                 .    [         R                  " X5      $ r	   )r
   ldexp)r   es     r   ri   ri      r%   r   c                  B    [         R                  [         R                  4$ r	   )r
   pirj    r   r   get_constantsrn      s    77DFF?r   c                      \ rS rSrS rS5S jrS5S jrS rS r\	R                  " \R                  S:H  S5      S	 5       rS
 rS rS rS r\	R$                  " \S:  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, r0S- r1S. r2S/ r3S0 r4S1 r5S2 r6S3r7g4)6TestMathLib   c                 l    [        [        5      nU R                  U" 5       UR                  5       5        g r	   )r   rn   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   float32rs   )ru   pyfuncx_typesx_valuesr}   kwargsrv   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 )Nrz   zfor inputs (z, )r|   r   )ru   r   r   r   y_valuesr}   rv   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   ru   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   rz   r}   )r2   r   r   r   r   r   r   r   r   r   r   ru   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   )r4   r   r   r   r   r   r   r   r   r   r   r   s       r   test_expTestMathLib.test_exp  r   r   )      zneeds Python 3.11+c                 0   [         n[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /n/ SQnU R                  XU5        g r   )r6   r   r   r   r   r   r   r   r   r   r   r   s       r   	test_exp2TestMathLib.test_exp2  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 r   )r8   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?)r:   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   )r<   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_log24  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_asin<  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_acosD  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_atanL  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   ru   r   r   r   r   r   s         r   
test_atan2TestMathLib.test_atan2T  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_asinh]  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_acoshe  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_atanhm  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_sinhu  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_cosh}  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_tanh  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?)rB   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  )rD   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  )rF   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   rH   ru   s    r   
test_isnanTestMathLib.test_isnan      !!%(r   c                 .    U R                  [        5        g r	   )r   rJ   r  s    r   
test_isinfTestMathLib.test_isinf  r  r   c                 .    U R                  [        5        g r	   )r   rL   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   r            zG?(\?r   rz   c                 <    [         R                  " X -  X-  -   5      $ r	   r.   rO   s     r   naive_hypot+TestMathLib.test_hypot.<locals>.naive_hypot  s    99QUQU]++r   g      >@r   errorz overflow encountered in .*scalar)rN   r   r   r   r   r   r   r   r   as_dtypetyper1   finfomaxrs   
assertTruerL   warningscatch_warningssimplefilterRuntimeWarningassertRaisesRegex)ru   r   r   r   r   r   r}   r  rv   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   )rQ   r   r   r   r   r   r   r   r   r
   r   )ru   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   )rS   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   )rV   r   r   r   r   r   r   r   r   r   r   r   s       r   test_radiansTestMathLib.test_radians  r;  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   r3  r  r   r   r   r}   ulps)rX   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   r@  rA  r   r3  r  r   r   r   r  rB  )rZ   r   r   r   r   rD  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   r2  r3  r   r   r   rB  皙r         @g333333$@g      I@r      )r\   r   r   r   rD  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   rK  rL  r   g      i@g    _Bgꌠ9Y>)Fr   r   r   r   )r^   r   r   r   r   rD  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   r[  	      )	itertoolsrX  rY  rZ  rc   sortedr   signed_domainunsigned_domainr   r   )
ru   rX  rY  rZ  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   rA  r   r   r   -infr   r   )
re   r   r   r   r   listr   r^  rX  r   )ru   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      rA  r   g      @rg  r   r   exactr   )rg   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)rM  r   )rM  r   )r   r   )r   r   )rA  r   )rA  r   r   r   rg  r   r{   )ri   r   r   r   r   r   rs   )ru   r   rv   r+  argsr~   s         r   
test_ldexpTestMathLib.test_ldexp.  s    VmmU]]3E"Hh"I,*U6]A,>,*, )-.''tfdmD, 4r   rm   N)rn  )8__name__
__module____qualname____firstlineno__rw   r   r   r   r   unittestskipIfsysplatformr   r   r   r   r   
skipUnlessr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r  r/  r6  r9  r=  rE  rH  rO  rR  rU  rd  rk  ro  rs  __static_attributes__rm   r   r   rp   rp      s7   :.N22 __S\\W,>@2@222	22 g-/CD2 E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   rp   __main__)=r^  r
   r{  ry  r&  numpyr1   numbar   r   numba.tests.supportr   numba.npr   numba.core.utilsr   r   r   r   r   r   r   r   r   r!   r#   r'   r*   r,   r/   r2   r4   r6   r8   r:   r<   r>   r@   rB   rD   rF   rH   rJ   rL   rN   rQ   rS   rV   rX   rZ   r\   r^   r`   rc   re   rg   ri   rn   rp   ru  mainrm   r   r   <module>r     s     
     ( " & DE( DEN zMMO r   