FLINT3.7.0-dev

_mp_real_small_exp_1_mpn, _mp_real_small_exp_2_mpn, _mp_real_small_exp_3_mpn, _mp_real_small_log1p_1_mpn, _mp_real_small_log1p_2_mpn, _mp_real_small_log1p_3_mpn, _mp_real_small_sin_cos_1_mpn, _mp_real_small_sin_cos_2_mpn, _mp_real_small_sin_cos_3_mpn, _mp_real_small_atan_1_mpn, _mp_real_small_atan_2_mpn, _mp_real_small_atan_3_mpn

Synopsis#include <flint/mp_real.h>
void _mp_real_small_exp_1_mpn(nn_ptr y, ulong * err, nn_srcptr v)source
void _mp_real_small_exp_2_mpn(nn_ptr y, ulong * err, nn_srcptr v)source
void _mp_real_small_exp_3_mpn(nn_ptr y, ulong * err, nn_srcptr v)source
void _mp_real_small_log1p_1_mpn(nn_ptr y, ulong * err, nn_srcptr v)source
void _mp_real_small_log1p_2_mpn(nn_ptr y, ulong * err, nn_srcptr v)source
void _mp_real_small_log1p_3_mpn(nn_ptr y, ulong * err, nn_srcptr v)source
void _mp_real_small_sin_cos_1_mpn(nn_ptr ys, nn_ptr yc, ulong * err, nn_srcptr v)source
void _mp_real_small_sin_cos_2_mpn(nn_ptr ys, nn_ptr yc, ulong * err, nn_srcptr v)source
void _mp_real_small_sin_cos_3_mpn(nn_ptr ys, nn_ptr yc, ulong * err, nn_srcptr v)source
void _mp_real_small_atan_1_mpn(nn_ptr y, ulong * err, nn_srcptr v)source
void _mp_real_small_atan_2_mpn(nn_ptr y, ulong * err, nn_srcptr v)source
void _mp_real_small_atan_3_mpn(nn_ptr y, ulong * err, nn_srcptr v)source

The table-driven kernels at one, two and three fraction limbs (64-bit only): for v \in [0, 1), \exp(v) (n + 1 limbs), \log(1 + v) (n limbs), \sin v and \cos v (n + 1 limbs each) resp. \operatorname{atan} v (n limbs), with err between 8 and 64.

They split v into 7-bit (atan: 9-bit) digits against static tables of values at three limbs and finish with short Taylor polynomials in registers, with tapered precision; at one limb every product is a single high word. The scalar cores (_mp_real_small_exp_2 and so on, on limbs passed in registers) also serve the fast paths of nfloat. See Table-driven kernels.

Cite this page

The FLINT team, “_mp_real_small_exp_1_mpn, _mp_real_small_exp_2_mpn, _mp_real_small_exp_3_mpn, _mp_real_small_log1p_1_mpn, _mp_real_small_log1p_2_mpn, _mp_real_small_log1p_3_mpn, _mp_real_small_sin_cos_1_mpn, _mp_real_small_sin_cos_2_mpn, _mp_real_small_sin_cos_3_mpn, _mp_real_small_atan_1_mpn, _mp_real_small_atan_2_mpn, _mp_real_small_atan_3_mpn (mp_real.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/mp_real/_mp_real_small_exp_1_mpn.html (generated 2026-10-20).