§
    ƒÛgÌ  ã                   ó°   — d dl Z d dlZd dlmZmZmZmZmZ d dl	m
Z
mZ d„ Zd„ Zd„ Zd„ Zd„ Zd	„ Z G d
„ de¦  «        Zedk    r e
j        ¦   «          dS dS )é    N)ÚcudaÚfloat64Úint8Úint32Úvoid)ÚunittestÚCUDATestCasec                 óÂ   — t          j        d¦  «        \  }}|j        \  }}||k    s||k    rd S t          j        | ||f         t          |¦  «        ¦  «        |||f<   d S ©Né   )r   ÚgridÚshapeÚmathÚpowr   ©ÚAÚpowerÚpower_AÚyÚxÚmÚns          úW/granary/edev/quantum/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_powi.pyÚcu_mat_powerr      s_   € ÝŒ9�Q‰<Œ<�D€A€qàŒ=�D€A€qØˆA‚v€v��a’�Øˆå”H˜Q˜q !˜tœW¥e¨E¡l¤lÑ3Ô3€GˆAˆqˆD�M€M€Mó    c                 óˆ   — t          j        d¦  «        \  }}|j        \  }}||k    s||k    rd S | ||f         |z  |||f<   d S r   )r   r   r   r   s          r   Úcu_mat_power_binopr      sR   € ÝŒ9�Q‰<Œ<�D€A€qàŒ=�D€A€qØˆA‚v€v��a’�Øˆà�a˜�d”G˜uÑ$€GˆAˆqˆD�M€M€Mr   c                 ó–   — t          j        d¦  «        }|t          | ¦  «        k     r!t          ||         ||         ¦  «        | |<   d S d S ©Né   )r   r   Úlenr   ©Úrr   r   Úis       r   Úvec_powr%      sB   € ÝŒ	�!‰Œ€Aà�3ˆq‰6Œ6‚z€zÝ�1�Q”4˜˜1œ‰Œˆˆ!‰ˆˆð €zr   c                 ó€   — t          j        d¦  «        }|t          | ¦  «        k     r||         ||         z  | |<   d S d S r   ©r   r   r!   r"   s       r   Úvec_pow_binopr(   "   s>   € ÝŒ	�!‰Œ€Aà�3ˆq‰6Œ6‚z€zØ�Œt�q˜”t‰|ˆˆ!‰ˆˆð €zr   c                 ó„   — t          j        d¦  «        }|t          | ¦  «        k     r| |xx         ||         z  cc<   d S d S r   r'   )r#   r   r$   s      r   Úvec_pow_inplace_binopr*   )   sB   € ÝŒ	�!‰Œ€Aà�3ˆq‰6Œ6‚z€zØ	ˆ!ˆˆŒ��1”‰ˆˆ‰ˆˆð €zr   c                 óÄ   — t           j                             d¦  «         t           j                             d¦  «        t           j                             d¦  «        dz  z   S )Né{   r    ù              ð?)ÚnpÚrandomÚseed)ÚNs    r   Úrandom_complexr2   0   sF   € Ý„I‡N‚N�3ÑÔÐÝŒI×Ò˜QÑÔ¥"¤)×"2Ò"2°1Ñ"5Ô"5¸Ñ":Ñ:Ð;r   c                   óN   — e Zd Zd„ Zd„ Zdd„Zd„ Zd„ Zd„ Zd„ Z	dd	„Z
d
„ Zd„ ZdS )ÚTestCudaPowic           
      óØ  — t          j        t          t          d d …d d …f         t          t          d d …d d …f         ¦  «        ¦  «        } |t
          ¦  «        }d}t          j        dt          j        ¬¦  «                             dd¦  «        }t          j	        |¦  «        } |d|j
        f         |||¦  «         |                      t          j        |||z  ¦  «        ¦  «         d S ©Nr   é
   ©Údtypeé   r    )r   Újitr   r   r   r   r.   ÚarangeÚreshapeÚ
empty_liker   Ú
assertTrueÚallclose©ÚselfÚdecÚkernelr   r   ÚAouts         r   Ú	test_powizTestCudaPowi.test_powi6   sÍ   € ÝŒh•t�G A A A q q q DœM­4µ¸¸¸¸A¸A¸A¸´Ñ?Ô?Ñ@Ô@ˆØ�•\Ñ"Ô"ˆàˆÝŒI�b¥¤
Ð+Ñ+Ô+×3Ò3°A°qÑ9Ô9ˆÝŒ}˜QÑÔˆØˆˆq�!”'ˆzÔ˜1˜e TÑ*Ô*Ð*Ø�Š�œ D¨!¨u©*Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6r   c           
      óØ  — t          j        t          t          d d …d d …f         t          t          d d …d d …f         ¦  «        ¦  «        } |t
          ¦  «        }d}t          j        dt          j        ¬¦  «                             dd¦  «        }t          j	        |¦  «        } |d|j
        f         |||¦  «         |                      t          j        |||z  ¦  «        ¦  «         d S r6   )r   r;   r   r   r   r   r.   r<   r=   r>   r   r?   r@   rA   s         r   Útest_powi_binopzTestCudaPowi.test_powi_binop@   sÎ   € ÝŒh•t�G A A A q q q DœM­4µ¸¸¸¸A¸A¸A¸´Ñ?Ô?Ñ@Ô@ˆØ�Õ'Ñ(Ô(ˆàˆÝŒI�b¥¤
