_arb_poly_exp_series_basecase, arb_poly_exp_series_basecase, _arb_poly_exp_series, arb_poly_exp_series
#include <flint/arb_poly.h>void arb_poly_exp_series_basecase(arb_poly_t f, const arb_poly_t h, slong n, slong prec)sourcevoid arb_poly_exp_series(arb_poly_t f, const arb_poly_t h, slong n, slong prec)sourceSet f to \exp h truncated to length n. The underscore versions allow aliasing.
The basecase version uses the recurrence k f_k = \sum_{j=1}^{k} j h_j f_{k-j} (from f' = h' f) with O(n \cdot \mathit{hlen}) operations; for long dense input at high precision it first splits off the high part of h to save operations. The default handles h = a + bx^d directly, uses the basecase version if \mathit{hlen} is at most 750 (for \mathit{prec} \le 256) or 10^5 / (\ln \mathit{prec})^3, and otherwise the Newton iteration of [HZ2004] that updates \exp(h) and \exp(-h) together, at a cost of O(M(n)).
Guides#
References#
- [HZ2004] G. Hanrot and P. Zimmermann, "Newton Iteration Revisited" (2004), http://www.loria.fr/~zimmerma/papers/fastnewton.ps.gz
The FLINT team, “_arb_poly_exp_series_basecase, arb_poly_exp_series_basecase, _arb_poly_exp_series, arb_poly_exp_series (arb_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/arb_poly/_arb_poly_exp_series_basecase.html (generated 2026-10-20).
@misc{flint-doc-arb-poly-arb-poly-exp-series-basecase,
author = {{The FLINT team}},
title = {{\_arb\_poly\_exp\_series\_basecase, arb\_poly\_exp\_series\_basecase, \_arb\_poly\_exp\_series, arb\_poly\_exp\_series (arb\_poly.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/arb_poly/_arb_poly_exp_series_basecase.html},
note = {Generated 2026-10-20}
}