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

Hash-table-keyed polynomial storage for the new F4. More...

Go to the source code of this file.

Classes

class  newf4::PolynomialList
class  newf4::Polynomial
class  newf4::Polynomial::PolynomialIterator< Const >
class  newf4::PolynomialListStreamCollector
 implements the stream functions for creating a PolynomialList from a stream More...

Namespaces

namespace  newf4

Functions

template<typename S>
void newf4::toStream (const PolynomialList &Fs, S &str)

Detailed Description

Hash-table-keyed polynomial storage for the new F4.

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

Declares the container and value type the refactored F4 uses for inputs, intermediates, and basis elements. PolynomialList owns a std::vector<Polynomial> together with non-owning references to a shared MonomialHashTable and VectorArithmetic; the shared table means each Polynomial reduces to three small parallel arrays — an ElementArray of coefficients (sized and decoded through VectorArithmetic), a vector of MonomialIndex keys into the table, and a vector of ComponentIndex slots for free-module components. The list and its hash table must share a lifetime; deleting the table invalidates every polynomial in the list.

The nested templated PolynomialIterator exposes per-term coeff() / monom() / Computations accessors that decode the vector-arithmetic and hash-table indirections behind the scenes. PolynomialListStreamCollector implements the mathicgb-style appendTermBegin / appendExponent / appendTermDone stream surface so a BasicPolyListParser (and the legacy Matrix ingestion path) can feed terms in without an intermediate buffer; the free toStream writes a list back out the same way.

See also
MonomialHashTable.hpp
MonomialTypes.hpp
VectorArithmetic.hpp
Basis.hpp
GBF4Computation.hpp

Definition in file PolynomialList.hpp.