a
    ò.;b›  ã                   @   s4   d Z ddlZdadd„ Zdd„ Zdd„ Zd	d
„ ZdS )aQ  This file contains information on how to translate different ufuncs
into numba. It is a database of different ufuncs and how each of its
loops maps to a function that implements the inner kernel of that ufunc
(the inner kernel being the per-element function).

Use the function get_ufunc_info to get the information related to the
ufunc
é    Nc                   C   s   t d u ri a tt ƒ d S )N)Ú	_ufunc_dbÚ_fill_ufunc_db© r   r   ú0lib/python3.9/site-packages/numba/np/ufunc_db.pyÚ_lazy_init_db   s    r   c                   C   s   t ƒ  t ¡ S )z+obtain a list of supported ufuncs in the db)r   r   Úkeysr   r   r   r   Ú
get_ufuncs   s    r   c                 C   s   t ƒ  t|  S )aƒ  get the lowering information for the ufunc with key ufunc_key.

    The lowering information is a dictionary that maps from a numpy
    loop string (as given by the ufunc types attribute) to a function
    that handles code generation for a scalar version of the ufunc
    (that is, generates the "per element" operation").

    raises a KeyError if the ufunc is not in the ufunc_db
    )r   r   )Z	ufunc_keyr   r   r   Úget_ufunc_info    s    
