
    xKg%                         d dl Z d dlZd dlZd dlmZmZmZ d dlm	Z	 d dl
mZ d Z G d dee	      Zedk(  r ej                          yy)	    N)configcudatypes)TestCase)BasicUFuncTestc                 6   i }dj                  t        | j                        D cg c]  }dj                  |       c}      }d| d| j                   d| d}t        |t               |       |d   }dj                  | j                        |_        |S c c}w )	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         g/home/alanp/www/video.onchill/myenv/lib/python3.12/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                   L   e Zd ZdZd Zd Zd Z ej                  d      d        Z	d1dZ
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$d# Z%d$ Z&d% Z'd& Z(d' Z)d( Z*d) Z+d* Z,d+ Z-d, Z.d- Z/d. Z0d/ Z1d0 Z2y)2
TestUFuncsFc                 
   t        j                  |        | j                  j                  t	        j
                  d      t        j
                  ft	        j
                  d      t        j
                  ft	        j
                  d      t        j
                  ft	        j                  d      t        j                  ft	        j                  d      t        j                  ft	        j                  d      t        j                  ft	        j                  g dd      t        j                  t        j
                  dd      ft	        j                  g dd	      t        j                  t        j                  dd      fg       | j                  j                  t	        j                  d
d      j                  d      t        j                  t        j                  dd      ft	        j                  d
d      j                  d      t        j                  t        j                  dd      ft	        j                  d
d      j                  dd      t        j                  t        j                  dd      ft	        j                  t	        j                  d
d      j                  d            t        j                  t        j                  dd      fg       | j                  j                  t	        j                  d
      t        j                  ft	        j                  d      t        j                  ft	        j                  d      t        j                  ft	        j                  d
      t        j                  ft	        j                   d
      t        j                   ft	        j                   d      t        j                   ft	        j"                  d      t        j"                  ft	        j"                  d
      t        j"                  ft	        j$                  d
      t        j$                  ft	        j$                  d      t        j$                  ft	        j&                  d      t        j&                  ft	        j&                  d
      t        j&                  ft	        j                  d
