FLINT3.7.0-dev

_gr_ore_poly_shift_convert, _gr_ore_poly_shift_convert_difference

Synopsis#include <flint/gr_ore_poly.h>
int _gr_ore_poly_shift_convert(gr_ptr res, slong * p, gr_srcptr op, slong len, ore_algebra_t src_alg, ore_algebra_t dst_alg, slong var, gr_ctx_t ctx)source
int _gr_ore_poly_shift_convert_difference(gr_ptr res, slong * p, gr_srcptr op, slong len, int to_backward, slong var, gr_ctx_t ctx)source

Rewrite op from src_alg to dst_alg, where both are among the builtin shift and difference algebras (corresponding to operators written in terms of the forward and backward shifts SS, S−1S^{-1} and the forward and backward differences S−1S - 1, 1−S−11 - S^{-1}). The result satisfies Sp⋅res=opS^p \cdot \mathit{res} = \mathit{op}. Here ctx is the common base ring and var is the index of the generator of ctx on which SS acts. Conversions that cross between the forward side (SS, S−1S - 1) and the backward side (S−1S^{-1}, 1−S−11 - S^{-1}) currently require a generic univariate polynomial base ring and otherwise return GR_UNABLE. The function returns an error status when the source or destination algebra is not of the required type. The output vector res has the same length len as op and must not alias it.

The second function is the specialisation to conversions between ORE_ALGEBRA_FORWARD_DIFFERENCE and ORE_ALGEBRA_BACKWARD_DIFFERENCE, the flag to_backward giving the direction.

Cite this page

The FLINT team, “_gr_ore_poly_shift_convert, _gr_ore_poly_shift_convert_difference (gr_ore_poly.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/gr_ore_poly/_gr_ore_poly_shift_convert.html (generated 2026-11-02).