
    xKgi	                         d dl Zd dlmZmZ d dlmZmZmZ d Z	d Z
 ed       G d de             Zed	k(  r ej                          yy)
    N)cudafloat64)unittestCUDATestCaseskip_on_cudasimc                     t        j                  d      }|t        |      k\  ry t        t	        | |   ||               ||<   y N   )r   gridlenr   maxABCis       g/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/cuda/tests/cudapy/test_minmax.pybuiltin_maxr      9    		!ACF{3qtQqT?#AaD    c                     t        j                  d      }|t        |      k\  ry t        t	        | |   ||               ||<   y r	   )r   r   r   r   minr   s       r   builtin_minr      r   r   zTests PTX emissionc                   F    e Zd Z	 ddZd Zd Zd Zd Zd Zd Z	d Z
d	 Zy
)TestCudaMinMaxc                    t        j                  |      }t        j                  |t        j                        }t        j
                  ||      dz   }t        j                  |d|      }	 |d|j                  f   ||	|       t        j                  j                  | |||	             t        d |j                         j                         D              }
| j                  ||
       y )N)dtypeg      ?   )
fill_valuer   r
   c              3       K   | ]  }|  y w)N ).0ps     r   	<genexpr>z&TestCudaMinMax._run.<locals>.<genexpr>,   s     <;1;s   )r   jitnpzerosr   arangefullshapetestingassert_allclosenextinspect_asmvaluesassertIn)selfkernelnumpy_equivalentptx_instruction
dtype_leftdtype_rightncabptxs              r   _runzTestCudaMinMax._run   s     &!HHQbjj)IIaz*R/GGA!;7q!''z1a#


""1&6q!&<=<f00299;<<os+r   c                     | j                  t        t        j                  dt        j                  t        j                         y Nzmax.f64)r<   r   r&   maximumr   r1   s    r   test_max_f8f8zTestCudaMinMax.test_max_f8f8/   )    		JJJJJJ	r   c                     | j                  t        t        j                  dt        j                  t        j
                         y r>   )r<   r   r&   r?   float32r   r@   s    r   test_max_f4f8zTestCudaMinMax.test_max_f4f87   rB   r   c                     | j                  t        t        j                  dt        j                  t        j
                         y r>   )r<   r   r&   r?   r   rD   r@   s    r   test_max_f8f4zTestCudaMinMax.test_max_f8f4?   rB   r   c                     | j                  t        t        j                  dt        j                  t        j                         y )Nzmax.f32)r<   r   r&   r?   rD   r@   s    r   test_max_f4f4zTestCudaMinMax.test_max_f4f4G   rB   r   c                     | j                  t        t        j                  dt        j                  t        j                         y Nzmin.f64)r<   r   r&   minimumr   r@   s    r   test_min_f8f8zTestCudaMinMax.test_min_f8f8O   rB   r   c                     | j                  t        t        j                  dt        j                  t        j
                         y rK   )r<   r   r&   rL   rD   r   r@   s    r   test_min_f4f8zTestCudaMinMax.test_min_f4f8W   rB   r   c                     | j                  t        t        j                  dt        j                  t        j
                         y rK   )r<   r   r&   rL   r   rD   r@   s    r   test_min_f8f4zTestCudaMinMax.test_min_f8f4_   rB   r   c                     | j                  t        t        j                  dt        j                  t        j                         y )Nzmin.f32)r<   r   r&   rL   rD   r@   s    r   test_min_f4f4zTestCudaMinMax.test_min_f4f4g   rB   r   N)   )__name__
__module____qualname__r<   rA   rE   rG   rI   rM   rO   rQ   rS   r!   r   r   r   r      s4     ,(r   r   __main__)numpyr&   numbar   r   numba.cuda.testingr   r   r   r   r   r   rU   mainr!   r   r   <module>r]      sZ      F F$$ %&S\ S 'Sl zHMMO r   