FLINT3.7.0-dev

_decmag_set_ui, _decmag_set_ui_lower, _decmag_set_fmpz, _decmag_set_fmpz_lower, _decmag_set_d, _decmag_set_10exp_si, _decmag_set_10exp_fmpz, _decmag_set_ui_10exp_si, _decmag_set_ui_10exp_fmpz, _decmag_set_ui_10exp_fmpz_lower, _decmag_set_uiui_10exp_fmpz, _decmag_set_decfloat, _decmag_set_decfloat_lower, _decmag_set_mag, _decmag_get_decfloat, _decmag_get_fmpq, _decmag_get_d, _decmag_get_mag

Synopsis#include <flint/decimal.h>
void _decmag_set_ui(decmag_t res, ulong x, gr_ctx_t ctx)source
void _decmag_set_ui_lower(decmag_t res, ulong x, gr_ctx_t ctx)source
void _decmag_set_fmpz(decmag_t res, const fmpz_t x, gr_ctx_t ctx)source
void _decmag_set_fmpz_lower(decmag_t res, const fmpz_t x, gr_ctx_t ctx)source
int _decmag_set_d(decmag_t res, double x, gr_ctx_t ctx)source
void _decmag_set_10exp_si(decmag_t res, slong e, gr_ctx_t ctx)source
void _decmag_set_10exp_fmpz(decmag_t res, const fmpz_t e, gr_ctx_t ctx)source
void _decmag_set_ui_10exp_si(decmag_t res, ulong m, slong e, gr_ctx_t ctx)source
void _decmag_set_ui_10exp_fmpz(decmag_t res, ulong m, const fmpz_t e, gr_ctx_t ctx)source
void _decmag_set_ui_10exp_fmpz_lower(decmag_t res, ulong m, const fmpz_t e, gr_ctx_t ctx)source
void _decmag_set_uiui_10exp_fmpz(decmag_t res, ulong hi, ulong lo, ulong hi_radix, int sticky, const fmpz_t e, gr_ctx_t ctx)source
void _decmag_set_decfloat(decmag_t res, const decfloat_t x, gr_ctx_t ctx)source
void _decmag_set_decfloat_lower(decmag_t res, const decfloat_t x, gr_ctx_t ctx)source
void _decmag_set_mag(decmag_t res, const mag_t x, gr_ctx_t ctx)source
int _decmag_get_decfloat(decfloat_t res, const decmag_t x, gr_ctx_t ctx)source
void _decmag_get_fmpq(fmpq_t res, const decmag_t x, gr_ctx_t ctx)source
int _decmag_get_d(double * res, const decmag_t x, gr_ctx_t ctx)source
void _decmag_get_mag(mag_t res, const decmag_t x, gr_ctx_t ctx)source

Conversions. The absolute value is taken of signed inputs. set_uiui_10exp_fmpz sets res to an upper bound for (\mathrm{hi} \cdot \mathrm{hi\_radix} + \mathrm{lo} + \varepsilon) 10^e where hi_radix is a power of ten and 0 \le \varepsilon < 1 with \varepsilon > 0 iff sticky is set. The conversion to decfloat_t is exact. set_mag gives the tightest upper bound at the radius precision when the binary exponent is at most a few thousand (using exact integer arithmetic on a scaled truncation), and a bound within a relative error of about 10^{-12} (rounded up to the radius precision) otherwise, computed from a fixed-point approximation of \log_{10} 2 and a double-precision power of ten with a safety margin; this covers arbitrarily large exponents, in time essentially independent of their size.

Cite this page

The FLINT team, “_decmag_set_ui, _decmag_set_ui_lower, _decmag_set_fmpz, _decmag_set_fmpz_lower, _decmag_set_d, _decmag_set_10exp_si, _decmag_set_10exp_fmpz, _decmag_set_ui_10exp_si, _decmag_set_ui_10exp_fmpz, _decmag_set_ui_10exp_fmpz_lower, _decmag_set_uiui_10exp_fmpz, _decmag_set_decfloat, _decmag_set_decfloat_lower, _decmag_set_mag, _decmag_get_decfloat, _decmag_get_fmpq, _decmag_get_d, _decmag_get_mag (decimal.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/decimal/_decmag_set_ui.html (generated 2026-10-20).