Welcome to Arb’s documentation!¶
Arb is a C library for arbitrary-precision floating-point ball arithmetic, developed by Fredrik Johansson (fredrik.johansson@gmail.com). It supports real and complex numbers, polynomials, power series, matrices, and evaluation of many transcendental functions. All is done with automatic, rigorous error bounds.
Arb is free software distributed under the GNU Lesser General Public License (LGPL), version 2.1 or later (see License for details).
The git repository is https://github.com/fredrik-johansson/arb/
The documentation website is http://fredrikj.net/arb/
A PDF version of this documentation is available (older versions).
General information¶
Floating-point numbers¶
The radius and midpoint of a ball are represented using two specialized floating-point types.
Real and complex numbers¶
Real numbers (arb_t) are represented as midpoint-radius intervals, also known as balls. Complex numbers (acb_t) are represented in rectangular form, with balls for the real and imaginary parts.
- arb.h – real numbers
- Types, macros and constants
- Memory management
- Assignment and rounding
- Assignment of special values
- Input and output
- Random number generation
- Radius and interval operations
- Comparisons
- Arithmetic
- Powers and roots
- Exponentials and logarithms
- Trigonometric functions
- Inverse trigonometric functions
- Hyperbolic functions
- Inverse hyperbolic functions
- Constants
- Gamma function and factorials
- Zeta function
- Bernoulli numbers and polynomials
- Polylogarithms
- Other special functions
- Internals for computing elementary functions
- Vector functions
- acb.h – complex numbers
- Types, macros and constants
- Memory management
- Basic manipulation
- Input and output
- Random number generation
- Precision and comparisons
- Complex parts
- Arithmetic
- Mathematical constants
- Powers and roots
- Exponentials and logarithms
- Trigonometric functions
- Inverse trigonometric functions
- Hyperbolic functions
- Inverse hyperbolic functions
- Rising factorials
- Gamma function
- Zeta function
- Polylogarithms
- Arithmetic-geometric mean
- Other special functions
- Vector functions
Polynomials and power series¶
These modules implement dense univariate polynomials with real and complex coefficients. Truncated power series are supported via methods acting on polynomials, without introducing a separate power series type.
- arb_poly.h – polynomials over the real numbers
- Types, macros and constants
- Memory management
- Basic manipulation
- Conversions
- Input and output
- Random generation
- Comparisons
- Bounds
- Arithmetic
- Composition
- Evaluation
- Product trees
- Multipoint evaluation
- Interpolation
- Differentiation
- Transforms
- Powers and elementary functions
- Gamma function and factorials
- Zeta function
- Root-finding
- Other special polynomials
- acb_poly.h – polynomials over the complex numbers
- Types, macros and constants
- Memory management
- Basic properties and manipulation
- Input and output
- Random generation
- Comparisons
- Conversions
- Bounds
- Arithmetic
- Composition
- Evaluation
- Product trees
- Multipoint evaluation
- Interpolation
- Differentiation
- Elementary functions
- Gamma function
- Power sums
- Zeta function
- Other special functions
- Root-finding
Matrices¶
These modules implement dense matrices with real and complex coefficients. Rudimentary linear algebra is supported.
Higher mathematical functions¶
These modules implement mathematical functions with complexity that goes beyond the basics covered directly in the arb and acb modules.
- acb_hypgeom.h – hypergeometric functions of complex variables
- Convergent series
- Asymptotic series
- Generalized hypergeometric function
- Confluent hypergeometric functions
- Error functions and Fresnel integrals
- Bessel functions
- Airy functions
- Incomplete gamma and beta functions
- Exponential and trigonometric integrals
- Gauss hypergeometric function
- Orthogonal polynomials and functions
- arb_hypgeom.h – hypergeometric functions of real variables
- acb_modular.h – modular forms of complex variables
- acb_dirichlet.h – Dirichlet L-functions, zeta functions, and related functions
- bernoulli.h – support for Bernoulli numbers
- hypgeom.h – support for hypergeometric series
- partitions.h – computation of the partition function
Calculus¶
Using ball arithmetic, it is possible to do rigorous root-finding and integration (among other operations) with generic functions. This code should be considered experimental.
Extra utility modules¶
Mainly for internal use.
Supplementary algorithm notes¶
Here, we give extra proofs, error bounds, and formulas that would be too lengthy to reproduce in the documentation for each module.