acb_theta_ql_setup
#include <flint/acb_theta.h>int acb_theta_ql_setup(acb_ptr rts, acb_ptr rts_all, acb_ptr t, slong * guard, slong * easy_steps, acb_srcptr zs, slong nb, const acb_mat_t tau, arb_srcptr distances, slong nb_steps, int all, slong prec)sourcePrepares nb_steps duplication steps for the nb exact, reduced pairs given by zs, whose first vector must be zero: it computes low-precision approximations of all the square roots to be taken, chooses an auxiliary real vector if needed, and returns 1 on success. It returns 0 if no suitable is found, which should happen only with negligible probability. Inexact input gives correct but possibly useless results.
distances holds nb vectors of length from acb_theta_eld_distances. With all nonzero, the values for all characteristics are prepared, otherwise only . The vectors rts, rts_all, t and easy_steps must be allocated with lengths , (used only if all is set), and nb.
Starting at a very low precision (such as 8 bits):
- For each , approximations of (stored in
rts_all) or (inrts) are computed by summation, with error bounds adjusted by the distances so that they likely exclude zero. If none contains zero, the last step can use the simplest duplication formula, and approximations of are computed for untilnb_stepsor until one contains zero; the number of such easy steps is stored ineasy_steps. - If all entries of
easy_stepsequalnb_steps, this is done. Otherwise a random real vector is chosen, and the first entry ofeasy_steps(for ) is set to the minimum of all entries. - For each with easy steps, approximations of and are computed for
nb_steps(only the second for , or all ifallis set). If one contains zero, another is tried, a few times. - If no suitable was found, the precision is doubled and the process restarts from step 1, up to precision
prec.
Finally guard is set to the number of bits expected to be lost in the duplication steps.
Guides#
The FLINT team, “acb_theta_ql_setup (acb_theta.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/acb_theta/acb_theta_ql_setup.html (generated 2026-11-02).
@misc{flint-doc-acb-theta-acb-theta-ql-setup,
author = {{The FLINT team}},
title = {{acb\_theta\_ql\_setup (acb\_theta.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/acb_theta/acb_theta_ql_setup.html},
note = {Generated 2026-11-02}
}