
    ܙd                         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     Clib/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                       e Zd ZdZd Zd Zd Z ej        d          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S )
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           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asfortranarrayr   CUDA_LOW_OCCUPANCY_WARNINGS_low_occupancy_warningsCUDA_WARN_ON_IMPLICIT_COPY_warn_on_implicit_copyselfs    r   r/   zTestUFuncs.setUp   sI   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
 	 	 	 (.'I$&,&G# ./*,-)))r   c                 J    | j         t          _        | j        t          _        d S N)r<   r   r;   r>   r=   r?   s    r   tearDownzTestUFuncs.tearDownI   s    -1-I*,0,G)))r   c                      t          |          S rB   )r   )r@   r   s     r   r   zTestUFuncs._make_ufunc_usecaseN   s    "5)))r   N)maxsizec                 H     t          j        |          |          d         S )N)r'   r'   )r   jit)r@   pyfuncargss      r   _compilezTestUFuncs._compileQ   s!     tx~~f%%d++r   c                 H    |                      t          j        d           d S Ncfkinds)basic_ufunc_testr2   sinr?   s    r   test_sin_ufunczTestUFuncs.test_sin_ufuncZ   #    bfD11111r   c                 H    |                      t          j        d           d S rL   )rP   r2   cosr?   s    r   test_cos_ufunczTestUFuncs.test_cos_ufunc]   rS   r   c                 H    |                      t          j        d           d S rL   )rP   r2   tanr?   s    r   test_tan_ufunczTestUFuncs.test_tan_ufunc`   rS   r   c                 H    |                      t          j        d           d S rL   )rP   r2   arcsinr?   s    r   test_arcsin_ufunczTestUFuncs.test_arcsin_ufuncc   #    bit44444r   c                 H    |                      t          j        d           d S rL   )rP   r2   arccosr?   s    r   test_arccos_ufunczTestUFuncs.test_arccos_ufuncf   r]   r   c                 H    |                      t          j        d           d S rL   )rP   r2   arctanr?   s    r   test_arctan_ufunczTestUFuncs.test_arctan_ufunci   r]   r   c                 H    |                      t          j        d           d S NfrN   )rP   r2   arctan2r?   s    r   test_arctan2_ufunczTestUFuncs.test_arctan2_ufuncl   #    bj44444r   c                 H    |                      t          j        d           d S re   )rP   r2   hypotr?   s    r   test_hypot_ufunczTestUFuncs.test_hypot_ufunco   s#    bhc22222r   c                 H    |                      t          j        d           d S rL   )rP   r2   sinhr?   s    r   test_sinh_ufunczTestUFuncs.test_sinh_ufuncr   #    bgT22222r   c                 H    |                      t          j        d           d S rL   )rP   r2   coshr?   s    r   test_cosh_ufunczTestUFuncs.test_cosh_ufuncu   rp   r   c                 H    |                      t          j        d           d S rL   )rP   r2   tanhr?   s    r   test_tanh_ufunczTestUFuncs.test_tanh_ufuncx   rp   r   c                 H    |                      t          j        d           d S rL   )rP   r2   arcsinhr?   s    r   test_arcsinh_ufunczTestUFuncs.test_arcsinh_ufunc{   #    bj55555r   c                 H    |                      t          j        d           d S rL   )rP   r2   arccoshr?   s    r   test_arccosh_ufunczTestUFuncs.test_arccosh_ufunc~   rz   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(   rM   )skip_inputsrO   )	r   r6   uint32int32uint64int64rP   r2   arctanh)r@   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 re   )rP   r2   deg2radr?   s    r   test_deg2rad_ufunczTestUFuncs.test_deg2rad_ufunc   ri   r   c                 H    |                      t          j        d           d S re   )rP   r2   rad2degr?   s    r   test_rad2deg_ufunczTestUFuncs.test_rad2deg_ufunc   ri   r   c                 H    |                      t          j        d           d S re   )rP   r2   degreesr?   s    r   test_degrees_ufunczTestUFuncs.test_degrees_ufunc   ri   r   c                 H    |                      t          j        d           d S re   )rP   r2   radiansr?   s    r   test_radians_ufunczTestUFuncs.test_radians_ufunc   ri   r   )r   
__module____qualname___numba_parallel_test_r/   rC   r   	functools	lru_cacherJ   rR   rV   rY   r\   r`   rc   rh   rl   ro   rs   rv   ry   r}   r   r   r   r   r    r   r   r    r       s       !). ). ).V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 5 5r   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  "@5 @5 @5 @5 @5 @5 @5 @5F zHMOOOOO r   