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.

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: 2022-05-20 09:07:08 GMT

Contact: Fredrik Johansson, flint-devel mailing list.