FLINT3.7.0-dev

_d1c_vec_add, _d2c_vec_add, _d3c_vec_add, _d4c_vec_add, _d1c_vec_sub, _d2c_vec_sub, _d3c_vec_sub, _d4c_vec_sub, _d1c_vec_mul, _d2c_vec_mul, _d3c_vec_mul, _d4c_vec_mul, _d1c_vec_mul_scalar, _d2c_vec_mul_scalar, _d3c_vec_mul_scalar, _d4c_vec_mul_scalar, _d1c_vec_addmul_scalar, _d2c_vec_addmul_scalar, _d3c_vec_addmul_scalar, _d4c_vec_addmul_scalar, _d1c_vec_submul_scalar, _d2c_vec_submul_scalar, _d3c_vec_submul_scalar, _d4c_vec_submul_scalar, _d1c_vec_dot, _d2c_vec_dot, _d3c_vec_dot, _d4c_vec_dot, _d1c_vec_dot_rev, _d2c_vec_dot_rev, _d3c_vec_dot_rev, _d4c_vec_dot_rev, _d1c_vec_exp, _d2c_vec_exp, _d3c_vec_exp, _d4c_vec_exp, _d1cb_vec_add, _d2cb_vec_add, _d3cb_vec_add, _d4cb_vec_add, _d1cb_vec_sub, _d2cb_vec_sub, _d3cb_vec_sub, _d4cb_vec_sub, _d1cb_vec_mul, _d2cb_vec_mul, _d3cb_vec_mul, _d4cb_vec_mul, _d1cb_vec_mul_scalar, _d2cb_vec_mul_scalar, _d3cb_vec_mul_scalar, _d4cb_vec_mul_scalar, _d1cb_vec_addmul_scalar, _d2cb_vec_addmul_scalar, _d3cb_vec_addmul_scalar, _d4cb_vec_addmul_scalar, _d1cb_vec_submul_scalar, _d2cb_vec_submul_scalar, _d3cb_vec_submul_scalar, _d4cb_vec_submul_scalar, _d1cb_vec_dot, _d2cb_vec_dot, _d3cb_vec_dot, _d4cb_vec_dot, _d1cb_vec_dot_rev, _d2cb_vec_dot_rev, _d3cb_vec_dot_rev, _d4cb_vec_dot_rev, _d1cb_vec_exp, _d2cb_vec_exp, _d3cb_vec_exp, _d4cb_vec_exp

