FLINT3.7.0-dev

_arb_poly_binomial_transform_basecase, arb_poly_binomial_transform_basecase, _arb_poly_binomial_transform_convolution, arb_poly_binomial_transform_convolution, _arb_poly_binomial_transform, arb_poly_binomial_transform

Synopsis#include <flint/arb_poly.h>
void _arb_poly_binomial_transform_basecase(arb_ptr b, arb_srcptr a, slong alen, slong len, slong prec)source
void arb_poly_binomial_transform_basecase(arb_poly_t b, const arb_poly_t a, slong len, slong prec)source
void _arb_poly_binomial_transform_convolution(arb_ptr b, arb_srcptr a, slong alen, slong len, slong prec)source
void arb_poly_binomial_transform_convolution(arb_poly_t b, const arb_poly_t a, slong len, slong prec)source
void _arb_poly_binomial_transform(arb_ptr b, arb_srcptr a, slong alen, slong len, slong prec)source
void arb_poly_binomial_transform(arb_poly_t b, const arb_poly_t a, slong len, slong prec)source

Set b to the binomial transform of a truncated to length len, b_n = \sum_{k=0}^{n} (-1)^k \binom{n}{k} a_k. The transform is the power series composition f(x) \mapsto (1-x)^{-1} f(x/(x-1)) and is an involution. The underscore versions require positive lengths and do not allow aliasing.

The basecase version evaluates the sums directly, generating the binomial coefficients by recurrence. The convolution version uses T(f(x)) = B^{-1}(e^x B(f(-x))), where T is the binomial transform and B the Borel transform, at the cost of one polynomial multiplication. The default uses the basecase version if alen or len is below 10.

Cite this page

The FLINT team, “_arb_poly_binomial_transform_basecase, arb_poly_binomial_transform_basecase, _arb_poly_binomial_transform_convolution, arb_poly_binomial_transform_convolution, _arb_poly_binomial_transform, arb_poly_binomial_transform (arb_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/arb_poly/_arb_poly_binomial_transform_basecase.html (generated 2026-10-20).