acb_dot, acb_dot_simple, acb_dot_precise
#include <flint/acb.h>void acb_dot(acb_t res, const acb_t initial, int subtract, acb_srcptr x, slong xstep, acb_srcptr y, slong ystep, slong len, slong prec)sourcevoid acb_dot_simple(acb_t res, const acb_t initial, int subtract, acb_srcptr x, slong xstep, acb_srcptr y, slong ystep, slong len, slong prec)sourcevoid acb_dot_precise(acb_t res, const acb_t initial, int subtract, acb_srcptr x, slong xstep, acb_srcptr y, slong ystep, slong len, slong prec)sourceSet res to s + (-1)^{\mathit{subtract}} \sum_{i=0}^{\mathit{len}-1} x_i y_i, where s is initial (0 if NULL), reading the entries with strides xstep and ystep.
The conventions are those of arb_dot: subtract is 0 or 1, a negative len counts as 0, strides may be negative, and res may alias initial but not the entries of x and y. acb_dot accumulates the real and imaginary parts in two fixed-point sums with a single rounding each; it is the function to use. acb_dot_simple is a loop of acb_addmul, used as a fallback for huge exponents, and acb_dot_precise rounds the exact result once; both are mainly for testing. See Dot products of balls.
The FLINT team, “acb_dot, acb_dot_simple, acb_dot_precise (acb.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/acb/acb_dot.html (generated 2026-10-20).
@misc{flint-doc-acb-acb-dot,
author = {{The FLINT team}},
title = {{acb\_dot, acb\_dot\_simple, acb\_dot\_precise (acb.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/acb/acb_dot.html},
note = {Generated 2026-10-20}
}