CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-mpmath

Python library for arbitrary-precision floating-point arithmetic

Pending
Overview
Eval results
Files

special-functions.mddocs/

Special Functions

Advanced mathematical functions including gamma functions, zeta functions, Bessel functions, hypergeometric functions, elliptic functions, and other special functions from mathematical physics and number theory.

Capabilities

Gamma Function and Related

The gamma function and related special functions.

def gamma(x):
    """
    Gamma function Γ(x).
    
    Args:
        x: Input number
        
    Returns:
        Γ(x) = ∫₀^∞ t^(x-1) e^(-t) dt
    """

def rgamma(x):
    """
    Reciprocal gamma function 1/Γ(x).
    
    Args:
        x: Input number
        
    Returns:
        1/Γ(x)
    """

def loggamma(x):
    """
    Logarithm of gamma function ln|Γ(x)|.
    
    Args:
        x: Input number
        
    Returns:
        ln|Γ(x)|
    """

def factorial(n):
    """
    Factorial function n!.
    
    Args:
        n: Non-negative integer or real number
        
    Returns:
        n! = Γ(n+1)
    """

def fac(n):
    """
    Factorial function (alias for factorial).
    
    Args:
        n: Non-negative integer or real number
        
    Returns:
        n!
    """

def fac2(n):
    """
    Double factorial n!!.
    
    Args:
        n: Integer
        
    Returns:
        n!! (product of every second integer)
    """

def binomial(n, k):
    """
    Binomial coefficient C(n,k) = n!/(k!(n-k)!).
    
    Args:
        n, k: Numbers
        
    Returns:
        Binomial coefficient
    """

def rf(x, n):
    """
    Rising factorial (Pochhammer symbol) (x)_n.
    
    Args:
        x: Base
        n: Count
        
    Returns:
        (x)_n = x(x+1)(x+2)...(x+n-1)
    """

def ff(x, n):
    """
    Falling factorial.
    
    Args:
        x: Base
        n: Count
        
    Returns:
        x(x-1)(x-2)...(x-n+1)
    """

Beta Function

Beta function and incomplete beta function.

def beta(x, y):
    """
    Beta function B(x,y).
    
    Args:
        x, y: Input numbers
        
    Returns:
        B(x,y) = Γ(x)Γ(y)/Γ(x+y)
    """

def betainc(a, b, x1=0, x2=1):
    """
    Incomplete beta function.
    
    Args:
        a, b: Shape parameters
        x1, x2: Integration limits (default: 0, 1)
        
    Returns:
        Incomplete beta integral
    """

Polygamma Functions

Polygamma functions (derivatives of logarithm of gamma function).

def psi(m, x):
    """
    Polygamma function ψ^(m)(x).
    
    Args:
        m: Order (0 for digamma, 1 for trigamma, etc.)
        x: Input number
        
    Returns:
        mth derivative of ln(Γ(x))
    """

def digamma(x):
    """
    Digamma function ψ(x) = Γ'(x)/Γ(x).
    
    Args:
        x: Input number
        
    Returns:
        ψ(x) = d/dx ln(Γ(x))
    """

def polygamma(m, x):
    """
    Polygamma function (alias for psi).
    
    Args:
        m: Order
        x: Input number
        
    Returns:
        ψ^(m)(x)
    """

Zeta Functions

Riemann zeta function and related functions.

def zeta(s):
    """
    Riemann zeta function ζ(s).
    
    Args:
        s: Complex number
        
    Returns:
        ζ(s) = Σ 1/n^s (for Re(s) > 1)
    """

def altzeta(s):
    """
    Alternating zeta function (Dirichlet eta).
    
    Args:
        s: Complex number
        
    Returns:
        η(s) = Σ (-1)^(n-1)/n^s
    """

def hurwitz(s, a):
    """
    Hurwitz zeta function ζ(s,a).
    
    Args:
        s: Complex number
        a: Complex number
        
    Returns:
        ζ(s,a) = Σ 1/(n+a)^s
    """

def dirichlet(s):
    """
    Dirichlet eta function η(s).
    
    Args:
        s: Complex number
        
    Returns:
        η(s) = (1-2^(1-s))ζ(s)
    """

def polylog(s, z):
    """
    Polylogarithm Li_s(z).
    
    Args:
        s: Order
        z: Argument
        
    Returns:
        Li_s(z) = Σ z^n/n^s
    """

