nmod_mat_mul_fp50
Synopsis
#include <flint/nmod_mat.h>int nmod_mat_mul_fp50(nmod_mat_t C, const nmod_mat_t A, const nmod_mat_t B)sourceSets C = AB for a modulus n < 2^{50} in double precision, and returns
- Returns 0 if n \ge 2^{50}, on 32-bit machines, and for the portable C code compiled by MSVC. C may be aliased with A or B. Uses several threads when available.
Each product is reduced as it is formed with the floating-point modular multiplication of fft_small (one rounding and two fused multiply-adds), and the results, of absolute value below \frac98 n, are summed in double precision. The sums are reduced every \lfloor \frac89 (2^{53}/n - 1) \rfloor steps, which is every 6 steps for n close to 2^{50} and never within a block of 256 steps for n < 2^{53}/289 \approx 2^{44.8}.
Cite this page
The FLINT team, “nmod_mat_mul_fp50 (nmod_mat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nmod_mat/nmod_mat_mul_fp50.html (generated 2026-10-20).
@misc{flint-doc-nmod-mat-nmod-mat-mul-fp50,
author = {{The FLINT team}},
title = {{nmod\_mat\_mul\_fp50 (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_mul_fp50.html},
note = {Generated 2026-10-20}
}