FLINT context¶
13 routine(s) in the FLINT` context — direct access to the FLINT-backed kernels.
Building with FLINT¶
These routines require Mathilda to be compiled against FLINT >= 3.0 (the release that merged ANTIC for number-field arithmetic). FLINT is optional and auto-detected: the makefile enables it (USE_FLINT=1, the default) whenever pkg-config reports flint >= 3.0, and otherwise prints a warning and falls back to USE_FLINT=0 — the classical, still-rigorous algebraic-extension and numeric paths.
# Install FLINT >= 3.0
brew install flint # macOS (Homebrew)
sudo apt install libflint-dev # Ubuntu 24.04+/Debian Bookworm+
# Build — FLINT is picked up automatically
make -j
# Force it off (classical fallback):
make -j USE_FLINT=0
Confirm the installed version with pkg-config --modversion flint. When FLINT is unavailable these `FLINT` routines are not registered, and the public builtins that delegate to them (Factor, PolynomialGCD, Cancel, Together, Zeta, …) transparently use the classical implementations.
- [
FLINTPolynomialGCD](PolynomialGCD.md) — FLINTPolynomialGCD[a, b] gives the monic greatest common divisor of the polynomials a and b over the rationals, computed directly via FLINT (fmpq_mpoly_gcd). Multivariate. Returns unevaluated if an argument is not a polynomial over Q. (Stable) - [
FLINTResultant](Resultant.md) — FLINTResultant[a, b, x] gives the resultant of the polynomials a and b eliminating the variable x, over the rationals, computed directly via FLINT (fmpq_mpoly_resultant). Other variables are treated as coefficients. Returns unevaluated if out of scope. (Stable) - [
FLINTFactor](Factor.md) — FLINTFactor[p] gives the irreducible factorisation of the polynomial p over the rationals, computed directly via FLINT (fmpq_mpoly_factor), as Times[const, factor^exp, ...]. Multivariate. Returns unevaluated if p is not a polynomial over Q. (Stable) - [
FLINTFactorSquareFree](FactorSquareFree.md) — FLINTFactorSquareFree[p] gives the squarefree factorisation of the polynomial p over the rationals, computed directly via FLINT (fmpq_mpoly_factor_squarefree). Returns unevaluated if out of scope. (Stable) - [
FLINTDet](Det.md) — FLINTDet[m] gives the determinant of the square matrix m when every entry is an integer or rational, computed exactly and directly via FLINT (fmpq_mat_det). Returns unevaluated for a matrix with any non-rational entry. (Stable) - [
FLINTInverse](Inverse.md) — FLINTInverse[m] gives the inverse of the square matrix m when every entry is an integer or rational, computed exactly via FLINT (fmpq_mat_inv). Returns unevaluated for a singular or non-rational matrix. (Stable) - [
FLINTLinearSolve](LinearSolve.md) — FLINTLinearSolve[m, b] solves the square system m.x == b exactly via FLINT (fmpq_mat_solve) when m is a nonsingular rational matrix and b a rational vector or matrix. Returns unevaluated for a non-square, singular, or non-rational system. (Stable) - [
FLINTRowReduce](RowReduce.md) — FLINTRowReduce[m] gives the reduced row echelon form of the matrix m when every entry is an integer or rational, computed exactly via FLINT (fmpq_mat_rref). Returns unevaluated for a matrix with any non-rational entry. (Stable) - [
FLINTMatrixRank](MatrixRank.md) — FLINTMatrixRank[m] gives the rank of the matrix m when every entry is an integer or rational, computed exactly via FLINT (fmpq_mat_rref). Returns unevaluated for a matrix with any non-rational entry. (Stable) - [
FLINTZeta](Zeta.md) — FLINTZeta[s] gives the numeric value of the Riemann zeta function at the numeric argument s (real or complex), computed to the precision of s (machine precision for exact s) via FLINT's rigorous acb arithmetic (acb_dirichlet_zeta). Unevaluated for symbolic s or at the pole s = 1. (Stable) - [
FLINTHurwitzZeta](HurwitzZeta.md) — FLINTHurwitzZeta[s, a] gives the numeric value of the Hurwitz zeta function via FLINT (acb_dirichlet_hurwitz), to the precision of the arguments. Unevaluated for symbolic arguments or at a pole. (Stable) - [
FLINTPolyGamma](PolyGamma.md) — FLINTPolyGamma[n, z] gives the numeric value of the n-th derivative of the digamma function (n = 0 is digamma) via FLINT (acb_polygamma), to the precision of the arguments. Unevaluated for symbolic arguments or at a pole. (Stable) - [
FLINTStieltjesGamma](StieltjesGamma.md) — FLINTStieltjesGamma[n] and FLINT`StieltjesGamma[n, a] give the numeric value of the n-th Stieltjes constant (generalized, at a) for a non-negative integer n, via FLINT (acb_dirichlet_stieltjes). Unevaluated for negative or non-integer n. (Stable)