FLINT3.7.0-dev

ore_algebra_t

Synopsis#include <flint/gr_ore_poly.h>
ore_algebra_t

The predefined Ore algebra structures, an enumeration with the values below. Except for the commutative and Frobenius algebras, they act on a distinguished generator x of the base ring, which must currently be a univariate polynomial ring (created with gr_ctx_init_gr_poly); otherwise \sigma and \delta return GR_UNABLE.

  • ORE_ALGEBRA_CUSTOM: \sigma and \delta given by a user function (gr_ore_poly_ctx_init_custom).
  • ORE_ALGEBRA_COMMUTATIVE: \sigma = \mathrm{id}, \delta = 0; ordinary polynomials in D.
  • ORE_ALGEBRA_DERIVATIVE: \sigma = \mathrm{id}, \delta = d/dx; linear differential operators.
  • ORE_ALGEBRA_EULER_DERIVATIVE: \sigma = \mathrm{id}, \delta = x \, d/dx (the Euler operator \theta).
  • ORE_ALGEBRA_FORWARD_SHIFT: \sigma(a)(x) = a(x + 1), \delta = 0; linear recurrence operators.
  • ORE_ALGEBRA_FORWARD_DIFFERENCE: \sigma(a)(x) = a(x + 1), \delta(a) = a(x + 1) - a(x) (the operator \Delta).
  • ORE_ALGEBRA_BACKWARD_SHIFT: \sigma(a)(x) = a(x - 1), \delta = 0.
  • ORE_ALGEBRA_BACKWARD_DIFFERENCE: \sigma(a)(x) = a(x - 1), \delta(a) = a(x) - a(x - 1) (the operator \nabla).
  • ORE_ALGEBRA_Q_SHIFT: \sigma(a)(x) = a(qx), \delta = 0; linear q-difference operators (gr_ore_poly_ctx_init_q_shift).
  • ORE_ALGEBRA_MAHLER: \sigma(a)(x) = a(x^b), \delta = 0; linear Mahler operators with base b (gr_ore_poly_ctx_init_mahler).
  • ORE_ALGEBRA_FROBENIUS: \sigma the Frobenius automorphism a \mapsto a^p of a finite field (\delta = 0), computed with gr_fq_frobenius.

The value ORE_POLY_NUM_ALGEBRAS is the number of algebra types.

Cite this page

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