ca_mat_mul_classical, ca_mat_mul_same_nf, ca_mat_mul
#include <flint/ca_mat.h>The classical version computes each entry as a dot product (wrapper of gr_mat_mul_classical). The same_nf version requires, without checking, that all entries of A and B are rational numbers or elements of the number field K = \mathbb{Q}(a); it writes the entries as polynomials in a over common denominators, multiplies the integer polynomial matrices with fmpz_poly_mat_mul and reduces modulo the minimal polynomial of a. The default version converts matrices with rational entries (and at least 3 rows of B) to fmpz_mat.h or fmpq_mat.h, uses the same_nf version when all entries lie in one number field and the dimensions are at least about 3, and otherwise the classical algorithm.
The FLINT team, “ca_mat_mul_classical, ca_mat_mul_same_nf, ca_mat_mul (ca_mat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/ca_mat/ca_mat_mul_classical.html (generated 2026-10-20).
@misc{flint-doc-ca-mat-ca-mat-mul-classical,
author = {{The FLINT team}},
title = {{ca\_mat\_mul\_classical, ca\_mat\_mul\_same\_nf, ca\_mat\_mul (ca\_mat.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/ca_mat/ca_mat_mul_classical.html},
note = {Generated 2026-10-20}
}