Go to the documentation of this file.
32 Slice(strategy, ideal, subtract, multiply),
44 if (!
getLcm().isSquareFree())
104 bound.
gcd(bound, *it);
virtual Slice & operator=(const Slice &slice)
Performs a deep copy of slice into this object.
void clearIdealAndSubtract()
Clears getIdeal() and getSubtract() and does not change getMultiply().
Cont::const_iterator const_iterator
bool pruneSubtract()
Removes those generators of subtract that do not strictly divide the lcm of getIdeal(),...
virtual bool simplifyStep()
Like simplify(), except that only one simplification step is performed.
virtual Slice & operator=(const Slice &slice)=0
Performs a deep copy of slice into this object.
static void decrement(Exponent *a, size_t varCount)
Decrements each positive entry of a by one.
CoefTermConsumer * _consumer
void swap(hashtable< _Val, _Key, _HF, _Extract, _EqKey, _All > &__ht1, hashtable< _Val, _Key, _HF, _Extract, _EqKey, _All > &__ht2)
const Term & getLcm() const
Returns the least common multiple of the generators of getIdeal().
bool applyLowerBound()
Calculates a lower bound on the content of the slice using getLowerBound() and calls innerSlice with ...
size_t _varCount
The number of variables in the ambient polynomial ring.
void computeCoefficient(Ideal &ideal)
const_iterator end() const
const mpz_class & getLastCoefficient()
This class represents a slice, which is the central data structure of the Slice Algorithm.
void swap(Slice &slice)
Simultaneously set the value of this object to that of slice and vice versa.
Term & getMultiply()
Returns for a slice .
Term represents a product of variables which does not include a coefficient.
const Ideal & getIdeal() const
Returns for a slice .
virtual void consume(const Polynomial &poly)
void setToProjOf(const Slice &slice, const Projection &projection)
Set this object to be the projection of slice according to projection.
void swap(HilbertSlice &slice)
Ideal _ideal
The of a slice .
void setToProjOf(const Slice &slice, const Projection &projection, CoefTermConsumer *consumer)
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...
HilbertSlice(HilbertStrategy &strategy)
virtual bool getLowerBound(Term &bound, size_t var) const
Calculates a lower bound that depends on var.
Represents a monomial ideal with int exponents.
size_t getSizeOfSupport(const Word *a, size_t varCount)
static void gcd(Exponent *res, const Exponent *a, const Exponent *b, size_t varCount)
Sets res equal to the greatest common divisor of a and b.