Ð+Ñ+Ô+×3Ò3°A°qÑ9Ô9ˆÝŒ}˜QÑÔˆØˆˆq�!”'ˆzÔ˜1˜e TÑ*Ô*Ð*Ø�Š�œ D¨!¨u©*Ñ5Ô5Ñ6Ô6Ð6Ð6Ð6r   çH¯¼šò×z>c                 óN  — d}t          |¦  «                             |¦  «        }t          |¦  «                             |¦  «        }t          j        |¦  «        }t	          j        |¦  «        } |d|f         |||¦  «         t          j                             |||z  |¬¦  «         t          j        ddg|¬¦  «        }t          j        ddg|¬¦  «        }t          j        |¦  «        } |d         |||¦  «         t          j                             |||z  |¬¦  «         d S )	Né    r    ©Úrtoly                r-   r8   g      ð?)r    r   )	r2   Úastyper.   Ú
zeros_liker   r;   ÚtestingÚassert_allcloseÚasarray)	rB   r9   ÚfuncrM   r1   r   r   r#   Úcfuncs	            r   Ú
_test_cpowzTestCudaPowi._test_cpowL   s  € ØˆÝ˜1ÑÔ×$Ò$ UÑ+Ô+ˆÝ˜1ÑÔ×$Ò$ UÑ+Ô+ˆÝŒM˜!ÑÔˆå”˜‘”ˆØˆˆa�ˆdŒ�A�q˜!ÑÔÐÝ
Œ
×"Ò" 1 a¨1¡f°4Ð"Ñ8Ô8Ð8õ ŒJ˜˜d�|¨5Ð1Ñ1Ô1ˆÝŒJ˜˜c�{¨%Ð0Ñ0Ô0ˆÝŒM˜!ÑÔˆàˆˆdŒ�A�q˜!ÑÔÐÝ
Œ
×"Ò" 1 a¨1¡f°4Ð"Ñ8Ô8Ð8Ð8Ð8r   c                 óT   — |                       t          j        t          d¬¦  «         d S ©Ngvƒôõ!”>rL   )rU   r.   Ú	complex64r%   ©rB   s    r   Útest_cpow_complex64_powz$TestCudaPowi.test_cpow_complex64_pow^   s"   € Ø�Š�œ¥g°FˆÑ;Ô;Ð;Ð;Ð;r   c                 óT   — |                       t          j        t          d¬¦  «         d S rW   )rU   r.   rX   r(   rY   s    r   Útest_cpow_complex64_binopz&TestCudaPowi.test_cpow_complex64_binopa   s"   € Ø�Š�œ¥m¸&ˆÑAÔAÐAÐAÐAr   c                 óP   — |                       t          j        t          ¦  «         d S ©N)rU   r.   Ú
complex128r%   rY   s    r   Útest_cpow_complex128_powz%TestCudaPowi.test_cpow_complex128_powd   s   € Ø�Š�œ¥wÑ/Ô/Ð/Ð/Ð/r   c                 óP   — |                       t          j        t          ¦  «         d S r^   )rU   r.   r_   r(   rY   s    r   Útest_cpow_complex128_binopz'TestCudaPowi.test_cpow_complex128_binopg   s   € Ø�Š�œ¥}Ñ5Ô5Ð5Ð5Ð5r   c                 ó:  — d}t          |¦  «                             |¦  «        }t          |¦  «                             |¦  «        }||z  }t          j        t          ¦  «        } |d|f         ||¦  «         t
          j                             |||¬¦  «         d S )NrK   r    rL   )r2   rN   r   r;   r*   r.   rP   rQ   )rB   r9   rM   r1   r   r   r#   rT   s           r   Ú_test_cpow_inplace_binopz%TestCudaPowi._test_cpow_inplace_binopj   s“   € ØˆÝ˜1ÑÔ×$Ò$ UÑ+Ô+ˆÝ˜1ÑÔ×$Ò$ UÑ+Ô+ˆØ�‰Fˆå”Õ.Ñ/Ô/ˆØˆˆa�ˆdŒ�A�qÑÔÐÝ
Œ
×"Ò" 1 a¨dÐ"Ñ3Ô3Ð3Ð3Ð3r   c                 óH   — |                       t          j        d¬¦  «         d S rW   )rd   r.   rX   rY   s    r   Ú!test_cpow_complex64_inplace_binopz.TestCudaPowi.test_cpow_complex64_inplace_binopt   s#   € Ø×%Ò%¥b¤l¸Ð%Ñ@Ô@Ð@Ð@Ð@r   c                 óH   — |                       t          j        d¬¦  «         d S rW   )rd   r.   r_   rY   s    r   Ú"test_cpow_complex128_inplace_binopz/TestCudaPowi.test_cpow_complex128_inplace_binopw   s#   € Ø×%Ò%¥b¤m¸&Ð%ÑAÔAÐAÐAÐAr   N)rI   )Ú__name__Ú
__module__Ú__qualname__rF   rH   rU   rZ   r\   r`   rb   rd   rf   rh   © r   r   r4   r4   5   s¿   € € € € € ð7ð 7ð 7ð7ð 7ð 7ð9ð 9ð 9ð 9ð$<ð <ð <ðBð Bð Bð0ð 0ð 0ð6ð 6ð 6ð4ð 4ð 4ð 4ðAð Að AðBð Bð Bð Bð Br   r4   Ú__main__)r   Únumpyr.   Únumbar   r   r   r   r   Únumba.cuda.testingr   r	   r   r   r%   r(   r*   r2   r4   ri   Úmainrl   r   r   ú<module>rr      s  ðØ €€€Ø Ð Ð Ð Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ð4ð 4ð 4ð%ð %ð %ðð ð ðð ð ðð ð ð<ð <ð <ð
CBð CBð CBð CBð CB�<ñ CBô CBð CBðL ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   