|
Macaulay2 Engine
|
Quotient of a FreeAlgebra by a Groebner basis up to a fixed degree bound. More...
#include <FreeAlgebraQuotient.hpp>
Public Member Functions | |
| FreeAlgebraQuotient (const FreeAlgebra &A, const ConstPolyList &GB, int maxdeg) | |
| const FreeMonoid & | monoid () const |
| const Monoid & | degreeMonoid () const |
| const FreeAlgebra & | freeAlgebra () const |
| const Ring * | coefficientRing () const |
| int | numVars () const |
| unsigned int | computeHashValue (const Poly &a) const |
| void | normalizeInPlace (Poly &f) const |
| void | init (Poly &f) const |
| void | clear (Poly &f) const |
| void | setZero (Poly &f) const |
| void | from_coefficient (Poly &result, const ring_elem a) const |
| void | from_long (Poly &result, long n) const |
| void | from_int (Poly &result, mpz_srcptr n) const |
| bool | from_rational (Poly &result, const mpq_srcptr q) const |
| void | copy (Poly &result, const Poly &f) const |
| void | swap (Poly &f, Poly &g) const |
| void | var (Poly &result, int v) const |
| void | from_word (Poly &result, const std::vector< int > &word) const |
| void | from_word (Poly &result, ring_elem coeff, const std::vector< int > &word) const |
| long | n_terms (const Poly &f) const |
| bool | is_unit (const Poly &f) const |
| bool | is_zero (const Poly &f) const |
| bool | is_equal (const Poly &f, const Poly &g) const |
| int | compare_elems (const Poly &f, const Poly &g) const |
| void | negate (Poly &result, const Poly &f) const |
| void | add (Poly &result, const Poly &f, const Poly &g) const |
| void | subtract (Poly &result, const Poly &f, const Poly &g) const |
| void | mult (Poly &result, const Poly &f, const Poly &g) const |
| void | power (Poly &result, const Poly &f, int n) const |
| void | power (Poly &result, const Poly &f, mpz_srcptr n) const |
| ring_elem | eval (const RingMap *map, const Poly &f, int first_var) const |
| void | elem_text_out (buffer &o, const Poly &f, bool p_one, bool p_plus, bool p_parens) const |
| bool | is_homogeneous (const Poly &f) const |
| const_monomial | degree (const Poly &f) const |
| bool | multi_degree (const Poly &f, monomial already_allocated_degree_vector) const |
| SumCollector * | make_SumCollector () const |
Private Attributes | |
| const FreeAlgebra & | mFreeAlgebra |
| NCGroebner | mGroebner |
| int | mMaxdeg |
Additional Inherited Members | |
| 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) |
Quotient of a FreeAlgebra by a Groebner basis up to a fixed degree bound.
Owns the defining basis through an NCGroebner and forwards the usual ring operations to mFreeAlgebra, then runs normalizeInPlace on the result so every output stays in canonical form modulo the relations. mMaxdeg bounds the degrees up to which the GB is reliable. Note that this class does NOT inherit from Ring — the engine uses the wrapper M2FreeAlgebra / M2FreeAlgebraOrQuotient to lift it into the Ring hierarchy.
Definition at line 75 of file FreeAlgebraQuotient.hpp.