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