Credits and references


Arb is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (LGPL) as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.

Arb is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with Arb (see the LICENSE file in the root of the Arb source directory). If not, see

Versions of Arb up to and including 2.8 were distributed under the GNU General Public License (GPL), not the LGPL. The switch to the LGPL applies retroactively; i.e. users may redistribute older versions of Arb under the LGPL if they prefer.


Fredrik Johansson is the main author. The project was started in 2012 as a numerical extension of FLINT, and the initial design was heavily based on FLINT 2.0 (with particular credit to Bill Hart and Sebastian Pancratz).

Several people have contributed patches, bug reports, or substantial feedback. This list is probably incomplete.

  • Bill Hart - build system, Windows 64 support, design of FLINT
  • Sebastian Pancratz - divide-and-conquer polynomial composition algorithm (taken from FLINT)
  • The MPFR development team - Arb includes two-limb multiplication code taken from MPFR
  • Jonathan Bober - Dirichlet characters (the code in Arb is based on his Cython implementation), C++ compatibility fixes
  • Yuri Matiyasevich - feedback about the zeta function and root-finding code
  • Abhinav Baid - dot product and norm functions
  • Ondřej Čertík - bug reports, feedback
  • Andrew Booker - bug reports, feedback
  • Francesco Biscani - C++ compatibility fixes, feedback
  • Clemens Heuberger - work on Arb interface in Sage, feedback
  • Marc Mezzarobba - work on Arb interface in Sage, bug reports, feedback
  • Pascal Molin - feedback
  • Ricky Farr - convenience functions, feedback
  • Marcello Seri - fix for static builds on OS X
  • Tommy Hofmann - matrix transpose, comparison, other utility methods, Julia interface
  • Alexander Kobel - documentation and code cleanup patches
  • Hrvoje Abraham - patches for MinGW compatibility
  • Julien Puydt - soname versioning support
  • Alex Griffing - sinc function, matrix trace, improved matrix squaring, boolean matrices, improved structured matrix exponentials, Cholesky decomposition, miscellaneous patches
  • Jeroen Demeyer - patch for major bug on PPC64


From 2012 to July 2014, Fredrik’s work on Arb was supported by Austrian Science Fund FWF Grant Y464-N18 (Fast Computer Algebra for Special Functions). During that period, he was a PhD student (and briefly a postdoc) at RISC, Johannes Kepler University, Linz, supervised by Manuel Kauers.

From September 2014 to October 2015, Fredrik was a postdoc at INRIA Bordeaux and Institut de Mathématiques de Bordeaux, in the LFANT project-team headed by Andreas Enge. During that period, Fredrik’s work on Arb was supported by ERC Starting Grant ANTICS 278537 (Algorithmic Number Theory in Computer Science) Since October 2015, Fredrik is a CR2 researcher in the LFANT team, funded by INRIA.


The following software has been helpful in the development of Arb.

Citing Arb

If you wish to cite Arb in a scientific paper, the following reference can be used (you may also cite the manual or the website directly):

F. Johansson. “Arb: a C library for ball arithmetic”, ACM Communications in Computer Algebra, 47(4):166-169, 2013.

In BibTeX format:

  title={{A}rb: a {C} library for ball arithmetic},
  author={F. Johansson},
  journal={ACM Communications in Computer Algebra},


(In the PDF edition, this section is empty. See the bibliography listing at the end of the document.)

