-
Notifications
You must be signed in to change notification settings - Fork 142
Special functions summary
Fredrik Johansson edited this page Mar 13, 2016
·
8 revisions
This page is meant to track support for special functions in Arb and outstanding issues.
Long-term, it would be nice to support most of the functions known to mpmath, Pari/GP, Mathematica, Maple, DLMF, Abramowitz & Stegun, etc.
- A available
- (A) implicitly available (trivial conversion from another function)
- P partial implementation, missing major optimizations or not supporting the whole domain
- X not available, or not available conveniently enough considering its importance
- - not interesting or applicable
- RR - real variable(s)
- CC - complex variable(s)
- RR - real power series / derivatives
- CC - complex power series / derivatives
Function | RR | CC | RRx | CCx | Notes |
---|---|---|---|---|---|
exp | A | A | A | A |
Function | RR | CC | RRx | CCx | Notes |
---|---|---|---|---|---|
Fibonacci numbers | P(A) | (A) | (A) | (A) | No real/complex extension (trivial via elementary functions) |
Factorials | P(A) | (A) | (A) | (A) | No real/complex extension (trivial via gamma function) |
Double factorials | P(A) | (A) | (A) | (A) | No real/complex extension (trivial via gamma function) |
Multiple factorials | X | X | X | X | |
Rising factorials | A | A | A | A | Need to use gamma function in some cases for real/complex extension |
Falling factorials | (A) | (A) | (A) | (A) | Equivalent to rising factorials |
Binomial coefficients | (A) | (A) | (A) | (A) | No real/complex extension (trivial via gamma function) |
Multinomial coefficients | X | - | - | - | |
Gamma function | A | A | A | A | |
Log-gamma function | A | A | A | A | |
Digamma function | A | A | A | A | |
Harmonic numbers | (A) | (A) | (A) | (A) | Trivial via gamma function |
Bernoulli numbers | A | - | - | - | |
Euler numbers | A | - | - | - | |
Bernoulli polynomials | A | A | (A) | (A) | Exact computation possible with FLINT |
Euler polynomials | (A) | (A) | (A) | (A) | Exact computation possible with FLINT |
Eulerian numbers | X | - | - | - | |
Bell numbers | A | - | - | - | |
Partition function | A | - | - | - | |
Stirling numbers | (A) | - | - | - | Exact computation possible with FLINT |
Function | RR | CC | RRx | CCx | Notes |
---|---|---|---|---|---|
Hypergeometric function U | (A) | A | X | X | Derivatives with respect to the variable are easy to compute, but no interface for this yet |
Hypergeometric function 0F1 | (A) | A | X | X | Derivatives with respect to the variable are easy to compute, but no interface for this yet |
Hypergeometric function 1F1 | (A) | A | X | X | Derivatives with respect to the variable are easy to compute, but no interface for this yet |
Hypergeometric function 2F1 | (A) | A | X | X | Derivatives with respect to the variable are easy to compute, but no interface for this yet |
Hypergeometric function 2F0 | (A) | (A) | X | X | Trivial variation of hypergeometric U |
Generalized hypergeometric function PFQ | (A)P | P | X | X | Restricted domain; slow for large arguments. Partial support for derivatives with respect to parameters or the argument. |
Meijer G-function | X | X | X | X | Can be computed via PFQ, at least partially; difficult to handle singular cases. |
Error function | (A) | A | (A) | A | |
Complementary error function | (A) | A | (A) | A | |
Imaginary error function | (A) | A | (A) | A | |
Bessel function J | (A) | A | X | X | Series expansion is not too hard to compute using recurrence relations |
Bessel function Y | (A) | A | X | X | Series expansion is not too hard to compute using recurrence relations |
Bessel function I | (A) | A | X | X | Series expansion is not too hard to compute using recurrence relations |
Bessel function K | (A) | A | X | X | Series expansion is not too hard to compute using recurrence relations |
Hankel functions H1, H2 | (A) | (A) | X | X | Trivial from Bessel J and Y |
Spherical Bessel J | X | X | X | X | Fairly easy to compute using 0F1 / Bessel J |
Spherical Bessel Y | X | X | X | X | Fairly easy to compute via Bessel Y |
Coulomb wave function F | X | X | X | X | Fairly easy to compute via confluent hypergeometric functions |
Coulomb wave function G | X | X | X | X | Fairly easy to compute via confluent hypergeometric functions |
Coulomb wave function H | X | X | X | X | Fairly easy to compute via confluent hypergeometric functions |
Coulomb normalizing factor C | X | X | X | X | Fairly easy to compute via gamma function |
Airy function Ai | (A) | A | (A) | A | |
Airy function Bi | (A) | A | (A) | A | |
Scorer function Gi | X | X | X | X | Could be computed via PFQ, but not satisfactorily for large z |
Scorer function Hi | X | X | X | X | Could be computed via PFQ, but not satisfactorily for large z |
Kelvin function ber | X | X | X | X | Could be computed via PFQ, but not satisfactorily for large z |
Kelvin function bei | X | X | X | X | Could be computed via PFQ, but not satisfactorily for large z |
Kelvin function ker | X | X | X | X | Could be computed via PFQ, but not satisfactorily for large z |
Kelvin function kei | X | X | X | X | Could be computed via PFQ, but not satisfactorily for large z |
Lommel function S1 | X | X | X | X | Could be computed via PFQ, but not satisfactorily for large z |
Lommel function S2 | X | X | X | X | Could be computed via PFQ, but not satisfactorily for large z |
Anger function J | X | X | X | X | Could be computed via PFQ, but not satisfactorily for large z |
Weber function E | X | X | X | X | Could be computed via PFQ, but not satisfactorily for large z |
Whittaker function M | X | X | X | X | Fairly easy to compute via confluent hypergeometric functions |
Whittaker function W | X | X | X | X | Fairly easy to compute via confluent hypergeometric functions |
Parabolic cylinder function D | X | X | X | X | Fairly easy to compute via confluent hypergeometric functions |
Parabolic cylinder function U | X | X | X | X | Fairly easy to compute via confluent hypergeometric functions |
Parabolic cylinder function V | X | X | X | X | Fairly easy to compute via confluent hypergeometric functions |
Parabolic cylinder function W | X | X | X | X | Fairly easy to compute via confluent hypergeometric functions |
Incomplete gamma function | (A) | A | X | X | Not implemented in the generalized and regularized forms, although these are trivial to compute from the available functions. Series expansion with respect to the variable is fairly easy to compute, but no interface for this yet. |
Incomplete beta function | X | X | X | X | Fairly easy to compute via 2F1 |
Exponential integral Ei | (A) | A | (A) | A | |
Generalized exponential integral E | (A) | A | X | X | Derivatives with respect to the variable are easy to compute, but no interface for this yet |
Sine integral Si | (A) | A | (A) | A | |
Cosine integral Ci | (A) | A | (A) | A | |
Hyperbolic sine integral Si | (A) | A | (A) | A | |
Hyperbolic cosine integral Ci | (A) | A | (A) | A | |
Logarithmic integral Li | (A) | A | (A) | A | |
Chebyshev function T | (A) | A | X | X | |
Chebyshev function U | (A) | A | X | X | |
Jacobi function P | (A) | A | X | X | |
Gegenbauer function C | (A) | A | X | X | |
Laguerre function L | (A) | A | X | X | |
Hermite function H | (A) | A | X | X | |
Legendre function P | (A) | A | X | X | |
Legendre function Q | (A) | A | X | X | |
Spherical harmonics | (A) | A | X | X | Integer orders only |