Synopsis#include <flint/dfloat.h>
void _d1c_vec_add(d1c_ptr res, d1c_srcptr x, d1c_srcptr y, slong len)
void _d2c_vec_add(d2c_ptr res, d2c_srcptr x, d2c_srcptr y, slong len)
void _d3c_vec_add(d3c_ptr res, d3c_srcptr x, d3c_srcptr y, slong len)
void _d4c_vec_add(d4c_ptr res, d4c_srcptr x, d4c_srcptr y, slong len)
void _d1c_vec_sub(d1c_ptr res, d1c_srcptr x, d1c_srcptr y, slong len)
void _d2c_vec_sub(d2c_ptr res, d2c_srcptr x, d2c_srcptr y, slong len)
void _d3c_vec_sub(d3c_ptr res, d3c_srcptr x, d3c_srcptr y, slong len)
void _d4c_vec_sub(d4c_ptr res, d4c_srcptr x, d4c_srcptr y, slong len)
void _d1c_vec_mul(d1c_ptr res, d1c_srcptr x, d1c_srcptr y, slong len)
void _d2c_vec_mul(d2c_ptr res, d2c_srcptr x, d2c_srcptr y, slong len)
void _d3c_vec_mul(d3c_ptr res, d3c_srcptr x, d3c_srcptr y, slong len)
void _d4c_vec_mul(d4c_ptr res, d4c_srcptr x, d4c_srcptr y, slong len)
void _d1c_vec_mul_scalar(d1c_ptr res, d1c_srcptr x, slong len, d1c_srcptr c)
void _d2c_vec_mul_scalar(d2c_ptr res, d2c_srcptr x, slong len, d2c_srcptr c)
void _d3c_vec_mul_scalar(d3c_ptr res, d3c_srcptr x, slong len, d3c_srcptr c)
void _d4c_vec_mul_scalar(d4c_ptr res, d4c_srcptr x, slong len, d4c_srcptr c)
void _d1c_vec_addmul_scalar(d1c_ptr res, d1c_srcptr x, slong len, d1c_srcptr c)
void _d2c_vec_addmul_scalar(d2c_ptr res, d2c_srcptr x, slong len, d2c_srcptr c)
void _d3c_vec_addmul_scalar(d3c_ptr res, d3c_srcptr x, slong len, d3c_srcptr c)
void _d4c_vec_addmul_scalar(d4c_ptr res, d4c_srcptr x, slong len, d4c_srcptr c)
void _d1c_vec_submul_scalar(d1c_ptr res, d1c_srcptr x, slong len, d1c_srcptr c)
void _d2c_vec_submul_scalar(d2c_ptr res, d2c_srcptr x, slong len, d2c_srcptr c)
void _d3c_vec_submul_scalar(d3c_ptr res, d3c_srcptr x, slong len, d3c_srcptr c)
void _d4c_vec_submul_scalar(d4c_ptr res, d4c_srcptr x, slong len, d4c_srcptr c)
void _d1c_vec_dot(d1c_t res, d1c_srcptr initial, int subtract, d1c_srcptr x, d1c_srcptr y, slong len)
void _d2c_vec_dot(d2c_t res, d2c_srcptr initial, int subtract, d2c_srcptr x, d2c_srcptr y, slong len)
void _d3c_vec_dot(d3c_t res, d3c_srcptr initial, int subtract, d3c_srcptr x, d3c_srcptr y, slong len)
void _d4c_vec_dot(d4c_t res, d4c_srcptr initial, int subtract, d4c_srcptr x, d4c_srcptr y, slong len)
void _d1c_vec_dot_rev(d1c_t res, d1c_srcptr initial, int subtract, d1c_srcptr x, d1c_srcptr y, slong len)
void _d2c_vec_dot_rev(d2c_t res, d2c_srcptr initial, int subtract, d2c_srcptr x, d2c_srcptr y, slong len)
void _d3c_vec_dot_rev(d3c_t res, d3c_srcptr initial, int subtract, d3c_srcptr x, d3c_srcptr y, slong len)
void _d4c_vec_dot_rev(d4c_t res, d4c_srcptr initial, int subtract, d4c_srcptr x, d4c_srcptr y, slong len)
void _d1c_vec_exp(d1c_ptr res, d1c_srcptr x, slong len)
void _d2c_vec_exp(d2c_ptr res, d2c_srcptr x, slong len)
void _d3c_vec_exp(d3c_ptr res, d3c_srcptr x, slong len)
void _d4c_vec_exp(d4c_ptr res, d4c_srcptr x, slong len)
void _d1cb_vec_add(d1cb_ptr res, d1cb_srcptr x, d1cb_srcptr y, slong len)
void _d2cb_vec_add(d2cb_ptr res, d2cb_srcptr x, d2cb_srcptr y, slong len)
void _d3cb_vec_add(d3cb_ptr res, d3cb_srcptr x, d3cb_srcptr y, slong len)
void _d4cb_vec_add(d4cb_ptr res, d4cb_srcptr x, d4cb_srcptr y, slong len)
void _d1cb_vec_sub(d1cb_ptr res, d1cb_srcptr x, d1cb_srcptr y, slong len)
void _d2cb_vec_sub(d2cb_ptr res, d2cb_srcptr x, d2cb_srcptr y, slong len)
void _d3cb_vec_sub(d3cb_ptr res, d3cb_srcptr x, d3cb_srcptr y, slong len)
void _d4cb_vec_sub(d4cb_ptr res, d4cb_srcptr x, d4cb_srcptr y, slong len)
void _d1cb_vec_mul(d1cb_ptr res, d1cb_srcptr x, d1cb_srcptr y, slong len)
void _d2cb_vec_mul(d2cb_ptr res, d2cb_srcptr x, d2cb_srcptr y, slong len)
void _d3cb_vec_mul(d3cb_ptr res, d3cb_srcptr x, d3cb_srcptr y, slong len)
void _d4cb_vec_mul(d4cb_ptr res, d4cb_srcptr x, d4cb_srcptr y, slong len)
void _d1cb_vec_mul_scalar(d1cb_ptr res, d1cb_srcptr x, slong len, d1cb_srcptr c)
void _d2cb_vec_mul_scalar(d2cb_ptr res, d2cb_srcptr x, slong len, d2cb_srcptr c)
void _d3cb_vec_mul_scalar(d3cb_ptr res, d3cb_srcptr x, slong len, d3cb_srcptr c)
void _d4cb_vec_mul_scalar(d4cb_ptr res, d4cb_srcptr x, slong len, d4cb_srcptr c)
void _d1cb_vec_addmul_scalar(d1cb_ptr res, d1cb_srcptr x, slong len, d1cb_srcptr c)
void _d2cb_vec_addmul_scalar(d2cb_ptr res, d2cb_srcptr x, slong len, d2cb_srcptr c)
void _d3cb_vec_addmul_scalar(d3cb_ptr res, d3cb_srcptr x, slong len, d3cb_srcptr c)
void _d4cb_vec_addmul_scalar(d4cb_ptr res, d4cb_srcptr x, slong len, d4cb_srcptr c)
void _d1cb_vec_submul_scalar(d1cb_ptr res, d1cb_srcptr x, slong len, d1cb_srcptr c)
void _d2cb_vec_submul_scalar(d2cb_ptr res, d2cb_srcptr x, slong len, d2cb_srcptr c)
void _d3cb_vec_submul_scalar(d3cb_ptr res, d3cb_srcptr x, slong len, d3cb_srcptr c)
void _d4cb_vec_submul_scalar(d4cb_ptr res, d4cb_srcptr x, slong len, d4cb_srcptr c)
void _d1cb_vec_dot(d1cb_t res, d1cb_srcptr initial, int subtract, d1cb_srcptr x, d1cb_srcptr y, slong len)
void _d2cb_vec_dot(d2cb_t res, d2cb_srcptr initial, int subtract, d2cb_srcptr x, d2cb_srcptr y, slong len)
void _d3cb_vec_dot(d3cb_t res, d3cb_srcptr initial, int subtract, d3cb_srcptr x, d3cb_srcptr y, slong len)
void _d4cb_vec_dot(d4cb_t res, d4cb_srcptr initial, int subtract, d4cb_srcptr x, d4cb_srcptr y, slong len)
void _d1cb_vec_dot_rev(d1cb_t res, d1cb_srcptr initial, int subtract, d1cb_srcptr x, d1cb_srcptr y, slong len)
void _d2cb_vec_dot_rev(d2cb_t res, d2cb_srcptr initial, int subtract, d2cb_srcptr x, d2cb_srcptr y, slong len)
void _d3cb_vec_dot_rev(d3cb_t res, d3cb_srcptr initial, int subtract, d3cb_srcptr x, d3cb_srcptr y, slong len)
void _d4cb_vec_dot_rev(d4cb_t res, d4cb_srcptr initial, int subtract, d4cb_srcptr x, d4cb_srcptr y, slong len)
void _d1cb_vec_exp(d1cb_ptr res, d1cb_srcptr x, slong len)
void _d2cb_vec_exp(d2cb_ptr res, d2cb_srcptr x, slong len)
void _d3cb_vec_exp(d3cb_ptr res, d3cb_srcptr x, slong len)
void _d4cb_vec_exp(d4cb_ptr res, d4cb_srcptr x, slong len)

