§
    ƒÛg2(  ã                   óf  — d dl Z d dlZd dlZd dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z% d dl&m'Z' d„ Z( G d„ d	e¦  «        Z) G d
„ de)¦  «        Z* G d„ de)¦  «        Z+ G d„ de¦  «        Z,e-dk    r ej.        ¦   «          dS dS )é    N)ÚunittestÚCUDATestCase)Útypes)Úcuda)Úreal_usecaseÚimag_usecaseÚconjugate_usecaseÚphase_usecaseÚpolar_as_complex_usecaseÚrect_usecaseÚisnan_usecaseÚisinf_usecaseÚisfinite_usecaseÚexp_usecaseÚlog_usecaseÚlog_base_usecaseÚlog10_usecaseÚsqrt_usecaseÚasin_usecaseÚacos_usecaseÚatan_usecaseÚcos_usecaseÚsin_usecaseÚtan_usecaseÚacosh_usecaseÚasinh_usecaseÚatanh_usecaseÚcosh_usecaseÚsinh_usecaseÚtanh_usecase)Únumpy_supportc                 óÄ  ‡‡‡‡— t          d„ ‰D ¦   «         ¦  «        rJ ‚t          ‰t          j        ¦  «        rJ ‚ t	          j         ‰‰Ž d¬¦  «        | ¦  «        Šd„ ‰gt          ‰¦  «        z   D ¦   «         }t          ‰¦  «        dk    rˆfd„}nt          ‰¦  «        dk    rˆfd„}nJ ‚ t	          j        t          |¦  «        ¦  «        |¦  «        Šˆˆˆfd
„}|S )Nc              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S ©N)Ú
isinstancer   ÚArray©Ú.0Útps     úZ/granary/edev/quantum/lib/python3.11/site-packages/numba/cuda/tests/cudapy/test_complex.pyú	<genexpr>z&compile_scalar_func.<locals>.<genexpr>   s.   è è € ÐBÐB°2•:˜b¥%¤+Ñ.Ô.ÐBÐBÐBÐBÐBÐBó    T)Údevicec                 ó:   — g | ]}t          j        |d d¦  «        ‘ŒS )é   ÚC)r   r&   r'   s     r*   ú
<listcomp>z'compile_scalar_func.<locals>.<listcomp>    s6   € ð :ð :ð :Øõ ”K  A sÑ+Ô+ð :ð :ð :r,   r/   c                 ó~   •— t          j        d¦  «        }|| j        d         k     r ‰||         ¦  «        | |<   d S d S ©Nr/   r   ©r   ÚgridÚshape)ÚoutÚaÚiÚdevice_funcs      €r*   Úkernel_funcz(compile_scalar_func.<locals>.kernel_func$   sD   ø€ Ý”	˜!‘”ˆAØ�3”9˜Q”<ÒÐØ$˜ Q q¤TÑ*Ô*��A‘��ð  Ðr,   é   c                 óŒ   •— t          j        d¦  «        }|| j        d         k     r ‰||         ||         ¦  «        | |<   d S d S r3   r4   )r7   r8   Úbr9   r:   s       €r*   r;   z(compile_scalar_func.<locals>.kernel_func)   sJ   ø€ Ý”	˜!‘”ˆAØ�3”9˜Q”<ÒÐØ$˜ Q q¤T¨1¨Q¬4Ñ0Ô0��A‘��ð  Ðr,   r   c                 óx  •‡— t          | ¦  «        Šˆfd„‰	D ¦   «         }t          j        ‰t          j        ‰¦  «        ¬¦  «        }t          | ¦  «        D ] \  }}t          ||¦  «        D ]
\  }}|||<   ŒŒ!|g|z   } ‰
t          t          j	        ‰dz  ¦  «        ¦  «        df         |Ž  t          |¦  «        S )Nc                 ó`   •— g | ]*}t          j        ‰t          j        |¦  «        ¬ ¦  «        ‘Œ+S )©Údtype)ÚnpÚemptyr!   Úas_dtype)r(   r)   Úns     €r*   r1   z?compile_scalar_func.<locals>.kernel_wrapper.<locals>.<listcomp>4   sC   ø€ ð &ð &ð &Øõ ”(˜1¥MÔ$:¸2Ñ$>Ô$>Ð?Ñ?Ô?ð &ð &ð &r,   rA   é   )ÚlenrC   rD   r!   rE   Ú	enumerateÚzipÚintÚmathÚceilÚlist)ÚvaluesÚinputsÚoutputr9   ÚvsÚvÚinpÚargsrF   ÚargtypesÚkernelÚrestypes           @€€€r*   Úkernel_wrapperz+compile_scalar_func.<locals>.kernel_wrapper2   sá   øø€ Ý�‰KŒKˆð&ð &ð &ð &Ø$ð&ñ &ô &ˆå”˜!¥=Ô#9¸'Ñ#BÔ#BÐCÑCÔCˆÝ˜vÑ&Ô&ð 	ð 	‰EˆAˆrÝ˜b &™/œ/ð ð ‘��3Ø��A‘�ðàˆx˜&Ñ ˆØ,ˆ�s•4”9˜Q ™WÑ%Ô%Ñ&Ô&¨Ð+Ô,¨dÐ3Ð3Ý�F‰|Œ|Ðr,   )	Úanyr%   r   r&   r   ÚjitrN   rH   Útuple)ÚpyfuncrV   rX   Úkernel_typesr;   rY   r:   rW   s    ``   @@r*   Úcompile_scalar_funcr_      sF  øøøø€ åÐBÐB¸ÐBÑBÔBÑBÔBÐBÐBÐBÝ˜'¥5¤;Ñ/Ô/Ð/Ð/Ð/Ø;•$”(˜7˜7 HÐ-°dÐ;Ñ;Ô;¸FÑCÔC€Kð:ð :Ø&˜i­$¨x©.¬.Ñ8ð:ñ :ô :€Lõ ˆ8�}„}˜ÒÐð	+ð 	+ð 	+ð 	+ð 	+ð 	+õ 
ˆX‰Œ˜!Ò	Ð	ð	1ð 	1ð 	1ð 	1ð 	1ð 	1ð
 	ˆà*�TŒX•e˜LÑ)Ô)Ñ*Ô*¨;Ñ7Ô7€Fð
ð 
ð 
ð 
ð 
ð 
ð 
ð Ðr,   c                   ó0   — e Zd Zd„ Zd„ Zd„ Zdd„ZeZeZdS )	ÚBaseComplexTestc                 ó¤   — ddddddt          d¦  «        t          d¦  «        t          d	¦  «        g	}d
„ t          j        ||¦  «        D ¦   «         S )Nç       €ç        r/   éÿÿÿÿg      ø?g      Àú-infú+infÚnanc                 ó4   — g | ]\  }}t          ||¦  «        ‘ŒS © ©Úcomplex©r(   ÚxÚys      r*   r1   z0BaseComplexTest.basic_values.<locals>.<listcomp>E   ó$   € ÐJÐJÐJ¡$ ! Q•˜˜1‘”ÐJÐJÐJr,   )ÚfloatÚ	itertoolsÚproduct©ÚselfÚrealss     r*   Úbasic_valueszBaseComplexTest.basic_valuesB   sP   € Ø�t˜Q  D¨$Ý�v‘”¥ f¡¤­u°U©|¬|ð=ˆàJÐJ­)Ô*;¸EÀ5Ñ*IÔ*IÐJÑJÔJÐJr,   c                 óÐ   — ddddt           j         t           j        
 t          d¦  «        t          d¦  «        t          d¦  «        g	}d„ t          j        ||¦  «        D ¦   «         S )Nrd   r/   re   rf   rg   rh   c                 ó4   — g | ]\  }}t          ||¦  «        ‘ŒS rj   rk   rm   s      r*   r1   z/BaseComplexTest.more_values.<locals>.<listcomp>J   rp   r,   ©rL   Úpirq   rr   rs   rt   s     r*   Úmore_valueszBaseComplexTest.more_valuesG   sX   € Ø�d˜A˜r¥D¤G 8­d¬g¨XÝ�v‘”¥ f¡¤­u°U©|¬|ð=ˆàJÐJ­)Ô*;¸EÀ5Ñ*IÔ*IÐJÑJÔJÐJr,   c           
      ó´   — ddddt           j         t           j        
 t          d¦  «        t          d¦  «        g}d„ t          j        ||¦  «        D ¦   «         S )Nrc   rd   r/   re   Úinfrf   c                 ó4   — g | ]\  }}t          ||¦  «        ‘ŒS rj   rk   rm   s      r*   r1   z2BaseComplexTest.non_nan_values.<locals>.<listcomp>O   rp   r,   rz   rt   s     r*   Únon_nan_valueszBaseComplexTest.non_nan_valuesL   sP   € Ø�t˜Q ¥T¤W H­t¬w¨hÝ�u‘”�u V™}œ}ð.ˆàJÐJ­)Ô*;¸EÀ5Ñ*IÔ*IÐJÑJÔJÐJr,   r/   Fc           
      óÂ  — |D �]Z}t          |t          j        ¦  «        r|f}t          |t          ¦  «        r |d         |Ž }|j        d         t          j        t          j        fv rdnd}t          ||j        |j        ¦  «        }g }	g }
|D ]‰}t          |t          t          f¦  «        s|f}	 |
 
                     ||Ž ¦  «         |	 
                    |¦  «         ŒP# t          $ r-}|                      dt          |¦  «        ¦  «         Y d }~Œ‚d }~ww xY w ||	¦  «        }t          ||
|	¦  «        D ])\  }}}d|›d|›�}|                      ||||||¬¦  «         Œ*�Œ\d S )Nr   ÚsingleÚdoublezmath domain errorz
for input z with prec )ÚprecÚulpsÚignore_sign_on_zeroÚmsg)r%   r   ÚTyper\   rU   Úfloat32Ú	complex64r_   Úreturn_typerN   ÚappendÚ
ValueErrorÚassertInÚstrrJ   ÚassertPreciseEqual)ru   r]   ÚsigsrO   r…   r†   Úsigr„   ÚcudafuncÚ	ok_valuesÚexpected_listrU   ÚeÚgot_listÚgotÚexpectedr‡   s                    r*   Úrun_funczBaseComplexTest.run_funcQ   sÃ  € Øð 	1ñ 	1ˆCÝ˜#�uœzÑ*Ô*ð Ø�d�Ý˜#�uÑ%Ô%ð #à�c˜!”f˜c�l�à”x ”{¥u¤}µe´oÐ&FÐFÐFð �Hà!ð õ +¨6°3´8¸S¼_ÑMÔMˆHØˆIØˆMØð ð �Ý! $­­u¨Ñ6Ô6ð !Ø˜5�DðØ!×(Ò(¨¨°¨Ñ7Ô7Ð7Ø×$Ò$ TÑ*Ô*Ð*Ð*øÝ!ð ð ð Ø—M’MÐ"5µs¸1±v´vÑ>Ô>Ð>Ø�H�H�H�Høøøøðøøøð  �x 	Ñ*Ô*ˆHÝ'*¨8°]ÀIÑ'NÔ'Nð 1ð 1Ñ#��X˜t˜tØ59°T°T¸4¸4Ð@�Ø×'Ò'¨¨X¸DØ-1Ø<OØ,/ð (ñ 1ô 1ð 1ð 1ñ1ð-	1ð 	1s   Â/-CÃ
DÃ'#DÄDN)r/   F)	Ú__name__Ú
__module__Ú__qualname__rw   r|   r€   rš   Ú	run_unaryÚ
run_binaryrj   r,   r*   ra   ra   @   sd   € € € € € ðKð Kð Kð
Kð Kð Kð
Kð Kð Kð
1ð 1ð 1ð 1ð< €IØ€J€J€Jr,   ra   c                   ó&   — e Zd Zd„ Zd„ Zd„ Zd„ ZdS )ÚTestComplexc                 óœ   — |                       ¦   «         }|                      |d„ t          j        t          j        fD ¦   «         |¦  «         d S )Nc                 ó8   — g | ]}|                      |¦  «        ‘ŒS rj   ©Úunderlying_floatr'   s     r*   r1   z0TestComplex.check_real_image.<locals>.<listcomp>x   s<   € ð Gð Gð GØð ×+Ò+¨BÑ/Ô/ð Gð Gð Gr,   )rw   rž   r   rŠ   Ú
complex128©ru   r]   rO   s      r*   Úcheck_real_imagezTestComplex.check_real_imageu   sc   € Ø×"Ò"Ñ$Ô$ˆØ�Š�vðGð GÝ#(¤?µEÔ4DÐ"EðGñ Gô Gàñ	ô 	ð 	ð 	ð 	r,   c                 ó:   — |                       t          ¦  «         d S r$   )r¨   r   ©ru   s    r*   Ú	test_realzTestComplex.test_real|   ó   € Ø×Ò�lÑ+Ô+Ð+Ð+Ð+r,   c                 ó:   — |                       t          ¦  «         d S r$   )r¨   r   rª   s    r*   Ú	test_imagzTestComplex.test_imag   r¬   r,   c                 ó–   — t           }|                      ¦   «         }|                      |t          j        t          j        g|¦  «         d S r$   )r	   rw   rž   r   rŠ   r¦   r§   s      r*   Útest_conjugatezTestComplex.test_conjugate‚   sJ   € Ý"ˆØ×"Ò"Ñ$Ô$ˆØ�Š�vÝœ­Ô)9Ð:Øñ	ô 	ð 	ð 	ð 	r,   N)r›   rœ   r�   r¨   r«   r®   r°   rj   r,   r*   r¡   r¡   s   sP   € € € € € ðð ð ð,ð ,ð ,ð,ð ,ð ,ðð ð ð ð r,   r¡   c                   ó®   — e Zd ZdZd„ Z	 	 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„ Zd„ Zd„ Zd„ Zd„ ZdS )Ú	TestCMathz)
    Tests for cmath module support.
    c                 ó˜   — |                       |d„ t          j        t          j        fD ¦   «         |                      ¦   «         ¦  «         d S )Nc                 ó6   — g | ]}t          j        |¦  «        ‘ŒS rj   )r   Úbooleanr'   s     r*   r1   z2TestCMath.check_predicate_func.<locals>.<listcomp>‘   s8   € ð Gð Gð GØõ œ bÑ)Ô)ð Gð Gð Gr,   )rž   r   r¦   rŠ   rw   )ru   r]   s     r*   Úcheck_predicate_funczTestCMath.check_predicate_func�   s^   € Ø�Š�vðGð GÝ#(Ô#3µU´_Ð"EðGñ Gô Gà×(Ò(Ñ*Ô*ñ	,ô 	,ð 	,ð 	,ð 	,r,   r/   NFc                 ó   — |rd„ }nd„ }|                       | |t          j        ¦  «        g|p|                      ¦   «         ||¬¦  «         |                       | |t          j        ¦  «        g|p|                      ¦   «         ||¬¦  «         d S )Nc                 ó,   — |                       | ¦  «        S r$   r¤   ©r)   s    r*   r’   z'TestCMath.check_unary_func.<locals>.sig˜   s   € Ø×*Ò*¨2Ñ.Ô.Ð.r,   c                 ó   —  | | ¦  «        S r$   rj   r¹   s    r*   r’   z'TestCMath.check_unary_func.<locals>.sig›   s   € Ø�r˜"‘v”v�r,   ©r…   r†   )rž   r   r¦   r|   rŠ   rw   )ru   r]   r…   rO   Úreturns_floatr†   r’   s          r*   Úcheck_unary_funczTestCMath.check_unary_func•   sÐ   € àð 	ð/ð /ð /ð /ðð ð à�Š�v  ¥EÔ$4Ñ 5Ô 5Ð6ØÐ3 ×!1Ò!1Ñ!3Ô!3¸$Ø+>ð 	ñ 	@ô 	@ð 	@ð 	�Š�v  ¥E¤OÑ 4Ô 4Ð5ØÐ4 ×!2Ò!2Ñ!4Ô!4¸4Ø+>ð 	ñ 	@ô 	@ð 	@ð 	@ð 	@r,   c                 ó>   — |                       t          d¬¦  «         d S )NT)r¼   )r½   r
   rª   s    r*   Ú
test_phasezTestCMath.test_phase§   s!   € Ø×Ò�m¸4ÐÑ@Ô@Ð@Ð@Ð@r,   c                 ó:   — |                       t          ¦  «         d S r$   )r½   r   rª   s    r*   Ú
test_polarzTestCMath.test_polarª   s   € Ø×ÒÕ6Ñ7Ô7Ð7Ð7Ð7r,   c                 ó²   ‡ — ˆ fd„} |t           j        ‰                      ¦   «         ¦  «          |t           j        ‰                      ¦   «         ¦  «         d S )Nc                 ó|   •— d„ |D ¦   «         }| j         }‰                     t           | ||¦  «        g|¦  «         d S )Nc                 ór   — g | ]4}t          j        |j        ¦  «        r|j        d k    ¯&|j        |j        f‘Œ5S )r   )rL   ÚisinfÚimagÚreal)r(   Úzs     r*   r1   z8TestCMath.test_rect.<locals>.do_test.<locals>.<listcomp>¯   sK   € ð @ð @ð @¨1Ý!œZ¨¬Ñ/Ô/ð@Ø34´6¸Q²;°;ð ”v˜qœvÐ&Ø3>°;°;r,   )r¥   rŸ   r   )r)   Úseed_valuesrO   Ú
float_typeru   s       €r*   Údo_testz$TestCMath.test_rect.<locals>.do_test®   sc   ø€ ð@ð @°ð @ñ @ô @ˆFàÔ,ˆJØ�OŠO�L¨2¨2¨j¸*Ñ+EÔ+EÐ*FØ"ñ$ô $ð $ð $ð $r,   )r   r¦   r|   rŠ   rw   )ru   rË   s   ` r*   Ú	test_rectzTestCMath.test_rect­   se   ø€ ð	$ð 	$ð 	$ð 	$ð 	$ð 	ˆ•Ô  $×"2Ò"2Ñ"4Ô"4Ñ5Ô5Ð5àˆ•” ×!2Ò!2Ñ!4Ô!4Ñ5Ô5Ð5Ð5Ð5r,   c                 ó:   — |                       t          ¦  «         d S r$   )r¶   r   rª   s    r*   Ú
test_isnanzTestCMath.test_isnanº   ó   € Ø×!Ò!¥-Ñ0Ô0Ð0Ð0Ð0r,   c                 ó:   — |                       t          ¦  «         d S r$   )r¶   r   rª   s    r*   Ú
test_isinfzTestCMath.test_isinf½   rÏ   r,   c                 ó:   — |                       t          ¦  «         d S r$   )r¶   r   rª   s    r*   Útest_isfinitezTestCMath.test_isfiniteÀ   s   € Ø×!Ò!Õ"2Ñ3Ô3Ð3Ð3Ð3r,   c                 ó>   — |                       t          d¬¦  «         d S ©Nr<   ©r…   )r½   r   rª   s    r*   Útest_expzTestCMath.test_expÅ   ó!   € Ø×Ò�k°ÐÑ2Ô2Ð2Ð2Ð2r,   c                 ó:   — |                       t          ¦  «         d S r$   )r½   r   rª   s    r*   Útest_logzTestCMath.test_logÈ   s   € Ø×Ò�kÑ*Ô*Ð*Ð*Ð*r,   c                 ó.  — t          t          j        |                      ¦   «         |                      ¦   «         ¦  «        ¦  «        }t          j        t          j        ft          j        t          j        fg}|                      t          ||d¬¦  «         d S )Né   rÖ   )	rN   rr   rs   r|   r   r¦   rŠ   rŸ   r   )ru   rO   Úvalue_typess      r*   Útest_log_basezTestCMath.test_log_baseË   s„   € Ý•iÔ'¨×(8Ò(8Ñ(:Ô(:¸D×<LÒ<LÑ<NÔ<NÑOÔOÑPÔPˆÝÔ(­%Ô*:Ð;Ýœ­¬Ð9ð;ˆà�ŠÕ(¨+°vØð 	ñ 	 ô 	 ð 	 ð 	 ð 	 r,   c                 ó:   — |                       t          ¦  «         d S r$   )r½   r   rª   s    r*   Ú
test_log10zTestCMath.test_log10Ò   ó   € Ø×Ò�mÑ,Ô,Ð,Ð,Ð,r,   c                 ó:   — |                       t          ¦  «         d S r$   )r½   r   rª   s    r*   Ú	test_sqrtzTestCMath.test_sqrtÕ   r¬   r,   c                 ó>   — |                       t          d¬¦  «         d S rÕ   )r½   r   rª   s    r*   Ú	test_acoszTestCMath.test_acosÚ   ó!   € Ø×Ò�l°ÐÑ3Ô3Ð3Ð3Ð3r,   c                 ó>   — |                       t          d¬¦  «         d S rÕ   )r½   r   rª   s    r*   Ú	test_asinzTestCMath.test_asinÝ   ræ   r,   c                 ód   — |                       t          d|                      ¦   «         ¬¦  «         d S )Nr<   )r…   rO   )r½   r   r€   rª   s    r*   Ú	test_atanzTestCMath.test_atanà   s<   € Ø×Ò�l°Ø%)×%8Ò%8Ñ%:Ô%:ð 	ñ 	<ô 	<ð 	<ð 	<ð 	<r,   c                 ó>   — |                       t          d¬¦  «         d S rÕ   )r½   r   rª   s    r*   Útest_coszTestCMath.test_cosä   rØ   r,   c                 ó>   — |                       t          d¬¦  «         d S rÕ   )r½   r   rª   s    r*   Útest_sinzTestCMath.test_sinç   s!   € à×Ò�k°ÐÑ2Ô2Ð2Ð2Ð2r,   c                 ó@   — |                       t          dd¬¦  «         d S ©Nr<   Tr»   )r½   r   rª   s    r*   Útest_tanzTestCMath.test_tanë   s0   € Ø×Ò�k°Ø26ð 	ñ 	8ô 	8ð 	8ð 	8ð 	8r,   c                 ó:   — |                       t          ¦  «         d S r$   )r½   r   rª   s    r*   Ú
test_acoshzTestCMath.test_acoshñ   rá   r,   c                 ó>   — |                       t          d¬¦  «         d S rÕ   )r½   r   rª   s    r*   Ú
test_asinhzTestCMath.test_asinhô   s!   € Ø×Ò�m°!ÐÑ4Ô4Ð4Ð4Ð4r,   c                 ó@   — |                       t          dd¬¦  «         d S rð   )r½   r   rª   s    r*   Ú
test_atanhzTestCMath.test_atanh÷   s0   € Ø×Ò�m°!Ø26ð 	ñ 	8ô 	8ð 	8ð 	8ð 	8r,   c                 ó>   — |                       t          d¬¦  «         d S rÕ   )r½   r   rª   s    r*   Ú	test_coshzTestCMath.test_coshû   ræ   r,   c                 ó>   — |                       t          d¬¦  «         d S rÕ   )r½   r   rª   s    r*   Ú	test_sinhzTestCMath.test_sinhþ   ræ   r,   c                 ó@   — |                       t          dd¬¦  «         d S rð   )r½   r    rª   s    r*   Ú	test_tanhzTestCMath.test_tanh  s0   € Ø×Ò�l°Ø26ð 	ñ 	8ô 	8ð 	8ð 	8ð 	8r,   )r/   NFF)r›   rœ   r�   Ú__doc__r¶   r½   r¿   rÁ   rÌ   rÎ   rÑ   rÓ   r×   rÚ   rÞ   rà   rã   rå   rè   rê   rì   rî   rñ   ró   rõ   r÷   rù   rû   rý   rj   r,   r*   r²   r²   Š   s©  € € € € € ðð ð,ð ,ð ,ð 7;ØBGð@ð @ð @ð @ð$Að Að Að8ð 8ð 8ð	6ð 	6ð 	6ð1ð 1ð 1ð1ð 1ð 1ð4ð 4ð 4ð
3ð 3ð 3ð+ð +ð +ð ð  ð  ð-ð -ð -ð,ð ,ð ,ð
4ð 4ð 4ð4ð 4ð 4ð<ð <ð <ð3ð 3ð 3ð3ð 3ð 3ð8ð 8ð 8ð-ð -ð -ð5ð 5ð 5ð8ð 8ð 8ð4ð 4ð 4ð4ð 4ð 4ð8ð 8ð 8ð 8ð 8r,   r²   c                   ó   — e Zd Zd„ Zd„ ZdS )ÚTestAtomicOnComplexComponentsc                 ó   — t           j        d„ ¦   «         }d}t          j        |¦  «        t          j        |¦  «        dz  z   }|                     ¦   «         } |d|f         |¦  «         t          j                             |dz   |¦  «         d S )Nc                 óz   — t          j        d¦  «        }t           j                             | j        |d¦  «         d S ©Nr/   )r   r5   ÚatomicÚaddrÇ   ©rO   r9   s     r*   Úatomic_add_onezITestAtomicOnComplexComponents.test_atomic_on_real.<locals>.atomic_add_one  ó/   € å”	˜!‘”ˆAÝŒK�OŠO˜FœK¨¨AÑ.Ô.Ð.Ð.Ð.r,   é    ù              ð?r/   ©r   r[   rC   ÚarangeÚcopyÚtestingÚassert_equal)ru   r  ÚNÚarr1Úarr2s        r*   Útest_atomic_on_realz1TestAtomicOnComplexComponents.test_atomic_on_real  s‹   € Ý	Œð	/ð 	/ñ 
Œð	/ð ˆÝŒy˜‰|Œ|�bœi¨™lœl¨RÑ/Ñ/ˆØ�yŠy‰{Œ{ˆØˆ�q˜!�tÔ˜TÑ"Ô"Ð"Ý
Œ
×Ò  q¡¨$Ñ/Ô/Ð/Ð/Ð/r,   c                 ó   — t           j        d„ ¦   «         }d}t          j        |¦  «        t          j        |¦  «        dz  z   }|                     ¦   «         } |d|f         |¦  «         t          j                             |dz   |¦  «         d S )Nc                 óz   — t          j        d¦  «        }t           j                             | j        |d¦  «         d S r  )r   r5   r  r  rÆ   r  s     r*   Úatomic_add_one_jzKTestAtomicOnComplexComponents.test_atomic_on_imag.<locals>.atomic_add_one_j  r  r,   r	  r
  r/   r  )ru   r  r  r  r  s        r*   Útest_atomic_on_imagz1TestAtomicOnComplexComponents.test_atomic_on_imag  sŒ   € Ý	Œð	/ð 	/ñ 
