mpn_mod_mat_nonsingular_solve_tril, mpn_mod_mat_nonsingular_solve_triu
Synopsis
#include <flint/mpn_mod.h>int mpn_mod_mat_nonsingular_solve_tril(gr_mat_t X, const gr_mat_t L, const gr_mat_t B, int unit, gr_ctx_t ctx)sourceint mpn_mod_mat_nonsingular_solve_triu(gr_mat_t X, const gr_mat_t U, const gr_mat_t B, int unit, gr_ctx_t ctx)sourceSolve LX = B or UX = B for a triangular matrix with invertible diagonal (unit diagonal, not read, if unit is nonzero), choosing gr_mat_nonsingular_solve_tril_classical (resp. _triu_) when B has fewer rows or columns than a cutoff depending on \ell (700 for \ell = 2, 200 for \ell = 3, down to 20 for \ell \ge 12), and the block recursive versions otherwise, whose products use mpn_mod_mat_mul.
Cite this page
The FLINT team, “mpn_mod_mat_nonsingular_solve_tril, mpn_mod_mat_nonsingular_solve_triu (mpn_mod.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/mpn_mod/mpn_mod_mat_nonsingular_solve_tril.html (generated 2026-10-20).
@misc{flint-doc-mpn-mod-mpn-mod-mat-nonsingular-solve-tril,
author = {{The FLINT team}},
title = {{mpn\_mod\_mat\_nonsingular\_solve\_tril, mpn\_mod\_mat\_nonsingular\_solve\_triu (mpn\_mod.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/mpn_mod/mpn_mod_mat_nonsingular_solve_tril.html},
note = {Generated 2026-10-20}
}