Macaulay2 Engine
Loading...
Searching...
No Matches
FreeAlgebra.hpp File Reference

Free associative algebra k<x_1,...,x_n> over an arbitrary coefficient ring. More...

#include "Polynomial.hpp"
#include "NCAlgebras/FreeMonoid.hpp"
#include "NCAlgebras/Word.hpp"
#include "newdelete.hpp"
#include "ring.hpp"
#include "ringelem.hpp"
#include "style.hpp"
#include <iosfwd>
#include <utility>
#include <vector>

Go to the source code of this file.

Classes

class  FreeAlgebra
 Free associative algebra over a coefficient ring: the non-commutative analogue of PolynomialRing. More...
class  FreeAlgebraElement
 Owned Poly value paired with its FreeAlgebra*, providing natural operator-overloaded arithmetic. More...
class  FreeAlgebraHeap
 Geobucket-style accumulator for many Poly summands in the free associative algebra. More...
class  SumCollectorFreeAlgebraHeap
 SumCollector adapter that funnels engine-side ring_elem adds into a FreeAlgebraHeap. More...

Functions

std::ostream & operator<< (std::ostream &o, const FreeAlgebraElement &f)

Detailed Description

Free associative algebra k<x_1,...,x_n> over an arbitrary coefficient ring.

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

Declares the non-commutative analogue of PolyRing: a FreeAlgebra pairs a coefficient Ring reference with a shared_ptr<FreeMonoid> carrying the word side (names, degrees, weight and heft vectors, monoid order). Polynomial values are the shared Poly type from Polynomial.hpp, stored as a vector of (coefficient, word) pairs sorted by the monoid order; multiplication is Sum_{i,j} (c_i*d_j) * (m_i ~ n_j) where ~ is concatenation. A SumCollector from ring.hpp combines like terms during accumulation.

FreeAlgebra does not inherit from Ring; the Ring-shaped facade lives in M2FreeAlgebra and M2FreeAlgebraQuotient. The static create(...) factory takes the coefficient ring, variable names, degree ring, and per-variable degree / weight / heft vectors, builds the matching FreeMonoid, and returns the object the NCGroebner / NCF4 engines consume.

See also
FreeMonoid.hpp
Word.hpp
Polynomial.hpp
NCGroebner.hpp
FreeAlgebraQuotient.hpp
M2FreeAlgebra.hpp

Definition in file FreeAlgebra.hpp.