_ca_poly_mul, ca_poly_mul, _ca_poly_mullow, ca_poly_mullow
#include <flint/ca_poly.h>void _ca_poly_mullow(ca_ptr C, ca_srcptr A, slong lenA, ca_srcptr B, slong lenB, slong n, ca_ctx_t ctx)sourcevoid ca_poly_mullow(ca_poly_t res, const ca_poly_t poly1, const ca_poly_t poly2, slong n, ca_ctx_t ctx)sourceSets res to the product of poly1 and poly2, or to the product truncated to length n. The underscore versions require \mathit{lenA} \ge \mathit{lenB} \ge 1 and 0 < n \le \mathit{lenA} + \mathit{lenB} - 1, and write lenA + lenB - 1 or n coefficients.
If both factors have rational coefficients (and length at least 4), the product is computed over \mathbb{Z} after clearing denominators. If all coefficients lie in one number field \mathbb{Q}(a) and the lengths are large enough, _ca_poly_mullow_same_nf is used. Otherwise the classical algorithm is used, with a dedicated squaring routine; each coefficient is a dot product computed with ca_dot.
The FLINT team, “_ca_poly_mul, ca_poly_mul, _ca_poly_mullow, ca_poly_mullow (ca_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/ca_poly/_ca_poly_mul.html (generated 2026-10-20).
@misc{flint-doc-ca-poly-ca-poly-mul,
author = {{The FLINT team}},
title = {{\_ca\_poly\_mul, ca\_poly\_mul, \_ca\_poly\_mullow, ca\_poly\_mullow (ca\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/ca_poly/_ca_poly_mul.html},
note = {Generated 2026-10-20}
}