Skip to main content

Special functions

The 19 definitions of the special functions library, each with its Epsil spelling, its MathJSON name, its signature and its full description.

Each definition is listed under its Epsil spelling (the MathJSON name when it has none), with its signature in the engine's type syntax. The Standard Library page is the one-page index of every category.

Definitions​

agm​

MathJSON AGM · (complex | infinity, (complex | infinity)?) -> number

Arithmetic-geometric mean. AGM(z) is shorthand for AGM(1, z) (Fungrim convention).

appellF1​

MathJSON AppellF1 · (complex | infinity, complex | infinity, complex | infinity, complex | infinity, complex | infinity, complex | infinity) -> number

Appell hypergeometric function F₁(a; b₁, b₂; c; x, y), double series for |x|, |y| < 1.

barnesG​

MathJSON BarnesG · (complex | infinity) -> number

The Barnes G-function, the double gamma function G(z+1) = Γ(z)·G(z), G(1) = 1. G(n) is the superfactorial 1!·2!⋯(n−2)! at a positive integer n; G is entire, with zeros at the non-positive integers.

barnesG(5)
// ➔ 12
N(barnesG(1/2))
// ➔ 0.603244281209446206191

clausenCl​

MathJSON ClausenCl · (integer, real) -> number

Clausen function Clₙ(θ) of integer order n ≥ 1 and real θ: Im Liₙ(e^{iθ}) = Σ sin(kθ)/kⁿ for even n, Re Liₙ(e^{iθ}) = Σ cos(kθ)/kⁿ for odd n. A real θ follows the engine precision.

[clausenCl(2, 1), clausenCl(3, 0), N(clausenCl(2, 1))]
// ➔ [ClausenCl(2, 1),Zeta(3),1.01395913236076850429]

dedekindEta​

MathJSON DedekindEta · (complex | infinity) -> number

Dedekind eta function η(τ), Im(τ) > 0.

eisensteinE​

MathJSON EisensteinE · (number, complex | infinity) -> number

Normalized Eisenstein series Eₛ(τ) of even weight s ≥ 2, Im(τ) > 0.

ellipticE​

MathJSON EllipticE · (complex | infinity, (complex | infinity)?) -> number

Elliptic integral of the second kind: complete E(m) with one argument, incomplete E(φ|m) with two (amplitude first, parameter convention m = k², as in Mathematica).

ellipticF​

MathJSON EllipticF · (complex | infinity, complex | infinity) -> number

Incomplete elliptic integral of the first kind F(φ|m) (amplitude first, parameter convention m = k², as in Mathematica). F(π/2|m) = K(m).

ellipticK​

MathJSON EllipticK · (complex | infinity) -> number

Complete elliptic integral of the first kind K(m), parameter convention m = k².

ellipticPi​

MathJSON EllipticPi · (complex | infinity, complex | infinity, (complex | infinity)?) -> number

Elliptic integral of the third kind: complete Π(n|m) with two arguments, incomplete Π(n; φ|m) with three (characteristic first, amplitude second, parameter convention m = k², as in Mathematica).

expIntegralEi​

MathJSON ExpIntegralEi · (complex | infinity) -> number

Exponential integral Ei(x) = PV ∫_{−∞}^x eᵗ/t dt.

hypergeometric1F1​

MathJSON Hypergeometric1F1 · (complex | infinity, complex | infinity, complex | infinity) -> number

Kummer confluent hypergeometric function ₁F₁(a; b; z) = M(a, b, z).

hypergeometric2F1​

MathJSON Hypergeometric2F1 · (complex | infinity, complex | infinity, complex | infinity, complex | infinity) -> number

Gauss hypergeometric function ₂F₁(a, b; c; z).

jacobiTheta​

MathJSON JacobiTheta · (number, complex | infinity, complex | infinity, number?) -> number

Jacobi theta function θⱼ(z, τ), j ∈ {1,2,3,4}, nome q = e^{iπτ} (Fungrim convention).

logBarnesG​

MathJSON LogBarnesG · (complex | infinity) -> number

The logarithm of the Barnes G-function, continued analytically with LogGamma: its imaginary part is not principal on the negative axis. −∞ at the zeros of G, the non-positive integers.

logBarnesG(5)
// ➔ 2ln(2) + ln(3)
N(logBarnesG(-1/2))
// ➔ (-1.7709451779743404 + 3.141592653589793i)

logGamma​

MathJSON LogGamma · (complex | infinity) -> number

The analytic continuation of ln Γ(z), with its branch cut on (−∞, 0]; not GammaLn, the principal logarithm of Γ(z), which jumps by 2πi across the zeros of Im Γ.

logGamma(5)
// ➔ 3ln(2) + ln(3)
N(logGamma(-2.5 + 1.5i))
// ➔ (-3.7175134511917927 - 7.713065525834192i)

logIntegral​

MathJSON LogIntegral · (complex | infinity) -> number

Logarithmic integral li(x) = PV ∫₀ˣ dt/ln t = Ei(ln x).

polyLog​

MathJSON PolyLog · (complex | infinity, complex | infinity) -> number

Polylogarithm Liₛ(z) = Σ_{k≥1} zᵏ/kˢ, at any real or complex order s.

stieltjesGamma​

MathJSON StieltjesGamma · (integer, number?) -> number

Generalized Stieltjes constants γₙ(a), the Laurent coefficients of ζ(s, a) at s = 1: ζ(s, a) = 1/(s−1) + Σₙ (−1)ⁿ γₙ(a)(s−1)ⁿ/n!. StieltjesGamma(n) is γₙ = γₙ(1), and γ₀ is Euler's constant.

stieltjesGamma(0)
// ➔ "EulerGamma"
N(stieltjesGamma(1))
// ➔ -0.0728158454836767248606
N(stieltjesGamma(2, 1/2))
// ➔ 0.968864475220290711422