§
    1@Äj:  ã                   ó  — d dl Z d dlZd dlmZ d dlmZmZmZmZ d dl	m
Z
 d dlmZmZmZmZ d dlmZ d dlmZ  e
¦   «         Zej        Zg Zedd	e j        fgz  Zed
de j        fgz  Zedde j        fgz  Zg Zedde j        fgz  Zedde j        fgz  Zedde j        fgz  Zedde j        fgz  Zedde j        fgz  Zedde j         fgz  Zedde j!        fgz  Zedde j"        fgz  Zedde j#        fgz  Zed d!e j$        fgz  Zed"d#e j%        fgz  Zed$d%e j&        fgz  Zed&d'e j'        fgz  Zed(d)e j(        fgz  Zed*d+e j)        fgz  Zed,d-e j*        fgz  Zed.d/e j+        fgz  Zed0d1e j,        fgz  Zed2d3e j-        fgz  Zed4d5e j.        fgz  Zed6d7e j/        fgz  Zed8d9e j0        fgz  Zed:d;e j1        fgz  Zed<d=e j2        fgz  Zed>d?e j3        fgz  Zed@dAe j4        fgz  Zi Z5dBe5d/<   dCe5d7<   dDe5d?<   dEe5d<   dFe5d%<   dGe5d'<   dHe5d#<   g Z6e6dIdJe j7        fgz  Z6e6dKdLe j8        fgz  Z6e6dMdNe j9        fgz  Z6e6dOdPe j:        fgz  Z6e6dQdRe j;        fgz  Z6e6dSdTe j<        fgz  Z6i Z=dUe=dN<    ee j        ej>        ¦  «         ee j        ej>        ¦  «        dV„ ¦   «         ¦   «         Z? eej@        ej        ej        ¦  «        dW„ ¦   «         ZA ee j        ej>        ¦  «        dX„ ¦   «         ZB ee j/        ejC        ¦  «        dY„ ¦   «         ZD ee j+        ejC        ¦  «        dZ„ ¦   «         ZE ee j%        ejC        ¦  «        d[„ ¦   «         ZF ee j'        ejC        ¦  «        d\„ ¦   «         ZG ee j&        ejC        ¦  «        d]„ ¦   «         ZH ee j        ejC        ¦  «        d^„ ¦   «         ZI ee j        ejC        ¦  «        d_„ ¦   «         ZJ ee j        ejC        ¦  «        d`„ ¦   «         ZK ee j$        ejC        ¦  «        da„ ¦   «         ZL ee j        ejC        ¦  «        db„ ¦   «         ZM ee j4        ejC        ¦  «        dc„ ¦   «         ZNdd„ ZOde„ ZPdf„ ZQdg„ ZRdh„ ZSdi„ ZTdj„ ZUdk„ ZVdl„ ZWeD ]8\  ZXZYZZ e[eeY¦  «        Z\ e[eeX¦  «        Z] eOeZee\¦  «          eOeZee]¦  «         Œ9eD ]R\  ZXZYZZ e[eeY¦  «        Z\ e[eeX¦  «        Z] eReZee\¦  «          eReZee]¦  «          eSeZee]¦  «          eSeZee]¦  «         ŒSe6D ]R\  ZXZYZZ e[eeY¦  «        Z\ e[eeX¦  «        Z] eVeZee\¦  «          eVeZee]¦  «          eWeZee]¦  «          eWeZee]¦  «         ŒSdm„ Z^ e^ej        ej_        ¦  «          e^ej        ej`        ¦  «         dn„ Za eaej        ejb        ¦  «          eaej        ejc        ¦  «         do„ Zd edej        eje        ¦  «          edej        ejf        ¦  «         dp„ Zg egej        ejh        ¦  «          egej        eji        ¦  «         dq„ Zj ejej        ejk        ¦  «          ejej        ejl        ¦  «          eSe jl        eejl        ¦  «          eSe jl        eejl        ¦  «         dr„ Zm emej        ejn        ¦  «          emej        ejo        ¦  «         dS )sé    N)Úir)ÚtypesÚtypingÚcgutilsÚtargetconfig)ÚRegistry)Úfloat32Úfloat64Úint64Úuint64)Ú	libdevice)ÚcudaÚisnandÚisnanfÚisinfdÚisinffÚ	isfinitedÚfinitefÚceilÚceilfÚfloorÚfloorfÚfabsÚfabsfÚexpÚexpfÚexpm1Úexpm1fÚerfÚerffÚerfcÚerfcfÚtgammaÚtgammafÚlgammaÚlgammafÚsqrtÚsqrtfÚlogÚlogfÚlog2Úlog2fÚlog10Úlog10fÚlog1pÚlog1pfÚacoshÚacoshfÚacosÚacosfÚcosÚcosfÚcoshÚcoshfÚasinhÚasinhfÚasinÚasinfÚsinÚsinfÚsinhÚsinhfÚatanÚatanfÚatanhÚatanhfÚtanÚtanfÚtruncÚtruncfÚ	fast_cosfÚ	fast_sinfÚ	fast_tanfÚ	fast_expfÚ
fast_log2fÚfast_log10fÚ	fast_logfÚcopysignÚ	copysignfÚatan2Úatan2fÚpowÚpowfÚfmodÚfmodfÚhypotÚhypotfÚ	remainderÚ
remainderfÚ	fast_powfc                 óB   — |                       t          j        d¦  «        S )Nr   ©Úget_constantr   Úboolean©ÚcontextÚbuilderÚsigÚargss       úDC:\Projects\Historical\venv\Lib\site-packages\numba/cuda/mathimpl.pyÚmath_isinf_isnan_intrg   D   s   € ð ×Ò¥¤¨qÑ1Ô1Ð1ó    c                 óf  — | j         rQt          j        t          t          t          ¦  «        }|                      t
          j        |¦  «        } |||¦  «        S t          j        ||d         ¦  «        5  | j	         
                    |d¦  «         d d d ¦  «         n# 1 swxY w Y    |j        |Ž }|S )Né   )zdivision by zero)Úfastmathr   Ú	signaturer	   Úget_functionr   Úfast_fdividefr   Úif_zeroÚerror_modelÚfp_zero_divisionÚfdiv)rb   rc   rd   re   ÚimplÚress         rf   Úmaybe_fast_truedivru   J   sô   € àÔð ÝÔ�w­µÑ9Ô9ˆØ×#Ò#¥IÔ$;¸SÑAÔAˆØˆt�G˜TÑ"Ô"Ð"åŒ_˜W d¨1¤gÑ.Ô.ð 	Qð 	QØÔ×0Ò0°Ð:OÑPÔPÐPð	Qð 	Qð 	Qñ 	Qô 	Qð 	Qð 	Qð 	Qð 	Qð 	Qð 	Qøøøð 	Qð 	Qð 	Qð 	QàˆgŒl˜DÐ!ˆØˆ
