FLINT: Fast Library for Number Theory¶
Welcome to FLINT’s documentation! FLINT is a C library for doing number theory, maintained by William Hart and Fredrik Johansson.
Source code on GitHub: https://github.com/wbhart/flint2
Issue tracker: https://github.com/wbhart/flint2/issues
Mailing list: https://groups.google.com/group/flint-devel
FLINT is free software distributed under the GNU Lesser General Public License (LGPL), version 2.1 or later.
Introduction¶
General utilities¶
Integers¶
- ulong_extras.h – arithmetic and number-theoretic functions for single-word integers
- fmpz.h – integers
- fmpz_vec.h – vectors of integers
- fmpz_factor.h – integer factorisation
- fmpz_mat.h – matrices over the integers
- fmpz_lll.h – LLL reduction
- fmpz_poly.h – univariate polynomials over the integers
- fmpz_poly_mat.h – matrices of polynomials over the integers
- fmpz_poly_factor.h – factorisation of polynomials over the integers
- fmpz_mpoly.h – multivariate polynomials over the integers
- fmpz_mpoly_factor.h – factorisation of multivariate polynomials over the integers
- long_extras.h – support functions for signed word arithmetic
- longlong.h – support functions for multi-word arithmetic
- mpn_extras.h – support functions for limb arrays
- aprcl.h – APRCL primality testing
- arith.h – arithmetic and special functions
- fft.h – Schoenhage-Strassen FFT
- qsieve.h – Quadratic sieve
Rational numbers¶
- fmpq.h – rational numbers
- fmpq_vec.h – vectors over rational numbers
- fmpq_mat.h – matrices over the rational numbers
- fmpq_poly.h – univariate polynomials over the rational numbers
- fmpq_mpoly_factor.h – factorisation of multivariate polynomials over the rational numbers
- fmpq_mpoly.h – multivariate polynomials over the rational numbers
- fmpz_poly_q.h – rational functions over the rational numbers
Integers mod n¶
- nmod_vec.h – vectors over integers mod n (word-size n)
- nmod_mat.h – matrices over integers mod n (word-size n)
- nmod_poly.h – univariate polynomials over integers mod n (word-size n)
- nmod_poly_mat.h – matrices of univariate polynomials over integers mod n (word-size n)
- nmod_poly_factor.h – factorisation of univariate polynomials over integers mod n (word-size n)
- nmod_mpoly.h – multivariate polynomials over integers mod n (word-size n)
- nmod_mpoly_factor.h – factorisation of multivariate polynomials over integers mod n (word-size n)
- fmpz_mod.h – arithmetic modulo integers
- fmpz_mod_poly.h – polynomials over integers mod n
- fmpz_mod_poly_factor.h – factorisation of polynomials over integers mod n
- fmpz_mod_mat.h – matrices over integers mod n
Finite fields¶
- fq_nmod.h – finite fields (word-size characteristic)
- fq_nmod_vec.h – vectors over finite fields (word-size characteristic)
- fq_nmod_mat.h – matrices over finite fields (word-size characteristic)
- fq_nmod_poly.h – univariate polynomials over finite fields (word-size characteristic)
- fq_nmod_poly_factor.h – factorisation of univariate polynomials over finite fields (word-size characteristic)
- Computing isomorphisms and embeddings of finite fields
- fq_nmod_mpoly.h – multivariate polynomials over finite fields of word-sized characteristic
- fq_nmod_mpoly_factor.h – factorisation of multivariate polynomials over finite fields of word-sized characteristic
- fq_zech.h – finite fields (Zech logarithm representation)
- fq_zech_vec.h – vectors over finite fields (Zech logarithm representation)
- fq_zech_mat.h – matrices over finite fields (Zech logarithm representation)
- fq_zech_poly.h – univariate polynomials over finite fields (Zech logarithm representation)
- fq_zech_poly_factor.h – factorisation of univariate polynomials over finite fields (Zech logarithm representation)
- Computing isomorphisms and embeddings of finite fields
p-adic numbers¶
Floating-point support code¶
- double_extras.h – support functions for double arithmetic
- d_vec.h – double precision vectors
- d_mat.h – double precision matrices
- mpf_vec.h – vectors of MPF floating-point numbers
- mpf_mat.h – matrices of MPF floating-point numbers
- mpfr_vec.h – vectors of MPFR floating-point numbers
- mpfr_mat.h – matrices of MPFR floating-point numbers
C++ Interface¶
- flintxx – C++ Wrapper
- flintxx functions – C++ Wrapper
- Flint exception type
- Random functions
- Tuples
- Permutations
- Integers (
fmpz
) - Integer factoring (
fmpz_factor
) - Integer matrices (
fmpz_mat
) - Polynomials over the integers (
fmpz_polyxx
) - Factorisation of polynomials over the integers (
fmpz_poly_factorxx
) - Rationals (
fmpq
) - Matrices over the rationals (
fmpq_matxx
) - Polynomials over the rationals (
fmpq_poly
) - Rational functions (
fmpz_poly_q
) - Matrices of polynomials over the integers (
fmpz_poly_mat
) - Integers mod \(n\) (
nmod
) - Polynomials over integers mod \(n\) (
nmod_polyxx
) - Matrices of integers mod \(n\) (
nmod_mat
) - Matrices of polynomials over integers mod \(n\) (
nmod_poly_matxx
) - Polynomials over integers mod \(n\) (
fmpz_mod_poly
) - Factoring polynomials over the integers mod \(n\) (
fmpz_mod_poly_factor
) - P-adics (
padic
) - Polynomials over the \(p\)-adics (
padic_poly
) - Matrices of $p$-adics (
padic_mat
) - Q-adics (
qadic
) - Arithmetic functions (
arith
)