Macaulay2 Engine
Loading...
Searching...
No Matches
M2FreeAlgebraQuotient Class Reference

Concrete Ring wrapper around an owned FreeAlgebraQuotient (the quotient counterpart of M2FreeAlgebra). More...

#include <M2FreeAlgebraQuotient.hpp>

Inheritance diagram for M2FreeAlgebraQuotient:
M2FreeAlgebraOrQuotient Ring MutableEngineObject our_gc_cleanup our_new_delete

Public Member Functions

const M2FreeAlgebram2FreeAlgebra () const
const FreeAlgebraQuotientfreeAlgebraQuotient () const
const FreeMonoidmonoid () const
const FreeAlgebrafreeAlgebra () const
const MonoiddegreeMonoid () const
const RingcoefficientRing () const
int numVars () const
int n_vars () const
virtual int index_of_var (const ring_elem a) const
virtual void text_out (buffer &o) const
virtual unsigned int computeHashValue (const ring_elem a) const
virtual ring_elem from_coefficient (const ring_elem a) const
virtual ring_elem from_long (long n) const
virtual ring_elem from_int (mpz_srcptr n) const
virtual bool from_rational (const mpq_srcptr q, ring_elem &result) const
virtual ring_elem var (int v) const
virtual bool promote (const Ring *R, const ring_elem f, ring_elem &result) const
virtual bool lift (const Ring *R, const ring_elem f, ring_elem &result) const
virtual bool is_unit (const ring_elem f) const
virtual bool is_zero (const ring_elem f) const
virtual bool is_equal (const ring_elem f, const ring_elem g) const
virtual int compare_elems (const ring_elem f, const ring_elem g) const
virtual ring_elem copy (const ring_elem f) const
virtual void remove (ring_elem &f) const
virtual ring_elem negate (const ring_elem f) const
virtual ring_elem add (const ring_elem f, const ring_elem g) const
virtual ring_elem subtract (const ring_elem f, const ring_elem g) const
virtual ring_elem mult (const ring_elem f, const ring_elem g) const
virtual ring_elem power (const ring_elem f, mpz_srcptr n) const
 Exponentiation. This is the default function, if a class doesn't define this.
