nmod_mat_solve_tril_right_recursive, nmod_mat_solve_triu_right_recursive
Synopsis
#include <flint/nmod_mat.h>void nmod_mat_solve_tril_right_recursive(nmod_mat_t X, const nmod_mat_t L, const nmod_mat_t B, int unit)sourcevoid nmod_mat_solve_triu_right_recursive(nmod_mat_t X, const nmod_mat_t U, const nmod_mat_t B, int unit)sourceSplits (or ) into blocks of and rows and columns and solves recursively, reducing the work to matrix multiplications.
For lower triangular , the block formula is
and for upper triangular
The update of the right-hand side uses nmod_mat_submul and the two half-size systems use nmod_mat_solve_tril_right (nmod_mat_solve_triu_right), which recurses or switches to substitution.
Cite this page
The FLINT team, “nmod_mat_solve_tril_right_recursive, nmod_mat_solve_triu_right_recursive (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_right_recursive.html (generated 2026-11-02).
@misc{flint-doc-nmod-mat-nmod-mat-solve-tril-right-recursive,
author = {{The FLINT team}},
title = {{nmod\_mat\_solve\_tril\_right\_recursive, nmod\_mat\_solve\_triu\_right\_recursive (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_right_recursive.html},
note = {Generated 2026-11-02}
}