def lerchphi(z, s, a):
    """
    Lerch transcendent Φ(z,s,a).
    
    Args:
        z, s, a: Complex numbers
        
    Returns:
        Φ(z,s,a) = Σ z^n/(n+a)^s
    """

def stieltjes(n):
    """
    Stieltjes constants γ_n.
    
    Args:
        n: Non-negative integer
        
    Returns:
        nth Stieltjes constant
    """

Number Theory Functions

Functions related to prime numbers and number theory.

def primepi(x):
    """
    Prime counting function π(x).
    
    Args:
        x: Real number
        
    Returns:
        Number of primes ≤ x
    """

def primepi2(x):
    """
    Offset logarithmic integral π₂(x).
    
    Args:
        x: Real number
        
    Returns:
        π₂(x) = π(x) - π(√x)
    """

def primezeta(s):
    """
    Prime zeta function P(s).
    
    Args:
        s: Complex number
        
    Returns:
        P(s) = Σ 1/p^s (sum over primes p)
    """

def riemannr(x):
    """
    Riemann R function.
    
    Args:
        x: Real number
        
    Returns:
        R(x) = Σ μ(k)/k * li(x^(1/k))
    """

def mangoldt(n):
    """
    Von Mangoldt function Λ(n).
    
    Args:
        n: Positive integer
        
    Returns:
        ln(p) if n = p^k for prime p, 0 otherwise
    """

def secondzeta(x):
    """
    Second Chebyshev function ψ(x).
    
    Args:
        x: Real number
        
    Returns:
        ψ(x) = Σ Λ(n) for n ≤ x
    """

Error Functions

Error function and related integrals.

def erf(x):
    """
    Error function erf(x).
    
    Args:
        x: Input number
        
    Returns:
        erf(x) = (2/√π) ∫₀^x e^(-t²) dt
    """

def erfc(x):
    """
    Complementary error function erfc(x).
    
    Args:
        x: Input number
        
    Returns:
        erfc(x) = 1 - erf(x)
    """

def erfi(x):
    """
    Imaginary error function erfi(x).
    
    Args:
        x: Input number
        
    Returns:
        erfi(x) = -i * erf(ix)
    """

def erfinv(x):
    """
    Inverse error function.
    
    Args:
        x: Input number (-1 < x < 1)
        
    Returns:
        Inverse of erf(x)
    """

def npdf(x, mu=0, sigma=1):
    """
    Normal probability density function.
    
    Args:
        x: Input value
        mu: Mean (default 0)
        sigma: Standard deviation (default 1)
        
    Returns:
        PDF of normal distribution
    """

def ncdf(x, mu=0, sigma=1):
    """
    Normal cumulative distribution function.
    
    Args:
        x: Input value
        mu: Mean (default 0)
        sigma: Standard deviation (default 1)
        
    Returns:
        CDF of normal distribution
    """

Exponential Integrals

Exponential integral and related functions.

def expint(n, x):
    """
    Exponential integral E_n(x).
    
    Args:
        n: Order
        x: Input number
        
    Returns:
        E_n(x) = ∫₁^∞ e^(-xt)/t^n dt
    """

def e1(x):
    """
    Exponential integral E₁(x).
    
    Args:
        x: Input number
        
    Returns:
        E₁(x) = ∫_x^∞ e^(-t)/t dt
    """

def ei(x):
    """
    Exponential integral Ei(x).
    
    Args:
        x: Input number
        
    Returns:
        Ei(x) = ∫_{-∞}^x e^t/t dt
    """

def li(x):
    """
    Logarithmic integral li(x).
    
    Args:
        x: Input number
        
    Returns:
        li(x) = ∫₀^x dt/ln(t)
    """

def ci(x):
    """
    Cosine integral Ci(x).
    
    Args:
        x: Input number
        
    Returns:
        Ci(x) = -∫_x^∞ cos(t)/t dt
    """

def si(x):
    """
    Sine integral Si(x).
    
    Args:
        x: Input number
        
    Returns:
        Si(x) = ∫₀^x sin(t)/t dt
    """

def chi(x):
    """
    Hyperbolic cosine integral Chi(x).
    
    Args:
        x: Input number
        
    Returns:
        Chi(x) = ∫₀^x (cosh(t)-1)/t dt
    """

