FLINT3.7.0-dev

_acb_poly_mullow_classical, _acb_poly_mullow_transpose, _acb_poly_mullow_transpose_gauss, _acb_poly_mullow

Synopsis#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)source
void _acb_poly_mullow_transpose(acb_ptr C, acb_srcptr A, slong lenA, acb_srcptr B, slong lenB, slong n, slong prec)source
void _acb_poly_mullow_transpose_gauss(acb_ptr C, acb_srcptr A, slong lenA, acb_srcptr B, slong lenB, slong n, slong prec)source
void _acb_poly_mullow(acb_ptr C, acb_srcptr A, slong lenA, acb_srcptr B, slong lenB, slong n, slong prec)source

Set {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.

Cite this page

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).