FLINT3.7.0-dev

acb_dot, acb_dot_simple, acb_dot_precise

Synopsis#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)source
void 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)source
void 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)source

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

Cite this page

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