deccfloat_neg, deccfloat_conj, deccfloat_re, deccfloat_im, deccfloat_abs, deccfloat_arg, deccfloat_sgn, deccfloat_csgn, deccfloat_add, deccfloat_sub, deccfloat_mul, deccfloat_sqr, deccfloat_div, deccfloat_inv, deccfloat_sqrt, deccfloat_rsqrt, deccfloat_add_ui, deccfloat_add_si, deccfloat_add_fmpz, deccfloat_sub_ui, deccfloat_sub_si, deccfloat_sub_fmpz, deccfloat_mul_ui, deccfloat_mul_si, deccfloat_mul_fmpz, deccfloat_div_ui, deccfloat_div_si, deccfloat_div_fmpz, deccfloat_mul_decfloat, deccfloat_div_decfloat, deccfloat_mul_i, deccfloat_div_i, deccfloat_mul_two, deccfloat_mul_10exp_si, deccfloat_mul_10exp_fmpz, deccfloat_mul_2exp_si, deccfloat_mul_2exp_fmpz, deccfloat_floor, deccfloat_ceil, deccfloat_trunc, deccfloat_nint, deccfloat_pow_ui, deccfloat_pow_si, deccfloat_pow_fmpz, deccfloat_pow, deccfloat_vec_dot, deccfloat_vec_dot_rev
#include <flint/decimal.h>int deccfloat_neg(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_conj(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_re(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_im(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_abs(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_arg(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_sgn(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_csgn(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_add(deccfloat_t res, const deccfloat_t x, const deccfloat_t y, gr_ctx_t ctx)sourceint deccfloat_sub(deccfloat_t res, const deccfloat_t x, const deccfloat_t y, gr_ctx_t ctx)sourceint deccfloat_mul(deccfloat_t res, const deccfloat_t x, const deccfloat_t y, gr_ctx_t ctx)sourceint deccfloat_sqr(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_div(deccfloat_t res, const deccfloat_t x, const deccfloat_t y, gr_ctx_t ctx)sourceint deccfloat_inv(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_sqrt(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_rsqrt(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_add_ui(deccfloat_t res, const deccfloat_t x, ulong y, gr_ctx_t ctx)sourceint deccfloat_add_si(deccfloat_t res, const deccfloat_t x, slong y, gr_ctx_t ctx)sourceint deccfloat_add_fmpz(deccfloat_t res, const deccfloat_t x, const fmpz_t y, gr_ctx_t ctx)sourceint deccfloat_sub_ui(deccfloat_t res, const deccfloat_t x, ulong y, gr_ctx_t ctx)sourceint deccfloat_sub_si(deccfloat_t res, const deccfloat_t x, slong y, gr_ctx_t ctx)sourceint deccfloat_sub_fmpz(deccfloat_t res, const deccfloat_t x, const fmpz_t y, gr_ctx_t ctx)sourceint deccfloat_mul_ui(deccfloat_t res, const deccfloat_t x, ulong y, gr_ctx_t ctx)sourceint deccfloat_mul_si(deccfloat_t res, const deccfloat_t x, slong y, gr_ctx_t ctx)sourceint deccfloat_mul_fmpz(deccfloat_t res, const deccfloat_t x, const fmpz_t y, gr_ctx_t ctx)sourceint deccfloat_div_ui(deccfloat_t res, const deccfloat_t x, ulong y, gr_ctx_t ctx)sourceint deccfloat_div_si(deccfloat_t res, const deccfloat_t x, slong y, gr_ctx_t ctx)sourceint deccfloat_div_fmpz(deccfloat_t res, const deccfloat_t x, const fmpz_t y, gr_ctx_t ctx)sourceint deccfloat_mul_decfloat(deccfloat_t res, const deccfloat_t x, const decfloat_t y, gr_ctx_t ctx)sourceint deccfloat_div_decfloat(deccfloat_t res, const deccfloat_t x, const decfloat_t y, gr_ctx_t ctx)sourceint deccfloat_mul_i(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_div_i(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_mul_two(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_mul_10exp_si(deccfloat_t res, const deccfloat_t x, slong e, gr_ctx_t ctx)sourceint deccfloat_mul_10exp_fmpz(deccfloat_t res, const deccfloat_t x, const fmpz_t e, gr_ctx_t ctx)sourceint deccfloat_mul_2exp_si(deccfloat_t res, const deccfloat_t x, slong e, gr_ctx_t ctx)sourceint deccfloat_mul_2exp_fmpz(deccfloat_t res, const deccfloat_t x, const fmpz_t e, gr_ctx_t ctx)sourceint deccfloat_floor(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_ceil(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_trunc(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_nint(deccfloat_t res, const deccfloat_t x, gr_ctx_t ctx)sourceint deccfloat_pow_ui(deccfloat_t res, const deccfloat_t x, ulong y, gr_ctx_t ctx)sourceint deccfloat_pow_si(deccfloat_t res, const deccfloat_t x, slong y, gr_ctx_t ctx)sourceint deccfloat_pow_fmpz(deccfloat_t res, const deccfloat_t x, const fmpz_t y, gr_ctx_t ctx)sourceint deccfloat_pow(deccfloat_t res, const deccfloat_t x, const deccfloat_t y, gr_ctx_t ctx)sourceint deccfloat_vec_dot(deccfloat_t res, const deccfloat_t initial, int subtract, deccfloat_srcptr vec1, deccfloat_srcptr vec2, slong len, gr_ctx_t ctx)sourceint deccfloat_vec_dot_rev(deccfloat_t res, const deccfloat_t initial, int subtract, deccfloat_srcptr vec1, deccfloat_srcptr vec2, slong len, gr_ctx_t ctx)sourceArithmetic. Every operation is componentwise correctly rounded: the real and imaginary parts of the exact result of the operation on the exact inputs are each rounded once, to the context precision in the respective rounding modes. The vec_dot methods are the exception: they round after each term.
A product is computed as two exact dot products x_r y_r - x_i y_i and x_r y_i + x_i y_r each rounded once; a quotient x / y is computed by forming the exact numerators x \bar{y} and denominator |y|^2 followed by a single correctly rounded division for each part (with direct divisions when y is real or imaginary); \sqrt{z}, 1/\sqrt{z}, |z|, \operatorname{sgn}(z) = z/|z| and \arg z are exact whenever the result is representable (as in \sqrt{3 + 4i} = 2 + i) and otherwise computed by Ziv's strategy on top of acb (see Complex functions). The absolute value is computed as the correctly rounded square root of the exact x_r^2 + x_i^2, and \arg z as decfloat_atan2. Integer powers are exact when the exact result has at most about 10^5 digits (as in (1+i)^{1000000}, which is a power of 2 times a power of i), and otherwise correctly rounded through acb; general powers x^y reduce to integer powers, square roots, real powers and the exponential function as appropriate.
Zeros in the input are treated as exact zeros: a zero factor annihilates its term even when the other factor is infinite, so that i \cdot (\infty + 0i) = \infty i rather than \mathrm{NaN} + \infty i, and dividing a number with a zero part by a real number keeps that part zero (i/0 = \infty i rather than \mathrm{NaN} + \infty i when infinities are admitted).
The FLINT team, “deccfloat_neg, deccfloat_conj, deccfloat_re, deccfloat_im, deccfloat_abs, deccfloat_arg, deccfloat_sgn, deccfloat_csgn, deccfloat_add, deccfloat_sub, deccfloat_mul, deccfloat_sqr, deccfloat_div, deccfloat_inv, deccfloat_sqrt, deccfloat_rsqrt, deccfloat_add_ui, deccfloat_add_si, deccfloat_add_fmpz, deccfloat_sub_ui, deccfloat_sub_si, deccfloat_sub_fmpz, deccfloat_mul_ui, deccfloat_mul_si, deccfloat_mul_fmpz, deccfloat_div_ui, deccfloat_div_si, deccfloat_div_fmpz, deccfloat_mul_decfloat, deccfloat_div_decfloat, deccfloat_mul_i, deccfloat_div_i, deccfloat_mul_two, deccfloat_mul_10exp_si, deccfloat_mul_10exp_fmpz, deccfloat_mul_2exp_si, deccfloat_mul_2exp_fmpz, deccfloat_floor, deccfloat_ceil, deccfloat_trunc, deccfloat_nint, deccfloat_pow_ui, deccfloat_pow_si, deccfloat_pow_fmpz, deccfloat_pow, deccfloat_vec_dot, deccfloat_vec_dot_rev (decimal.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/decimal/deccfloat_neg.html (generated 2026-10-20).
@misc{flint-doc-decimal-deccfloat-neg,
author = {{The FLINT team}},
title = {{deccfloat\_neg, deccfloat\_conj, deccfloat\_re, deccfloat\_im, deccfloat\_abs, deccfloat\_arg, deccfloat\_sgn, deccfloat\_csgn, deccfloat\_add, deccfloat\_sub, deccfloat\_mul, deccfloat\_sqr, deccfloat\_div, deccfloat\_inv, deccfloat\_sqrt, deccfloat\_rsqrt, deccfloat\_add\_ui, deccfloat\_add\_si, deccfloat\_add\_fmpz, deccfloat\_sub\_ui, deccfloat\_sub\_si, deccfloat\_sub\_fmpz, deccfloat\_mul\_ui, deccfloat\_mul\_si, deccfloat\_mul\_fmpz, deccfloat\_div\_ui, deccfloat\_div\_si, deccfloat\_div\_fmpz, deccfloat\_mul\_decfloat, deccfloat\_div\_decfloat, deccfloat\_mul\_i, deccfloat\_div\_i, deccfloat\_mul\_two, deccfloat\_mul\_10exp\_si, deccfloat\_mul\_10exp\_fmpz, deccfloat\_mul\_2exp\_si, deccfloat\_mul\_2exp\_fmpz, deccfloat\_floor, deccfloat\_ceil, deccfloat\_trunc, deccfloat\_nint, deccfloat\_pow\_ui, deccfloat\_pow\_si, deccfloat\_pow\_fmpz, deccfloat\_pow, deccfloat\_vec\_dot, deccfloat\_vec\_dot\_rev (decimal.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/decimal/deccfloat_neg.html},
note = {Generated 2026-10-20}
}