_nfixed_mat_mul_bound, _nfixed_mat_mul_bound_classical, _nfixed_mat_mul_bound_waksman, _nfixed_mat_mul_bound_strassen, _nfixed_complex_mat_mul_bound
#include <flint/nfloat.h>void _nfixed_mat_mul_bound(double * bound, double * error, slong m, slong n, slong p, double A, double B, slong nlimbs)sourcevoid _nfixed_mat_mul_bound_classical(double * bound, double * error, slong m, slong n, slong p, double A, double B, slong nlimbs)sourcevoid _nfixed_mat_mul_bound_waksman(double * bound, double * error, slong m, slong n, slong p, double A, double B, slong nlimbs)sourcevoid _nfixed_mat_mul_bound_strassen(double * bound, double * error, slong m, slong n, slong p, double A, double B, slong cutoff, slong nlimbs)sourcevoid _nfixed_complex_mat_mul_bound(double * bound, double * error, slong m, slong n, slong p, double A, double B, double C, double D, slong nlimbs)sourceFor an product at precision nlimbs with entries of and bounded by A and B, set bound to a bound for all intermediate values of the corresponding algorithm, which must be less than 1 for the computation to be valid, and error to a bound for the output error in ulps. _nfixed_mat_mul_bound follows the algorithm choice of _nfixed_mat_mul. The bounds are nondecreasing in A and B. For complex matrices, the entries are bounded by and .
A truncated product of two -word numbers has an error of at most ulps, so the classical algorithm has error at most ulps for an inner dimension and intermediate values bounded by . Waksman's and Strassen's algorithms form sums and differences of entries before multiplying, which increases both the bound on intermediate values (for example by for Waksman) and the error; the fixed-point multiplication scales its inputs down until the bound is below 1.
The FLINT team, “_nfixed_mat_mul_bound, _nfixed_mat_mul_bound_classical, _nfixed_mat_mul_bound_waksman, _nfixed_mat_mul_bound_strassen, _nfixed_complex_mat_mul_bound (nfloat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nfloat/_nfixed_mat_mul_bound.html (generated 2026-11-02).
@misc{flint-doc-nfloat-nfixed-mat-mul-bound,
author = {{The FLINT team}},
title = {{\_nfixed\_mat\_mul\_bound, \_nfixed\_mat\_mul\_bound\_classical, \_nfixed\_mat\_mul\_bound\_waksman, \_nfixed\_mat\_mul\_bound\_strassen, \_nfixed\_complex\_mat\_mul\_bound (nfloat.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/nfloat/_nfixed_mat_mul_bound.html},
note = {Generated 2026-11-02}
}