virtual ring_elem power (const ring_elem f, int n) const
virtual ring_elem invert (const ring_elem f) const
virtual ring_elem divide (const ring_elem f, const ring_elem g) const
virtual void syzygy (const ring_elem a, const ring_elem b, ring_elem &x, ring_elem &y) const
virtual void elem_text_out (buffer &o, const ring_elem f, bool p_one, bool p_plus, bool p_parens) const
virtual ring_elem eval (const RingMap *map, const ring_elem f, int first_var) const
virtual engine_RawArrayPairOrNull list_form (const Ring *coeffR, const ring_elem f) const
virtual bool is_homogeneous (const ring_elem f) const
virtual bool multi_degree (const ring_elem f, monomial d) const
virtual SumCollectormake_SumCollector () const
long n_terms (const ring_elem f) const
bool is_homogeneous (const Poly *f) const
virtual bool multi_degree (const Poly *f, monomial already_allocated_degree_vector) const
ring_elem lead_coefficient (const Ring *coeffRing, const Poly *f) const
ring_elem lead_coefficient (const Ring *coeffRing, const ring_elem f) const
Polyget_terms (const Poly *f, int lo, int hi) const
ring_elem get_terms (const ring_elem f, int lo, int hi) const
virtual const M2FreeAlgebraQuotientcast_to_M2FreeAlgebraQuotient () const
virtual M2FreeAlgebraQuotientcast_to_M2FreeAlgebraQuotient ()
void debug_display (const Poly *f) const
void debug_display (const ring_elem ff) const
void makeTerm (Poly &result, const ring_elem a, const int *monom) const
ring_elem makeTerm (const ring_elem a, const int *monom) const
Public Member Functions inherited from M2FreeAlgebraOrQuotient
const PolytoPoly (const ring_elem f) const
ring_elem fromPoly (Poly *f) const
void appendFromModuleMonom (Poly &f, const ModuleMonom &m) const
ring_elem fromModuleMonom (const ModuleMonom &m) const
virtual ring_elem makeTerm (const ring_elem a, const_varpower monom) const =0
virtual const M2FreeAlgebraOrQuotientcast_to_M2FreeAlgebraOrQuotient () const
virtual M2FreeAlgebraOrQuotientcast_to_M2FreeAlgebraOrQuotient ()
bool is_commutative_ring () const
Public Member Functions inherited from Ring
virtual ~Ring ()
const CoefficientRingRgetCoefficientRingR () const
long characteristic () const
const Monoiddegree_monoid () const
const PolynomialRingget_degree_ring () const
const std::vector< int > & get_heft_vector () const
virtual M2::RingID ringID () const
virtual bool is_basic_ring () const
virtual bool isFinitePrimeField () const
virtual bool isGaloisField () const
virtual bool is_ZZ () const
virtual bool is_QQ () const
virtual bool is_RRR () const
virtual bool is_RRi () const
virtual bool is_CCC () const
virtual bool is_fraction_field () const
virtual bool is_fraction_poly_ring () const
virtual bool is_poly_ring () const
virtual bool is_quotient_ring () const
virtual bool is_weyl_algebra () const
virtual bool is_skew_commutative_ring () const
virtual bool is_solvable_algebra () const
virtual bool is_graded () const
bool is_field () const
bool declare_field ()
ring_elem get_non_unit () const
void set_non_unit (ring_elem zero_div) const
virtual CoefficientType coefficient_type () const
virtual bool has_associate_divisors () const
virtual const RingZZcast_to_RingZZ () const
virtual RingZZcast_to_RingZZ ()
virtual const Z_modcast_to_Z_mod () const
virtual Z_modcast_to_Z_mod ()
virtual const GFcast_to_GF () const
virtual GFcast_to_GF ()
virtual const Towercast_to_Tower () const
virtual Towercast_to_Tower ()
virtual const PolynomialRingcast_to_PolynomialRing () const
virtual PolynomialRingcast_to_PolynomialRing ()
virtual const PolyRingcast_to_PolyRing () const
virtual PolyRingcast_to_PolyRing ()
virtual const PolyQQ * cast_to_PolyQQ () const
virtual PolyQQ * cast_to_PolyQQ ()
virtual const PolyRingFlatcast_to_PolyRingFlat () const
virtual PolyRingFlatcast_to_PolyRingFlat ()
virtual const FractionFieldcast_to_FractionField () const
virtual FractionFieldcast_to_FractionField ()
virtual const LocalRingcast_to_LocalRing () const
virtual LocalRingcast_to_LocalRing ()
virtual const M2FreeAlgebracast_to_M2FreeAlgebra () const
virtual M2FreeAlgebracast_to_M2FreeAlgebra ()
virtual const SchurRingcast_to_SchurRing () const
virtual SchurRingcast_to_SchurRing ()
virtual const SchurRing2cast_to_SchurRing2 () const
virtual SchurRing2cast_to_SchurRing2 ()
virtual const SchurSnRingcast_to_SchurSnRing () const
virtual SchurSnRingcast_to_SchurSnRing ()
virtual const SkewPolynomialRingcast_to_SkewPolynomialRing () const
virtual SkewPolynomialRingcast_to_SkewPolynomialRing ()
virtual const SolvableAlgebracast_to_SolvableAlgebra () const
virtual SolvableAlgebracast_to_SolvableAlgebra ()
virtual const WeylAlgebracast_to_WeylAlgebra () const
virtual RRR * cast_to_RRR ()
virtual const RRR * cast_to_RRR () const
virtual RRi * cast_to_RRi ()
virtual const RRi * cast_to_RRi () const
virtual CCCcast_to_CCC ()
virtual const CCCcast_to_CCC () const
virtual const RingElementgetMinimalPolynomial () const
virtual const RingElementgetGenerator () const
virtual long discreteLog (const ring_elem &a) const
virtual const RingElementgetRepresentation (const ring_elem &a) const
virtual MutableMatrixmakeMutableMatrix (size_t nrows, size_t ncols, bool dense) const
virtual FreeModulemake_FreeModule () const
virtual FreeModulemake_Schreyer_FreeModule () const
virtual FreeModulemake_FreeModule (int n) const
virtual std::pair< bool, long > coerceToLongInteger (ring_elem a) const
ring_elem one () const
ring_elem minus_one () const
ring_elem zero () const
virtual bool from_BigReal (gmp_RR a, ring_elem &result) const
virtual bool from_Interval (gmp_RRi a, ring_elem &result) const
virtual bool from_BigComplex (gmp_CC z, ring_elem &result) const
virtual bool from_ComplexInterval (gmp_CCi z, ring_elem &result) const
virtual bool from_double (double a, ring_elem &result) const
virtual bool from_complex_double (double re, double im, ring_elem &result) const
virtual ring_elem preferred_associate (ring_elem f) const
virtual bool lower_associate_divisor (ring_elem &f, ring_elem g) const
void negate_to (ring_elem &f) const
void add_to (ring_elem &f, const ring_elem &g) const
void subtract_to (ring_elem &f, const ring_elem &g) const
void mult_to (ring_elem &f, const ring_elem g) const
virtual ring_elem remainder (const ring_elem f, const ring_elem g) const
virtual ring_elem quotient (const ring_elem f, const ring_elem g) const
virtual ring_elem remainderAndQuotient (const ring_elem f, const ring_elem g, ring_elem &quot) const
virtual ring_elem random () const
virtual M2_arrayint support (const ring_elem a) const
virtual void monomial_divisor (const ring_elem a, exponents_t exp) const
virtual ring_elem diff (ring_elem a, ring_elem b, int use_coeff) const
virtual bool in_subring (int nslots, const ring_elem a) const
virtual void degree_of_var (int n, const ring_elem a, int &lo, int &hi) const
virtual ring_elem divide_by_var (int n, int d, const ring_elem a) const
virtual ring_elem divide_by_expvector (const_exponents exp, const ring_elem a) const
virtual ring_elem homogenize (const ring_elem f, int v, int deg, const std::vector< int > &wts) const
virtual ring_elem homogenize (const ring_elem f, int v, const std::vector< int > &wts) const
const_monomial degree (const ring_elem f) const
virtual void degree_weights (const ring_elem f, const std::vector< int > &wts, int &lo, int &hi) const
virtual ring_elem antipode (ring_elem f) const
virtual unsigned long get_precision () const
virtual ring_elem zeroize_tiny (gmp_RR epsilon, const ring_elem f) const
virtual void increase_maxnorm (gmp_RRmutable norm, const ring_elem f) const
vec vec_zeroize_tiny (gmp_RR epsilon, const vec f) const
void vec_increase_maxnorm (gmp_RRmutable norm, const vec f) const
void vec_sort (vecterm *&f) const
int compare_vecs (vec v, vec w) const
vec e_sub_i (int r) const
vec make_vec (int r, ring_elem a) const
vec make_vec_from_array (int len, Nterm **array) const
vec copy_vec (const vecterm *v) const
void remove_vec (vec v) const
bool is_equal (const vecterm *a, const vecterm *b) const
bool get_entry (const vecterm *v, int r, ring_elem &result) const
ring_elem get_entry (vec v, int r) const
vec sub_vector (const vecterm *v, M2_arrayint r) const
int n_nonzero_terms (const vecterm *v) const
void vec_text_out (buffer &o, const vecterm *v, bool p_one=true, bool p_plus=false, bool p_parens=false) const
vec vec_eval (const RingMap *map, const FreeModule *F, const vec v) const
virtual vec vec_lead_term (int nparts, const FreeModule *F, vec v) const
vec negate_vec (vec v) const
vec add_vec (vec v, vec w) const
vec subtract_vec (vec v, vec w) const
vec mult_vec (int n, vec v) const
vec mult_vec (const ring_elem f, const vec w) const
vec rightmult_vec (const vec w, const ring_elem f) const
void set_entry (vec &v, int i, ring_elem r) const
void mult_vec_to (vec &v, const ring_elem r, bool opposite_mult) const
void mult_row (vec &v, const ring_elem r, int i, bool opposite_mult) const
void negate_vec_to (vec &v) const
void add_vec_to (vec &v, vec &w) const
void subtract_vec_to (vec &v, vec &w) const
vec mult_vec_matrix (const Matrix *m, vec v, bool opposite_mult) const
vec component_shift (int n, vec v) const
vec tensor_shift (int n, int m, vec v) const
vec tensor (const FreeModule *F, vec v, const FreeModule *G, vec w) const
void divide_vec_to (vec &v, const ring_elem a) const
void divide_row (vec &v, int r, const ring_elem a) const
ring_elem dot_product (const vecterm *v, const vecterm *w) const
vec vec_diff (vec v, int rankFw, vec w, int use_coeff) const
int vec_in_subring (int n, const vec v) const
void vec_degree_of_var (int n, const vec v, int &lo, int &hi) const
vec vec_divide_by_var (int n, int d, const vec v) const
vec vec_divide_by_expvector (const_exponents exp, const vec v) const
bool vec_is_scalar_multiple (vec f, vec g) const
vec vec_remove_monomial_factors (vec f, bool make_squarefree_only) const
bool vec_multi_degree (const FreeModule *F, const vec f, monomial degf) const
void vec_degree_weights (const FreeModule *F, const vec f, const std::vector< int > &wts, int &lo, int &hi) const
bool vec_is_homogeneous (const FreeModule *F, const vec f) const
vec vec_homogenize (const FreeModule *F, const vec f, int v, int deg, const std::vector< int > &wts) const
vec vec_homogenize (const FreeModule *F, const vec f, int v, const std::vector< int > &wts) const
virtual void lower_content (ring_elem &c, ring_elem g) const
virtual ring_elem content (ring_elem f) const
virtual ring_elem content (ring_elem f, ring_elem g) const
virtual ring_elem divide_by_given_content (ring_elem f, ring_elem c) const
ring_elem divide_by_content (ring_elem f) const
ring_elem split_off_content (ring_elem f, ring_elem &result) const
ring_elem vec_content (vec f) const
vec vec_divide_by_given_content (vec f, ring_elem c) const
vec vec_divide_by_content (vec f) const
ring_elem vec_split_off_content (vec f, vec &result) const
Public Member Functions inherited from MutableEngineObject
 MutableEngineObject ()
