/** * Jacobi elliptic functions sn, cn, dn. * * Uses the parameter convention `m = k^2` (matching scipy's * `scipy.special.ellipj(u, m)` and mpmath's `ellipfun(..., u, m)`), not the * modulus-angle convention some texts use. * * Computed via the descending Landen transformation / arithmetic-geometric * mean (AGM) method (Abramowitz & Stegun 16.4, the Bulirsch algorithm): * build the AGM sequences * * a_0 = 1, b_0 = sqrt(1 - m), c_0 = sqrt(m) * a_{i+1} = (a_i + b_i) / 2 * b_{i+1} = sqrt(a_i * b_i) * c_{i+1} = (a_i - b_i) / 2 * * until c_N is negligible, then descend the amplitude * * phi_N = 2^N * a_N * u * phi_{i-1} = (phi_i + asin((c_i / a_i) * sin(phi_i))) / 2 for i = N..1 * * so that sn(u,m) = sin(phi_0), cn(u,m) = cos(phi_0), * dn(u,m) = sqrt(1 - m * sn^2(u,m)). * * @packageDocumentation */ /** * Jacobi elliptic function sn(u, m), parameter convention m = k^2. * * @param u - Argument * @param m - Parameter m = k^2, must be in [0, 1] * @returns sn(u, m) * * @example * jacobiSN(0.5, 0.3) // ~0.4742156227 */ export declare function jacobiSN(u: number, m: number): number; /** * Jacobi elliptic function cn(u, m), parameter convention m = k^2. * * @param u - Argument * @param m - Parameter m = k^2, must be in [0, 1] * @returns cn(u, m) * * @example * jacobiCN(0.5, 0.3) // ~0.8804087364 */ export declare function jacobiCN(u: number, m: number): number; /** * Jacobi elliptic function dn(u, m), parameter convention m = k^2. * * @param u - Argument * @param m - Parameter m = k^2, must be in [0, 1] * @returns dn(u, m) * * @example * jacobiDN(0.5, 0.3) // ~0.9656789647 */ export declare function jacobiDN(u: number, m: number): number; //# sourceMappingURL=jacobi-elliptic.d.ts.map