def shi(x):
    """
    Hyperbolic sine integral Shi(x).
    
    Args:
        x: Input number
        
    Returns:
        Shi(x) = ∫₀^x sinh(t)/t dt
    """

Lambert W Function and Inverse Functions

The Lambert W function and related inverse special functions.

def lambertw(z, k=0):
    """
    Lambert W function W_k(z), the inverse of f(w) = w*exp(w).
    
    Args:
        z: Input number  
        k: Branch index (integer), default 0
        
    Returns:
        W_k(z) such that W_k(z) * exp(W_k(z)) = z
    """

Fresnel Integrals

Fresnel sine and cosine integrals.

def fresnels(x):
    """
    Fresnel sine integral S(x).
    
    Args:
        x: Input number
        
    Returns:
        S(x) = ∫₀^x sin(πt²/2) dt
    """

def fresnelc(x):
    """
    Fresnel cosine integral C(x).
    
    Args:
        x: Input number
        
    Returns:
        C(x) = ∫₀^x cos(πt²/2) dt
    """

Bessel Functions

Bessel functions of various kinds.

def besselj(n, x):
    """
    Bessel function of the first kind J_n(x).
    
    Args:
        n: Order
        x: Argument
        
    Returns:
        J_n(x)
    """

def j0(x):
    """
    Bessel function J₀(x).
    
    Args:
        x: Argument
        
    Returns:
        J₀(x)
    """

def j1(x):
    """
    Bessel function J₁(x).
    
    Args:
        x: Argument
        
    Returns:
        J₁(x)
    """

def bessely(n, x):
    """
    Bessel function of the second kind Y_n(x).
    
    Args:
        n: Order
        x: Argument
        
    Returns:
        Y_n(x)
    """

def besseli(n, x):
    """
    Modified Bessel function of the first kind I_n(x).
    
    Args:
        n: Order
        x: Argument
        
    Returns:
        I_n(x)
    """

def besselk(n, x):
    """
    Modified Bessel function of the second kind K_n(x).
    
    Args:
        n: Order
        x: Argument
        
    Returns:
        K_n(x)
    """

def hankel1(n, x):
    """
    Hankel function of the first kind H₁_n(x).
    
    Args:
        n: Order
        x: Argument
        
    Returns:
        H₁_n(x) = J_n(x) + i*Y_n(x)
    """

def hankel2(n, x):
    """
    Hankel function of the second kind H₂_n(x).
    
    Args:
        n: Order
        x: Argument
        
    Returns:
        H₂_n(x) = J_n(x) - i*Y_n(x)
    """

def besseljzero(n, k):
    """
    kth zero of Bessel function J_n(x).
    
    Args:
        n: Order
        k: Zero index (1, 2, 3, ...)
        
    Returns:
        kth positive zero of J_n(x)
    """

def besselyzero(n, k):
    """
    kth zero of Bessel function Y_n(x).
    
    Args:
        n: Order
        k: Zero index (1, 2, 3, ...)
        
    Returns:
        kth positive zero of Y_n(x)
    """

Hypergeometric Functions

Generalized hypergeometric functions.

def hyper(a_s, b_s, z):
    """
    Generalized hypergeometric function.
    
    Args:
        a_s: List of numerator parameters
        b_s: List of denominator parameters
        z: Argument
        
    Returns:
        pFq hypergeometric function
    """

def hyp0f1(b, z):
    """
    Confluent hypergeometric limit function ₀F₁(;b;z).
    
    Args:
        b: Parameter
        z: Argument
        
    Returns:
        ₀F₁(;b;z)
    """

def hyp1f1(a, b, z):
    """
    Confluent hypergeometric function ₁F₁(a;b;z).
    
    Args:
        a, b: Parameters
        z: Argument
        
    Returns:
        ₁F₁(a;b;z) = M(a,b,z)
    """

def hyp2f1(a, b, c, z):
    """
    Gauss hypergeometric function ₂F₁(a,b;c;z).
    
    Args:
        a, b, c: Parameters
        z: Argument
        
    Returns:
        ₂F₁(a,b;c;z)
    """

