1
#ifndef TRAVERSER_GROEBNERFAN_H_INCLUDED
2
#define TRAVERSER_GROEBNERFAN_H_INCLUDED
4
#include "symmetrictraversal.h"
5
#include "polynomial.h"
8
* This routine computes all reduced Groebner bases of the ideal generated by g whose Groebner cone intersects
9
* the cone c in maximal dimension.
11
PolynomialSet groebnerBasisWithFullDimensionalIntersection(PolynomialSet g, PolyhedralCone const &c);
13
class GroebnerFanTraverser: public ConeTraverser
15
PolynomialSet groebnerBasis;
16
PolyhedralCone theCone;
17
PolyhedralCone theRestrictingCone;
19
bool isKnownToBeComplete;
21
void updatePolyhedralCone();
23
GroebnerFanTraverser(PolynomialSet const &groebnerBasis_);
24
GroebnerFanTraverser(PolynomialSet const &groebnerBasis_, PolyhedralCone const &restrictingCone);
25
virtual void changeCone(IntegerVector const &ridgeVector, IntegerVector const &rayVector);
26
virtual IntegerVectorList link(IntegerVector const &ridgeVector);
27
PolyhedralCone & refToPolyhedralCone();
28
PolynomialSet &refToGroebnerBasisRepresentation();
29
PolynomialSet initialIdeal()const;
31
* Tells the traverser that the fan to be traversed is complete.
33
void setIsKnownToBeComplete(bool complete);