[Arn2010]J. Arndt, Matters Computational, Springer (2010),
[BBC1997]D. H. Bailey, J. M. Borwein and R. E. Crandall, “On the Khintchine constant”, Mathematics of Computation 66 (1997) 417-431
[Blo2009]R. Bloemen, “Even faster zeta(2n) calculation!”,–
[BBC2000]J. Borwein, D. M. Bradley and R. E. Crandall, “Computational strategies for the Riemann zeta function”, Journal of Computational and Applied Mathematics 121 (2000) 247-296
[Bor2000]P. Borwein, “An Efficient Algorithm for the Riemann Zeta Function”, Constructive experimental and nonlinear analysis, CMS Conference Proc. 27 (2000) 29-34,
[BM1980]R. P. Brent and E. M. McMillan, “Some new algorithms for high-precision computation of Euler’s constant”, Mathematics of Computation 34 (1980) 305-312.
[Bre1978]R. P. Brent, “A Fortran multiple-precision arithmetic package”, ACM Transactions on Mathematical Software, 4(1):57–70, March 1978.
[Bre2010]R. P. Brent, “Ramanujan and Euler’s Constant”,
[BJ2013]R. P. Brent and F. Johansson, “A bound for the error term in the Brent-McMillan algorithm”, preprint (2013),
[BZ2011]R. P. Brent and P. Zimmermann, Modern Computer Arithmetic, Cambridge University Press (2011),
[CP2005]R. Crandall and C. Pomerance, Prime Numbers: A Computational Perspective, second edition, Springer (2005).
[Dup2006]R. Dupont. “Moyenne arithmético-géométrique, suites de Borchardt et applications.” These de doctorat, École polytechnique, Palaiseau (2006). http://
[EM2004]O. Espinosa and V. Moll, “A generalized polygamma function”, Integral Transforms and Special Functions (2004), 101-115.
[Fil1992]S. Fillebrown, “Faster Computation of Bernoulli Numbers”, Journal of Algorithms 13 (1992) 431-445
[GG2003]J. von zur Gathen and J. Gerhard, Modern Computer Algebra, second edition, Cambridge University Press (2003)
[GVL1996]G. H. Golub and C. F. Van Loan, Matrix Computations, third edition, Johns Hopkins University Press (1996).
[GS2003]X. Gourdon and P. Sebah, “Numerical evaluation of the Riemann Zeta-function” (2003),
[HZ2004]G. Hanrot and P. Zimmermann, “Newton Iteration Revisited” (2004),
[Hoe2009]J. van der Hoeven, “Ball arithmetic”, Technical Report, HAL 00432152 (2009),
[Hoe2001]J. van der Hoeven. “Fast evaluation of holonomic functions near and in regular singularities”, Journal of Symbolic Computation, 31(6):717-743 (2001).
[Joh2012]F. Johansson, “Efficient implementation of the Hardy-Ramanujan-Rademacher formula”, LMS Journal of Computation and Mathematics, Volume 15 (2012), 341-359,
[Joh2013]F. Johansson, “Rigorous high-precision computation of the Hurwitz zeta function and its derivatives”, Numerical Algorithms,
[Joh2014a]F. Johansson, Fast and rigorous computation of special functions to high precision, PhD thesis, RISC, Johannes Kepler University, Linz, 2014.
[Joh2014b]F. Johansson, “Evaluating parametric holonomic sequences using rectangular splitting”, ISSAC 2014, 256-263.
[Joh2014c]F. Johansson, “Efficient implementation of elementary functions in the medium-precision range”,
[Joh2015]F. Johansson, “Computing Bell numbers”,
[Kar1998]E. A. Karatsuba, “Fast evaluation of the Hurwitz zeta function and Dirichlet L-series”, Problems of Information Transmission 34:4 (1998), 342-353,
[Kob2010]A. Kobel, “Certified Complex Numerical Root Finding”, Seminar on Computational Geometry and Geometric Computing (2010),
[Kri2013]A. Krishnamoorthy and D. Menon, “Matrix Inversion Using Cholesky Decomposition” Proc. of the International Conference on Signal Processing Algorithms, Architectures, Arrangements, and Applications (SPA-2013), pp. 70-72, 2013.
[MPFR2012]The MPFR team, “MPFR Algorithms” (2012),
[NIST2012]National Institute of Standards and Technology, Digital Library of Mathematical Functions (2012),
[Olv1997]F. Olver, Asymptotics and special functions, AKP Classics, AK Peters Ltd., Wellesley, MA, 1997. Reprint of the 1974 original.
[Rad1973]H. Rademacher, Topics in analytic number theory, Springer, 1973.
[PS1973]M. S. Paterson and L. J. Stockmeyer, “On the number of nonscalar multiplications necessary to evaluate polynomials”, SIAM J. Comput (1973)
[Smi2001]D. M. Smith, “Algorithm: Fortran 90 Software for Floating-Point Multiple Precision Arithmetic, Gamma and Related Functions”, Transactions on Mathematical Software 27 (2001) 377-387,
[Tak2000]D. Takahashi, “A fast algorithm for computing large Fibonacci numbers”, Information Processing Letters 75 (2000) 243-246,