virtual ~MutableEngineObject ()
unsigned int hash () const
Public Member Functions inherited from our_gc_cleanup
 our_gc_cleanup ()
virtual ~our_gc_cleanup ()

Static Public Member Functions

static M2FreeAlgebraQuotientcreate (const M2FreeAlgebra &F, const Matrix *GB, int maxdeg)
Static Public Member Functions inherited from our_new_delete
static void * operator new (size_t size)
static void * operator new[] (size_t size)
static void operator delete (void *obj)
static void operator delete[] (void *obj)
static void * operator new (size_t size, void *existing_memory)
static void * operator new[] (size_t size, void *existing_memory)
static void operator delete (void *obj, void *existing_memory)
static void operator delete[] (void *obj, void *existing_memory)

Private Member Functions

 M2FreeAlgebraQuotient (const M2FreeAlgebra &F, std::unique_ptr< FreeAlgebraQuotient > A)

Private Attributes

const M2FreeAlgebramM2FreeAlgebra
const std::unique_ptr< FreeAlgebraQuotientmFreeAlgebraQuotient

Additional Inherited Members

Public Types inherited from Ring
enum  CoefficientType { COEFF_ZZ , COEFF_QQ , COEFF_BASIC }
Protected Member Functions inherited from Ring
const ARinggetARing () const
void initialize_ring (long charac, const PolynomialRing *DR=nullptr, const std::vector< int > &heft_vec={})
 Ring ()
vec new_vec () const
 vector operations ////////////////////
void remove_vec_node (vec n) const
Protected Attributes inherited from Ring
long mCharacteristic
const PolynomialRingdegree_ring
std::vector< intmHeftVector
const ARingAR
const CoefficientRingRcR
ring_elem _non_unit
int _isfield
ring_elem zeroV
ring_elem oneV
ring_elem minus_oneV

Detailed Description

Concrete Ring wrapper around an owned FreeAlgebraQuotient (the quotient counterpart of M2FreeAlgebra).

Note
AI-generated documentation. Verify against the source before relying on it.

Holds a reference to the ambient M2FreeAlgebra plus a std::unique_ptr<FreeAlgebraQuotient> carrying the Groebner-basis-defined quotient. create(F, GB, maxdeg) is the factory: it accepts the engine Matrix* GB of defining relations and an optional maxdeg cap (-1 means compute a complete GB), wires up the underlying FreeAlgebraQuotient, and lifts it into the engine's Ring hierarchy.

Definition at line 66 of file M2FreeAlgebraQuotient.hpp.


The documentation for this class was generated from the following files: