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 xx 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: σ=id\sigma = \mathrm{id}, δ=0\delta = 0; ordinary polynomials in DD.
  • ORE_ALGEBRA_DERIVATIVE: σ=id\sigma = \mathrm{id}, δ=d/dx\delta = d/dx; linear differential operators.
  • ORE_ALGEBRA_EULER_DERIVATIVE: σ=id\sigma = \mathrm{id}, δ=x d/dx\delta = x \, d/dx (the Euler operator θ\theta).
  • ORE_ALGEBRA_FORWARD_SHIFT: σ(a)(x)=a(x+1)\sigma(a)(x) = a(x + 1), δ=0\delta = 0; linear recurrence operators.
  • ORE_ALGEBRA_FORWARD_DIFFERENCE: σ(a)(x)=a(x+1)\sigma(a)(x) = a(x + 1), δ(a)=a(x+1)−a(x)\delta(a) = a(x + 1) - a(x) (the operator Δ\Delta).
  • ORE_ALGEBRA_BACKWARD_SHIFT: σ(a)(x)=a(x−1)\sigma(a)(x) = a(x - 1), δ=0\delta = 0.
  • ORE_ALGEBRA_BACKWARD_DIFFERENCE: σ(a)(x)=a(x−1)\sigma(a)(x) = a(x - 1), δ(a)=a(x)−a(x−1)\delta(a) = a(x) - a(x - 1) (the operator ∇\nabla).
  • ORE_ALGEBRA_Q_SHIFT: σ(a)(x)=a(qx)\sigma(a)(x) = a(qx), δ=0\delta = 0; linear qq-difference operators (gr_ore_poly_ctx_init_q_shift).
  • ORE_ALGEBRA_MAHLER: σ(a)(x)=a(xb)\sigma(a)(x) = a(x^b), δ=0\delta = 0; linear Mahler operators with base bb (gr_ore_poly_ctx_init_mahler).
  • ORE_ALGEBRA_FROBENIUS: σ\sigma the Frobenius automorphism a↦apa \mapsto a^p of a finite field (δ=0\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-11-02).