_mp_real_machin_table, _mp_real_machin_table_max, _mp_real_machin_get_x, _mp_real_machin_get_c, _mp_real_machin_get_c_row, _mp_real_machin_c_row_raw
#include <flint/mp_real.h>const mp_real_machin_struct * _mp_real_machin_table(int gaussian, slong num)sourcevoid _mp_real_machin_get_x(fmpz_t q, const mp_real_machin_struct * tab, slong i)sourcevoid _mp_real_machin_get_c(fmpz_t c, const mp_real_machin_struct * tab, slong i, slong j)sourcevoid _mp_real_machin_get_c_row(fmpz * row, const mp_real_machin_struct * tab, slong i)sourcenn_srcptr _mp_real_machin_c_row_raw(const mp_real_machin_struct * tab, slong i, slong * climbs, const unsigned char ** csign)source_mp_real_machin_table returns the best set for num values and _mp_real_machin_table_max the size of the largest set. The accessors return the argument x_i, the coefficient c_{ij}, or a row of coefficients, the last one as the cached limbs (climbs limbs per coefficient) and sign bytes.
The best set is the largest with at most num terms, the remaining values being obtained by one followup series each, unless that needs more followups than a measured limit, in which case the next larger set is used. Sets exist for every size from 4 (3 for the Gaussian primes) to 32, and for 40 and 48; they were found with the program at https://github.com/fredrik-johansson/machin. The coefficients are reconstructed by factoring each argument over the primes of the set and inverting the exponent matrix modulo one or two primes, and cached per thread.
The FLINT team, “_mp_real_machin_table, _mp_real_machin_table_max, _mp_real_machin_get_x, _mp_real_machin_get_c, _mp_real_machin_get_c_row, _mp_real_machin_c_row_raw (mp_real.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/mp_real/_mp_real_machin_table.html (generated 2026-10-20).
@misc{flint-doc-mp-real-mp-real-machin-table,
author = {{The FLINT team}},
title = {{\_mp\_real\_machin\_table, \_mp\_real\_machin\_table\_max, \_mp\_real\_machin\_get\_x, \_mp\_real\_machin\_get\_c, \_mp\_real\_machin\_get\_c\_row, \_mp\_real\_machin\_c\_row\_raw (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_machin_table.html},
note = {Generated 2026-10-20}
}