s   Á4BÂB Â#B c                 óB   — |                       t          j        d¦  «        S )Nrj   r^   ra   s       rf   Úmath_isfinite_intrw   W   s   € à×Ò¥¤¨qÑ1Ô1Ð1rh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S ©N)r   Úfp16Úhsin©Úxs    rf   Úfp16_sinzfp16_sin_impl.<locals>.fp16_sin^   ó   € ÝŒy�~Š~˜aÑ Ô Ð rh   ©Úcompile_internal)rb   rc   rd   re   r   s        rf   Úfp16_sin_implrƒ   \   ó-   € ð!ð !ð !ð ×#Ò# G¨X°s¸DÑAÔAÐArh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S rz   )r   r{   Úhcosr}   s    rf   Úfp16_coszfp16_cos_impl.<locals>.fp16_cosf   r€   rh   r�   )rb   rc   rd   re   rˆ   s        rf   Úfp16_cos_implr‰   d   r„   rh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S rz   )r   r{   Úhlogr}   s    rf   Úfp16_logzfp16_log_impl.<locals>.fp16_logn   r€   rh   r�   )rb   rc   rd   re   r�   s        rf   Úfp16_log_implrŽ   l   r„   rh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S rz   )r   r{   Úhlog10r}   s    rf   Ú
fp16_log10z#fp16_log10_impl.<locals>.fp16_log10v   ó   € ÝŒy×Ò Ñ"Ô"Ð"rh   r�   )rb   rc   rd   re   r’   s        rf   Úfp16_log10_implr”   t   ó-   € ð#ð #ð #ð ×#Ò# G¨Z¸¸dÑCÔCÐCrh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S rz   )r   r{   Úhlog2r}   s    rf   Ú	fp16_log2z!fp16_log2_impl.<locals>.fp16_log2~   ó   € ÝŒy�Š˜qÑ!Ô!Ð!rh   r�   )rb   rc   rd   re   r™   s        rf   Úfp16_log2_implr›   |   ó-   € ð"ð "ð "ð ×#Ò# G¨Y¸¸TÑBÔBÐBrh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S rz   )r   r{   Úhexpr}   s    rf   Úfp16_expzfp16_exp_impl.<locals>.fp16_exp†   r€   rh   r�   )rb   rc   rd   re   r    s        rf   Úfp16_exp_implr¡   „   r„   rh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S rz   )r   r{   Úhfloorr}   s    rf   Ú
fp16_floorz#fp16_floor_impl.<locals>.fp16_floorŽ   r“   rh   r�   )rb   rc   rd   re   r¥   s        rf   Úfp16_floor_implr¦   Œ   r•   rh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S rz   )r   r{   Úhceilr}   s    rf   Ú	fp16_ceilz!fp16_ceil_impl.<locals>.fp16_ceil–   rš   rh   r�   )rb   rc   rd   re   rª   s        rf   Úfp16_ceil_implr«   ”   rœ   rh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S rz   )r   r{   Úhsqrtr}   s    rf   Ú	fp16_sqrtz!fp16_sqrt_impl.<locals>.fp16_sqrtž   rš   rh   r�   )rb   rc   rd   re   r¯   s        rf   Úfp16_sqrt_implr°   œ   rœ   rh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S rz   )r   r{   Úhabsr}   s    rf   Ú	fp16_fabsz!fp16_fabs_impl.<locals>.fp16_fabs¦   r€   rh   r�   )rb   rc   rd   re   r´   s        rf   Úfp16_fabs_implrµ   ¤   s-   € ð!ð !ð !ð ×#Ò# G¨Y¸¸TÑBÔBÐBrh   c                 ó8   — d„ }|                       ||||¦  «        S )Nc                 ó@   — t           j                             | ¦  «        S rz   )r   r{   Úhtruncr}   s    rf   Ú
fp16_truncz#fp16_trunc_impl.<locals>.fp16_trunc®   r“   rh   r�   )rb   rc   rd   re   r¹   s        rf   Úfp16_trunc_implrº   ¬   r•   rh   c                 óH   ‡‡— ˆˆfd„} t          | ‰¦  «        |¦  «         d S )Nc                 óÚ   •— |                       ‰t          j        t          j        ‰¦  «        ¦  «        } |||¦  «        }|                      ||t          j        t          j        ¦  «        S rz   )rm   r   rl   r   Úint32Úcastr`   )rb   rc   rd   re   Úlibfunc_implÚresultÚlibfuncÚtys         €€rf   Úlower_boolean_implz(impl_boolean.<locals>.lower_boolean_implµ   s[   ø€ Ø×+Ò+¨GÝ,2Ô,<½U¼[È"Ñ,MÔ,MñOô Oˆà�˜g tÑ,Ô,ˆØ�|Š|˜G V­U¬[½%¼-ÑHÔHÐHrh   ©Úlower)ÚkeyrÂ   rÁ   rÃ   s    `` rf   Úimpl_booleanrÇ   ´   sI   øø€ ðIð Ið Ið Ið Ið Ið …Eˆ#ˆr�N„NÐ%Ñ&Ô&Ð&Ð&Ð&rh   c                 ó   ‡‡— ˆˆfd„}|S )Nc                 ó  •— ‰}d }‰t           k    r&| j        rt                               ‰j        ¦  «        }|�t          t          |¦  «        }|                      |t          j	        ‰‰¦  «        ¦  «        } |||¦  «        S rz   )
r	   rk   Úunarys_fastmathÚgetÚ__name__Úgetattrr   rm   r   rl   ©	rb   rc   rd   re   Úactual_libfuncÚfast_replacementr¿   rÁ   rÂ   s	          €€rf   Úlower_unary_implz.get_lower_unary_impl.<locals>.lower_unary_impl¿   s†   ø€ Ø ˆØÐØ•Š=ˆ=˜WÔ-ˆ=Ý.×2Ò2°7Ô3CÑDÔDÐàÐ'Ý$¥YÐ0@ÑAÔAˆNà×+Ò+¨NÝ,2Ô,<¸RÀÑ,DÔ,DñFô Fˆàˆ|˜G TÑ*Ô*Ð*rh   © ©rÆ   rÂ   rÁ   rÑ   s    `` rf   Úget_lower_unary_implrÔ   ¾   s*   øø€ ð+ð +ð +ð +ð +ð +ð Ðrh   c                 ó$  — ddt           j        f}t          |gz   D ]`\  }}}| |k    rT|t          k    rt	          t
          |¦  «        }n |t          k    rt	          t
          |¦  «        }t          |||¦  «        c S Œat          d| › d|› d�¦  «        ‚)NÚtanhÚtanhfúImplementation of ú for ú
 not found)	ÚmathrÖ   Úunarysr	   rÍ   r   r
   rÔ   ÚRuntimeError)ÚfnrÂ   Ú
