nmod_mat_solve_tril_classical, nmod_mat_solve_triu_classical
#include <flint/nmod_mat.h>void nmod_mat_solve_tril_classical(nmod_mat_t X, const nmod_mat_t L, const nmod_mat_t B, int unit)sourcevoid nmod_mat_solve_triu_classical(nmod_mat_t X, const nmod_mat_t U, const nmod_mat_t B, int unit)sourceForward, respectively back, substitution, for an triangular matrix. If has at least columns ( for , or with 32-bit words), the rows of are computed one after the other, each as the row of minus a linear combination of the rows already computed, with delayed reductions: the products are accumulated by vectors in one, two or three words and each entry is reduced once (or a few times, for some moduli below ). Otherwise each column of is computed entry by entry, each entry with one dot product and one reduction, which is faster with few long columns. The inverses of the diagonal entries are computed once.
The FLINT team, “nmod_mat_solve_tril_classical, nmod_mat_solve_triu_classical (nmod_mat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nmod_mat/nmod_mat_solve_tril_classical.html (generated 2026-11-02).
@misc{flint-doc-nmod-mat-nmod-mat-solve-tril-classical,
author = {{The FLINT team}},
title = {{nmod\_mat\_solve\_tril\_classical, nmod\_mat\_solve\_triu\_classical (nmod\_mat.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/nmod_mat/nmod_mat_solve_tril_classical.html},
note = {Generated 2026-11-02}
}