§
    ƒÛgi	  ã                   óª   — 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        ¦   «          dS dS )
é    N)ÚcudaÚfloat64)ÚunittestÚCUDATestCaseÚskip_on_cudasimc                 ó°   — t          j        d¦  «        }|t          |¦  «        k    rd S t          t	          | |         ||         ¦  «        ¦  «        ||<   d S ©Né   )r   ÚgridÚlenr   Úmax©ÚAÚBÚCÚis       úY/granary/edev/quantum/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_minmax.pyÚbuiltin_maxr      óH   € ÝŒ	�!‰Œ€Aà�C�‰FŒF‚{€{Øˆå•3�q˜”t˜Q˜qœT‘?”?Ñ#Ô#€A€a�D€D€Dó    c                 ó°   — t          j        d¦  «        }|t          |¦  «        k    rd S t          t	          | |         ||         ¦  «        ¦  «        ||<   d S r	   )r   r   r   r   Úminr   s       r   Úbuiltin_minr      r   r   zTests PTX emissionc                   óH   — e Zd Z	 dd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d	„ Z
d
„ ZdS )ÚTestCudaMinMaxé   c                 óü  — t          j        |¦  «        }t          j        |t          j        ¬¦  «        }t          j        ||¬¦  «        dz   }t          j        |d|¬¦  «        }	 |d|j        f         ||	|¦  «         t          j         	                    | |||	¦  «        ¦  «         t          d„ |                     ¦   «                              ¦   «         D ¦   «         ¦  «        }
|                      ||
¦  «         d S )N)Údtypeg      à?é   )Ú
fill_valuer   r
   c              3   ó   K  — | ]}|V — Œd S )N© )Ú.0Úps     r   ú	<genexpr>z&TestCudaMinMax._run.<locals>.<genexpr>,   s"   è è € Ð<Ð<˜�1Ð<Ð<Ð<Ð<Ð<Ð<r   )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ë   € õ ”˜&Ñ!Ô!ˆåŒH�Q�bœjÐ)Ñ)Ô)ˆÝŒI�a˜zÐ*Ñ*Ô*¨RÑ/ˆÝŒG�A !¨;Ð7Ñ7Ô7ˆàˆˆq�!”'ˆzÔ˜1˜a Ñ#Ô#Ð#Ý
Œ
×"Ò" 1Ð&6Ð&6°q¸!Ñ&<Ô&<Ñ=Ô=Ð=åÐ<Ð<˜f×0Ò0Ñ2Ô2×9Ò9Ñ;Ô;Ð<Ñ<Ô<Ñ<Ô<ˆØ�Š�o sÑ+Ô+Ð+Ð+Ð+r   c                 ó~   — |                       t          t          j        dt          j        t          j        ¦  «         d S ©Nzmax.f64)r=   r   r'   Úmaximumr   ©r2   s    r   Útest_max_f8f8zTestCudaMinMax.test_max_f8f8/   ó7   € Ø�	Š	ÝÝŒJØÝŒJÝŒJñ	ô 	ð 	ð 	ð 	r   c                 ó~   — |                       t          t          j        dt          j        t          j        ¦  «         d S r?   )r=   r   r'   r@   Úfloat32r   rA   s    r   Útest_max_f4f8zTestCudaMinMax.test_max_f4f87   rC   r   c                 ó~   — |                       t          t          j        dt          j        t          j        ¦  «         d S r?   )r=   r   r'   r@   r   rE   rA   s    r   Útest_max_f8f4zTestCudaMinMax.test_max_f8f4?   rC   r   c                 ó~   — |                       t          t          j        dt          j        t          j        ¦  «         d S )Nzmax.f32)r=   r   r'   r@   rE   rA   s    r   Útest_max_f4f4zTestCudaMinMax.test_max_f4f4G   rC   r   c                 ó~   — |                       t          t          j        dt          j        t          j        ¦  «         d S ©Nzmin.f64)r=   r   r'   Úminimumr   rA   s    r   Útest_min_f8f8zTestCudaMinMax.test_min_f8f8O   rC   r   c                 ó~   — |                       t          t          j        dt          j        t          j        ¦  «         d S rL   )r=   r   r'   rM   rE   r   rA   s    r   Útest_min_f4f8zTestCudaMinMax.test_min_f4f8W   rC   r   c                 ó~   — |                       t          t          j        dt          j        t          j        ¦  «         d S rL   )r=   r   r'   rM   r   rE   rA   s    r   Útest_min_f8f4zTestCudaMinMax.test_min_f8f4_   rC   r   c                 ó~   — |                       t          t          j        dt          j        t          j        ¦  «         d S )Nzmin.f32)r=   r   r'   rM   rE   rA   s    r   Útest_min_f4f4zTestCudaMinMax.test_min_f4f4g   rC   r   N)r   )Ú__name__Ú
__module__Ú__qualname__r=   rB   rF   rH   rJ   rN   rP   rR   rT   r"   r   r   r   r      s¥   € € € € € ð ð,ð ,ð ,ð ,ð(ð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð ð r   r   Ú__main__)Únumpyr'   Únumbar   r   Únumba.cuda.testingr   r   r   r   r   r   rU   Úmainr"   r   r   ú<module>r]      sÖ   ðØ Ð Ð Ð à Ð Ð Ð Ð Ð Ð Ð Ø FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ FÐ Fð$ð $ð $ð$ð $ð $ð €Ð%Ñ&Ô&ðSð Sð Sð Sð S�\ñ Sô Sñ 'Ô&ðSðl ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   