tanh_implsÚfname64Úfname32rÆ   rs   s          rf   Úget_unary_impl_for_fn_and_tyrâ   Î   s«   € ð
 ˜'¥4¤9Ð-€JÝ!'¨:¨,Ñ!6ð 7ð 7Ñˆ�˜#Ø�Š9ˆ9Ø•WŠ}ˆ}Ý�y¨'Ñ2Ô2��Ø•w’�Ý�y¨'Ñ2Ô2�å'¨¨R°Ñ6Ô6Ð6Ð6Ð6ð õ ÐC¨BÐCÐC°RÐCÐCÐCÑ
DÔ
DÐDrh   c                 óZ   — t          | ||¦  «        } t          | |¦  «        |¦  «         d S rz   )rÔ   rÅ   rÓ   s       rf   Ú
impl_unaryrä   à   s3   € Ý+¨C°°WÑ=Ô=ÐØ…Eˆ#ˆr�N„NÐ#Ñ$Ô$Ð$Ð$Ð$rh   c                 óD   ‡— ˆfd„} t          | |¦  «        |¦  «         d S )Nc                 óh  •— |j         d         t          k    r|j        }n/|j         d         t          k    r|j        }nd}t          |¦  «        ‚ ||d         t          j        ¦   «         ¦  «        }t          j	        t          t          ¦  «        }|                      ‰|¦  «        } |||g¦  «        S )Nr   z<Only 64-bit integers are supported for generic unary int ops)re   r   Úsitofpr   ÚuitofpÚ	TypeErrorr   Ú
DoubleTyper   rl   r
   rm   )	rb   rc   rd   re   ÚconvertÚmÚargr¿   rÁ   s	           €rf   Úlower_unary_int_implz,impl_unary_int.<locals>.lower_unary_int_implæ   sž   ø€ ØŒ8�AŒ;�%ÒÐØ”nˆGˆGØŒX�aŒ[�FÒ"Ð"Ø”nˆGˆGàNˆAÝ˜A‘,”,Ðàˆg�d˜1”g�rœ}™œÑ/Ô/ˆÝÔ�w­Ñ0Ô0ˆØ×+Ò+¨G°SÑ9Ô9ˆØˆ|˜G c UÑ+Ô+Ð+rh   rÄ   )rÆ   rÂ   rÁ   rî   s     ` rf   Úimpl_unary_intrï   å   s=   ø€ ð,ð ,ð ,ð ,ð ,ð …Eˆ#ˆr�N„NÐ'Ñ(Ô(Ð(Ð(Ð(rh   c                 ó   ‡‡— ˆˆfd„}|S )Nc                 ó  •— ‰}d }‰t           k    r&| j        rt                               ‰j        ¦  «        }|�t          t          |¦  «        }|                      |t          j	        ‰‰‰¦  «        ¦  «        } |||¦  «        S rz   )
r	   rk   Úbinarys_fastmathrË   rÌ   rÍ   r   rm   r   rl   rÎ   s	          €€rf   Úlower_binary_implz0get_lower_binary_impl.<locals>.lower_binary_implø   sˆ   ø€ Ø ˆØÐØ•Š=ˆ=˜WÔ-ˆ=Ý/×3Ò3°GÔ4DÑEÔEÐàÐ'Ý$¥YÐ0@ÑAÔAˆNà×+Ò+¨NÝ,2Ô,<¸RÀÀRÑ,HÔ,HñJô Jˆàˆ|˜G TÑ*Ô*Ð*rh   rÒ   ©rÆ   rÂ   rÁ   ró   s    `` rf   Úget_lower_binary_implrõ   ÷   s*   øø€ ð+ð +ð +ð +ð +ð +ð Ðrh   c                 óþ   — t           D ]`\  }}}| |k    rT|t          k    rt          t          |¦  «        }n |t          k    rt          t          |¦  «        }t          |||¦  «        c S Œat          d| › d|› d�¦  «        ‚)NrØ   rÙ   rÚ   )Úbinarysr	   rÍ   r   r
   rõ   rÝ   )rÞ   rÂ   rà   rá   rÆ   rs   s         rf   Úget_binary_impl_for_fn_and_tyrø     s”   € Ý!(ð 8ð 8Ñˆ�˜#Ø�Š9ˆ9Ø•WŠ}ˆ}Ý�y¨'Ñ2Ô2��Ø•w’�Ý�y¨'Ñ2Ô2�å(¨¨b°$Ñ7Ô7Ð7Ð7Ð7ð õ ÐC¨BÐCÐC°RÐCÐCÐCÑ
DÔ
DÐDrh   c                 ó\   — t          | ||¦  «        } t          | ||¦  «        |¦  «         d S rz   )rõ   rÅ   rô   s       rf   Úimpl_binaryrú     s7   € Ý-¨c°2°wÑ?Ô?ÐØ…Eˆ#ˆr�2ÑÔÐ(Ñ)Ô)Ð)Ð)Ð)rh   c                 óF   ‡— ˆfd„} t          | ||¦  «        |¦  «         d S )Nc                 óJ  •‡— |j         d         t          k    r|j        Šn/|j         d         t          k    r|j        Šnd}t          |¦  «        ‚ˆfd„|D ¦   «         }t          j        t          t          t          ¦  «        }|  	                    ‰|¦  «        } |||¦  «        S )Nr   z=Only 64-bit integers are supported for generic binary int opsc                 óJ   •— g | ]} ‰|t          j        ¦   «         ¦  «        ‘Œ S rÒ   )r   rê   )Ú.0rí   rë   s     €rf   ú
<listcomp>zBimpl_binary_int.<locals>.lower_binary_int_impl.<locals>.<listcomp>#  s+   ø€ Ð>Ð>Ð>°#��˜�Rœ]™_œ_Ñ-Ô-Ð>Ð>Ð>rh   )
re   r   rç   r   rè   ré   r   rl   r
   rm   )rb   rc   rd   re   rì   r¿   rë   rÁ   s         @€rf   Úlower_binary_int_implz.impl_binary_int.<locals>.lower_binary_int_impl  s�   øø€ ØŒ8�AŒ;�%ÒÐØ”nˆGˆGØŒX�aŒ[�FÒ"Ð"Ø”nˆGˆGàOˆAÝ˜A‘,”,Ðà>Ð>Ð>Ð>¸Ð>Ñ>Ô>ˆÝÔ�w­µÑ9Ô9ˆØ×+Ò+¨G°SÑ9Ô9ˆØˆ|˜G TÑ*Ô*Ð*rh   rÄ   )rÆ   rÂ   rÁ   r   s     ` rf   Úimpl_binary_intr    sA   ø€ ð+ð +ð +ð +ð +ð …Eˆ#ˆr�2ÑÔÐ,Ñ-Ô-Ð-Ð-Ð-rh   c                 ór   ‡ ‡— ˆˆ fd„} t          t          j        ‰ t          j        ¦  «        |¦  «         d S )Nc                 óˆ   •— t          j        ‰‰t          j        ¦  «        }|                      ‰|¦  «        } |||¦  «        S rz   ©r   rl   r   r½   rm   )rb   rc   rd   re   Úpowi_sigr¿   rÁ   rÂ   s         €€rf   Úlower_pow_impl_intz(impl_pow_int.<locals>.lower_pow_impl_intE  s@   ø€ ÝÔ# B¨­E¬KÑ8Ô8ˆØ×+Ò+¨G°XÑ>Ô>ˆØˆ|˜G TÑ*Ô*Ð*rh   )rÅ   rÛ   rT   r   r½   )rÂ   rÁ   r  s   `` rf   Úimpl_pow_intr  D  sK   øø€ ð+ð +ð +ð +ð +ð +ð
 %…E�$Œ(�B�œÑ$Ô$Ð%7Ñ8Ô8Ð8Ð8Ð8rh   c                 óŠ   ‡ ‡‡— t          j        ‰ d¦  «        Šˆˆˆ fd„} t          t          j        ‰ ¦  «        |¦  «         d S )Né   c                 ór   •— t          j        ‰‰¦  «        }|                      ‰|¦  «        } |||¦  «        S rz   ©r   rl   rm   )	rb   rc   rd   re   Úmodf_sigr¿   rÁ   ÚrettyrÂ   s	         €€€rf   Úlower_modf_implz"impl_modf.<locals>.lower_modf_implT  s<   ø€ ÝÔ# E¨2Ñ.Ô.ˆØ×+Ò+¨G°XÑ>Ô>ˆØˆ|˜G TÑ*Ô*Ð*rh   )r   ÚUniTuplerÅ   rÛ   Úmodf)rÂ   rÁ   r  r  s   `` @rf   Ú	impl_modfr  Q  s]   øøø€ ÝŒN˜2˜qÑ!Ô!€Eð+ð +ð +ð +ð +ð +ð +ð
 …E�$Œ)�RÑÔ˜Ñ)Ô)Ð)Ð)Ð)rh   c                 ó    ‡ ‡‡— t          j        ‰ t           j        f¦  «        Šˆˆˆ fd„} t          t          j        ‰ ¦  «        |¦  «         d S )Nc                 ór   •— t          j        ‰‰¦  «        }|                      ‰|¦  «        } |||¦  «        S rz   r  )	rb   rc   rd   re   Ú	frexp_sigr¿   rÁ   r  rÂ   s	         €€€rf   Úlower_frexp_implz$impl_frexp.<locals>.lower_frexp_implc  s<   ø€ ÝÔ$ U¨BÑ/Ô/ˆ	Ø×+Ò+¨G°YÑ?Ô?ˆØˆ|˜G TÑ*Ô*Ð*rh   )r   ÚTupler½   rÅ   rÛ   Úfrexp)rÂ   rÁ   r  r  s   `` @rf   Ú
impl_frexpr  `  sc   øøø€ ÝŒK˜�Uœ[Ð)Ñ*Ô*€Eð+ð +ð +ð +ð +ð +ð +ð
 …E�$Œ*�bÑÔÐ*Ñ+Ô+Ð+Ð+Ð+rh   c                 ór   ‡ ‡— ˆˆ fd„} t          t          j        ‰ t          j        ¦  «        |¦  «         d S )Nc                 óˆ   •— t          j        ‰‰t          j        ¦  «        }|                      ‰|¦  «        } |||¦  «        S rz   r  )rb   rc   rd   re   Ú	ldexp_sigr¿   rÁ   rÂ   s         €€rf   Úlower_ldexp_implz$impl_ldexp.<locals>.lower_ldexp_implp  s@   ø€ ÝÔ$ R¨­U¬[Ñ9Ô9ˆ	Ø×+Ò+¨G°YÑ?Ô?ˆØˆ|˜G TÑ*Ô*Ð*rh   )rÅ   rÛ   Úldexpr   r½   )rÂ   rÁ   r  s   `` rf   Ú
