FLINT: Fast Library for Number Theory

Overview | News | Features | Benchmarks | Downloads | Development | Authors and credits | Links and references


FLINT is a collection of modules, with an interface similar to that of the GMP library. For example, the FLINT fmpz_poly module defines the fmpz_poly_t type (representing a polynomial with multiprecision integer coefficients) and provides methods such as fmpz_poly_add, fmpz_poly_gcd, etc.

FLINT modules

The following is a list of modules available in FLINT version 2.6, and a summary of the features and algorithms in each module. Besides the features listed explicitly, each module implementing a specific type also provides methods for arithmetic operations (add, sub, mul and so on), conversions between types, random generation, and printing. Some utility modules are omitted from the list.

Extensive documentation is available. What follows is an executive summary.

flintxx - C++ wrapper

ulong_extras - functions for word-size integers

qsieve - small quadratic field

fft - optimised Schönhage-Strassen FFT

fmpz - multiprecision integers

fmpz_factor - factoring multiprecision integers

fmpz_mat - dense matrices over the integers

fmpz_lll - LLL

fmpz_mod_poly - dense univariate polynomials over Z/nZ for multiprecision n

fmpz_mod_poly_factor - factoring in (Z/nZ)[x] for multiprecision n

fmpz_mod_mat - matrices over Z/nZ for multiprecision n

fmpz_poly - dense univariate polynomials over the integers

fmpz_poly_factor - factoring in Z[x]

fmpz_poly_mat - matrices over Z[x]

fmpz_poly_q - rational functions over Q

fmpz_mpoly - multivariate polynomials over Z

fmpq - multiprecision rational numbers

fmpq_mat - dense matrices over the rational numbers

fmpq_poly - dense univariate polynomials over the rational numbers

fmpq_mpoly - multivariate polynomials over Q

nmod_mat - matrices over Z/nZ for word-size n

nmod_poly - dense univariate polynomials over Z/nZ for word-size n

nmod_mod_poly_factor - factoring in (Z/nZ)[x] for word-size n

nmod_poly_mat - matrices over Z/nZ[x] for word-size n

nmod_mpoly - multivariate polynomials over Z/nZ

padic - p-adic numbers

padic_poly - polynomials over the p-adic numbers

padic_mat - matrices over the p-adic numbers

qadic - unramified extensions of the p-adic numbers

fq / fq_nmod / fq_zech - finite fields F_q

fq_mat / fq_nmod_mat / fq_zech_mat - dense matrices over finite fields F_q

fq_poly / fq_nmod_poly / fq_zech_poly - dense univariate polynomials over finite fields F_q

fq_poly_factor / fq_nmod_poly_factor / fq_zech_poly_factor - factorisation of polynomials over F_q

fq_nmod_mpoly - multivariate polynomials over finite fields

arith - miscellaneous arithmetic functions

Antic library

The Antic library adds support for algebraic number theory. Antic includes the following modules.

qfb - binary quadratic forms

nf_elem - elements of number fields

Arb library

The Arb library adds support for fast arbitrary-precision real and complex numbers with rigorous error control (using ball interval arithmetic). It supports polynomials, power series, matrices, and evaluation of special functions. Arb includes the following modules.

fmpr - binary floating-point numbers

fmprb - real numbers represented as floating-point balls

fmpcb - complex numbers

fmprb_poly - polynomials over the real numbers

fmpcb_poly - polynomials over the complex numbers

fmprb_mat - matrices over the real numbers

fmpcb_mat - matrices over the complex numbers

fmprb_calc - calculus with real-valued functions

fmpcb_calc - calculus with complex-valued functions

Last updated: 2021-11-17 18:33:45 GMT

Contact: William Hart, flint-devel mailing list.