44 if (!
getLcm().isSquareFree())
void nameFactoryRegister(NameFactory< AbstractProduct > &factory)
Registers the string returned by ConcreteProduct::getStaticName() to a function that default-construc...
virtual void consume(const Polynomial &poly)
void computeCoefficient(Ideal &ideal)
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.
HilbertSlice(HilbertStrategy &strategy)
CoefTermConsumer * _consumer
void swap(HilbertSlice &slice)
Represents a monomial ideal with int exponents.
Cont::const_iterator const_iterator
const_iterator end() const
This class represents a slice, which is the central data structure of the Slice Algorithm.
size_t _varCount
The number of variables in the ambient polynomial ring.
Ideal _ideal
The of a slice .
virtual Slice & operator=(const Slice &slice)=0
Performs a deep copy of slice into this object.
void setToProjOf(const Slice &slice, const Projection &projection)
Set this object to be the projection of slice according to projection.
void swap(Slice &slice)
Simultaneously set the value of this object to that of slice and vice versa.
Term & getMultiply()
Returns for a slice .
bool pruneSubtract()
Removes those generators of subtract that do not strictly divide the lcm of getIdeal(),...
void clearIdealAndSubtract()
Clears getIdeal() and getSubtract() and does not change getMultiply().
bool applyLowerBound()
Calculates a lower bound on the content of the slice using getLowerBound() and calls innerSlice with ...
const Ideal & getIdeal() const
Returns for a slice .
const Term & getLcm() const
Returns the least common multiple of the generators of getIdeal().
Term represents a product of variables which does not include a coefficient.