o
    W۷iN                     @  s  d dl mZ d dlmZ d dlmZ d dlmZ eddddZ	ed	dd
dZ
ejddge ddddR dddZeddddZeddddZeddddZedddd Zejd!d"ged#d$d%R d&d'dZejd(d"ged#d$d%R d)d*dZd+S ),    )annotations)_core)ufunc)	bf16_loopexp   cupy_expzKElementwise exponential function.

    .. seealso:: :data:`numpy.exp`

    expm1
cupy_expm1zPComputes ``exp(x) - 1`` elementwise.

    .. seealso:: :data:`numpy.expm1`

    	cupy_exp2ze->ezf->fzd->dzF->FzD->Dzout0 = pow(in0_type(2), in0)zRElementwise exponentiation with base 2.

    .. seealso:: :data:`numpy.exp2`

    )doclogcupy_logzQElementwise natural logarithm function.

    .. seealso:: :data:`numpy.log`

    log10
cupy_log10zRElementwise common logarithm function.

    .. seealso:: :data:`numpy.log10`

    log2	cupy_log2zQElementwise binary logarithm function.

    .. seealso:: :data:`numpy.log2`

    log1p
cupy_log1pzPComputes ``log(1 + x)`` elementwise.

    .. seealso:: :data:`numpy.log1p`

    cupy_logaddexpzee->e   zff->fzdd->dz
    if (in0 == in1) {
        /* Handles infinities of the same sign */
        out0 = in0 + log(2.0);
    } else {
        out0 = fmax(in0, in1) + log1p(exp(-fabs(in0 - in1)));
    }
    z`Computes ``log(exp(x1) + exp(x2))`` elementwise.

    .. seealso:: :data:`numpy.logaddexp`

    cupy_logaddexp2z
    if (in0 == in1) {
        /* Handles infinities of the same sign */
        out0 = in0 + 1.0;
    } else {
        out0 = fmax(in0, in1) + log2(1 + exp2(-fabs(in0 - in1)));
    }
    zdComputes ``log2(exp2(x1) + exp2(x2))`` elementwise.

    .. seealso:: :data:`numpy.logaddexp2`

    N)
__future__r   cupyr   
cupy._mathr   
cupy._utilr   create_math_ufuncr   r	   create_ufuncexp2r   r   r   r   	logaddexp
logaddexp2 r!   r!   G/home/ubuntu/vllm_env/lib/python3.10/site-packages/cupy/_math/explog.py<module>   s\    						