def hyperu(a, b, z):
    """
    Confluent hypergeometric function of the second kind U(a,b,z).
    
    Args:
        a, b: Parameters
        z: Argument
        
    Returns:
        U(a,b,z)
    """

def meijerg(a_s, b_s, z):
    """
    Meijer G-function.
    
    Args:
        a_s: List of a-parameters
        b_s: List of b-parameters
        z: Argument
        
    Returns:
        Meijer G-function
    """

def appellf1(a, b1, b2, c, x, y):
    """
    Appell hypergeometric function F₁.
    
    Args:
        a, b1, b2, c: Parameters
        x, y: Arguments
        
    Returns:
        F₁(a;b₁,b₂;c;x,y)
    """

def appellf2(a, b1, b2, c1, c2, x, y):
    """
    Appell hypergeometric function F₂.
    
    Args:
        a, b1, b2, c1, c2: Parameters
        x, y: Arguments
        
    Returns:
        F₂(a;b₁,b₂;c₁,c₂;x,y)
    """

def appellf3(a1, a2, b1, b2, c, x, y):
    """
    Appell hypergeometric function F₃.
    
    Args:
        a1, a2, b1, b2, c: Parameters
        x, y: Arguments
        
    Returns:
        F₃(a₁,a₂;b₁,b₂;c;x,y)
    """

def appellf4(a, b, c1, c2, x, y):
    """
    Appell hypergeometric function F₄.
    
    Args:
        a, b, c1, c2: Parameters
        x, y: Arguments
        
    Returns:
        F₄(a,b;c₁,c₂;x,y)
    """

def hyp1f2(a, b1, b2, z):
    """
    Hypergeometric function ₁F₂(a;b₁,b₂;z).
    
    Args:
        a: Numerator parameter
        b1, b2: Denominator parameters
        z: Argument
        
    Returns:
        ₁F₂(a;b₁,b₂;z)
    """

def hyp2f2(a1, a2, b1, b2, z):
    """
    Hypergeometric function ₂F₂(a₁,a₂;b₁,b₂;z).
    
    Args:
        a1, a2: Numerator parameters
        b1, b2: Denominator parameters
        z: Argument
        
    Returns:
        ₂F₂(a₁,a₂;b₁,b₂;z)
    """

def hyp2f0(a1, a2, z):
    """
    Hypergeometric function ₂F₀(a₁,a₂;;z).
    
    Args:
        a1, a2: Numerator parameters
        z: Argument
        
    Returns:
        ₂F₀(a₁,a₂;;z)
    """

def hyp2f3(a1, a2, b1, b2, b3, z):
    """
    Hypergeometric function ₂F₃(a₁,a₂;b₁,b₂,b₃;z).
    
    Args:
        a1, a2: Numerator parameters
        b1, b2, b3: Denominator parameters
        z: Argument
        
    Returns:
        ₂F₃(a₁,a₂;b₁,b₂,b₃;z)
    """

def hyp3f2(a1, a2, a3, b1, b2, z):
    """
    Hypergeometric function ₃F₂(a₁,a₂,a₃;b₁,b₂;z).
    
    Args:
        a1, a2, a3: Numerator parameters
        b1, b2: Denominator parameters
        z: Argument
        
    Returns:
        ₃F₂(a₁,a₂,a₃;b₁,b₂;z)
    """

def hyper2d(a_s, b_s, z1, z2):
    """
    2D hypergeometric function.
    
    Args:
        a_s: List of numerator parameters
        b_s: List of denominator parameters
        z1, z2: Arguments
        
    Returns:
        2D hypergeometric function
    """

def bihyper(a_s, b_s, z):
    """
    Bilateral hypergeometric function.
    
    Args:
        a_s: List of a-parameters
        b_s: List of b-parameters
        z: Argument
        
    Returns:
        Bilateral hypergeometric series
    """

def hypercomb(a_s, b_s, z_s, **kwargs):
    """
    Linear combination of hypergeometric functions.
    
    Args:
        a_s: List of a-parameter lists
        b_s: List of b-parameter lists
        z_s: List of arguments
        **kwargs: Additional options
        
    Returns:
        Linear combination result
    """

Orthogonal Polynomials

Classical orthogonal polynomials and related functions.

def legendre(n, x):
    """
    Legendre polynomial P_n(x).
    
    Args:
        n: Degree (non-negative integer)
        x: Argument
        
    Returns:
        P_n(x)
    """

