FLINT: Fast Library for Number Theory
FLINT : Fast Library for Number Theory
-->
-->
What is FLINT ? · Citing FLINT · Applications & benchmarks · News · Documentation · Downloads · Development · Authors · Links
15–19 June 2026: FLINT workshop in Bordeaux
What is FLINT ?
FLINT is a C library for doing number theory, freely available<br>under the GNU Lesser<br>General Public License version 3 or later.
Some domains handled by FLINT.
At its core, FLINT provides arithmetic in standard rings such as<br>the integers, rationals, algebraic, real, complex and p-adic numbers,<br>finite fields, and number fields.<br>It also provides polynomials (univariate and multivariate), power series, and matrices.
FLINT covers a wide range of functionality: primality testing, integer factorisation,<br>multivariate polynomial GCD and factorisation, FFTs, multimodular reconstruction,<br>special functions, exact and approximate linear algebra,<br>LLL, finite field embeddings, and more.
Mature & widely used
FLINT is the work of dozens of contributors, spanning 15+ years of development.<br>The FLINT 3.0 release comprises 8,000 documented functions,<br>3,500 test programs, and 900,000 lines of code.
FLINT runs on most common platforms, including Linux, macOS and Windows<br>on typical hardware configurations.
Although FLINT itself is written in C, bindings are available for various general-purpose programming languages, including Python, Julia,<br>Haskell and C++.<br>Several computer algebra systems also rely on FLINT as a back-end library,<br>including<br>SageMath,<br>OSCAR,<br>Singular,<br>Macaulay2,<br>Maple<br>and Mathematica.
At the research frontier
FLINT has been used for many large scale research computations<br>(for example: A Trillion Triangles)<br>and has been cited in hundreds of publications.<br>FLINT's authors themselves have published more than 20 papers describing<br>new algorithms first implemented within or on top of FLINT.
Efficient
FLINT is designed<br>for all operand sizes, from single-word to multi-gigabyte.<br>It implements many low-level optimisations and chooses automatically<br>between basecase, intermediate,<br>asymptotically fast and special-purpose algorithms<br>depending on the size and structure of the problem.<br>Many algorithms are fully parallel (multithreaded)<br>and some key functions use SIMD acceleration.
Handles real numbers
Some transcendental functions of a complex variable plotted using FLINT's ball arithmetic. Left to right:<br>the elliptic j-invariant in two different projections; the gamma function; the Riemann zeta function.
FLINT has advanced support for real and complex numbers, implemented using ball arithmetic.<br>It covers a variety of numerical functionality<br>(polynomial arithmetic, transcendental functions, numerical integration, linear algebra, etc.)<br>with arbitrary precision and with rigorous error bounds.<br>FLINT also provides an exact (symbolic) model of real and complex numbers<br>with the ability to decide equalities.
Note: this functionality is new in FLINT 3.0 and<br>is due to merging the<br>spin-off projects Arb, Antic and Calcium which were previously maintained as standalone libraries.
Developer-friendly
FLINT has a developer-friendly GMP-like C API<br>which makes it easy to write performant and type-safe code<br>with fine-grained control over in-place mutations,<br>memory allocation, precision, conversions between<br>representations, and algorithm parameters.<br>FLINT also provides well-documented access<br>to most of its internals.<br>Finally, the FLINT project is developed openly in<br>collaboration with the community, and<br>welcomes contributions (feature requests, bug reports, patches, testing, documentation, general feedback)<br>from anyone.
Last updated: 2026-06-29 08:34:35 GMT
Contact: Fredrik Johansson, flint-devel mailing list