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

Free associative algebra over a coefficient ring: the non-commutative analogue of PolynomialRing. More...

#include <FreeAlgebra.hpp>

Inheritance diagram for FreeAlgebra:
our_new_delete

Public Member Functions

const RingcoefficientRing () const
const FreeMonoidmonoid () const
const MonoiddegreeMonoid () 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, boolheft_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
SumCollectormake_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 FreeAlgebracreate (const Ring *K, const std::vector< std::string > &names, const PolynomialRing *degreeRing, const std::vector< int > &degrees, 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 RingmCoefficientRing
std::shared_ptr< FreeMonoidmMonoid

Detailed Description

Free associative algebra over a coefficient ring: the non-commutative analogue of PolynomialRing.

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

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.


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