def legenp(n, m, x):
    """
    Associated Legendre function of the first kind P_n^m(x).
    
    Args:
        n: Degree
        m: Order
        x: Argument
        
    Returns:
        P_n^m(x)
    """

def legenq(n, m, x):
    """
    Associated Legendre function of the second kind Q_n^m(x).
    
    Args:
        n: Degree
        m: Order
        x: Argument
        
    Returns:
        Q_n^m(x)
    """

def chebyt(n, x):
    """
    Chebyshev polynomial of the first kind T_n(x).
    
    Args:
        n: Degree
        x: Argument
        
    Returns:
        T_n(x) = cos(n*arccos(x))
    """

def chebyu(n, x):
    """
    Chebyshev polynomial of the second kind U_n(x).
    
    Args:
        n: Degree
        x: Argument
        
    Returns:
        U_n(x) = sin((n+1)*arccos(x))/sin(arccos(x))
    """

def hermite(n, x):
    """
    Hermite polynomial H_n(x).
    
    Args:
        n: Degree (non-negative integer)
        x: Argument
        
    Returns:
        H_n(x) (physicist's convention)
    """

def laguerre(n, a, x):
    """
    Generalized Laguerre polynomial L_n^(a)(x).
    
    Args:
        n: Degree
        a: Parameter (default 0 for simple Laguerre)
        x: Argument
        
    Returns:
        L_n^(a)(x)
    """

def gegenbauer(n, a, x):
    """
    Gegenbauer (ultraspherical) polynomial C_n^(a)(x).
    
    Args:
        n: Degree
        a: Parameter
        x: Argument
        
    Returns:
        C_n^(a)(x)
    """

def spherharm(l, m, theta, phi):
    """
    Spherical harmonic Y_l^m(θ,φ).
    
    Args:
        l: Degree (l ≥ 0)
        m: Order (|m| ≤ l)
        theta: Polar angle (0 ≤ θ ≤ π)
        phi: Azimuthal angle (0 ≤ φ < 2π)
        
    Returns:
        Y_l^m(θ,φ)
    """

def jacobi(n, a, b, x):
    """
    Jacobi polynomial P_n^(a,b)(x).
    
    Args:
        n: Degree
        a, b: Parameters (a, b > -1)
        x: Argument
        
    Returns:
        P_n^(a,b)(x)
    """

Parabolic Cylinder Functions

Parabolic cylinder functions and related Weber functions.

def pcfd(n, z):
    """
    Parabolic cylinder function D_n(z).
    
    Args:
        n: Order
        z: Argument
        
    Returns:
        D_n(z)
    """

def pcfu(a, x):
    """
    Parabolic cylinder function U(a,x).
    
    Args:
        a: Parameter
        x: Argument
        
    Returns:
        U(a,x)
    """

def pcfv(a, x):
    """
    Parabolic cylinder function V(a,x).
    
    Args:
        a: Parameter
        x: Argument
        
    Returns:
        V(a,x)
    """

def pcfw(a, x):
    """
    Parabolic cylinder function W(a,x).
    
    Args:
        a: Parameter
        x: Argument
        
    Returns:
        W(a,x)
    """

Airy Functions

Airy functions and their zeros.

def airyai(z):
    """
    Airy function Ai(z).
    
    Args:
        z: Argument (real or complex)
        
    Returns:
        Ai(z)
    """

def airybi(z):
    """
    Airy function Bi(z).
    
    Args:
        z: Argument (real or complex)
        
    Returns:
        Bi(z)
    """

def airyaizero(k):
    """
    kth zero of Airy function Ai(x).
    
    Args:
        k: Zero index (1, 2, 3, ...)
        
    Returns:
        kth negative zero of Ai(x)
    """

def airybizero(k):
    """
    kth zero of Airy function Bi(x).
    
    Args:
        k: Zero index (1, 2, 3, ...)
        
    Returns:
        kth negative zero of Bi(x)
    """

def scorergi(z):
    """
    Scorer function Gi(z).
    
    Args:
        z: Argument
        
    Returns:
        Gi(z)
    """

def scorerhi(z):
    """
    Scorer function Hi(z).
    
    Args:
        z: Argument
        
    Returns:
        Hi(z)
    """

Extended Bessel Function Variants