Œð	/ð ˆÝŒy˜‰|Œ|�bœi¨™lœl¨RÑ/Ñ/ˆØ�yŠy‰{Œ{ˆØÐ˜˜A˜Ô˜tÑ$Ô$Ð$Ý
Œ
×Ò  r¡	¨4Ñ0Ô0Ð0Ð0Ð0r,   N)r›   rœ   r�   r  r  rj   r,   r*   r   r     s2   € € € € € ð
0ð 
0ð 
0ð
1ð 
1ð 
1ð 
1ð 
1r,   r   Ú__main__)/rL   rr   ÚnumpyrC   Únumba.cuda.testingr   r   Ú
numba.corer   Únumbar   Únumba.tests.complex_usecasesr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    Únumba.npr!   r_   ra   r¡   r²   r   r›   Úmainrj   r,   r*   ú<module>r      sw  ðØ €€€Ø Ð Ð Ð à Ð Ð Ð à 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð 8ð #Ð "Ð "Ð "Ð "Ð "ð#ð #ð #ðL0ð 0ð 0ð 0ð 0�lñ 0ô 0ð 0ðfð ð ð ð �/ñ ô ð ð.y8ð y8ð y8ð y8ð y8�ñ y8ô y8ð y8ðx1ð 1ð 1ð 1ð 1 Lñ 1ô 1ð 1ðB ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr,   