Vector operations, implemented with the real vector operations: vec_add and vec_sub are the real ones on 2\,\mathit{len} elements; the dot products are two real dot products per block of 32 terms (3 to 4 times faster than a loop of complex products); vec_exp uses the real vec_exp and vec_sin_cos on blocks of 32 elements.

Cite this page

The FLINT team, “_d1c_vec_add, _d2c_vec_add, _d3c_vec_add, _d4c_vec_add, _d1c_vec_sub, _d2c_vec_sub, _d3c_vec_sub, _d4c_vec_sub, _d1c_vec_mul, _d2c_vec_mul, _d3c_vec_mul, _d4c_vec_mul, _d1c_vec_mul_scalar, _d2c_vec_mul_scalar, _d3c_vec_mul_scalar, _d4c_vec_mul_scalar, _d1c_vec_addmul_scalar, _d2c_vec_addmul_scalar, _d3c_vec_addmul_scalar, _d4c_vec_addmul_scalar, _d1c_vec_submul_scalar, _d2c_vec_submul_scalar, _d3c_vec_submul_scalar, _d4c_vec_submul_scalar, _d1c_vec_dot, _d2c_vec_dot, _d3c_vec_dot, _d4c_vec_dot, _d1c_vec_dot_rev, _d2c_vec_dot_rev, _d3c_vec_dot_rev, _d4c_vec_dot_rev, _d1c_vec_exp, _d2c_vec_exp, _d3c_vec_exp, _d4c_vec_exp, _d1cb_vec_add, _d2cb_vec_add, _d3cb_vec_add, _d4cb_vec_add, _d1cb_vec_sub, _d2cb_vec_sub, _d3cb_vec_sub, _d4cb_vec_sub, _d1cb_vec_mul, _d2cb_vec_mul, _d3cb_vec_mul, _d4cb_vec_mul, _d1cb_vec_mul_scalar, _d2cb_vec_mul_scalar, _d3cb_vec_mul_scalar, _d4cb_vec_mul_scalar, _d1cb_vec_addmul_scalar, _d2cb_vec_addmul_scalar, _d3cb_vec_addmul_scalar, _d4cb_vec_addmul_scalar, _d1cb_vec_submul_scalar, _d2cb_vec_submul_scalar, _d3cb_vec_submul_scalar, _d4cb_vec_submul_scalar, _d1cb_vec_dot, _d2cb_vec_dot, _d3cb_vec_dot, _d4cb_vec_dot, _d1cb_vec_dot_rev, _d2cb_vec_dot_rev, _d3cb_vec_dot_rev, _d4cb_vec_dot_rev, _d1cb_vec_exp, _d2cb_vec_exp, _d3cb_vec_exp, _d4cb_vec_exp (dfloat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/dfloat/_d1c_vec_add.html (generated 2026-10-20).