§
    `ƒié  ã                   ód   — d dl mZ d dlmZ d dlmZ dZ ej        dddeez   ez   d¬	¦  «        Zd
S )é    )Ú_core)Úexp1_definition)Úmath_constants_and_eula   
template < typename T >
__device__ double expi(T x) {
    T ei = 1;
    T r = 1;

    if (x == 0) {
        return -CUDART_INF;
    } else if (x < 0) {
        return -exp1(-x);
    } else if (x <= 40.0) {
        for (int k = 1; k <= 100; k++) {
            int den = (k + 1) * (k + 1);
            r = r * k * x / den;
            ei += r;
        }

        return EUL + x * ei + log(x);
    }

    for (int k = 1; k <= 40; k++) {
        r = r * k / x;
        ei += r;
    }

    return exp(x) / x * ei;
}
Úcupyx_scipy_special_expi)zf->fzd->dzout0 = expi(in0)a  Exponential integral Ei.

    Parameters
    ----------
    x : cupy.ndarray
        Real argument

    Returns
    -------
    y : scalar or cupy.ndarray
        Values of exponential integral

    See Also
    --------
    :func:`scipy.special.expi`

    )ÚpreambleÚdocN)Úcupyr   Úcupyx.scipy.special._exp1r   r   Úexpi_definitionÚcreate_ufuncÚexpi© ó    úm/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/cupyx/scipy/special/_expi.pyú<module>r      s~   ðð Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø <Ð <Ð <Ð <Ð <Ð <ð€ð: €uÔØØØØ# oÑ5¸ÑGð	ðñ ô €€€r   