o
    i                     @   s   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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dddZejddd d!dZd"S )#    )_core)ufuncexp   cupy_expzKElementwise exponential function.

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

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

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

    	cupy_exp2)z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_logaddexp)zee->ez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)cupyr   
cupy._mathr   create_math_ufuncr   r   create_ufuncexp2r   r   r   r   	logaddexp
logaddexp2 r   r   N/home/ubuntu/veenaModal/venv/lib/python3.10/site-packages/cupy/_math/explog.py<module>   sX    						
