PolyBoRi
PolyEntryBase.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 //*****************************************************************************
14 //*****************************************************************************
15 
16 #ifndef polybori_groebner_PolyEntryBase_h_
17 #define polybori_groebner_PolyEntryBase_h_
18 
19 // include basic definitions
20 #include "groebner_defs.h"
21 
23 
30 public:
31  PolyEntryBase(const Polynomial &poly):
32  literal_factors(poly),
33  p(poly), lead(poly.ring()), weightedLength(),
34  length(poly.length()), deg(poly.deg()),
35  // empty/zero default values to be filled below (TODO: use inheritance here)
36  leadDeg(), leadExp(), gcdOfTerms(poly.ring()),
37  usedVariables(poly.usedVariablesExp()),
38  tailVariables(), tail(poly.ring()), minimal(true), vPairCalculated() {
39 
40  lead = p.boundedLead(deg);
41  leadExp = lead.exp();
42  leadDeg = leadExp.deg();
43 
44  if (leadDeg == deg)
45  weightedLength = length;
46  else
47  weightedLength = poly.eliminationLengthWithDegBound(deg);
48 
49  tail = poly-lead;
50  tailVariables = tail.usedVariablesExp();
51  }
52 
65  bool minimal;
67  std::set<idx_type> vPairCalculated;
68 };
69 
71 
72 #endif /* polybori_groebner_PolyEntryBase_h_ */
std::set< idx_type > vPairCalculated
set of variables with which pair was calculated
Definition: PolyEntryBase.h:67
Exponent usedVariables
Definition: PolyEntryBase.h:62
This class is just a wrapper for using variables for storing indices as interim data structure for Bo...
Definition: BooleExponent.h:34
deg_type leadDeg
Definition: PolyEntryBase.h:59
Polynomial p
Definition: PolyEntryBase.h:54
#define END_NAMESPACE_PBORIGB
Definition: groebner_defs.h:16
PolyEntryBase(const Polynomial &poly)
Definition: PolyEntryBase.h:31
Definition: LiteralFactorization.h:24
int deg_type
Definition: groebner_defs.h:42
long len_type
Definition: groebner_defs.h:41
Exponent tailVariables
Definition: PolyEntryBase.h:63
#define BEGIN_NAMESPACE_PBORIGB
Definition: groebner_defs.h:15
deg_type deg
Definition: PolyEntryBase.h:58
This class wraps the underlying decicion diagram type and defines the necessary operations.
Definition: BoolePolynomial.h:85
wlen_type weightedLength
Definition: PolyEntryBase.h:56
This class defines the base of PolyEntry.
Definition: PolyEntryBase.h:29
Monomial gcdOfTerms
Definition: PolyEntryBase.h:61
bool minimal
Definition: PolyEntryBase.h:65
LiteralFactorization literal_factors
Definition: PolyEntryBase.h:53
Exponent leadExp
Definition: PolyEntryBase.h:60
long wlen_type
Definition: groebner_defs.h:39
size_type eliminationLengthWithDegBound(deg_type garantied_deg_bound) const
Definition: BoolePolynomial.cc:818
Polynomial tail
Definition: PolyEntryBase.h:64
len_type length
Definition: PolyEntryBase.h:57
Monomial lead
Definition: PolyEntryBase.h:55
This class is just a wrapper for using variables from cudd's decicion diagram.
Definition: BooleMonomial.h:50
exp_type usedVariablesExp() const
Exponent vector of all of variables of the polynomial.
Definition: BoolePolynomial.cc:404