Additional Bessel function variants and related cylindrical functions.

def struveh(n, z):
    """
    Struve function H_n(z).
    
    Args:
        n: Order
        z: Argument
        
    Returns:
        H_n(z)
    """

def struvel(n, z):
    """
    Modified Struve function L_n(z).
    
    Args:
        n: Order
        z: Argument
        
    Returns:
        L_n(z)
    """

def angerj(n, z):
    """
    Anger function J_n(z).
    
    Args:
        n: Order
        z: Argument
        
    Returns:
        J_n(z)
    """

def webere(n, z):
    """
    Weber function E_n(z).
    
    Args:
        n: Order
        z: Argument
        
    Returns:
        E_n(z)
    """

def lommels1(mu, nu, z):
    """
    Lommel function s_μ,ν(z).
    
    Args:
        mu, nu: Parameters
        z: Argument
        
    Returns:
        s_μ,ν(z)
    """

def lommels2(mu, nu, z):
    """
    Lommel function S_μ,ν(z).
    
    Args:
        mu, nu: Parameters
        z: Argument
        
    Returns:
        S_μ,ν(z)
    """

def whitm(k, m, z):
    """
    Whittaker function M_k,m(z).
    
    Args:
        k, m: Parameters
        z: Argument
        
    Returns:
        M_k,m(z)
    """

def whitw(k, m, z):
    """
    Whittaker function W_k,m(z).
    
    Args:
        k, m: Parameters
        z: Argument
        
    Returns:
        W_k,m(z)
    """

def ber(n, x):
    """
    Kelvin function ber_n(x).
    
    Args:
        n: Order
        x: Argument (real)
        
    Returns:
        ber_n(x)
    """

def bei(n, x):
    """
    Kelvin function bei_n(x).
    
    Args:
        n: Order
        x: Argument (real)
        
    Returns:
        bei_n(x)
    """

def ker(n, x):
    """
    Kelvin function ker_n(x).
    
    Args:
        n: Order
        x: Argument (real)
        
    Returns:
        ker_n(x)
    """

def kei(n, x):
    """
    Kelvin function kei_n(x).
    
    Args:
        n: Order
        x: Argument (real)
        
    Returns:
        kei_n(x)
    """

def coulombc(l, eta):
    """
    Coulomb wave function phase shift C_l(η).
    
    Args:
        l: Angular momentum quantum number
        eta: Sommerfeld parameter
        
    Returns:
        C_l(η)
    """

def coulombf(l, eta, rho):
    """
    Regular Coulomb wave function F_l(η,ρ).
    
    Args:
        l: Angular momentum quantum number
        eta: Sommerfeld parameter  
        rho: Radial parameter
        
    Returns:
        F_l(η,ρ)
    """

def coulombg(l, eta, rho):
    """
    Irregular Coulomb wave function G_l(η,ρ).
    
    Args:
        l: Angular momentum quantum number
        eta: Sommerfeld parameter
        rho: Radial parameter
        
    Returns:
        G_l(η,ρ)
    """

Elliptic Functions and Integrals

Extended elliptic functions beyond the basic ones.

def elliprc(x, y):
    """
    Carlson elliptic integral RC(x,y).
    
    Args:
        x, y: Arguments
        
    Returns:
        RC(x,y) = ∫₀^∞ dt/((t+x)√(t+y))/2
    """

def elliprj(x, y, z, p):
    """
    Carlson elliptic integral RJ(x,y,z,p).
    
    Args:
        x, y, z, p: Arguments
        
    Returns:
        RJ(x,y,z,p)
    """

def elliprf(x, y, z):
    """
    Carlson elliptic integral RF(x,y,z).
    
    Args:
        x, y, z: Arguments
        
    Returns:
        RF(x,y,z)
    """

def elliprd(x, y, z):
    """
    Carlson elliptic integral RD(x,y,z).
    
    Args:
        x, y, z: Arguments
        
    Returns:
        RD(x,y,z)
    """

def elliprg(x, y, z):
    """
    Carlson elliptic integral RG(x,y,z).
    
    Args:
        x, y, z: Arguments
        
    Returns:
        RG(x,y,z)
    """

