_mp_real_exp_reduced, _mp_real_sin_cos_reduced
#include <flint/mp_real.h>void _mp_real_exp_reduced(nn_ptr y, ulong * err, nn_srcptr t, slong n, flint_bitcnt_t r, int alg)sourcevoid _mp_real_sin_cos_reduced(nn_ptr ysin, nn_ptr yg, ulong * err, nn_srcptr t, slong n, flint_bitcnt_t r, int alg)sourceEvaluate , respectively and , for a reduced argument with , ( for alg = 1, 2). The exponential is written to limbs; the sine and are pure fractions written to limbs, but both buffers need room for limbs. err is the rigorous bound computed at run time, at most 96.
alg selects the method: 0 the tuned choice; 1 the rectangular splitting series (_mp_real_exp_rs, _mp_real_sin_cos_rs); 2 the series and a square root, resp. the sine series and (half the terms); 3 one bit-burst step, the leading slice of by binary splitting and the rest by the series; 4 the full bit-burst algorithm, asymptotically quasi-optimal. The cosine is returned as , which keeps the information near the top for the half-angle reconstructions that consume it. Except for the direct series, the arithmetic around the series and the binary splitting is mp_real_t ball arithmetic, so that the bound comes out rigorous. The binary splittings share the transforms of their power tables across the merges (see Power tables with precomputed transforms).
Guides#
The FLINT team, “_mp_real_exp_reduced, _mp_real_sin_cos_reduced (mp_real.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/mp_real/_mp_real_exp_reduced.html (generated 2026-11-02).
@misc{flint-doc-mp-real-mp-real-exp-reduced,
author = {{The FLINT team}},
title = {{\_mp\_real\_exp\_reduced, \_mp\_real\_sin\_cos\_reduced (mp\_real.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/mp_real/_mp_real_exp_reduced.html},
note = {Generated 2026-11-02}
}