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

One-overlap-at-a-time Groebner basis driver for the free associative algebra (the "Naive" companion to the F4-style NCF4). More...

#include <NCGroebner.hpp>

Inheritance diagram for NCGroebner:
our_new_delete

Public Member Functions

 NCGroebner (const FreeAlgebra &A, const ConstPolyList &input, int hardDegreeLimit, int strategy)
const FreeAlgebrafreeAlgebra () const
void compute (int softDegreeLimit)
void computeInhomogeneous (int softDegreeLimit)
void computeHomogeneous (int softDegreeLimit)
const PolyListcurrentValue () const
auto twoSidedReductionOld (const FreeAlgebra &A, const Poly *reducee, const ConstPolyList &reducers, const WordTable &W) -> Poly *
auto twoSidedReduction (const ConstPolyList &reducees) const -> ConstPolyList
auto twoSidedReduction (const Poly *reducee) const -> Poly *
void addToGroebnerBasis (Poly *toAdd)
void autoreduceByLastElement ()
void updateOverlaps (const Poly *toAdd)
auto initReductionOnly () -> void
auto createOverlapPoly (Overlap o) const -> Poly *
auto createOverlapLeadWord (Poly &wordAsPoly, Overlap o) const -> void
auto overlapWordLength (Overlap o) const -> int
auto overlapHeft (Overlap o) const -> int
auto printOverlapData (std::ostream &o, Overlap overlap) const -> void
auto insertNewOverlaps (std::vector< Overlap > &newOverlaps) -> void
auto isOverlapNecessary (Overlap o) const -> bool
auto displayGroebnerBasis (std::ostream &o) const -> void

Static Public Member Functions

static auto createOverlapPoly (const FreeAlgebra &A, const PolyList &polyList, int polyIndex1, int polyIndex2, int overlapIndex) -> Poly *
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

ring_elem getCoeffOfMonom (const Poly &f, const Monom &m)

Private Attributes

const FreeAlgebramFreeAlgebra
WordTable mWordTable
OverlapTable mOverlapTable
const ConstPolyList mInput
std::vector< intmGeneratorDegrees
PolyList mGroebner
std::vector< intmGroebnerDegrees
std::unique_ptr< PolynomialHeapmHeap
bool mIsGraded
int mTopComputedDegree
int mHardDegreeLimit

Detailed Description

One-overlap-at-a-time Groebner basis driver for the free associative algebra (the "Naive" companion to the F4-style NCF4).

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

Keeps the running GB in mGroebner (a PolyList) with per-element sugar degrees in mGroebnerDegrees (-1 marks a retired entry). Overlap pairs are tracked in mOverlapTable; divisibility queries use mWordTable (with a commented-out SuffixTree alternative available as a swap-in). Reduction goes through the lazily owned mHeap (a PolynomialHeap, see NCReduction.hpp), letting the driver pick among the heap backends.

Definition at line 68 of file NCGroebner.hpp.


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