Arb - a C library for arbitrary-precision ball arithmetic


Welcome to Arb’s documentation! Arb is a C library for rigorous real and complex arithmetic with arbitrary precision. Arb tracks numerical errors automatically using ball arithmetic, a form of interval arithmetic based on a midpoint-radius representation. On top of this, Arb provides a wide range of mathematical functionality, including polynomials, power series, matrices, integration, root-finding, and many transcendental functions. Arb is designed with efficiency as a primary goal, and is usually competitive with or faster than other arbitrary-precision packages. The code is thread-safe, portable, and extensively tested.

Arb is free software distributed under the GNU Lesser General Public License (LGPL), version 2.1 or later (see License).

The git repository is

Arb is developed by Fredrik Johansson (, with help from many contributors (see Credits and references). Questions and discussion about Arb are welcome on the flint-devel mailing list. There is also an issue tracker for bug reports and feature requests. Development progress is sometimes covered on Fredrik’s blog.

This documentation is available in HTML format at and in PDF format at This edition of the documentation was updated Jan 25, 2022 and describes Arb 2.22.1. Documentation for specific release versions is also available in PDF format.

Special functions

These modules implement mathematical functions with complexity that goes beyond the basics covered directly in the arb and acb modules.


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.

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.

Version history