arb_hypgeom_rising_ui_forward, arb_hypgeom_rising_ui_bs, arb_hypgeom_rising_ui_rs, arb_hypgeom_rising_ui_rec, arb_hypgeom_rising_ui, arb_hypgeom_rising
Synopsis
#include <flint/arb_hypgeom.h>Sets res to the rising factorial (x)_n = x (x+1) \cdots (x+n-1), with (x)_0 = 1; arb_hypgeom_rising allows any real n and computes \Gamma(x+n)/\Gamma(x).
The variants differ in the algorithm; see Rising factorials.
arb_hypgeom_rising_ui_forwardmultiplies the factors one by one at a working precision ofprecplus \log_2 n bits, incrementing the factor in place.arb_hypgeom_rising_ui_bsmultiplies the factors in a balanced binary tree, which is efficient when x has few bits compared toprec(see Binary splitting and product trees).arb_hypgeom_rising_ui_rsuses rectangular splitting: it groups the factors in blocks of m, expands each block (x+k)(x+k+1)\cdots(x+k+m-1) as a polynomial in x with integer coefficients (one or two words each when they fit, see_arb_hypgeom_rising_coeffs_1) and evaluates it as a dot product with the precomputed powers x, \ldots, x^m. Most multiplications of two full-precision numbers become multiplications by small integers [Smi2001; Joh2014b]. The tuning parameter m can be given as 0 to choose it automatically (for large n, m = \min(\sqrt n, 8 + 0.2 \max(0, \mathit{prec} - 4096)^{0.4}, 60)).arb_hypgeom_rising_ui_recchooses between the three by n,precand the bit length of x: the forward recurrence for small n (up to 20 below 512 bits, up to \min(80, 6000/\mathit{prec}) otherwise), binary splitting for n \ge 20 if x has fewer than \mathit{prec}/8 bits, and rectangular splitting otherwise. It never calls the gamma function, which is why the gamma function itself uses it for argument reduction.arb_hypgeom_rising_uiusesarb_hypgeom_rising_ui_recif n < \max(\mathit{prec}, 100), and computes \Gamma(x+n) \cdot (1/\Gamma(x)) otherwise.arb_hypgeom_risingdoes the same for an exact nonnegative integer n in that range and uses the gamma function otherwise.
These are the functions behind arb_rising_ui and arb_rising of arb.
References#
- [Smi2001] D. M. Smith, "Algorithm: Fortran 90 Software for Floating-Point Multiple Precision Arithmetic, Gamma and Related Functions", Transactions on Mathematical Software 27 (2001) 377-387, http://myweb.lmu.edu/dmsmith/toms2001.pdf
- [Joh2014b] F. Johansson, "Evaluating parametric holonomic sequences using rectangular splitting", ISSAC 2014, 256-263. https://doi.org/10.1145/2608628.2608629
Cite this page
The FLINT team, “arb_hypgeom_rising_ui_forward, arb_hypgeom_rising_ui_bs, arb_hypgeom_rising_ui_rs, arb_hypgeom_rising_ui_rec, arb_hypgeom_rising_ui, arb_hypgeom_rising (arb_hypgeom.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/arb_hypgeom/arb_hypgeom_rising_ui_forward.html (generated 2026-10-20).
@misc{flint-doc-arb-hypgeom-arb-hypgeom-rising-ui-forward,
author = {{The FLINT team}},
title = {{arb\_hypgeom\_rising\_ui\_forward, arb\_hypgeom\_rising\_ui\_bs, arb\_hypgeom\_rising\_ui\_rs, arb\_hypgeom\_rising\_ui\_rec, arb\_hypgeom\_rising\_ui, arb\_hypgeom\_rising (arb\_hypgeom.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/arb_hypgeom/arb_hypgeom_rising_ui_forward.html},
note = {Generated 2026-10-20}
}