
    ܙd                        d dl mZmZ d dlmZ d dlmZmZmZ d dl	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$ eed           d!             Z% eed"           d#             Z& eed           d$             Z' eed"           d%             Z( eed           d&             Z) eed           d'             Z* eed"           d(             Z+ eed"           d)             Z, eed           d*             Z- eed"           d+             Z. eed           d,             Z/ eed"           d-             Z0 eed           d.             Z1 eed"           d/             Z2 ed0           G d1 d2e                      Z3e4d3k    r ej5                     dS dS )4    )cudanjit)overload)CUDATestCaseskip_on_cudasimunittestNc                      d S N r       Elib/python3.11/site-packages/numba/cuda/tests/cudapy/test_overload.pygeneric_func_1r   
       Dr   c                      d S r
   r   r   r   r   cuda_func_1r      r   r   c                      d S r
   r   r   r   r   generic_func_2r      r   r   c                      d S r
   r   r   r   r   cuda_func_2r      r   r   c                      d S r
   r   r   r   r   generic_calls_genericr      r   r   c                      d S r
   r   r   r   r   generic_calls_cudar      r   r   c                      d S r
   r   r   r   r   cuda_calls_genericr   "   r   r   c                      d S r
   r   r   r   r   cuda_calls_cudar   &   r   r   c                      d S r
   r   r   r   r   target_overloadedr   *   r   r   c                      d S r
   r   r   r   r   generic_calls_target_overloadedr!   .   r   r   c                      d S r
   r   r   r   r   cuda_calls_target_overloadedr#   2   r   r   c                      d S r
   r   r   r   r   )target_overloaded_calls_target_overloadedr%   6   r   r                                    %   )   +   generic)targetc                     d }|S )Nc                 0    | dxx         t           z  cc<   d S Nr   )GENERIC_FUNCTION_1xs    r   implzol_generic_func_1.<locals>.implS       	!""r   r   r;   r<   s     r   ol_generic_func_1r?   Q       # # #Kr   r   c                     d }|S )Nc                 0    | dxx         t           z  cc<   d S r8   )CUDA_FUNCTION_1r:   s    r   r<   zol_cuda_func_1.<locals>.implZ       	!r   r   r>   s     r   ol_cuda_func_1rE   X            Kr   c                     d }|S )Nc                 0    | dxx         t           z  cc<   d S r8   )GENERIC_FUNCTION_2r:   s    r   r<   zol_generic_func_2.<locals>.impla   r=   r   r   r>   s     r   ol_generic_func_2rJ   _   r@   r   c                     d }|S )Nc                 0    | dxx         t           z  cc<   d S r8   )CUDA_FUNCTION_2r:   s    r   r<   zol_cuda_func.<locals>.implh   rD   r   r   r>   s     r   ol_cuda_funcrN   f   rF   r   c                     d }|S )Nc                 N    | dxx         t           z  cc<   t          |            d S r8   )GENERIC_CALLS_GENERICr   r:   s    r   r<   z&ol_generic_calls_generic.<locals>.implo   s-    	!%%qr   r   r>   s     r   ol_generic_calls_genericrR   m          Kr   c                     d }|S )Nc                 N    | dxx         t           z  cc<   t          |            d S r8   )GENERIC_CALLS_CUDAr   r:   s    r   r<   z#ol_generic_calls_cuda.<locals>.implw   s(    	!""Ar   r   r>   s     r   ol_generic_calls_cudarW   u          Kr   c                     d }|S )Nc                 N    | dxx         t           z  cc<   t          |            d S r8   )CUDA_CALLS_GENERICr   r:   s    r   r<   z#ol_cuda_calls_generic.<locals>.impl   s-    	!""qr   r   r>   s     r   ol_cuda_calls_genericr\   }   rS   r   c                     d }|S )Nc                 N    | dxx         t           z  cc<   t          |            d S r8   )CUDA_CALLS_CUDAr   r:   s    r   r<   z ol_cuda_calls_cuda.<locals>.impl   s'    	!Ar   r   r>   s     r   ol_cuda_calls_cudar`      rX   r   c                     d }|S )Nc                 0    | dxx         t           z  cc<   d S r8   )GENERIC_TARGET_OLr:   s    r   r<   z*ol_target_overloaded_generic.<locals>.impl   s    	!!!r   r   r>   s     r   ol_target_overloaded_genericrd      s    " " "Kr   c                     d }|S )Nc                 0    | dxx         t           z  cc<   d S r8   )CUDA_TARGET_OLr:   s    r   r<   z'ol_target_overloaded_cuda.<locals>.impl   s    	!r   r   r>   s     r   ol_target_overloaded_cudarh      s      Kr   c                     d }|S )Nc                 N    | dxx         t           z  cc<   t          |            d S r8   )GENERIC_CALLS_TARGET_OLr   r:   s    r   r<   z0ol_generic_calls_target_overloaded.<locals>.impl   s-    	!''!r   r   r>   s     r   "ol_generic_calls_target_overloadedrl             Kr   c                     d }|S )Nc                 N    | dxx         t           z  cc<   t          |            d S r8   )CUDA_CALLS_TARGET_OLr   r:   s    r   r<   z-ol_cuda_calls_target_overloaded.<locals>.impl   s-    	!$$!r   r   r>   s     r   ol_cuda_calls_target_overloadedrq      rm   r   c                     d }|S )Nc                 N    | dxx         t           z  cc<   t          |            d S r8   )!GENERIC_TARGET_OL_CALLS_TARGET_OLr   r:   s    r   r<   z8ol_generic_calls_target_overloaded_generic.<locals>.impl   s-    	!11!r   r   r>   s     r   *ol_generic_calls_target_overloaded_genericru      rm   r   c                     d }|S )Nc                 N    | dxx         t           z  cc<   t          |            d S r8   )CUDA_TARGET_OL_CALLS_TARGET_OLr   r:   s    r   r<   z5ol_generic_calls_target_overloaded_cuda.<locals>.impl   s-    	!..!r   r   r>   s     r   'ol_generic_calls_target_overloaded_cudary      rm   r   z$Overloading not supported in cudasimc                   h    e 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 )TestOverloadc                     t          j        dt           j                  } t          j        |          d         |           |                     |d         |           d S )N   dtype)r}   r}   r   )nponesint32r   jitassertEqualselfkernelexpectedr;   s       r   check_overloadzTestOverload.check_overload   sW    GARX&&&q!!!1x(((((r   c                     t          j        dt           j                  } t          |          |           |                     |d         |           d S )Nr}   r~   r   )r   r   r   r   r   r   s       r   check_overload_cpuzTestOverload.check_overload_cpu   sK    GARX&&&VQ1x(((((r   c                 F    d }t           }|                     ||           d S )Nc                 $    t          |            d S r
   )r   r:   s    r   r   z)TestOverload.test_generic.<locals>.kernel   s    1r   )r9   r   r   r   r   s      r   test_genericzTestOverload.test_generic   s4    	 	 	 &FH-----r   c                 F    d }t           }|                     ||           d S )Nc                 $    t          |            d S r
   )r   r:   s    r   r   z&TestOverload.test_cuda.<locals>.kernel   s    NNNNNr   )rC   r   r   s      r   	test_cudazTestOverload.test_cuda   s4    	 	 	 #FH-----r   c                 V    d }t           t          z  }|                     ||           d S )Nc                 B    t          |            t          |            d S r
   )r   r   r:   s    r   r   z2TestOverload.test_generic_and_cuda.<locals>.kernel   s    1NNNNNr   )r9   rC   r   r   s      r   test_generic_and_cudaz"TestOverload.test_generic_and_cuda   s9    	 	 	 &7FH-----r   c                 V    d }t           t          z  }|                     ||           d S )Nc                 B    t          |            t          |            d S r
   )r   r   r:   s    r   r   z8TestOverload.test_call_two_generic_calls.<locals>.kernel   s$    11r   )r9   rI   r   r   s      r   test_call_two_generic_callsz(TestOverload.test_call_two_generic_calls   s:    	 	 	 &(::FH-----r   c                 V    d }t           t          z  }|                     ||           d S )Nc                 B    t          |            t          |            d S r
   )r   r   r:   s    r   r   z5TestOverload.test_call_two_cuda_calls.<locals>.kernel   s    NNNNNNNNr   )rC   rM   r   r   s      r   test_call_two_cuda_callsz%TestOverload.test_call_two_cuda_calls   s9    	 	 	 #_4FH-----r   c                 V    d }t           t          z  }|                     ||           d S )Nc                 $    t          |            d S r
   )r   r:   s    r   r   z7TestOverload.test_generic_calls_generic.<locals>.kernel   s    !!$$$$$r   )rQ   r9   r   r   s      r   test_generic_calls_genericz'TestOverload.test_generic_calls_generic   s:    	% 	% 	% )+==FH-----r   c                 V    d }t           t          z  }|                     ||           d S )Nc                 $    t          |            d S r
   )r   r:   s    r   r   z4TestOverload.test_generic_calls_cuda.<locals>.kernel       q!!!!!r   )rV   rC   r   r   s      r   test_generic_calls_cudaz$TestOverload.test_generic_calls_cuda   s9    	" 	" 	" &7FH-----r   c                 V    d }t           t          z  }|                     ||           d S )Nc                 $    t          |            d S r
   )r   r:   s    r   r   z4TestOverload.test_cuda_calls_generic.<locals>.kernel   r   r   )r[   r9   r   r   s      r   test_cuda_calls_genericz$TestOverload.test_cuda_calls_generic   s:    	" 	" 	" &(::FH-----r   c                 V    d }t           t          z  }|                     ||           d S )Nc                 $    t          |            d S r
   )r   r:   s    r   r   z1TestOverload.test_cuda_calls_cuda.<locals>.kernel  s    Ar   )r_   rC   r   r   s      r   test_cuda_calls_cudaz!TestOverload.test_cuda_calls_cuda  s9    	 	 	 #_4FH-----r   c                 F    d }t           }|                     ||           d S )Nc                 $    t          |            d S r
   )r   r:   s    r   r   z8TestOverload.test_call_target_overloaded.<locals>.kernel
  s    a     r   )rg   r   r   s      r   test_call_target_overloadedz(TestOverload.test_call_target_overloaded	  s4    	! 	! 	! "FH-----r   c                 V    d }t           t          z  }|                     ||           d S )Nc                 $    t          |            d S r
   )r!   r:   s    r   r   zATestOverload.test_generic_calls_target_overloaded.<locals>.kernel  s    +A.....r   )rk   rg   r   r   s      r   $test_generic_calls_target_overloadedz1TestOverload.test_generic_calls_target_overloaded  s9    	/ 	/ 	/ +^;FH-----r   c                 V    d }t           t          z  }|                     ||           d S )Nc                 $    t          |            d S r
   )r#   r:   s    r   r   z>TestOverload.test_cuda_calls_target_overloaded.<locals>.kernel  s    (+++++r   )rp   rg   r   r   s      r   !test_cuda_calls_target_overloadedz.TestOverload.test_cuda_calls_target_overloaded  s9    	, 	, 	, (.8FH-----r   c                     d }t           t          z  }|                     ||           t          t          z  }|                     ||           d S )Nc                 $    t          |            d S r
   )r%   r:   s    r   r   zKTestOverload.test_target_overloaded_calls_target_overloaded.<locals>.kernel  s    5a88888r   )rx   rg   r   rt   rc   r   r   s      r   .test_target_overloaded_calls_target_overloadedz;TestOverload.test_target_overloaded_calls_target_overloaded  s\    	9 	9 	9 2NBFH--- 57HH11111r   N)__name__
__module____qualname__r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r{   r{      s        ) ) )
) ) )
. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .
2 
2 
2 
2 
2r   r{   __main__)6numbar   r   numba.core.extendingr   numba.cuda.testingr   r   r   numpyr   r   r   r   r   r   r   r   r   r   r!   r#   r%   r9   rC   rI   rM   rQ   rV   r[   r_   rc   rg   rk   rp   rt   rx   r?   rE   rJ   rN   rR   rW   r\   r`   rd   rh   rl   rq   ru   ry   r{   r   mainr   r   r   <module>r      s5           ) ) ) ) ) ) F F F F F F F F F F    
	 	 		 	 		 	 		 	 		 	 		 	 		 	 		 	 		 	 		 	 		 	 		 	 	         $& !!# 
 
.+++  ,+ 
+f%%%  &% 
.+++  ,+ 
+f%%%  &% 

	222  32 

Y///  0/ 

V,,,  -, 
/&)))  *) 

I...  /. 

F+++  ,+ 

))<<<  =< 

&v666  76 

3IFFF  GF 

3FCCC  DC 788l2 l2 l2 l2 l2< l2 l2 98l2^ zHMOOOOO r   