dgt        j$                        t        j                  t        j$                  dd      ft	        j                  d
dgt        j&                        t        j                  t        j&                  dd      fg       t(        j*                  | _        t(        j.                  | _        d
t(        _        d
t(        _        y )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+   z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    | j                   t        _        | j                  t        _        y N)r>   r   r=   r@   r?   rA   s    r   tearDownzTestUFuncs.tearDown`   s    -1-I-I*,0,G,G)rC   c                     t        |      S rE   )r   )rB   r   s     r   r   zTestUFuncs._make_ufunc_usecasee   s    "5))rC   N)maxsizec                 >     t        j                  |      |      d   S )N)r#   r#   )r   jit)rB   pyfuncargss      r   _compilezTestUFuncs._compileh   s     txx~f%d++rC   c                 v   t         j                  t         j                  t        j                  t         j                  dd      t        j                  t         j                  dd      t        j                  t         j                  dd      t        j                  t         j                  dd      t        j                  t         j                  dd      t        j                  t         j                  dd      t         j                  t         j
                  t        j                  t         j                  dd      t        j                  t         j                  dd      t        j                  t         j
                  dd      t        j                  t         j
                  dd      g}| j                  ||       y )Nr#   r$   r(   r)   r*   )skip_inputs)r   float32r5   r2   r/   r0   basic_ufunc_test)rB   namerO   s      r   basic_int_ufunc_testz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<rC   c                 F    | j                  t        j                  d       y Ncfkinds)rQ   r.   sinrA   s    r   test_sin_ufunczTestUFuncs.test_sin_ufunc       bffD1rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   cosrA   s    r   test_cos_ufunczTestUFuncs.test_cos_ufunc   r[   rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   tanrA   s    r   test_tan_ufunczTestUFuncs.test_tan_ufunc   r[   rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   arcsinrA   s    r   test_arcsin_ufunczTestUFuncs.test_arcsin_ufunc       biit4rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   arccosrA   s    r   test_arccos_ufunczTestUFuncs.test_arccos_ufunc   re   rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   arctanrA   s    r   test_arctan_ufunczTestUFuncs.test_arctan_ufunc   re   rC   c                 F    | j                  t        j                  d       y NfrW   )rQ   r.   arctan2rA   s    r   test_arctan2_ufunczTestUFuncs.test_arctan2_ufunc       bjj4rC   c                 F    | j                  t        j                  d       y rm   )rQ   r.   hypotrA   s    r   test_hypot_ufunczTestUFuncs.test_hypot_ufunc   s    bhhc2rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   sinhrA   s    r   test_sinh_ufunczTestUFuncs.test_sinh_ufunc       bggT2rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   coshrA   s    r   test_cosh_ufunczTestUFuncs.test_cosh_ufunc   rx   rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   tanhrA   s    r   test_tanh_ufunczTestUFuncs.test_tanh_ufunc   rx   rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   arcsinhrA   s    r   test_arcsinh_ufunczTestUFuncs.test_arcsinh_ufunc       bjj5rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   arccoshrA   s    r   test_arccosh_ufunczTestUFuncs.test_arccosh_ufunc   r   rC   c                    t        j                  t         j                  dd      t         j                  t        j                  t         j                  dd      t         j                  t        j                  t         j                  dd      t         j                  t        j                  t         j
                  dd      t         j
                  g}| j                  t        j                  |d       y )Nr#   r$   rV   )rO   rX   )	r   r2   uint32int32uint64int64rQ   r.   arctanh)rB   to_skips     r   test_arctanh_ufunczTestUFuncs.test_arctanh_ufunc   s     ;;u||Q4ell;;u{{As3U[[;;u||Q4ell;;u{{As3U[[B
 	bjjgTJrC   c                 F    | j                  t        j                  d       y rm   )rQ   r.   deg2radrA   s    r   test_deg2rad_ufunczTestUFuncs.test_deg2rad_ufunc   rq   rC   c                 F    | j                  t        j                  d       y rm   )rQ   r.   rad2degrA   s    r   test_rad2deg_ufunczTestUFuncs.test_rad2deg_ufunc   rq   rC   c                 F    | j                  t        j                  d       y rm   )rQ   r.   degreesrA   s    r   test_degrees_ufunczTestUFuncs.test_degrees_ufunc   rq   rC   c                 F    | j                  t        j                  d       y rm   )rQ   r.   radiansrA   s    r   test_radians_ufunczTestUFuncs.test_radians_ufunc   rq   rC   c                 B    | j                  t        j                         y rE   )signed_unsigned_cmp_testr.   greaterrA   s    r   test_greater_ufunczTestUFuncs.test_greater_ufunc   s    %%bjj1rC   c                 B    | j                  t        j                         y rE   )r   r.   greater_equalrA   s    r   test_greater_equal_ufuncz#TestUFuncs.test_greater_equal_ufunc   s    %%b&6&67rC   c                 B    | j                  t        j                         y rE   )r   r.   lessrA   s    r   test_less_ufunczTestUFuncs.test_less_ufunc   s    %%bgg.rC   c                 B    | j                  t        j                         y rE   )r   r.   
less_equalrA   s    r   test_less_equal_ufuncz TestUFuncs.test_less_equal_ufunc   s    %%bmm4rC   c                 B    | j                  t        j                         y rE   )r   r.   	not_equalrA   s    r   test_not_equal_ufunczTestUFuncs.test_not_equal_ufunc   s    %%bll3rC   c                 B    | j                  t        j                         y rE   )r   r.   equalrA   s    r   test_equal_ufunczTestUFuncs.test_equal_ufunc   s    %%bhh/rC   c                 B    | j                  t        j                         y rE   )rQ   r.   logical_andrA   s    r   test_logical_and_ufuncz!TestUFuncs.test_logical_and_ufunc       bnn-rC   c                 B    | j                  t        j                         y rE   )rQ   r.   
logical_orrA   s    r   test_logical_or_ufuncz TestUFuncs.test_logical_or_ufunc   s    bmm,rC   c                 B    | j                  t        j                         y rE   )rQ   r.   logical_xorrA   s    r   test_logical_xor_ufuncz!TestUFuncs.test_logical_xor_ufunc   r   rC   c                 B    | j                  t        j                         y rE   )rQ   r.   logical_notrA   s    r   test_logical_not_ufuncz!TestUFuncs.test_logical_not_ufunc   r   rC   c                 B    | j                  t        j                         y rE   )rQ   r.   maximumrA   s    r   test_maximum_ufunczTestUFuncs.test_maximum_ufunc       bjj)rC   c                 B    | j                  t        j                         y rE   )rQ   r.   minimumrA   s    r   test_minimum_ufunczTestUFuncs.test_minimum_ufunc   r   rC   c                 B    | j                  t        j                         y rE   )rQ   r.   fmaxrA   s    r   test_fmax_ufunczTestUFuncs.test_fmax_ufunc       bgg&rC   c                 B    | j                  t        j                         y rE   )rQ   r.   fminrA   s    r   test_fmin_ufunczTestUFuncs.test_fmin_ufunc   r   rC   c                 B    | j                  t        j                         y rE   )rS   r.   bitwise_andrA   s    r   test_bitwise_and_ufuncz!TestUFuncs.test_bitwise_and_ufunc       !!"..1rC   c                 B    | j                  t        j                         y rE   )rS   r.   
bitwise_orrA   s    r   test_bitwise_or_ufuncz TestUFuncs.test_bitwise_or_ufunc   s    !!"--0rC   c                 B    | j                  t        j                         y rE   )rS   r.   bitwise_xorrA   s    r   test_bitwise_xor_ufuncz!TestUFuncs.test_bitwise_xor_ufunc   r   rC   c                 B    | j                  t        j                         y rE   )rS   r.   invertrA   s    r   test_invert_ufunczTestUFuncs.test_invert_ufunc   s    !!")),rC   c                 B    | j                  t        j                         y rE   )rS   r.   bitwise_notrA   s    r   test_bitwise_not_ufuncz!TestUFuncs.test_bitwise_not_ufunc   r   rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   logrA   s    r   test_log_ufunczTestUFuncs.test_log_ufunc
  r[   rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   log2rA   s    r   test_log2_ufunczTestUFuncs.test_log2_ufunc  rx   rC   c                 F    | j                  t        j                  d       y rU   )rQ   r.   log10rA   s    r   test_log10_ufunczTestUFuncs.test_log10_ufunc  s    bhhd3rC   rE   )3r   
__module____qualname___numba_parallel_test_r+   rF   r   	functools	lru_cacherM   rS   rZ   r^   ra   rd   rh   rk   rp   rt   rw   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    rC   r   r   r      s	   !@.DH
* Y&, ',
=,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4rC   r   __main__)r   numpyr.   unittestnumbar   r   r   numba.tests.supportr   numba.tests.test_ufuncsr   r   r   r   mainr   rC   r   <module>r      sJ       % % ( 2"v4 v4r zHMMO rC   