def jacobi(kind, u, m):
    """
    Jacobi elliptic functions sn, cn, dn.
    
    Args:
        kind: Function type ('sn', 'cn', 'dn', 'ns', 'nc', 'nd', etc.)
        u: Argument
        m: Parameter (0 ≤ m ≤ 1)
        
    Returns:
        Specified Jacobi elliptic function
    """

def agm(a, b):
    """
    Arithmetic-geometric mean of a and b.
    
    Args:
        a, b: Arguments
        
    Returns:
        AGM(a,b)
    """

Additional Number Theory Functions

Additional functions related to number theory and special sequences.

def bell(n):
    """
    Bell number B_n.
    
    Args:
        n: Non-negative integer
        
    Returns:
        B_n (number of partitions of set with n elements)
    """

def polyexp(s, z):
    """
    Polyexponential function.
    
    Args:
        s: Parameter
        z: Argument
        
    Returns:
        Polyexponential Exp_s(z)
    """

def stirling1(n, k):
    """
    Stirling number of the first kind.
    
    Args:
        n, k: Non-negative integers
        
    Returns:
        s(n,k) - unsigned Stirling number of first kind
    """

def stirling2(n, k):
    """
    Stirling number of the second kind.
    
    Args:
        n, k: Non-negative integers
        
    Returns:
        S(n,k) - Stirling number of second kind
    """

def fibonacci(n):
    """
    Fibonacci number F_n.
    
    Args:
        n: Integer (can be negative)
        
    Returns:
        F_n (Fibonacci number)
    """

def fib(n):
    """
    Fibonacci number (alias for fibonacci).
    
    Args:
        n: Integer
        
    Returns:
        F_n
    """

def nzeros(t):
    """
    Number of zeta zeros with imaginary part ≤ t.
    
    Args:
        t: Real number
        
    Returns:
        Count of Riemann zeta zeros
    """

def backlunds(t):
    """
    Bounds from Backlund's theorem for zeta zeros.
    
    Args:
        t: Real number
        
    Returns:
        Backlund bounds
    """

def bernoulli(n):
    """
    Bernoulli number B_n.
    
    Args:
        n: Non-negative integer
        
    Returns:
        B_n (Bernoulli number)
    """

def bernfrac(n):
    """
    Bernoulli number as exact fraction.
    
    Args:
        n: Non-negative integer
        
    Returns:
        B_n as fraction
    """

def bernpoly(n, x):
    """
    Bernoulli polynomial B_n(x).
    
    Args:
        n: Non-negative integer  
        x: Argument
        
    Returns:
        B_n(x) (Bernoulli polynomial)
    """

def eulernum(n):
    """
    Euler number E_n.
    
    Args:
        n: Non-negative integer
        
    Returns:
        E_n (Euler number)
    """

def eulerpoly(n, x):
    """
    Euler polynomial E_n(x).
    
    Args:
        n: Non-negative integer
        x: Argument
        
    Returns:
        E_n(x) (Euler polynomial)
    """

def harmonic(n):
    """
    Harmonic number H_n.
    
    Args:
        n: Positive integer or real number
        
    Returns:
        H_n = 1 + 1/2 + ... + 1/n
    """

def cyclotomic(n, x):
    """
    Cyclotomic polynomial Φ_n(x).
    
    Args:
        n: Positive integer
        x: Argument
        
    Returns:
        Φ_n(x) (cyclotomic polynomial)
    """

def unitroots(n):
    """
    List of n-th roots of unity.
    
    Args:
        n: Positive integer
        
    Returns:
        List of complex n-th roots of unity
    """

def barnesg(z):
    """
    Barnes G-function G(z).
    
    Args:
        z: Input number
        
    Returns:
        G(z) (Barnes G-function)
    """

def superfac(n):
    """
    Superfactorial of n.
    
    Args:
        n: Non-negative integer
        
    Returns:
        1! × 2! × ... × n!
    """

def hyperfac(n):
    """
    Hyperfactorial of n.
    
    Args:
        n: Non-negative integer
        
    Returns:
        1^1 × 2^2 × ... × n^n
    """

def clsin(x):
    """
    Clausen sine function Cl_2(x).
    
    Args:
        x: Input number
        
    Returns:
        Cl_2(x) = -∫₀^x ln|2sin(t/2)| dt
    """

def clcos(x):
    """
    Clausen cosine function.
    
    Args:
        x: Input number
        
    Returns:
        Clausen cosine function
    """

