FLINT3.7.0-dev

acb_mat_solve_tril_classical, acb_mat_solve_tril_recursive, acb_mat_solve_tril, acb_mat_solve_triu_classical, acb_mat_solve_triu_recursive, acb_mat_solve_triu

Synopsis#include <flint/acb_mat.h>
void acb_mat_solve_tril_classical(acb_mat_t X, const acb_mat_t L, const acb_mat_t B, int unit, slong prec)source
void acb_mat_solve_tril_recursive(acb_mat_t X, const acb_mat_t L, const acb_mat_t B, int unit, slong prec)source
void acb_mat_solve_tril(acb_mat_t X, const acb_mat_t L, const acb_mat_t B, int unit, slong prec)source
void acb_mat_solve_triu_classical(acb_mat_t X, const acb_mat_t U, const acb_mat_t B, int unit, slong prec)source
void acb_mat_solve_triu_recursive(acb_mat_t X, const acb_mat_t U, const acb_mat_t B, int unit, slong prec)source
void acb_mat_solve_triu(acb_mat_t X, const acb_mat_t U, const acb_mat_t B, int unit, slong prec)source

Solve LX = B for a lower triangular L, respectively UX = B for an upper triangular U, by substitution. Only the relevant triangle is read; the diagonal must not contain zero (not checked; otherwise the output is not finite). If unit is nonzero, the diagonal is taken to be all ones and is not read. The recursive versions use block substitution with matrix products; the defaults use them when B has at least 40 rows and 40 columns.

Cite this page

The FLINT team, “acb_mat_solve_tril_classical, acb_mat_solve_tril_recursive, acb_mat_solve_tril, acb_mat_solve_triu_classical, acb_mat_solve_triu_recursive, acb_mat_solve_triu (acb_mat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/acb_mat/acb_mat_solve_tril_classical.html (generated 2026-10-20).