impl_ldexpr  o  sK   øø€ ð+ð +ð +ð +ð +ð +ð
 '…E�$Œ*�b�%œ+Ñ&Ô&Ð'7Ñ8Ô8Ð8Ð8Ð8rh   c                 ó\   ‡ ‡— ˆˆ fd„} t          t          j        ‰ ¦  «        |¦  «         d S )Nc                 óš   •‡ ‡‡— d„ }ˆˆˆ ˆˆ	fd„}ˆˆfd„}‰	t           k    r!‰ j        r |¦   «         }|dk    r
 |¦   «         S  |¦   «         S )Nc                  óZ   — t          j        ¦   «                              ¦   «         } | j        S rz   )r   ÚConfigStackÚtopÚcompute_capability)Úflagss    rf   Úget_compute_capabilityzBimpl_tanh.<locals>.lower_tanh_impl.<locals>.get_compute_capability~  s%   € Ý Ô,Ñ.Ô.×2Ò2Ñ4Ô4ˆEØÔ+Ð+rh   c                  ór   •— t          j        ‰‰¦  «        } ‰                     ‰| ¦  «        } |‰‰¦  «        S rz   r  )Útanh_sigr¿   re   rc   rb   rÁ   rÂ   s     €€€€€rf   Útanh_impl_libdevicez?impl_tanh.<locals>.lower_tanh_impl.<locals>.tanh_impl_libdevice‚  s<   ø€ ÝÔ'¨¨BÑ/Ô/ˆHØ"×/Ò/°¸ÑBÔBˆLØ�< ¨Ñ.Ô.Ð.rh   c                  óÌ   •— t          j        t          j        ¦   «         t          j        ¦   «         g¦  «        } t          j        | dd¦  «        }‰                     |‰¦  «        S )Nztanh.approx.f32 $0, $1;z=f,f)r   ÚFunctionTypeÚ	FloatTypeÚ	InlineAsmÚcall)ÚfntyÚasmre   rc   s     €€rf   Útanhf_impl_fastmathz?impl_tanh.<locals>.lower_tanh_impl.<locals>.tanhf_impl_fastmath‡  sK   ø€ Ý”?¥2¤<¡>¤>µB´L±N´NÐ3CÑDÔDˆDÝ”,˜tÐ%>ÀÑGÔGˆCØ—<’<  TÑ*Ô*Ð*rh   )é   é   )r	   rk   )