def gammainc(s, a, b=None):
    """
    Incomplete gamma function.
    
    Args:
        s: Parameter
        a: Lower limit
        b: Upper limit (optional)
        
    Returns:
        Incomplete gamma function
    """

def gammaprod(a_s, b_s):
    """
    Product of gamma functions.
    
    Args:
        a_s: List of numerator arguments
        b_s: List of denominator arguments
        
    Returns:
        ∏Γ(a_i) / ∏Γ(b_j)
    """

def grampoint(n):
    """
    n-th Gram point.
    
    Args:
        n: Integer
        
    Returns:
        n-th Gram point
    """

def siegeltheta(t):
    """
    Siegel theta function.
    
    Args:
        t: Real number
        
    Returns:
        ϑ(t) (Siegel theta function)
    """

def siegelz(t):
    """
    Siegel Z function.
    
    Args:
        t: Real number
        
    Returns:
        Z(t) (Siegel Z function)
    """

def zetazero(n):
    """
    n-th zero of Riemann zeta function.
    
    Args:
        n: Positive integer
        
    Returns:
        n-th nontrivial zero of ζ(s)
    """

Usage Examples

import mpmath
from mpmath import mp

# Set precision
mp.dps = 25

# Gamma function examples
print(f"Γ(5) = {mp.gamma(5)}")  # Should be 4! = 24
print(f"Γ(0.5) = {mp.gamma(0.5)}")  # Should be √π
print(f"Γ(1/3) = {mp.gamma(mp.mpf(1)/3)}")

# Zeta function
print(f"ζ(2) = {mp.zeta(2)}")  # Should be π²/6
print(f"ζ(3) = {mp.zeta(3)}")  # Apéry's constant

# Error function
print(f"erf(1) = {mp.erf(1)}")
print(f"erfc(1) = {mp.erfc(1)}")

# Bessel functions
print(f"J₀(1) = {mp.j0(1)}")
print(f"J₁(1) = {mp.j1(1)}")
print(f"Y₀(1) = {mp.bessely(0, 1)}")

# Complex arguments work
z = mp.mpc(1, 1)
print(f"Γ(1+i) = {mp.gamma(z)}")
print(f"J₀(1+i) = {mp.besselj(0, z)}")

# Hypergeometric functions
print(f"₁F₁(1;2;1) = {mp.hyp1f1(1, 2, 1)}")
print(f"₂F₁(1,1;2;0.5) = {mp.hyp2f1(1, 1, 2, 0.5)}")

# Number theory functions
print(f"π(100) = {mp.primepi(100)}")  # Number of primes ≤ 100

# Orthogonal polynomials
print(f"P₂(0.5) = {mp.legendre(2, 0.5)}")  # Legendre polynomial
print(f"T₃(0.5) = {mp.chebyt(3, 0.5)}")   # Chebyshev polynomial
print(f"H₂(1) = {mp.hermite(2, 1)}")      # Hermite polynomial

# Elliptic functions
print(f"K(0.5) = {mp.ellipk(0.5)}")       # Complete elliptic integral
print(f"sn(1, 0.5) = {mp.jacobi('sn', 1, 0.5)}")  # Jacobi elliptic function

# Airy functions
print(f"Ai(1) = {mp.airyai(1)}")
print(f"Bi(1) = {mp.airybi(1)}")

# Additional Bessel function variants
print(f"H₀⁽¹⁾(1) = {mp.hankel1(0, 1)}")   # Hankel function
print(f"I₀(1) = {mp.besseli(0, 1)}")      # Modified Bessel I
print(f"K₀(1) = {mp.besselk(0, 1)}")      # Modified Bessel K

# Special values and identities
print(f"Γ(1/2) = {mp.gamma(0.5)}")
print(f"√π = {mp.sqrt(mp.pi)}")
print(f"Difference: {mp.gamma(0.5) - mp.sqrt(mp.pi)}")

Install with Tessl CLI

npx tessl i tessl/pypi-mpmath

docs

core-arithmetic.md

elementary-functions.md

elliptic-modular-functions.md

index.md

linear-algebra.md

mathematical-constants.md

numerical-calculus.md

pattern-recognition.md

signal-processing.md

special-functions.md

visualization.md

tile.json