r	   c                 C   sl  ddl m} ddlm}m}m} ddlm} |j|jdœ| t	j
< |j|j|j|j|j|j|j|j|j|j|j|j|j|j|jdœ| t	j< |j|j|j|j|j|j|j|j|j|j|j|j|j|j|jdœ| t	j< |j|j|j|j|j|j|j|j|j|j|j|j|j|j|jdœ| t	j< |j|j|j|j|j|j|j|j|j|j|j|j|j|jdœ| t	j< |j|j|j|j|j|j|j|j|j|j|j|j|j|j |j d	œ| t	j!< |j"|j#|j#|j#|j#|j#|j#|j#|j#|j#|j#|j$|j$|j%|j%d	œ| t	j&< |j'|j(|j(|j(|j(|j(|j(|j(|j(|j(|j(|j)|j)|j*|j*d	œ| t	j+< t	j,t	j-kr†|j.|j/|j.|j/|j.|j/|j.|j/|j.|j/|j0|j0|j1|j1d
œ| t	j,< |j2|j2|j2|j2|j2|j2|j2|j2|j2|j2|j0|j0|j1|j1dœ| t	j-< |j.|j/|j.|j/|j.|j/|j.|j/|j.|j/|j3|j3|j4|j4d
œ| t	j5< |j6|j7|j6|j7|j6|j7|j6|j7|j6|j7|j8|j8dœ| t	j9< |j:|j;|j:|j;|j:|j;|j:|j;|j:|j;|j<|j<dœ| t	j=< |j>|j>|j>|j>|j>|j>|j>|j>|j>|j>|j?|j?dœ| t	j@< |jA|jAdœ| t	jB< |jC|jCdœ| t	jD< |jE|jE|jE|jE|jE|jE|jE|jE|jE|jE|jF|jF|jG|jGd
œ| t	jH< |jI|jI|jJ|jJdœ| t	jK< |jL|jL|jL|jL|jL|jL|jL|jL|jL|jLdœ
| t	jM< |jN|jN|jN|jN|jN|jN|jN|jN|jN|jNdœ
| t	jO< |jP|jP|jQ|jQdœ| t	jR< |jS|jS|jS|jS|jS|jS|jS|jS|jS|jS|jS|jS|jT|jTdœ| t	jU< |jV|jV|jW|jWdœ| t	jX< |jY|jY|jZ|jZdœ| t	j[< |j\|j\|j]|j]dœ| t	j^< |j_|j_|j`|j`dœ| t	ja< |jb|jb|jc|jcdœ| t	jd< |je|je|jf|jfdœ| t	jg< |jh|jh|ji|jidœ| t	jj< |jk|jk|jl|jldœ| t	jm< |jn|jn|jn|jn|jn|jn|jn|jn|jn|jn|jo|jo|jp|jpdœ| t	jq< |jr|jrdœ| t	js< |jt|jt|jt|jt|jt|jt|jt|jt|jt|jt|ju|ju|jv|jvdœ| t	jw< |jx|jx|jy|jydœ| t	jz< |j{|j{|j||j|dœ| t	j}< |j~}|j|j||dœ| t	j€< |j}|j‚|j‚||dœ| t	jƒ< |j„|j„|j…|j…dœ| t	j†< |j‡}|jˆ|jˆ||dœ| t	j‰< |jŠ|jŠdœ| t	j‹< |jŒ|jŒdœ| t	j< |jŽ|jŽ|j|jdœ| t	j< |j‘|j‘|j’|j’dœ| t	j“< |j”|j”|j•|j•dœ| t	j–< |j—}	|j˜|j˜|	|	dœ| t	j™< |jš|jš|j›|j›dœ| t	jœ< |j}
|jž|jž|
|
dœ| t	jŸ< |j |j dœ| t	j¡< | t	j¡ | t	j¢< |j£|j£dœ| t	j¤< | t	j¤ | t	j¥< |j¦|j¦dœ| t	j§< |j¨|j¨dœ| t	j©< |jª|jªdœ| t	j«< |j¬|j¬dœ| t	j­< |j®|j¯|j®|j¯|j®|j¯|j®|j¯|j®|j¯|j®|j°|j°|j±|j±dœ| t	j²< |j³|j´|j³|j´|j³|j´|j³|j´|j³|j´|j³|jµ|jµ|j¶|j¶dœ| t	j·< |j¸|j¹|j¸|j¹|j¸|j¹|j¸|j¹|j¸|j¹|j¸|jº|jº|j»|j»dœ| t	j¼< |j½|j¾|j½|j¾|j½|j¾|j½|j¾|j½|j¾|j½|j¿|j¿|jÀ|jÀdœ| t	jÁ< |jÂ|jÂ|jÂ|jÂ|jÂ|jÂ|jÂ|jÂ|jÂ|jÂ|jÂ|jÃ|jÃ|jÄ|jÄdœ| t	jÅ< |jÆ|jÆ|jÆ|jÆ|jÆ|jÆ|jÆ|jÆ|jÆ|jÆ|jÆ|jÇ|jÇ|jÈ|jÈdœ| t	jÉ< |jÊ|jÊ|jÊ|jÊ|jÊ|jÊ|jÊ|jÊ|jÊ|jÊ|jÊ|jÊ|jÊ|jË|jËdœ| t	jÌ< |jÍ|jÍ|jÍ|jÍ|jÍ|jÍ|jÍ|jÍ|jÍ|jÍ|jÍ|jÍ|jÍ|jÎ|jÎdœ| t	jÏ< |jÐ|jÐ|jÐ|jÐ|jÐ|jÐ|jÐ|jÐ|jÐ|jÐ|jÐ|jÐ|jÐ|jÑ|jÑdœ| t	jÒ< |jÓ|jÓ|jÓ|jÓ|jÓ|jÓ|jÓ|jÓ|jÓ|jÓ|jÓ|jÓ|jÓ|jÔ|jÔdœ| t	jÕ< |jÍ|jÖ|j×|jÖ|j×|jÖ|j×|jÖ|j×|jÖ|j×|jØ|jØ|jÙ|jÙd	œ| t	jÚ< |jÊ|jÛ|jÜ|jÛ|jÜ|jÛ|jÜ|jÛ|jÜ|jÛ|jÜ|jÝ|jÝ|jÞ|jÞd	œ| t	jß< |jÍ|jÖ|j×|jÖ|j×|jÖ|j×|jÖ|j×|jÖ|j×|jà|jà|já|jád	œ| t	jâ< |jÊ|jÛ|jÜ|jÛ|jÜ|jÛ|jÜ|jÛ|jÜ|jÛ|jÜ|jã|jã|jä|jäd	œ| t	jå< |jæ|jæ|jç|jç|jè|jè|jè|jè|jè|jè|jè|jè|jè|jè|jèdœ| t	jé< |dkr| t	jé  ê|j|jdœ¡ |jë|jë|jì|jì|jí|jí|jí|jí|jí|jí|jí|jí|jí|jí|jídœ| t	jî< |dkrp| t	jî  ê|jí|jídœ¡ |jï|jï|jð|jð|jñ|jñ|jñ|jñ|jñ|jñ|jñ|jñ|jñ|jñ|jñ|jò|jòdœ| t	jó< |jô|jôdœ| t	jõ< |jö|jödœ| t	j÷< |jø|jødœ| t	jù< |jú|júdœ| t	jû< |jü|jü|jü|jüdœ| t	jý< |j'|j'|j'|j'|j'|j'|j'|j'|j'|j'|j'dœ| t	jþ< |j|j|j|j|j|j|j|j|j|j|jdœ| t	jÿ< |j"|j"|j"|j"|j"|j"|j"|j"|j"|j"|j"dœ| t	j < |j|j|j|j|j|j|j|j|j|j|jdœ| t	j< |j|j|j|j|j|j|j|j|j|jdœ
| t	j< |j|j|j|j|j|j|j|j|j|jdœ
| t	j< ddl m} | t	j  êd|ji¡ | t	j  êd|ji¡ | t	j  êd|j	i¡ | t	j  êd|j
i¡ | t	j!  ê|j|j|jdœ¡ | t	j&  ê|j|j|jd œ¡ | t	j+  ê|j|j|j|jd!œ¡ t	j,t	j-kr¶| t	j,  ê|j|j|jd"œ¡ | t	j-  ê|j|j|jd"œ¡ | t	j5  ê|j|jd#œ¡ |d$kr| t	j5  êd%|ji¡ | t	jÉ  ê|j|jd&œ¡ | t	jÅ  ê|j|jd&œ¡ | t	j¼  ê|j|jd&œ¡ | t	jÁ  ê|j|jd&œ¡ | t	j²  ê|j|jd&œ¡ | t	j·  ê|j |j!d&œ¡ | t	jÚ  ê|j"|j#d'œ¡ | t	jß  ê|j$|j%d'œ¡ | t	jâ  ê|j&|j'd'œ¡ | t	jå  ê|j(|j)d'œ¡ |d$krh| t	j9  êd(|j*i¡ d S ))Nr   )Únpyfuncs)Ú	cmathimplÚmathimplÚnumbers)Únumpy_version)úM->?úm->?)ú?->?úb->búB->Búh->húH->Húi->iúI->Iúl->lúL->Lúq->qúQ->Qúf->fúd->dúF->FúD->D)r   r   r   r   r   r   r   r   r   r   r   r   r   zF->fzD->d)r   r   r   r   r   r   r   r   r   r   r   r   r   r   )ú??->?úbb->búBB->Búhh->húHH->Húii->iúII->Iúll->lúLL->Lúqq->qúQQ->Qúff->fúdd->dúFF->FúDD->D)r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   )zbb->dzBB->dzhh->dzHH->dzii->dzII->dzll->dzLL->dzqq->dzQQ->dr+   r,   r-   r.   )r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   )zbb->bbzBB->BBzhh->hhzHH->HHzii->iizII->IIzll->llzLL->LLzqq->qqzQQ->QQzff->ffzdd->dd)r+   r,   )r+   r,   r-   r.   )
r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   )r   r   r   r   )r   r   )r    zbb->?zBB->?zhh->?zHH->?zii->?zII->?zll->?zLL->?zqq->?zQQ->?zff->?zdd->?zFF->?zDD->?)r   úb->?úB->?úh->?úH->?úi->?úI->?úl->?úL->?úq->?úQ->?úf->?úd->?úF->?úD->?)r9   r:   r;   r<   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   )é   é   )r   r   )r9   r:   r;   r<   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r   r   r   )r9   r:   )zfi->fzfl->fzdi->dzdl->d)r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   )r   r   r   r   r   r   r   r   r   r   r   )Ú
npdatetimezm->m)úmm->múMm->MzmM->M)r@   rA   zMM->m)úmq->múmd->mzqm->mzdm->m)rB   rC   zmm->d)rB   rC   )r=   é   zmm->q)zMM->?zmm->?)zMM->Mr@   r@   (+  Znumba.npr
   Znumba.cpythonr   r   r   Znumba.np.numpy_supportr   Znp_datetime_isnat_implÚnpZisnatZint_invert_implZint_negate_implZreal_negate_implZcomplex_negate_implÚnegativeZint_positive_implZreal_positive_implZcomplex_positive_implZpositiveZint_abs_implZuint_abs_implZreal_abs_implZcomplex_abs_implZabsoluteZint_sign_implZreal_sign_implZnp_complex_sign_implZsignZint_or_implZint_add_implZreal_add_implZcomplex_add_implÚaddZint_xor_implZint_sub_implZreal_sub_implZcomplex_sub_implÚsubtractZint_and_implZint_mul_implZreal_mul_implZcomplex_mul_implZmultiplyZdivideZtrue_divideZnp_int_sdiv_implZnp_int_udiv_implZnp_real_div_implZnp_complex_div_implZnp_int_truediv_implZnp_real_floor_div_implZnp_complex_floor_div_implZfloor_divideZnp_int_srem_implZnp_int_urem_implZnp_real_mod_implZ	remainderZnp_int_sdivrem_implZnp_int_udivrem_implZnp_real_divmod_implÚdivmodZnp_int_fmod_implZnp_real_fmod_implZfmodZnp_real_logaddexp_implZ	logaddexpZnp_real_logaddexp2_implZ
logaddexp2Zint_power_implZreal_power_implZnp_complex_power_implZpowerZreal_float_power_implZnp_complex_float_power_implZfloat_powerZnp_gcd_implZgcdZnp_lcm_implZlcmZnp_real_rint_implZnp_complex_rint_implZrintZreal_conjugate_implZcomplex_conjugate_implÚ	conjugateZnp_real_exp_implZnp_complex_exp_implZexpZnp_real_exp2_implZnp_complex_exp2_implZexp2Znp_real_log_implZnp_complex_log_implÚlogZnp_real_log2_implZnp_complex_log2_implZlog2Znp_real_log10_implZnp_complex_log10_implZlog10Znp_real_expm1_implZnp_complex_expm1_implZexpm1Znp_real_log1p_implZnp_complex_log1p_implZlog1pZnp_real_sqrt_implZnp_complex_sqrt_implZsqrtZnp_int_square_implZnp_real_square_implZnp_complex_square_implZsquareZnp_real_cbrt_implZcbrtZnp_int_reciprocal_implZnp_real_reciprocal_implZnp_complex_reciprocal_implZ
reciprocalZnp_real_sin_implZnp_complex_sin_implZsinZnp_real_cos_implZnp_complex_cos_implZcosÚtan_implZnp_real_tan_implZtanZ	asin_implZnp_real_asin_implZarcsinZnp_real_acos_implZ	acos_implZarccosZ	atan_implZnp_real_atan_implZarctanZnp_real_atan2_implZarctan2Znp_real_hypot_implZhypotZnp_real_sinh_implZnp_complex_sinh_implZsinhZnp_real_cosh_implZnp_complex_cosh_implZcoshZnp_real_tanh_implZnp_complex_tanh_implZtanhZ
asinh_implZnp_real_asinh_implZarcsinhZnp_real_acosh_implZnp_complex_acosh_implZarccoshZ
atanh_implZnp_real_atanh_implZarctanhZradians_float_implZdeg2radZradiansZdegrees_float_implZrad2degZdegreesZnp_real_floor_implZfloorZnp_real_ceil_implZceilZnp_real_trunc_implZtruncZnp_real_fabs_implZfabsZint_ugt_implZint_sgt_implZreal_gt_implZnp_complex_gt_implZgreaterZint_uge_implZint_sge_implZreal_ge_implZnp_complex_ge_implZgreater_equalZint_ult_implZint_slt_implZreal_lt_implZnp_complex_lt_implZlessZint_ule_implZint_sle_implZreal_le_implZnp_complex_le_implZ
less_equalZint_ne_implZreal_ne_implZnp_complex_ne_implZ	not_equalZint_eq_implZreal_eq_implZnp_complex_eq_implZequalZnp_logical_and_implZnp_complex_logical_and_implZlogical_andZnp_logical_or_implZnp_complex_logical_or_implZ
logical_orZnp_logical_xor_implZnp_complex_logical_xor_implZlogical_xorZnp_logical_not_implZnp_complex_logical_not_implZlogical_notZnp_int_smax_implZnp_int_umax_implZnp_real_maximum_implZnp_complex_maximum_implZmaximumZnp_int_smin_implZnp_int_umin_implZnp_real_minimum_implZnp_complex_minimum_implZminimumZnp_real_fmax_implZnp_complex_fmax_implZfmaxZnp_real_fmin_implZnp_complex_fmin_implZfminZnp_real_isnan_implZnp_complex_isnan_implZnp_int_isnan_implZisnanÚupdateZnp_real_isinf_implZnp_complex_isinf_implZnp_int_isinf_implZisinfZnp_real_isfinite_implZnp_complex_isfinite_implZnp_int_isfinite_implZnp_datetime_isfinite_implZisfiniteZnp_real_signbit_implZsignbitZnp_real_copysign_implZcopysignZnp_real_nextafter_implZ	nextafterZnp_real_spacing_implZspacingZnp_real_ldexp_implZldexpZbitwise_andZ
bitwise_orZbitwise_xorÚinvertZint_shl_implZ
left_shiftZint_shr_implZright_shiftr?   Ztimedelta_neg_implZtimedelta_pos_implZtimedelta_abs_implZtimedelta_sign_implZtimedelta_add_implZdatetime_plus_timedeltaZtimedelta_plus_datetimeZtimedelta_sub_implZdatetime_minus_timedeltaZdatetime_minus_datetimeZtimedelta_times_numberZnumber_times_timedeltaZtimedelta_over_numberZtimedelta_over_timedeltaZtimedelta_floor_div_timedeltaZdatetime_eq_datetime_implZtimedelta_eq_timedelta_implZdatetime_ne_datetime_implZtimedelta_ne_timedelta_implZdatetime_lt_datetime_implZtimedelta_lt_timedelta_implZdatetime_le_datetime_implZtimedelta_le_timedelta_implZdatetime_gt_datetime_implZtimedelta_gt_timedelta_implZdatetime_ge_datetime_implZtimedelta_ge_timedelta_implZdatetime_maximum_implZtimedelta_maximum_implZdatetime_minimum_implZtimedelta_minimum_implZdatetime_fmax_implZtimedelta_fmax_implZdatetime_fmin_implZtimedelta_fmin_implZtimedelta_mod_timedelta)Zufunc_dbr
   r   r   r   r   rL   Zarcsin_implZarctan_implZarcsinh_implZarctanh_implr?   r   r   r   r   .   s   ýñññòñññòòòôôôþþïüööüòüüüüüüüüòþòüüüüüüþþüüüüüüþþþþþþññññññññññññññë

þë

þèþþþþü	õõõõöö
ÿ
ÿ
ÿ
ÿ
ý
ý
ü
ý
ý
þ

ÿ
þ
þ
þ
þ
þ
þ
þ
þ
þ
þ

ÿr   )Ú__doc__ZnumpyrE   r   r   r   r	   r   r   r   r   r   Ú<module>   s   
