
    sh%                         S SK r S SKrS SKrS SKJrJrJr  S SKJ	r	  S SK
Jr  S r " S S\\	5      r\S:X  a  \R                  " 5         gg)	    N)configcudatypes)TestCase)BasicUFuncTestc                 <   0 nSR                  [        U R                  5       Vs/ s H  nSR                  U5      PM     sn5      nSU SU R                   SU S3n[        U[        5       U5        US   nSR                  U R                  5      Ul        U$ s  snf )	N,za{0}zdef fn(z
):
    np.()fnz{0}_usecase)joinrangenargsformat__name__execglobals)ufuncldictiarg_strfunc_strr   s         w/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/cuda/tests/cudapy/test_ufuncs.py_make_ufunc_usecaser   
   s    Ehh%2DE2DQa(2DEFG	U^^,<AgYaHH79e$	tB&&u~~6BKI Fs   Bc                   P   \ rS rSrSrS rS rS r\R                  " SS9S 5       r
S3S	 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, r.S- r/S. r0S/ r1S0 r2S1 r3S2r4g)4
TestUFuncs   Fc                     [         R                  " U 5        U R                  R                  [        R
                  " S5      [        R
                  4[        R
                  " S5      [        R
                  4[        R
                  " S5      [        R
                  4[        R                  " S5      [        R                  4[        R                  " S5      [        R                  4[        R                  " S5      [        R                  4[        R                  " / SQSS9[        R                  " [        R
                  SS5      4[        R                  " / SQS	S9[        R                  " [        R                  SS5      4/5        U R                  R                  [        R                  " S
S5      R                  S5      [        R                  " [        R                  SS5      4[        R                  " S
S5      R                  S5      [        R                  " [        R                  SS5      4[        R                  " S
S5      R                  SS5      [        R                  " [        R                  SS5      4[        R                  " [        R                  " S
S5      R                  S5      5      [        R                  " [        R                  SS5      4/5        U R                  R                  [        R                  " S
5      [        R                  4[        R                  " S5      [        R                  4[        R                  " S5      [        R                  4[        R                  " S
5      [        R                  4[        R                   " S
5      [        R                   4[        R                   " S5      [        R                   4[        R"                  " S5      [        R"                  4[        R"                  " S
5      [        R"                  4[        R$                  " S
5      [        R$                  4[        R$                  " S5      [        R$                  4[        R&                  " S5      [        R&                  4[        R&                  " S
5      [        R&                  4[        R                  " S
S/[        R$                  S9[        R                  " [        R$                  SS5      4[        R                  " S
S/[        R&                  S9[        R                  " [        R&                  SS5      4/5        [(        R*                  U l        [(        R.                  U l        S
[(        l        S
[(        l        g )N                          ?      ?)r   r    r!   c8)dtype   Cc16r   )      )r)   r'   r(      y      ?      ?r'   r(   F)r   setUpinputsextendnp	complex64r   
complex128arrayArraylinspacereshapefloat64asfortranarrayuint8int8uint16int16	ulonglonglonglongr   CUDA_LOW_OCCUPANCY_WARNINGS_low_occupancy_warningsCUDA_WARN_ON_IMPLICIT_COPY_warn_on_implicit_copyselfs    r   r,   TestUFuncs.setUp   s   T" 	\\+&8\\#0\\*%u7]];')9)9:]]3!1!12]]:&(8(89XX4DA[[!S13XX4EB[[))1c24
 	  	[[A&&w/[[3/1[[A&&z2[[3/1 [[F#++Ar2[[))1c24 r{{1a088AB[[3/1
 	 	XXa[%++&XXa[%++&WWR[%**%WWQZ$YYq\5<<(YYq\5<<(XXb\5;;'XXa[%++&\\!_eoo.\\!_eoo.[[_enn-[[^U^^,XXqe2<<0[[!S13XXqe2;;/[[C02%
 	, (.'I'I$&,&G&G# ./*,-)    c                 X    U R                   [        l        U R                  [        l        g N)r?   r   r>   rA   r@   rB   s    r   tearDownTestUFuncs.tearDown`   s    -1-I-I*,0,G,G)rE   c                     [        U5      $ rG   )r   )rC   r   s     r   r   TestUFuncs._make_ufunc_usecasee   s    "5))rE   N)maxsizec                 @    [         R                  " U5      " U5      S   $ )N)r$   r$   )r   jit)rC   pyfuncargss      r   _compileTestUFuncs._compileh   s     xx~f%d++rE   c                    [         R                  [         R                  [         R                  " [         R                  SS5      [         R                  " [         R                  SS5      [         R                  " [         R                  SS5      [         R                  " [         R                  SS5      [         R                  " [         R                  SS5      [         R                  " [         R                  SS5      [         R                  [         R
                  [         R                  " [         R                  SS5      [         R                  " [         R                  SS5      [         R                  " [         R
                  SS5      [         R                  " [         R
                  SS5      /nU R                  XS9  g )Nr$   r%   r)   r*   r+   )skip_inputs)r   float32r6   r3   r0   r1   basic_ufunc_test)rC   namerT   s      r   basic_int_ufunc_testTestUFuncs.basic_int_ufunc_testn   s   MMMMKKq#.KKq#.KKq#.KKq#.KKq#.KKq#.OOKKC0KKC0KK((!S1KK((!S1
  	d<rE   c                 @    U R                  [        R                  SS9  g Ncfkinds)rV   r/   sinrB   s    r   test_sin_ufuncTestUFuncs.test_sin_ufunc       bffD1rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   cosrB   s    r   test_cos_ufuncTestUFuncs.test_cos_ufunc   rb   rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   tanrB   s    r   test_tan_ufuncTestUFuncs.test_tan_ufunc   rb   rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   arcsinrB   s    r   test_arcsin_ufuncTestUFuncs.test_arcsin_ufunc       biit4rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   arccosrB   s    r   test_arccos_ufuncTestUFuncs.test_arccos_ufunc   ro   rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   arctanrB   s    r   test_arctan_ufuncTestUFuncs.test_arctan_ufunc   ro   rE   c                 @    U R                  [        R                  SS9  g Nfr]   )rV   r/   arctan2rB   s    r   test_arctan2_ufuncTestUFuncs.test_arctan2_ufunc       bjj4rE   c                 @    U R                  [        R                  SS9  g ry   )rV   r/   hypotrB   s    r   test_hypot_ufuncTestUFuncs.test_hypot_ufunc   s    bhhc2rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   sinhrB   s    r   test_sinh_ufuncTestUFuncs.test_sinh_ufunc       bggT2rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   coshrB   s    r   test_cosh_ufuncTestUFuncs.test_cosh_ufunc   r   rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   tanhrB   s    r   test_tanh_ufuncTestUFuncs.test_tanh_ufunc   r   rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   arcsinhrB   s    r   test_arcsinh_ufuncTestUFuncs.test_arcsinh_ufunc       bjj5rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   arccoshrB   s    r   test_arccosh_ufuncTestUFuncs.test_arccosh_ufunc   r   rE   c                    [         R                  " [         R                  SS5      [         R                  [         R                  " [         R                  SS5      [         R                  [         R                  " [         R                  SS5      [         R                  [         R                  " [         R
                  SS5      [         R
                  /nU R                  [        R                  USS9  g )Nr$   r%   r\   )rT   r^   )	r   r3   uint32int32uint64int64rV   r/   arctanh)rC   to_skips     r   test_arctanh_ufuncTestUFuncs.test_arctanh_ufunc   s     ;;u||Q4ell;;u{{As3U[[;;u||Q4ell;;u{{As3U[[B
 	bjjgTJrE   c                 @    U R                  [        R                  SS9  g ry   )rV   r/   deg2radrB   s    r   test_deg2rad_ufuncTestUFuncs.test_deg2rad_ufunc   r~   rE   c                 @    U R                  [        R                  SS9  g ry   )rV   r/   rad2degrB   s    r   test_rad2deg_ufuncTestUFuncs.test_rad2deg_ufunc   r~   rE   c                 @    U R                  [        R                  SS9  g ry   )rV   r/   degreesrB   s    r   test_degrees_ufuncTestUFuncs.test_degrees_ufunc   r~   rE   c                 @    U R                  [        R                  SS9  g ry   )rV   r/   radiansrB   s    r   test_radians_ufuncTestUFuncs.test_radians_ufunc   r~   rE   c                 B    U R                  [        R                  5        g rG   )signed_unsigned_cmp_testr/   greaterrB   s    r   test_greater_ufuncTestUFuncs.test_greater_ufunc   s    %%bjj1rE   c                 B    U R                  [        R                  5        g rG   )r   r/   greater_equalrB   s    r   test_greater_equal_ufunc#TestUFuncs.test_greater_equal_ufunc   s    %%b&6&67rE   c                 B    U R                  [        R                  5        g rG   )r   r/   lessrB   s    r   test_less_ufuncTestUFuncs.test_less_ufunc   s    %%bgg.rE   c                 B    U R                  [        R                  5        g rG   )r   r/   
less_equalrB   s    r   test_less_equal_ufunc TestUFuncs.test_less_equal_ufunc   s    %%bmm4rE   c                 B    U R                  [        R                  5        g rG   )r   r/   	not_equalrB   s    r   test_not_equal_ufuncTestUFuncs.test_not_equal_ufunc   s    %%bll3rE   c                 B    U R                  [        R                  5        g rG   )r   r/   equalrB   s    r   test_equal_ufuncTestUFuncs.test_equal_ufunc   s    %%bhh/rE   c                 B    U R                  [        R                  5        g rG   )rV   r/   logical_andrB   s    r   test_logical_and_ufunc!TestUFuncs.test_logical_and_ufunc       bnn-rE   c                 B    U R                  [        R                  5        g rG   )rV   r/   
logical_orrB   s    r   test_logical_or_ufunc TestUFuncs.test_logical_or_ufunc   s    bmm,rE   c                 B    U R                  [        R                  5        g rG   )rV   r/   logical_xorrB   s    r   test_logical_xor_ufunc!TestUFuncs.test_logical_xor_ufunc   r   rE   c                 B    U R                  [        R                  5        g rG   )rV   r/   logical_notrB   s    r   test_logical_not_ufunc!TestUFuncs.test_logical_not_ufunc   r   rE   c                 B    U R                  [        R                  5        g rG   )rV   r/   maximumrB   s    r   test_maximum_ufuncTestUFuncs.test_maximum_ufunc       bjj)rE   c                 B    U R                  [        R                  5        g rG   )rV   r/   minimumrB   s    r   test_minimum_ufuncTestUFuncs.test_minimum_ufunc   r   rE   c                 B    U R                  [        R                  5        g rG   )rV   r/   fmaxrB   s    r   test_fmax_ufuncTestUFuncs.test_fmax_ufunc       bgg&rE   c                 B    U R                  [        R                  5        g rG   )rV   r/   fminrB   s    r   test_fmin_ufuncTestUFuncs.test_fmin_ufunc   r   rE   c                 B    U R                  [        R                  5        g rG   )rX   r/   bitwise_andrB   s    r   test_bitwise_and_ufunc!TestUFuncs.test_bitwise_and_ufunc       !!"..1rE   c                 B    U R                  [        R                  5        g rG   )rX   r/   
bitwise_orrB   s    r   test_bitwise_or_ufunc TestUFuncs.test_bitwise_or_ufunc   s    !!"--0rE   c                 B    U R                  [        R                  5        g rG   )rX   r/   bitwise_xorrB   s    r   test_bitwise_xor_ufunc!TestUFuncs.test_bitwise_xor_ufunc   r   rE   c                 B    U R                  [        R                  5        g rG   )rX   r/   invertrB   s    r   test_invert_ufuncTestUFuncs.test_invert_ufunc   s    !!")),rE   c                 B    U R                  [        R                  5        g rG   )rX   r/   bitwise_notrB   s    r   test_bitwise_not_ufunc!TestUFuncs.test_bitwise_not_ufunc   r   rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   logrB   s    r   test_log_ufuncTestUFuncs.test_log_ufunc
  rb   rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   log2rB   s    r   test_log2_ufuncTestUFuncs.test_log2_ufunc  r   rE   c                 @    U R                  [        R                  SS9  g r[   )rV   r/   log10rB   s    r   test_log10_ufuncTestUFuncs.test_log10_ufunc  s    bhhd3rE   )r?   rA   rG   )5r   
__module____qualname____firstlineno___numba_parallel_test_r,   rH   r   	functools	lru_cacherQ   rX   r`   re   ri   rm   rr   rv   r|   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r	  r  __static_attributes__ rE   r   r   r      s   !@.DH
* &, ',
=,2225555333366K 5555
28/540.-..**''212-2234rE   r   __main__)r  numpyr/   unittestnumbar   r   r   numba.tests.supportr   numba.tests.test_ufuncsr   r   r   r   mainr  rE   r   <module>r     sH       % % ( 2"v4 v4r zMMO rE   