_acb_poly_mullow_classical, _acb_poly_mullow_transpose, _acb_poly_mullow_transpose_gauss, _acb_poly_mullow
#include <flint/acb_poly.h>void _acb_poly_mullow_classical(acb_ptr C, acb_srcptr A, slong lenA, acb_srcptr B, slong lenB, slong n, slong prec)sourcevoid _acb_poly_mullow_transpose(acb_ptr C, acb_srcptr A, slong lenA, acb_srcptr B, slong lenB, slong n, slong prec)sourcevoid _acb_poly_mullow_transpose_gauss(acb_ptr C, acb_srcptr A, slong lenA, acb_srcptr B, slong lenB, slong n, slong prec)sourcevoid _acb_poly_mullow(acb_ptr C, acb_srcptr A, slong lenA, acb_srcptr B, slong lenB, slong n, slong prec)sourceSet {C, n} to the product of {A, lenA} and {B, lenB} truncated to length n. Require \mathit{lenA}, \mathit{lenB} \ge 1 and 1 \le n \le \mathit{lenA} + \mathit{lenB} - 1; the output must not overlap either input. If A and B are the same pointer with the same length, the square is computed.
The classical version computes each coefficient as one acb_dot. The transpose version writes A = a + bi and B = c + di with real ball polynomials and computes (ac - bd) + (ad + bc)i with four calls to _arb_poly_mullow (three for a square). The transpose_gauss version uses Gauss's three-multiplication formula ad + bc = (a+b)(c+d) - ac - bd; it is faster but gives much larger radii when the real and imaginary parts differ greatly in magnitude, and it is not used by default.
The default _acb_poly_mullow first asks _acb_poly_mulmid_use_fmpzi whether a single Gaussian integer product is worthwhile and, if so, tries _acb_poly_mulmid_fmpzi, which succeeds for well-scaled input. Otherwise it uses the classical version for short operands and the transposed version for long ones, with the cutoffs of _arb_poly_mullow.
The FLINT team, “_acb_poly_mullow_classical, _acb_poly_mullow_transpose, _acb_poly_mullow_transpose_gauss, _acb_poly_mullow (acb_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/acb_poly/_acb_poly_mullow_classical.html (generated 2026-10-20).
@misc{flint-doc-acb-poly-acb-poly-mullow-classical,
author = {{The FLINT team}},
title = {{\_acb\_poly\_mullow\_classical, \_acb\_poly\_mullow\_transpose, \_acb\_poly\_mullow\_transpose\_gauss, \_acb\_poly\_mullow (acb\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/acb_poly/_acb_poly_mullow_classical.html},
note = {Generated 2026-10-20}
}