arf_struct, arf_t, arf_ptr, arf_srcptr
#include <flint/arf.h>arf_structarf_tarf_ptrarf_srcptrAn arf_struct has four words: an fmpz exponent, a size field holding the number of limbs of the mantissa and, in its lowest bit, the sign, and two words that store a mantissa of at most two limbs inline or otherwise the allocation size and a pointer to the limbs. Numbers with at most 128 bits (64 bits on a 32-bit system) therefore use no heap memory. A nonzero finite value is stored as \pm 0.d_{n-1} \ldots d_0 \cdot 2^{\mathit{exp}} with n limbs, the top bit of d_{n-1} set and d_0 \ne 0, so the stored exponent exp is the e with 2^{e-1} \le |x| < 2^e. A special value has size zero and the exponent encodes which one it is. arf_t is an array of one arf_struct; arf_ptr and arf_srcptr point to arrays.
Guides#
The FLINT team, “arf_struct, arf_t, arf_ptr, arf_srcptr (arf.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/arf/arf_struct.html (generated 2026-10-20).
@misc{flint-doc-arf-arf-struct,
author = {{The FLINT team}},
title = {{arf\_struct, arf\_t, arf\_ptr, arf\_srcptr (arf.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/arf/arf_struct.html},
note = {Generated 2026-10-20}
}