rb   rc   rd   re   r&  r)  r1  ÚccrÁ   rÂ   s
   `` `    €€rf   Úlower_tanh_implz"impl_tanh.<locals>.lower_tanh_impl}  s§   øøøø€ ð	,ð 	,ð 	,ð	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð 	/ð
	+ð 	+ð 	+ð 	+ð 	+ð 	+ð
 •Š=ˆ=˜WÔ-ˆ=Ø'Ð'Ñ)Ô)ˆBØ�UŠ{ˆ{Ø*Ð*Ñ,Ô,Ð,à"Ð"Ñ$Ô$Ð$rh   )rÅ   rÛ   rÖ   )rÂ   rÁ   r5  s   `` rf   Ú	impl_tanhr6  |  sF   øø€ ð%ð %ð %ð %ð %ð %ð, …E�$Œ)�RÑÔ˜Ñ)Ô)Ð)Ð)Ð)rh   c                 óä   ‡ ‡— ˆˆ fd„} t          t          j        ‰‰¦  «        |¦  «          t          t          j        ‰‰¦  «        |¦  «          t          t          ‰‰¦  «        |¦  «         d S )Nc                 ó@   •— ˆˆfd„}|                       ||||¦  «        S )Nc                 óü  •— |j          ‰d¦  «        k    r+|j         ‰d¦  «        k    r ‰d¦  «         ‰d¦  «        z   S | j          ‰d¦  «        k    r+|j          ‰d¦  «        k    r ‰d¦  «         ‰d¦  «        z   S t          j        | j         | j        ¦  «        }t          j        ||j         ¦  «        }t          j        | j        | j         ¦  «        }||j         z  }|j         ‰d¦  «        k    r>|t          j        ||j        z  ¦  «        z  }||j        t          j        |¦  «        z  z  }| ‰t          j        |¦  «        ¦  «         ‰t          j	        |¦  «         ‰d¦  «        z  ¦  «        z   z  S )Ng        g      ð?y                y              ð?)
ÚrealÚimagrÛ   rX   rT   rR   r   r)   r5   r=   )ÚaÚbÚvabsÚlenÚatÚphaseÚctyÚftys         €€rf   Úcpow_internalz3cpow_implement.<locals>.core.<locals>.cpow_internal¦  sc  ø€ àŒv˜˜˜S™œÒ!Ð! a¤f°°°C±´Ò&8Ð&8Ø�s˜3‘x”x # # d¡)¤)Ñ+Ð+Ø”˜3˜3˜s™8œ8Ò#Ð#¨¬°#°#°c±(´(Ò(:Ð(:Ø�s˜3‘x”x # # d¡)¤)Ñ+Ð+å”:˜aœf a¤fÑ-Ô-ˆDÝ”(˜4 ¤Ñ(Ô(ˆCÝ”˜AœF A¤FÑ+Ô+ˆBØ˜œ‘KˆEØŒv˜˜˜S™œÒ!Ð!Ø•t”x  Q¤V¡Ñ,Ô,Ñ,�Ø˜œ¥$¤(¨4¡.¤.Ñ0Ñ0�à˜#˜#�dœh u™oœoÑ.Ô.Ø˜#�dœh u™oœo°°°D±	´	Ñ9Ñ:Ô:ñ;ñ <ð <rh   r�   )rb   rc   rd   re   rD  rB  rC  s        €€rf   Úcorezcpow_implement.<locals>.core¥  s=   ø€ ð	<ð 	<ð 	<ð 	<ð 	<ð 	<ð$ ×'Ò'¨°ÀÀTÑJÔJÐJrh   )rÅ   ÚoperatorrT   Úipow)rC  rB  rE  s   `` rf   Úcpow_implementrH  ¤  sˆ   øø€ ðKð Kð Kð Kð Kð Kð* "…E�(Œ,˜˜SÑ!Ô! $Ñ'Ô'Ð'Ø"…E�(Œ-˜˜cÑ"Ô" 4Ñ(Ô(Ð(Ø…E�#ˆs�CÑÔ˜ÑÔÐÐÐrh   )prÛ   rF  Úllvmliter   Ú
numba.corer   r   r   r   Únumba.core.imputilsr   Únumba.typesr	   r
   r   r   Ú
numba.cudar   Únumbar   ÚregistryrÅ   ÚbooleansÚisnanÚisinfÚisfiniterÜ   r   r   r   r   r   r   r!   Úgammar%   r'   r)   r+   r-   r/   r1   r3   r5   r7   r9   r;   r=   r?   rA   rC   rE   rG   rÊ   r÷   rP   rR   rT   rV   rX   rZ   rò   ÚIntegerrg   Útruedivru   rw   Úfloat16rƒ   r‰   rŽ   r”   r›   r¡   r¦   r«   r°   rµ   rº   rÇ   rÔ   râ   rä   rï   rõ   rø   rú   r  rà   rá   rÆ   rÍ   Úimpl32Úimpl64r  ÚpowifÚpowir  Úmodffr  r  Úfrexpfr  r  Úldexpfr  r6  r×   rÖ   rH  Ú	complex64Ú
complex128rÒ   rh   rf   ú<module>ra     s„
  ðØ €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø (Ð (Ð (Ð (Ð (Ð (Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð àˆ8‰:Œ:€ØŒ€ð €Ø ˆh˜ $¤*Ð-Ð.Ñ .€Ø ˆh˜ $¤*Ð-Ð.Ñ .€Ø ˆk˜9 d¤mÐ4Ð5Ñ 5€à	€Ø ˆF�G˜TœYÐ'Ð
(Ñ (€Ø ˆG�X˜tœzÐ*Ð
+Ñ +€Ø ˆF�G˜TœYÐ'Ð
(Ñ (€Ø ˆE�6˜4œ8Ð$Ð
%Ñ %€Ø ˆG�X˜tœzÐ*Ð
+Ñ +€Ø ˆE�6˜4œ8Ð$Ð
%Ñ %€Ø ˆF�G˜TœYÐ'Ð
(Ñ (€Ø ˆH�i ¤Ð,Ð
-Ñ -€Ø ˆH�i ¤Ð-Ð
.Ñ .€Ø ˆF�G˜TœYÐ'Ð
(Ñ (€Ø ˆE�6˜4œ8Ð$Ð
%Ñ %€Ø ˆF�G˜TœYÐ'Ð
(Ñ (€Ø ˆG�X˜tœzÐ*Ð
+Ñ +€Ø ˆG�X˜tœzÐ*Ð
+Ñ +€Ø ˆG�X˜tœzÐ*Ð
+Ñ +€Ø ˆF�G˜TœYÐ'Ð
(Ñ (€Ø ˆE�6˜4œ8Ð$Ð
%Ñ %€Ø ˆF�G˜TœYÐ'Ð
(Ñ (€Ø ˆG�X˜tœzÐ*Ð
+Ñ +€Ø ˆF�G˜TœYÐ'Ð
(Ñ (€Ø ˆE�6˜4œ8Ð$Ð
%Ñ %€Ø ˆF�G˜TœYÐ'Ð
(Ñ (€Ø ˆF�G˜TœYÐ'Ð
(Ñ (€Ø ˆG�X˜tœzÐ*Ð
+Ñ +€Ø ˆE�6˜4œ8Ð$Ð
%Ñ %€Ø ˆG�X˜tœzÐ*Ð
+Ñ +€à€Ø%€�Ñ Ø%€�Ñ Ø%€�Ñ Ø%€�Ñ Ø'€�Ñ Ø)€�Ñ Ø%€�Ñ à
€Ø ˆZ˜ d¤mÐ4Ð5Ñ 5€Ø ˆW�h ¤
Ð+Ð,Ñ ,€Ø ˆU�F˜DœHÐ%Ð&Ñ &€Ø ˆV�W˜dœiÐ(Ð)Ñ )€Ø ˆW�h ¤
Ð+Ð,Ñ ,€Ø ˆ[˜,¨¬Ð7Ð8Ñ 8€àÐ Ø&Ð �Ñ ð €€t„z�5”=Ñ!Ô!Ø€€t„z�5”=Ñ!Ô!ð2ð 2ñ "Ô!ñ "Ô!ð2ð €€xÔ˜œ¨¬Ñ6Ô6ð	ð 	ñ 7Ô6ð	ð €€t„}�e”mÑ$Ô$ð2ð 2ñ %Ô$ð2ð €€t„x�”ÑÔðBð Bñ  ÔðBð €€t„x�”ÑÔðBð Bñ  ÔðBð €€t„x�”ÑÔðBð Bñ  ÔðBð €€t„z�5”=Ñ!Ô!ðDð Dñ "Ô!ðDð €€t„y�%”-Ñ Ô ðCð Cñ !Ô ðCð €€t„x�”ÑÔðBð Bñ  ÔðBð €€t„z�5”=Ñ!Ô!ðDð Dñ "Ô!ðDð €€t„y�%”-Ñ Ô ðCð Cñ !Ô ðCð €€t„y�%”-Ñ Ô ðCð Cñ !Ô ðCð €€t„y�%”-Ñ Ô ðCð Cñ !Ô ðCð €€t„z�5”=Ñ!Ô!ðDð Dñ "Ô!ðDð'ð 'ð 'ðð ð ð Eð Eð Eð$%ð %ð %ð
)ð )ð )ð$ð ð ð 
Eð 
Eð 
Eð*ð *ð *ð
.ð .ð .ð$ &ð 'ð 'Ñ€GˆW�cØˆW�Y Ñ(Ô(€FØˆW�Y Ñ(Ô(€FØ€L��g˜vÑ&Ô&Ð&Ø€L��g˜vÑ&Ô&Ð&Ð&ð $ð (ð (Ñ€GˆW�cØˆW�Y Ñ(Ô(€FØˆW�Y Ñ(Ô(€FØ€Jˆs�G˜VÑ$Ô$Ð$Ø€Jˆs�G˜VÑ$Ô$Ð$Ø€N�3˜˜vÑ&Ô&Ð&Ø€N�3˜ Ñ'Ô'Ð'Ð'ð %ð )ð )Ñ€GˆW�cØˆW�Y Ñ(Ô(€FØˆW�Y Ñ(Ô(€FØ€K��W˜fÑ%Ô%Ð%Ø€K��W˜fÑ%Ô%Ð%Ø€O�C˜ Ñ'Ô'Ð'Ø€O�C˜ Ñ(Ô(Ð(Ð(ð9ð 9ð 9ð €ˆUŒ]˜IœOÑ ,Ô ,Ð ,Ø €ˆUŒ]˜IœNÑ +Ô +Ð +ð*ð *ð *ð 
€	ˆ%Œ-˜œÑ )Ô )Ð )Ø 	€	ˆ%Œ-˜œÑ (Ô (Ð (ð,ð ,ð ,ð €
ˆ5Œ=˜)Ô*Ñ +Ô +Ð +Ø 
€
ˆ5Œ=˜)œ/Ñ *Ô *Ð *ð9ð 9ð 9ð €
ˆ5Œ=˜)Ô*Ñ +Ô +Ð +Ø 
€
ˆ5Œ=˜)œ/Ñ *Ô *Ð *ð*ð *ð *ð4 
€	ˆ%Œ-˜œÑ )Ô )Ð )Ø 	€	ˆ%Œ-˜œÑ (Ô (Ð (à €ˆtŒy˜% ¤Ñ 0Ô 0Ð 0Ø €ˆtŒy˜& )¤.Ñ 1Ô 1Ð 1ðð ð ð6 €ˆuŒ}˜eœoÑ .Ô .Ð .Ø €ˆuŒ}˜eÔ.Ñ /Ô /Ð /Ð /Ð /rh   