# FloatEllipticFunctionsΒΆ

This package implements arbitrary precision numerical elliptic functions. The method is based on descending Landen transform.

ellipticE: (Complex Float, Complex Float) -> Complex Float

`ellipticE(z, m)` is the incomplete elliptic integral of the second kind.

ellipticE: (Float, Float) -> Float

`ellipticE(z, m)` is the incomplete elliptic integral of the second kind.

ellipticE: Complex Float -> Complex Float

`ellipticE(m)` is the complete elliptic integral of the second kind.

ellipticE: Float -> Float

`ellipticE(m)` is the complete elliptic integral of the second kind.

ellipticF: (Complex Float, Complex Float) -> Complex Float

`ellipticF(z, m)` is the incomplete elliptic integral of the first kind.

ellipticF: (Float, Float) -> Float

`ellipticF(z, m)` is the incomplete elliptic integral of the first kind.

ellipticK: Complex Float -> Complex Float

`ellipticK(m)` is the complete elliptic integral of the first kind.

ellipticK: Float -> Float

`ellipticK(m)` is the complete elliptic integral of the first kind.

ellipticPi: (Complex Float, Complex Float, Complex Float) -> Complex Float

`ellipticPi(z, n, m)` is the incomplete elliptic integral of the third kind.

ellipticPi: (Float, Float, Float) -> Float

`ellipticPi(z, n, m)` is the incomplete elliptic integral of the third kind.

jacobiCn: (Complex Float, Complex Float) -> Complex Float

`jacobiCn(z, m)` is the Jacobi `cn` function

jacobiCn: (Float, Float) -> Float

`jacobiCn(z, m)` is the Jacobi `cn` function

jacobiDn: (Complex Float, Complex Float) -> Complex Float

`jacobiDn(z, m)` is the Jacobi `dn` function

jacobiDn: (Float, Float) -> Float

`jacobiDn(z, m)` is the Jacobi `dn` function

jacobiSn: (Complex Float, Complex Float) -> Complex Float

`jacobiSn(z, m)` is the Jacobi `sn` function

jacobiSn: (Float, Float) -> Float

`jacobiSn(z, m)` is the Jacobi `sn` function

jacobiZeta: (Float, Float) -> Float

`jacobiZeta(z, m)` is the Jacobi zeta function

kprod: List Complex Float -> Complex Float

Undocumented.

kprod: List Float -> Float

Undocumented.

landen1: (Complex Float, List Complex Float) -> List Complex Float

Undocumented.

landen1: (Float, List Float) -> List Float

Undocumented.

landen2: (Complex Float, List Complex Float, Float) -> List Complex Float

Undocumented.

landen2: (Float, List Float, Float) -> List Float

Undocumented.

landen: (Complex Float, Float) -> List Complex Float

Undocumented.

landen: (Float, Float) -> List Float

Undocumented.

modularInvariantJ: Complex Float -> Complex Float

`modularInvariantJ(tau)` computes modular invariant `j`, that is `1728*g2^3/(g2^3 - 27*g3^2)` where `g2`, `g3` are invariants corresponding to half periods `w1`, `w2` such that `tau = w1/w2`.

rabs: Complex Float -> Float

Undocumented.

rabs: Float -> Float

Undocumented.

sn2: (Complex Float, List Complex Float) -> Complex Float

Undocumented.

sn2: (Float, List Float) -> Float

Undocumented.

weierstrassHalfPeriods: (Complex Float, Complex Float) -> List Complex Float

`weierstrassHalfPeriods(g2, g3)` computes half periods of Weierstrass elliptic functions from invariants `g2`, `g3`.

weierstrassInvariants: (Complex Float, Complex Float) -> List Complex Float

`weierstrassInvariants(w1, w2)` computes invariants `g2`, `g3` of Weierstrass elliptic functions from half periods `w1`, `w2`.

weierstrassP: (Complex Float, Complex Float, Complex Float) -> Complex Float

`weierstrassP(g2, g3, x)` is the Weierstrass `P` function

weierstrassP: (Float, Float, Float) -> Float

`weierstrassP(g2, g3, x)` is the Weierstrass `P` function

weierstrassPPrime: (Complex Float, Complex Float, Complex Float) -> Complex Float

`weierstrassPPrime(g2, g3, x)` is the derivative of the Weierstrass `P` function

weierstrassPPrime: (Float, Float, Float) -> Float

`weierstrassPPrime(g2, g3, x)` is the derivative of the Weierstrass `P` function