o
    0 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   Zcupy_expzKElementwise exponential function.

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

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

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

    Z	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logZcupy_logzQElementwise natural logarithm function.

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

    log10Z
cupy_log10zRElementwise common logarithm function.

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

    log2Z	cupy_log2zQElementwise binary logarithm function.

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

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

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

    Z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`

    Z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)Zcupyr   Z
cupy._mathr   Zcreate_math_ufuncr   r   Zcreate_ufuncZexp2r   r	   r
   r   Z	logaddexpZ
logaddexp2 r   r   ]/home/app/PaddleOCR-VL-test/.venv_paddleocr/lib/python3.10/site-packages/cupy/_math/explog.py<module>   sX    						
