Macaulay2 Engine
Loading...
Searching...
No Matches
matrix-ncbasis.hpp File Reference

ncBasis — non-commutative analogue of basis(d, M) over NCAlgebras/FreeAlgebra. More...

#include <vector>
#include "Polynomial.hpp"

Go to the source code of this file.

Functions

bool ncBasis (const FreeAlgebra &A, const ConstPolyList &gb, const std::vector< int > &lo_degree, const std::vector< int > &hi_degree, int limit, PolyList &result)

Detailed Description

ncBasis — non-commutative analogue of basis(d, M) over NCAlgebras/FreeAlgebra.

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

Declares the entry point ncBasis(A, gb, lo_degree, hi_degree, limit, result). Given a non-commutative free algebra A, a Groebner basis gb of the defining ideal (only its leading words matter), and a degree range, it enumerates the standard words of the quotient — words avoiding every leading word in gb — and appends them to the supplied result polynomial list. Empty lo_degree is -infinity and empty hi_degree is +infinity; limit caps the output count (< 0 disables).

The implementation in matrix-ncbasis.cpp builds a NCAlgebras/WordTable from the leading words and runs a length-bounded breadth-first walk over the non-commutative word monoid, pruning whenever a candidate contains a leading word. The commutative sibling matrix-kbasis.cpp lives at the top level of e/ alongside this file but uses a different monomial-ideal traversal because the commutative monoid is structurally different.

See also
matrix-kbasis.cpp
NCAlgebras/FreeAlgebra.hpp

Definition in file matrix-ncbasis.hpp.