18 #ifndef BIGATTI_BASE_CASE_GUARD
19 #define BIGATTI_BASE_CASE_GUARD
This class handles the base cases for the Hilbert-Poincare series by Bigatti et.al.
Cont::const_iterator const_iterator
bool genericBaseCase(const BigattiState &state)
Returns ture if state is a base case slice while also considering genericity.
Used in enumerateScarfComplex and necessary to have here to define _states.
A sparse univariate polynomial represented by a hash table mapping terms to coefficients.
void enumerateScarfComplex(const BigattiState &state, bool allFaces)
The ideal in state must be weakly generic.
size_t getTotalBaseCasesEver() const
Returns the total number of base cases this object has seen.
BigattiBaseCase(const TermTranslator &translator)
Initialize this object to handle the computation of Hilbert-Poincare series numerator polynomials in ...
void feedOutputTo(CoefBigTermConsumer &consumer, bool inCanonicalOrder)
Feed the output Hilbert-Poincare numerator polynomial computed so far to the consumer.
size_t _totalTermsOutputEver
For statistics.
A sparse multivariate polynomial represented by a hash table mapping terms to coefficients.
void output(bool plus, const Term &term)
Add +term or -term to the output polynomial when plus is true or false respectively.
UniHashPolynomial _outputUnivariate
The part of the coarsely graded Hilbert-Poincare numerator polynomial computed so far...
void setComputeUnivariate(bool value)
Use the fine grading if value is false, otherwise grade each variable by the same variable t...
bool simpleBaseCase(const BigattiState &state)
Computes the Hilbert-Poincare series of state and returns true if state is a particularly simple and ...
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
const TermTranslator & _translator
Used to translate the output from ints.
void setPrintDebug(bool value)
Starts to print debug output on what happens if value is true.
size_t getTotalTermsInOutput() const
Returns the number of terms in the output polynomial right now.
Ideal::const_iterator pos
vector< size_t > _maxCount
HashPolynomial _outputMultivariate
The part of the finely graded Hilbert-Poincare numerator polynomial computed so far.
bool univariateAllFaces(const BigattiState &state)
size_t _totalBaseCasesEver
For statistics.
vector< State > _states
Used in enumerateScarfCompex.
size_t getTotalTermsOutputEver() const
Returns the total number of terms this object has output.
bool baseCase(const BigattiState &state)
Returns true if state is a base case slice without considering genericity.
Term represents a product of variables which does not include a coefficient.
bool _computeUnivariate
Use the fine grading if false, otherwise grade each variable by the same variable t...