Awesome
FLINT (Fast Library for Number Theory)
Website: https://flintlib.org
Mailing list: https://groups.google.com/g/flint-devel
Overview
FLINT is a C library in support of computations in number theory. It's also a research project into algorithms in number theory. FLINT consists mainly of fast scalar and polynomial arithmetic, factorization and linear algebra over many basic rings (integers, rationals, reals, finite fields, number fields, p-adics). It includes some higher-level functionality for algebraic and analytic number theory.
FLINT 2, released in 2011 was a complete rewrite of FLINT 1.x from scratch. FLINT 3, released in 2023, incorporates the Arb, Antic, Calcium and Generic-Rings libraries, formerly developed separately.
Documentation
For FLINT's online documentation, see https://flintlib.org/doc/.
Building from source
This example assumes that GMP, MPFR and the GNU build system are already installed. To install them on a Ubuntu system, write
apt install libgmp-dev libmpfr-dev make autoconf libtool-bin
possibly with super-user privileges.
To download, bootstrap, configure and build everything, write
git clone https://github.com/flintlib/flint.git && cd flint
./bootstrap.sh
./configure # ./configure --help for more options
make
make check # optional
make install # optional
make examples # optional
cd doc && make html && cd .. # optional: documentation
See FLINT's documentation for further instructions on how to build FLINT.
Authors
FLINT was started in 2007 by
David Harvey and
William Hart. Maintenance was later
taken over solely by William Hart who remained in charge of the project
until 2022. A large number of authors have contributed to FLINT over the years;
for a complete list, see https://flintlib.org/authors.html or the AUTHORS
file.
The current maintainers are:
- Fredrik Johansson (fredrik.johansson@gmail.com) (project leader since 2022)
- Albin Ahlbäck (albin.ahlback@gmail.com)
License
FLINT is distributed under LGPL (GNU Lesser General Public License) version 3 or
later. See the COPYING.LESSER
and COPYING
files.