|
Macaulay2 Engine
|
Free associative algebra over a coefficient ring: the non-commutative analogue of PolynomialRing. More...
#include <FreeAlgebra.hpp>
Public Member Functions | |
| const Ring * | coefficientRing () const |
| const FreeMonoid & | monoid () const |
| const Monoid & | degreeMonoid () const |
| int | numVars () const |
| unsigned int | computeHashValue (const Poly &a) const |
| void | init (Poly &f) const |
| void | clear (Poly &f) const |
| void | setZero (Poly &f) const |
| void | copy (Poly &result, Poly::const_iterator fBegin, Poly::const_iterator fEnd) 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 |
| M2_arrayint | support (const Poly &f) const |
| void | from_word (Poly &result, const Word &word) const |
| void | from_word (Poly &result, const std::vector< int > &word) const |
| void | from_word (Poly &result, ring_elem coeff, const Word &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 | add (Poly &result, Poly::const_iterator fBegin, Poly::const_iterator fEnd, Poly::const_iterator gBegin, Poly::const_iterator gEnd) const |
| void | addScalarMultipleOf (Poly &result, Poly::const_iterator fBegin, Poly::const_iterator fEnd, Poly::const_iterator gBegin, Poly::const_iterator gEnd, ring_elem coeff) 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 | subtractScalarMultipleOf (Poly &result, const Poly &f, const Poly &g, ring_elem coeff) 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 | makeMonic (Poly &result, Poly &f) const |
| void | makeMonicInPlace (Poly &f) 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 |
| std::pair< int, bool > | heft_degree (const Poly &f) const |
| void | mult_by_term_right (Poly &result, const Poly &f, const ring_elem c, const Monom m) const |
| void | mult_by_term_left (Poly &result, const Poly &f, const ring_elem c, const Monom m) const |
| void | mult_by_term_left_and_right (Poly &result, const Poly &f, const ring_elem c, const Monom leftM, const Monom rightM) const |
| void | mult_by_term_left_and_right (Poly &result, const Poly &f, const Monom leftM, const Monom rightM) const |
| void | mult_by_term_left (Poly &result, const Poly &f, const ring_elem c, const Word &w) const |
| void | mult_by_term_right (Poly &result, const Poly &f, const ring_elem c, const Word &w) const |
| void | mult_by_term_left_and_right (Poly &result, const Poly &f, const ring_elem c, const Word &leftW, const Word &rightW) const |
| void | mult_by_term_left_and_right (Poly &result, const Poly &f, const Word &leftW, const Word &rightW) const |
| void | add_to_end (Poly &f, const Poly &g) const |
| void | add_to_end (Poly &f, ring_elem coeff, const Monom &monom) const |
| void | lead_term_as_poly (Poly &result, const Poly &f) const |
| void | mult_by_coeff (Poly &result, const Poly &f, const ring_elem c) const |
| SumCollector * | make_SumCollector () const |
| Word | lead_word (const Poly &f) const |
| Word | lead_word_prefix (const Poly &f, int endIndex) const |
| Word | lead_word_suffix (const Poly &f, int beginIndex) const |
Static Public Member Functions | |
| static FreeAlgebra * | create (const Ring *K, const std::vector< std::string > &names, const PolynomialRing *degreeRing, const std::vector< int > °rees, const std::vector< int > &wtvecs, const std::vector< int > &heftVector) |
| 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 | |
| FreeAlgebra (const Ring *K, std::shared_ptr< FreeMonoid > M) | |
Private Attributes | |
| const Ring & | mCoefficientRing |
| std::shared_ptr< FreeMonoid > | mMonoid |
Free associative algebra over a coefficient ring: the non-commutative analogue of PolynomialRing.
Bundles the coefficient ring with a FreeMonoid of words on the generators and exposes the operation surface the non-commutative arithmetic / Groebner stack (NCGroebner, NCF4) reduces against: from_word, add, subtract, mult, mult_by_term_left_and_right, power, and the lead-term accessors. Created through the static create() factory from a coefficient ring plus the variable names, degrees, weight vectors, and heft vector; the constructor itself is private.
Definition at line 68 of file FreeAlgebra.hpp.