17#ifndef HILBERT_SLICE_GUARD
18#define HILBERT_SLICE_GUARD
void swap(HilbertSlice &a, HilbertSlice &b)
void nameFactoryRegister(NameFactory< AbstractProduct > &factory)
Registers the string returned by ConcreteProduct::getStaticName() to a function that default-construc...
void setToProjOf(const Slice &slice, const Projection &projection, CoefTermConsumer *consumer)
virtual bool getLowerBound(Term &bound, size_t var) const
Calculates a lower bound that depends on var.
virtual bool baseCase(bool simplified)
Returns true if this slice is a base case slice, and in that case produces output in a derivative-spe...
virtual Slice & operator=(const Slice &slice)
Performs a deep copy of slice into this object.
virtual bool simplifyStep()
Like simplify(), except that only one simplification step is performed.
CoefTermConsumer * _consumer
void swap(HilbertSlice &slice)
CoefTermConsumer * getConsumer()
Represents a monomial ideal with int exponents.
This class represents a slice, which is the central data structure of the Slice Algorithm.
Term represents a product of variables which does not include a coefficient.