FLINT3.7.0-dev

nmod_mat_mul_u52

Synopsis#include <flint/nmod_mat.h>
int nmod_mat_mul_u52(nmod_mat_t C, const nmod_mat_t A, const nmod_mat_t B)source

Sets C = AB for a modulus n \le 2^{52} with the AVX512-IFMA instructions, and returns 1. Returns 0 if n > 2^{52}, or if FLINT was not compiled for a processor with AVX512-IFMA (or on 32-bit machines). C may be aliased with A or B. Uses several threads when available.

Each product of two entries below 2^{52} is accumulated as its low and high 52-bit halves in two 64-bit lanes, which leaves room for 4095 products without any reduction. For n \le 2^{26} the high halves vanish and a single instruction per product suffices.

Cite this page

The FLINT team, “nmod_mat_mul_u52 (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_u52.html (generated 2026-10-20).