FLINT3.7.0-dev

nfloat_complex_exp, nfloat_complex_expm1, nfloat_complex_exp_pi_i, nfloat_complex_exp2, nfloat_complex_exp10, nfloat_complex_log, nfloat_complex_log1p, nfloat_complex_log_pi_i, nfloat_complex_log2, nfloat_complex_log10, nfloat_complex_sin, nfloat_complex_cos, nfloat_complex_sin_cos, nfloat_complex_tan, nfloat_complex_cot, nfloat_complex_sec, nfloat_complex_csc, nfloat_complex_sin_pi, nfloat_complex_cos_pi, nfloat_complex_sin_cos_pi, nfloat_complex_tan_pi, nfloat_complex_cot_pi, nfloat_complex_sec_pi, nfloat_complex_csc_pi, nfloat_complex_sinc, nfloat_complex_sinc_pi, nfloat_complex_sinh, nfloat_complex_cosh, nfloat_complex_sinh_cosh, nfloat_complex_tanh, nfloat_complex_coth, nfloat_complex_sech, nfloat_complex_csch, nfloat_complex_asin, nfloat_complex_acos, nfloat_complex_atan, nfloat_complex_acot, nfloat_complex_asec, nfloat_complex_acsc, nfloat_complex_asinh, nfloat_complex_acosh, nfloat_complex_atanh, nfloat_complex_acoth, nfloat_complex_asech, nfloat_complex_acsch, nfloat_complex_asin_pi, nfloat_complex_acos_pi, nfloat_complex_atan_pi, nfloat_complex_acot_pi, nfloat_complex_asec_pi, nfloat_complex_acsc_pi, nfloat_complex_pow

Synopsis#include <flint/nfloat.h>
int nfloat_complex_exp(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_expm1(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_exp_pi_i(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_exp2(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_exp10(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_log(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_log1p(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_log_pi_i(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_log2(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_log10(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sin(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_cos(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sin_cos(nfloat_complex_ptr res1, nfloat_complex_ptr res2, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_tan(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_cot(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sec(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_csc(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sin_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_cos_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sin_cos_pi(nfloat_complex_ptr res1, nfloat_complex_ptr res2, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_tan_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_cot_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sec_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_csc_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sinc(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sinc_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sinh(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_cosh(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sinh_cosh(nfloat_complex_ptr res1, nfloat_complex_ptr res2, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_tanh(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_coth(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_sech(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_csch(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_asin(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_acos(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_atan(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_acot(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_asec(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_acsc(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_asinh(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_acosh(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_atanh(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_acoth(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_asech(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_acsch(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_asin_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_acos_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_atan_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_acot_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_asec_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source
int nfloat_complex_acsc_pi(nfloat_complex_ptr res, nfloat_complex_srcptr x, gr_ctx_t ctx)source

Complex elementary functions, as compositions of the real functions, with the branch cuts of acb_t. Arguments in the real domain of a function use the real function.

The formulas avoid cancellation except where the function itself is ill-conditioned. For example, \tan(a + bi) = (\sin a \cos a + i \sinh b \cosh b)/(\cos^2 a + \sinh^2 b) for |b| < 1/2 and, with E = e^{-2|b|}, \tan(a + bi) = (2E\sin 2a + i\operatorname{sgn}(b)(1 - E^2))/(1 + 2E\cos 2a + E^2) for |b| \ge 1/2 (similarly for cot; sec and csc use the analog of the first formula); \log|z| = \log(a^2 + b^2)/2, or \operatorname{log1p}(d)/2 with d = a^2 + b^2 - 1 computed exactly in fixed point when \max(|a|, |b|) \in [1/2, 2) (also used for 1 - |z|^2 in atan; in log1p, |1 + z|^2 - 1 = a(2 + a) + b^2 is computed in double precision when the terms cancel); atan by Kahan-type formulas with atan2 and log1p; and asin, acos and acosh by Kahan's formulas using square roots of 1 \pm z. The hyperbolic functions and their inverses are evaluated as trigonometric functions of iz, and acot, asec, acsc (and the hyperbolic versions) as functions of 1/z.

There are no internal guard bits: a small component of a large result can have a large relative error, and the functions of \pi z can have an error of order |\pi \operatorname{Im}(z)| ulp from rounding \pi \operatorname{Im}(z). Intermediate squares can overflow or underflow (giving GR_UNABLE) for arguments near the limits of the exponent range. Integer powers with |y| < 2^{16} are computed by binary exponentiation, other powers as \exp(y \log x).

Cite this page

The FLINT team, “nfloat_complex_exp, nfloat_complex_expm1, nfloat_complex_exp_pi_i, nfloat_complex_exp2, nfloat_complex_exp10, nfloat_complex_log, nfloat_complex_log1p, nfloat_complex_log_pi_i, nfloat_complex_log2, nfloat_complex_log10, nfloat_complex_sin, nfloat_complex_cos, nfloat_complex_sin_cos, nfloat_complex_tan, nfloat_complex_cot, nfloat_complex_sec, nfloat_complex_csc, nfloat_complex_sin_pi, nfloat_complex_cos_pi, nfloat_complex_sin_cos_pi, nfloat_complex_tan_pi, nfloat_complex_cot_pi, nfloat_complex_sec_pi, nfloat_complex_csc_pi, nfloat_complex_sinc, nfloat_complex_sinc_pi, nfloat_complex_sinh, nfloat_complex_cosh, nfloat_complex_sinh_cosh, nfloat_complex_tanh, nfloat_complex_coth, nfloat_complex_sech, nfloat_complex_csch, nfloat_complex_asin, nfloat_complex_acos, nfloat_complex_atan, nfloat_complex_acot, nfloat_complex_asec, nfloat_complex_acsc, nfloat_complex_asinh, nfloat_complex_acosh, nfloat_complex_atanh, nfloat_complex_acoth, nfloat_complex_asech, nfloat_complex_acsch, nfloat_complex_asin_pi, nfloat_complex_acos_pi, nfloat_complex_atan_pi, nfloat_complex_acot_pi, nfloat_complex_asec_pi, nfloat_complex_acsc_pi, nfloat_complex_pow (nfloat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/nfloat/nfloat_complex_exp.html (generated 2026-10-20).