1 #ifndef REVERSESEARCH_H_INCLUDED 2 #define REVERSESEARCH_H_INCLUDED 3 4 #include "enumeration.h" 5 #include "termorder.h" 6 7 class ReverseSearch: public EnumerationAlgorithm 8 { 9 int numberOfEdges; 10 int numberOfVertices; 11 bool isKnownToBeHomogeneous; 12 bool broken; 13 int treeSize(PolynomialSet &groebnerBasis); 14 const TermOrder &termOrder; 15 protected: 16 bool computeSearchEdge(PolynomialSet &groebnerBasis, IntegerVector *edge); 17 public: 18 PolynomialSet findRoot(PolynomialSet groebnerBasis); 19 ReverseSearch(const TermOrder &termOrder_); 20 void enumerate(const PolynomialSet &groebnerBasis); 21 }; 22 23 24 #endif 25