
    J/Ph%                         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                     dS dS )	    N)configcudatypes)TestCase)BasicUFuncTestc                    i }d                     d t          | j                  D                       }d| d| j         d| d}t	          |t                      |           |d         }d                    | j                  |_        |S )	N,c                 8    g | ]}d                      |          S )za{0})format).0is     c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_ufuncs.py
<listcomp>z'_make_ufunc_usecase.<locals>.<listcomp>   s$    EEEQa((EEE    zdef fn(z
):
    np.()fnz{0}_usecase)joinrangenargs__name__execglobalsr   )ufuncldictarg_strfunc_strr   s        r   _make_ufunc_usecaser   
   s    EhhEE%2D2DEEEFFGHHHU^HHgHHHH799e$$$	tB&&u~66BKIr   c                   P   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 Z2dS )2
TestUFuncsFc                 	   t          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                            t	          j
        d
d                              d          t          j	        t          j        dd          ft	          j
        d
d                              d          t          j	        t          j        dd          ft	          j
        d
d                              dd          t          j	        t          j        dd          ft	          j        t	          j
        d
d                              d                    t          j	        t          j        dd          fg           | 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(          _        d S )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:]3!12]:&&(89X444DAAA[!S113X444EBBB[)1c224
 	 	 	  	[A&&w//[3//1[A&&z22[3//1 [F##++Ar22[)1c224 r{1a0088AABB[3//1
 	 	 	 	Xa[[%+&Xa[[%+&WR[[%*%WQZZ$Yq\\5<(Yq\\5<(Xb\\5;'Xa[[%+&\!__eo.\!__eo.[__en-[^^U^,Xqe2<000[!S113Xqe2;///[C002%
 	 	 	, (.'I$&,&G# ./*,-)))r   c                 J    | j         t          _        | j        t          _        d S N)rB   r   rA   rD   rC   rE   s    r   tearDownzTestUFuncs.tearDown`   s    -1-I*,0,G)))r   c                      t          |          S rH   )r   )rF   r   s     r   r   zTestUFuncs._make_ufunc_usecasee   s    "5)))r   N)maxsizec                 H     t          j        |          |          d         S )N)r'   r'   )r   jit)rF   pyfuncargss      r   _compilezTestUFuncs._compileh   s!     tx~~f%%d++r   c                    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}|                     ||           d S )Nr'   r(   r,   r-   r.   )skip_inputs)r   float32r9   r6   r3   r4   basic_ufunc_test)rF   namerR   s      r   basic_int_ufunc_testzTestUFuncs.basic_int_ufunc_testn   s    MMKq#..Kq#..Kq#..Kq#..Kq#..Kq#..OKC00KC00K(!S11K(!S11
  	d<<<<<r   c                 H    |                      t          j        d           d S Ncfkinds)rT   r2   sinrE   s    r   test_sin_ufunczTestUFuncs.test_sin_ufunc   #    bfD11111r   c                 H    |                      t          j        d           d S rX   )rT   r2   cosrE   s    r   test_cos_ufunczTestUFuncs.test_cos_ufunc   r^   r   c                 H    |                      t          j        d           d S rX   )rT   r2   tanrE   s    r   test_tan_ufunczTestUFuncs.test_tan_ufunc   r^   r   c                 H    |                      t          j        d           d S rX   )rT   r2   arcsinrE   s    r   test_arcsin_ufunczTestUFuncs.test_arcsin_ufunc   #    bit44444r   c                 H    |                      t          j        d           d S rX   )rT   r2   arccosrE   s    r   test_arccos_ufunczTestUFuncs.test_arccos_ufunc   rh   r   c                 H    |                      t          j        d           d S rX   )rT   r2   arctanrE   s    r   test_arctan_ufunczTestUFuncs.test_arctan_ufunc   rh   r   c                 H    |                      t          j        d           d S NfrZ   )rT   r2   arctan2rE   s    r   test_arctan2_ufunczTestUFuncs.test_arctan2_ufunc   #    bj44444r   c                 H    |                      t          j        d           d S rp   )rT   r2   hypotrE   s    r   test_hypot_ufunczTestUFuncs.test_hypot_ufunc   s#    bhc22222r   c                 H    |                      t          j        d           d S rX   )rT   r2   sinhrE   s    r   test_sinh_ufunczTestUFuncs.test_sinh_ufunc   #    bgT22222r   c                 H    |                      t          j        d           d S rX   )rT   r2   coshrE   s    r   test_cosh_ufunczTestUFuncs.test_cosh_ufunc   r{   r   c                 H    |                      t          j        d           d S rX   )rT   r2   tanhrE   s    r   test_tanh_ufunczTestUFuncs.test_tanh_ufunc   r{   r   c                 H    |                      t          j        d           d S rX   )rT   r2   arcsinhrE   s    r   test_arcsinh_ufunczTestUFuncs.test_arcsinh_ufunc   #    bj55555r   c                 H    |                      t          j        d           d S rX   )rT   r2   arccoshrE   s    r   test_arccosh_ufunczTestUFuncs.test_arccosh_ufunc   r   r   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}|                     t          j        |d           d S )Nr'   r(   rY   )rR   r[   )	r   r6   uint32int32uint64int64rT   r2   arctanh)rF   to_skips     r   test_arctanh_ufunczTestUFuncs.test_arctanh_ufunc   s     ;u|Q44el;u{As33U[;u|Q44el;u{As33U[B
 	bjgTJJJJJr   c                 H    |                      t          j        d           d S rp   )rT   r2   deg2radrE   s    r   test_deg2rad_ufunczTestUFuncs.test_deg2rad_ufunc   rt   r   c                 H    |                      t          j        d           d S rp   )rT   r2   rad2degrE   s    r   test_rad2deg_ufunczTestUFuncs.test_rad2deg_ufunc   rt   r   c                 H    |                      t          j        d           d S rp   )rT   r2   degreesrE   s    r   test_degrees_ufunczTestUFuncs.test_degrees_ufunc   rt   r   c                 H    |                      t          j        d           d S rp   )rT   r2   radiansrE   s    r   test_radians_ufunczTestUFuncs.test_radians_ufunc   rt   r   c                 D    |                      t          j                   d S rH   )signed_unsigned_cmp_testr2   greaterrE   s    r   test_greater_ufunczTestUFuncs.test_greater_ufunc   s    %%bj11111r   c                 D    |                      t          j                   d S rH   )r   r2   greater_equalrE   s    r   test_greater_equal_ufuncz#TestUFuncs.test_greater_equal_ufunc   s    %%b&677777r   c                 D    |                      t          j                   d S rH   )r   r2   lessrE   s    r   test_less_ufunczTestUFuncs.test_less_ufunc   s    %%bg.....r   c                 D    |                      t          j                   d S rH   )r   r2   
less_equalrE   s    r   test_less_equal_ufuncz TestUFuncs.test_less_equal_ufunc   s    %%bm44444r   c                 D    |                      t          j                   d S rH   )r   r2   	not_equalrE   s    r   test_not_equal_ufunczTestUFuncs.test_not_equal_ufunc   s    %%bl33333r   c                 D    |                      t          j                   d S rH   )r   r2   equalrE   s    r   test_equal_ufunczTestUFuncs.test_equal_ufunc   s    %%bh/////r   c                 D    |                      t          j                   d S rH   )rT   r2   logical_andrE   s    r   test_logical_and_ufuncz!TestUFuncs.test_logical_and_ufunc       bn-----r   c                 D    |                      t          j                   d S rH   )rT   r2   
logical_orrE   s    r   test_logical_or_ufuncz TestUFuncs.test_logical_or_ufunc   s    bm,,,,,r   c                 D    |                      t          j                   d S rH   )rT   r2   logical_xorrE   s    r   test_logical_xor_ufuncz!TestUFuncs.test_logical_xor_ufunc   r   r   c                 D    |                      t          j                   d S rH   )rT   r2   logical_notrE   s    r   test_logical_not_ufuncz!TestUFuncs.test_logical_not_ufunc   r   r   c                 D    |                      t          j                   d S rH   )rT   r2   maximumrE   s    r   test_maximum_ufunczTestUFuncs.test_maximum_ufunc       bj)))))r   c                 D    |                      t          j                   d S rH   )rT   r2   minimumrE   s    r   test_minimum_ufunczTestUFuncs.test_minimum_ufunc   r   r   c                 D    |                      t          j                   d S rH   )rT   r2   fmaxrE   s    r   test_fmax_ufunczTestUFuncs.test_fmax_ufunc       bg&&&&&r   c                 D    |                      t          j                   d S rH   )rT   r2   fminrE   s    r   test_fmin_ufunczTestUFuncs.test_fmin_ufunc   r   r   c                 D    |                      t          j                   d S rH   )rV   r2   bitwise_andrE   s    r   test_bitwise_and_ufuncz!TestUFuncs.test_bitwise_and_ufunc       !!".11111r   c                 D    |                      t          j                   d S rH   )rV   r2   
bitwise_orrE   s    r   test_bitwise_or_ufuncz TestUFuncs.test_bitwise_or_ufunc   s    !!"-00000r   c                 D    |                      t          j                   d S rH   )rV   r2   bitwise_xorrE   s    r   test_bitwise_xor_ufuncz!TestUFuncs.test_bitwise_xor_ufunc   r   r   c                 D    |                      t          j                   d S rH   )rV   r2   invertrE   s    r   test_invert_ufunczTestUFuncs.test_invert_ufunc   s    !!"),,,,,r   c                 D    |                      t          j                   d S rH   )rV   r2   bitwise_notrE   s    r   test_bitwise_not_ufuncz!TestUFuncs.test_bitwise_not_ufunc   r   r   c                 H    |                      t          j        d           d S rX   )rT   r2   logrE   s    r   test_log_ufunczTestUFuncs.test_log_ufunc
  r^   r   c                 H    |                      t          j        d           d S rX   )rT   r2   log2rE   s    r   test_log2_ufunczTestUFuncs.test_log2_ufunc  r{   r   c                 H    |                      t          j        d           d S rX   )rT   r2   log10rE   s    r   test_log10_ufunczTestUFuncs.test_log10_ufunc  s#    bhd33333r   rH   )3r   
__module____qualname___numba_parallel_test_r/   rI   r   	functools	lru_cacherP   rV   r]   ra   rd   rg   rk   rn   rs   rw   rz   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    r       s       !@. @. @.DH H H
* * * Y&&&, , '&,
= = = =,2 2 22 2 22 2 25 5 55 5 55 5 55 5 53 3 33 3 33 3 33 3 36 6 66 6 6K K K 5 5 55 5 55 5 55 5 5
2 2 28 8 8/ / /5 5 54 4 40 0 0. . .- - -. . .. . .* * ** * *' ' '' ' '2 2 21 1 12 2 2- - -2 2 22 2 23 3 34 4 4 4 4r   r    __main__)r   numpyr2   unittestnumbar   r   r   numba.tests.supportr   numba.tests.test_ufuncsr   r   r    r   mainr   r   r   <module>r      s             % % % % % % % % % % ( ( ( ( ( ( 2 2 2 2 2 2  "v4 v4 v4 v4 v4 v4 v4 v4r zHMOOOOO r   