[SCM] polybori: Polynomials over Boolean Rings branch, upstream-hg, updated. b4a5cffaa908c53e1d958a42110f8c4dad853aa3

Alexander Dreyer adreyer at gmx.de
Fri Mar 23 08:01:12 UTC 2012


The following commit has been merged in the upstream-hg branch:
commit 3f5035cf523aee8c66b4297fe1d1c8655783f28c
Author: Alexander Dreyer <adreyer at gmx.de>
Date:   Tue Feb 21 14:55:55 2012 +0100

    FIX -Wall checked

diff --git a/Cudd/cudd/cuddTable.c b/Cudd/cudd/cuddTable.c
index b6acb71..b7e1a97 100644
--- a/Cudd/cudd/cuddTable.c
+++ b/Cudd/cudd/cuddTable.c
@@ -153,8 +153,8 @@ static char rcsid[] DD_UNUSED = "$Id: cuddTable.c,v 1.126 2012/02/05 01:07:19 fa
 static void ddRehashZdd (DdManager *unique, int i);
 #ifdef PBORI_FORCE_ORIGINAL_CUDD
 static int ddResizeTable (DdManager *unique, int index, int amount);
-#endif
 static int cuddFindParent (DdManager *table, DdNode *node);
+#endif
 DD_INLINE static void ddFixLimits (DdManager *unique);
 #ifdef DD_RED_BLACK_FREE_LIST
 static void cuddOrderedInsert (DdNodePtr *root, DdNodePtr node);
@@ -1163,7 +1163,9 @@ cuddUniqueInter(
 {
     int pos;
     unsigned int level;
+#ifdef PBORI_FORCE_ORIGINAL_CUDD
     int retval;
+#endif
     DdNodePtr *nodelist;
     DdNode *looking;
     DdNodePtr *previousP;
@@ -1409,7 +1411,9 @@ cuddUniqueInterZdd(
 {
     int pos;
     unsigned int level;
+#ifdef PBORI_FORCE_ORIGINAL_CUDD
     int retval;
+#endif
     DdNodePtr *nodelist;
     DdNode *looking;
     DdSubtable *subtable;
@@ -2812,7 +2816,6 @@ ddResizeTable(
     return(1);
 
 } /* end of ddResizeTable */
-#endif
 
 /**Function********************************************************************
 
@@ -2857,7 +2860,7 @@ cuddFindParent(
     return(0);
 
 } /* end of cuddFindParent */
-
+#endif
 
 /**Function********************************************************************
 
diff --git a/M4RI/m4ri/misc.c b/M4RI/m4ri/misc.c
index e6fcc1a..92abba3 100644
--- a/M4RI/m4ri/misc.c
+++ b/M4RI/m4ri/misc.c
@@ -28,6 +28,11 @@
 
 #include <stdio.h>
 #include <stdlib.h>
+
+#ifndef random
+long int random(void);
+#endif
+
 #include <stdarg.h>
 #include "grayflex.h"
 #include "misc.h"
@@ -56,19 +61,19 @@ void m4ri_word_to_str(char *destination, word data, int colon) {
 }
 
 word m4ri_random_word() {
-#ifdef _MSC_VER
-  word a = 0;
-  int i;
-  for(i=0; i< m4ri_radix; i+=8) {
-    a ^= (((word)rand())<<i);
-  };
-  return a;
-#else
-  // random() only returns 31 bits, so we need three calls.
-  word a0 = random();
-  word a1 = random();
-  word a2 = random();
-  return a0 ^ (a1 << 24) ^ a2 << 48;
+#ifdef _MSC_VER
+  word a = 0;
+  int i;
+  for(i=0; i< m4ri_radix; i+=8) {
+    a ^= (((word)rand())<<i);
+  };
+  return a;
+#else
+  // random() only returns 31 bits, so we need three calls.
+  word a0 = random();
+  word a1 = random();
+  word a2 = random();
+  return a0 ^ (a1 << 24) ^ a2 << 48;
 #endif
 }
 
diff --git a/PyPolyBoRi/strategy_wrapper.cc b/PyPolyBoRi/strategy_wrapper.cc
index 8679b99..d71d91d 100644
--- a/PyPolyBoRi/strategy_wrapper.cc
+++ b/PyPolyBoRi/strategy_wrapper.cc
@@ -79,27 +79,27 @@ static int pairs_top_sugar(const GroebnerStrategy& strat){
 static void cleanTopByChainCriterion(GroebnerStrategy & strat){
   strat.pairs.cleanTopByChainCriterion();
 }
-static void printGenerators(const GroebnerStrategy& strat){
-  int i;
-  for (i=0;i<strat.generators.size();i++){
-    std::cout<<(strat.generators[i].p)<<std::endl;
-  }
-}
-static vector<Polynomial> nextDegreeSpolys(GroebnerStrategy& strat){
-  vector<Polynomial> res;
-  PBORI_ASSERT(!(strat.pairs.pairSetEmpty()));
-  strat.pairs.cleanTopByChainCriterion();
-  deg_type deg=strat.pairs.queue.top().sugar;
+
+// static void printGenerators(const GroebnerStrategy& strat){
+//   for (std::size_t i=0;i<strat.generators.size();i++){
+//     std::cout<<(strat.generators[i].p)<<std::endl;
+//   }
+// }
+// static vector<Polynomial> nextDegreeSpolys(GroebnerStrategy& strat){
+//   vector<Polynomial> res;
+//   PBORI_ASSERT(!(strat.pairs.pairSetEmpty()));
+//   strat.pairs.cleanTopByChainCriterion();
+//   deg_type deg=strat.pairs.queue.top().sugar;
   
-  while((!(strat.pairs.pairSetEmpty())) &&(strat.pairs.queue.top().sugar<=deg)){
+//   while((!(strat.pairs.pairSetEmpty())) &&(strat.pairs.queue.top().sugar<=deg)){
     
-    PBORI_ASSERT(strat.pairs.queue.top().sugar==deg);
-    res.push_back(strat.nextSpoly());
-    strat.pairs.cleanTopByChainCriterion();
-  }
-  return res;
+//     PBORI_ASSERT(strat.pairs.queue.top().sugar==deg);
+//     res.push_back(strat.nextSpoly());
+//     strat.pairs.cleanTopByChainCriterion();
+//   }
+//   return res;
   
-}
+// }
 
 static vector<Polynomial> someNextDegreeSpolys(GroebnerStrategy& strat, int n){
   vector<Polynomial> res;
@@ -107,7 +107,8 @@ static vector<Polynomial> someNextDegreeSpolys(GroebnerStrategy& strat, int n){
   strat.pairs.cleanTopByChainCriterion();
   deg_type deg=strat.pairs.queue.top().sugar;
   
-  while((!(strat.pairs.pairSetEmpty())) &&(strat.pairs.queue.top().sugar<=deg) && (res.size()<n)){
+  while((!(strat.pairs.pairSetEmpty())) &&
+        (strat.pairs.queue.top().sugar<=deg) && (res.size() < (std::size_t)n)){
     
     PBORI_ASSERT(strat.pairs.queue.top().sugar==deg);
     res.push_back(strat.nextSpoly());
@@ -116,21 +117,21 @@ static vector<Polynomial> someNextDegreeSpolys(GroebnerStrategy& strat, int n){
   return res;
   
 }
-static vector<Polynomial> small_next_degree_spolys(GroebnerStrategy& strat, double f, int n){
-  vector<Polynomial> res;
-  PBORI_ASSERT(!(strat.pairs.pairSetEmpty()));
-  strat.pairs.cleanTopByChainCriterion();
-  deg_type deg=strat.pairs.queue.top().sugar;
-  wlen_type wlen=strat.pairs.queue.top().wlen;
-  while((!(strat.pairs.pairSetEmpty())) &&(strat.pairs.queue.top().sugar<=deg) && (strat.pairs.queue.top().wlen<=wlen*f+2)&& (res.size()<n)){
+// static vector<Polynomial> small_next_degree_spolys(GroebnerStrategy& strat, double f, int n){
+//   vector<Polynomial> res;
+//   PBORI_ASSERT(!(strat.pairs.pairSetEmpty()));
+//   strat.pairs.cleanTopByChainCriterion();
+//   deg_type deg=strat.pairs.queue.top().sugar;
+//   wlen_type wlen=strat.pairs.queue.top().wlen;
+//   while((!(strat.pairs.pairSetEmpty())) &&(strat.pairs.queue.top().sugar<=deg) && (strat.pairs.queue.top().wlen<=wlen*f+2)&& (res.size()<(std::size_t)n)){
     
-    PBORI_ASSERT(strat.pairs.queue.top().sugar==deg);
-    res.push_back(strat.nextSpoly());
-    strat.pairs.cleanTopByChainCriterion();
-  }
-  return res;
+//     PBORI_ASSERT(strat.pairs.queue.top().sugar==deg);
+//     res.push_back(strat.nextSpoly());
+//     strat.pairs.cleanTopByChainCriterion();
+//   }
+//   return res;
   
-}
+// }
 bool contains_one(const GroebnerStrategy& strat){
   int s=strat.generators.size();
   int i;
@@ -149,7 +150,7 @@ int select_wrapped(const GroebnerStrategy & strat, const Monomial& m){
     return strat.generators.select1(m);
 }
 
-static Polynomial get_ith_gen(const GroebnerStrategy& strat, int i){
+static Polynomial get_ith_gen(const GroebnerStrategy& strat, std::size_t i){
     if PBORI_UNLIKELY((i<0)||(i>=strat.generators.size())){
         throw StrategyIndexException();
     }
diff --git a/SConstruct b/SConstruct
index 1766f95..dc2d99d 100644
--- a/SConstruct
+++ b/SConstruct
@@ -574,7 +574,8 @@ if not env.GetOption('clean'):
         test_src_sizeof =  """
         #include <stdio.h>
         int main(int argc, char **argv) {
-          printf("SIZEOF_VOID_P=%i SIZEOF_INT=%i SIZEOF_LONG=%i", sizeof(void*), sizeof(int), sizeof(long));
+          printf("SIZEOF_VOID_P=%u SIZEOF_INT=%u SIZEOF_LONG=%u",
+            (unsigned)sizeof(void*), (unsigned)sizeof(int), (unsigned)sizeof(long));
           return 0;
         }
         """
diff --git a/groebner/include/polybori/groebner/CountCriterion.h b/groebner/include/polybori/groebner/CountCriterion.h
index 705da4e..5b77847 100644
--- a/groebner/include/polybori/groebner/CountCriterion.h
+++ b/groebner/include/polybori/groebner/CountCriterion.h
@@ -42,7 +42,7 @@ public:
       const int USED_VARIABLES_BOUND=6;
       if ((e1.usedVariables.deg()>USED_VARIABLES_BOUND)||
           (e2.usedVariables.deg()>USED_VARIABLES_BOUND)||
-          (e1.usedVariables.LCMDeg(e2.usedVariables)>USED_VARIABLES_BOUND)
+          (e1.usedVariables.LCMDeg(e2.usedVariables) > USED_VARIABLES_BOUND)
           
           
           ||(e1.p.set().nNodes()>30)||(e2.p.set().nNodes()>30))
@@ -65,7 +65,8 @@ public:
       )-1)
       +((1<<gcd_deg)-1)*((1<<(e1.leadDeg-gcd_deg))+(1<<(e2.leadDeg-gcd_deg)));
 
-      int standard_monomials= (standard_monomials_in_common_lead <<(uv_exp.size()-lead_lcm.deg()));
+      MonomialSet::size_type standard_monomials =
+        (standard_monomials_in_common_lead <<(uv_exp.size()-lead_lcm.deg()));
       
       MonomialSet zeros1=zeros(e1.p, space);
       MonomialSet zeros2=zeros(e2.p, space);
diff --git a/groebner/include/polybori/groebner/FGLMStrategy.h b/groebner/include/polybori/groebner/FGLMStrategy.h
index 4b92463..70ab18e 100644
--- a/groebner/include/polybori/groebner/FGLMStrategy.h
+++ b/groebner/include/polybori/groebner/FGLMStrategy.h
@@ -50,8 +50,7 @@ public:
         return multiplicationTables[ring2Index[v.index()]];
     }
     ~FGLMStrategy(){
-        int i;
-        for(i=0;i<multiplicationTables.size();i++){
+        for(std::size_t i=0;i<multiplicationTables.size();i++){
             mzd_free(multiplicationTables[i]);
         }
     }
@@ -83,7 +82,7 @@ private:
     IndexVector ring2Index;
     IndexVector index2Ring;
     IndexVector rowStartingWithIndex;
-    idx_type nVariables;
+    MonomialSet::size_type nVariables;
     bool transposed;
     std::vector<IndexVector> tableXRowYIsMonomialFromWithIndex;
     lm2Index_map_type standardMonomialsFrom2Index;
diff --git a/groebner/include/polybori/groebner/GroebnerOptions.h b/groebner/include/polybori/groebner/GroebnerOptions.h
index 2a46317..010eeec 100644
--- a/groebner/include/polybori/groebner/GroebnerOptions.h
+++ b/groebner/include/polybori/groebner/GroebnerOptions.h
@@ -41,22 +41,23 @@ public:
     optAllowRecursion(true), optLinearAlgebraInLastBlock(true),
     reduceByTailReduced(false) { }
 
-  std::string matrixPrefix;
-  bool reduceByTailReduced;
-  bool enabledLog;
-
-  bool optDrawMatrices; 
-  bool optHFE;
+  bool optRedTailInLastBlock;
   bool optLazy;
+
+  std::string matrixPrefix;
+  bool optDrawMatrices;
+ 
   bool optModifiedLinearAlgebra;
   bool optDelayNonMinimals;
-  
+  bool enabledLog; 
+
   bool optExchange;
-  bool optAllowRecursion;
-  
+  bool optHFE;
   bool optStepBounded;
+  bool optAllowRecursion;
   bool optLinearAlgebraInLastBlock;
-  bool optRedTailInLastBlock;
+
+  bool reduceByTailReduced;
 };
 
 END_NAMESPACE_PBORIGB
diff --git a/groebner/include/polybori/groebner/GroebnerStrategy.h b/groebner/include/polybori/groebner/GroebnerStrategy.h
index 092b4ea..4c846a9 100644
--- a/groebner/include/polybori/groebner/GroebnerStrategy.h
+++ b/groebner/include/polybori/groebner/GroebnerStrategy.h
@@ -54,8 +54,8 @@ public:
     generators(input_ring),
 
     cache(new CacheManager()),
-    chainCriterions(0), easyProductCriterions(0), extendedProductCriterions(0),
-    variableChainCriterions(0) { }
+    chainCriterions(0),  variableChainCriterions(0), 
+    easyProductCriterions(0), extendedProductCriterions(0) { }
 
   const BoolePolyRing& ring() const { return generators.leadingTerms.ring(); }
   bool containsOne() const { return generators.leadingTerms.ownsOne(); }
diff --git a/groebner/include/polybori/groebner/LiteralFactorizationIterator.h b/groebner/include/polybori/groebner/LiteralFactorizationIterator.h
index 802b80f..a4f618c 100644
--- a/groebner/include/polybori/groebner/LiteralFactorizationIterator.h
+++ b/groebner/include/polybori/groebner/LiteralFactorizationIterator.h
@@ -46,9 +46,9 @@ public:
                                var2var_map_type::const_iterator
                                var2var_iter_
                                ):
-    m_ring(literal_factorization_->rest.ring()), 
+    var2var_iter(var2var_iter_), var2const_iter(var2const_iter_),
     literal_factorization(literal_factorization_),
-    var2const_iter(var2const_iter_), var2var_iter(var2var_iter_) { }
+    m_ring(literal_factorization_->rest.ring())  { }
   
 
   self & operator++();
diff --git a/groebner/include/polybori/groebner/PairE.h b/groebner/include/polybori/groebner/PairE.h
index e779db5..3a16f47 100644
--- a/groebner/include/polybori/groebner/PairE.h
+++ b/groebner/include/polybori/groebner/PairE.h
@@ -39,45 +39,43 @@ public:
   pair_data_ptr data;
   Exponent lm; //must not be the real lm, can be lm of syzygy or something else
 
- PairE(const PairE& rhs):
-  type(rhs.getType()), wlen(rhs.wlen), sugar(rhs.sugar), 
-    data(rhs.data), lm(rhs.lm) {}
+  PairE(const PairE& rhs):
+   type(rhs.getType()), wlen(rhs.wlen), sugar(rhs.sugar), 
+   data(rhs.data), lm(rhs.lm) {}
 
 
   Polynomial extract(const PolyEntryVector& v) const {
     return data->extract(v);
   }
   PairE(int i, int j, const PolyEntryVector &v):
+    type(IJ_PAIR),
+    wlen(v[i].weightedLength+v[j].weightedLength-2),
     data(new IJPairData(i,j)),
-    lm(v[i].leadExp+v[j].leadExp),
-    wlen(v[i].weightedLength+v[j].weightedLength-2)
-  {
-    type=IJ_PAIR;
+    lm(v[i].leadExp+v[j].leadExp) {
     sugar=lm.deg()+std::max(v[i].ecart(),v[j].ecart());
   }
+
   PairE(int i, idx_type v, const PolyEntryVector &gen,int type):
-    data(new VariablePairData(i,v)),
-    sugar(gen[i].deg+1),
-   // sugar(gen[i].lmDeg+1),///@only do that because of bad criteria impl
     wlen(gen[i].weightedLength+gen[i].length),
-  lm(gen[i].leadExp)
-  
-  {
+    sugar(gen[i].deg+1),
+    data(new VariablePairData(i,v)), 
+    // sugar(gen[i].lmDeg+1),///@only do that because of bad criteria impl
+    
+    lm(gen[i].leadExp) {
     PBORI_ASSERT(type==VARIABLE_PAIR);
     this->type=type;
     if (gen[i].leadExp==gen[i].usedVariables)
-        sugar=gen[i].deg;
+      sugar=gen[i].deg;
     if (gen[i].tailVariables.deg()<gen[i].deg)
-        sugar=gen[i].deg;
+      sugar=gen[i].deg;
   }
   
   PairE(const Polynomial& delayed):
+    type(DELAYED_PAIR), wlen(delayed.eliminationLength()),
+    sugar(delayed.deg()), 
     data(new PolyPairData(delayed)),
     //lm(delayed.lead()),
-    lm(delayed.leadExp()),
-    sugar(delayed.deg()), wlen(delayed.eliminationLength()){
-      this->type=DELAYED_PAIR;
-  }
+    lm(delayed.leadExp()) { }
 
   const PolyPairData& delayedPair() const {
     PBORI_ASSERT(type == DELAYED_PAIR);
diff --git a/groebner/include/polybori/groebner/PairLS.h b/groebner/include/polybori/groebner/PairLS.h
index 502dd03..e4a2d86 100644
--- a/groebner/include/polybori/groebner/PairLS.h
+++ b/groebner/include/polybori/groebner/PairLS.h
@@ -53,31 +53,27 @@ public:
     return data->extract(v);
   }
   PairLS(int i, int j, const PolyEntryVector &v):
+    wlen(v[i].weightedLength+v[j].weightedLength-2),
     data(new IJPairData(i,j)),
-    lm(v[i].lead*v[j].lead),
-    wlen(v[i].weightedLength+v[j].weightedLength-2)
+    lm(v[i].lead*v[j].lead)
   {
     type=IJ_PAIR;
     sugar=lm.deg()+std::max(v[i].ecart(),v[j].ecart());
   }
   PairLS(int i, idx_type v, const PolyEntryVector &gen,int type):
-    data(new VariablePairData(i,v)),
-    sugar(gen[i].deg+1),
-   // sugar(gen[i].lmDeg+1),///@only do that because of bad criteria impl
+     // sugar(gen[i].lmDeg+1),///@only do that because of bad criteria impl
     wlen(gen[i].weightedLength+gen[i].length),
-  lm(gen[i].lead)
-  
-  {
+    sugar(gen[i].deg+1),
+    data(new VariablePairData(i,v)), lm(gen[i].lead) {
     PBORI_ASSERT(type==VARIABLE_PAIR);
     this->type=type;
   }
   
   PairLS(const Polynomial& delayed):
-    data(new PolyPairData(delayed)),
-    lm(delayed.lead()), 
-    sugar(delayed.deg()), wlen(delayed.eliminationLength()){
-      this->type=DELAYED_PAIR;
-  }
+    type(DELAYED_PAIR), wlen(delayed.eliminationLength()), 
+    sugar(delayed.deg()),
+    data(new PolyPairData(delayed)), 
+    lm(delayed.lead()) { }
   
 };
 
diff --git a/groebner/include/polybori/groebner/PolyEntryBase.h b/groebner/include/polybori/groebner/PolyEntryBase.h
index c6c7fcc..2bd6176 100644
--- a/groebner/include/polybori/groebner/PolyEntryBase.h
+++ b/groebner/include/polybori/groebner/PolyEntryBase.h
@@ -30,11 +30,12 @@ class PolyEntryBase {
 public:
   PolyEntryBase(const Polynomial &poly):
     literal_factors(poly),
-    p(poly), usedVariables(poly.usedVariablesExp()),
-    deg(poly.deg()), length(poly.length()), minimal(true),
+    p(poly), lead(poly.ring()), weightedLength(), 
+    length(poly.length()), deg(poly.deg()), 
     // empty/zero default values to be filled below (TODO: use inheritance here)
-    lead(poly.ring()), leadExp(), leadDeg(), tail(poly.ring()), 
-    weightedLength(), tailVariables(), gcdOfTerms(poly.ring()) {
+    leadDeg(), leadExp(), gcdOfTerms(poly.ring()), 
+    usedVariables(poly.usedVariablesExp()),
+    tailVariables(), tail(poly.ring()),  minimal(true), vPairCalculated() {
     
     lead = p.boundedLead(deg);
     leadExp = lead.exp();
diff --git a/groebner/include/polybori/groebner/PolyEntryReference.h b/groebner/include/polybori/groebner/PolyEntryReference.h
index 90983e9..7a5ff56 100644
--- a/groebner/include/polybori/groebner/PolyEntryReference.h
+++ b/groebner/include/polybori/groebner/PolyEntryReference.h
@@ -40,9 +40,8 @@ public:
 
   /// Construct from plain non-constant reference
   PolyEntryReference(value_type &entry, vector_type& parent): 
-    m_entry(entry), minimal(entry.minimal),
-    vPairCalculated(entry.vPairCalculated),
-    m_parent(parent) { }
+    vPairCalculated(entry.vPairCalculated), minimal(entry.minimal),
+    m_entry(entry), m_parent(parent) { }
 
   /// Equality check
   bool operator==(const self& rhs) const { return m_entry == rhs; }
diff --git a/groebner/include/polybori/groebner/PolynomialSugar.h b/groebner/include/polybori/groebner/PolynomialSugar.h
index bf96abc..5ac90a8 100644
--- a/groebner/include/polybori/groebner/PolynomialSugar.h
+++ b/groebner/include/polybori/groebner/PolynomialSugar.h
@@ -27,7 +27,7 @@ BEGIN_NAMESPACE_PBORIGB
  **/
 class PolynomialSugar{
 public:
-  PolynomialSugar(const Polynomial& poly): lm(poly.ring()), exp(), p(poly) {
+  PolynomialSugar(const Polynomial& poly): lm(poly.ring()), p(poly),  exp(){
     sugar=p.deg();
     if (!(p.isZero())){
       this->lm=p.boundedLead(sugar);
@@ -39,7 +39,7 @@ public:
     length=p.length();
   }
   PolynomialSugar(const Polynomial& poly, int sugar, len_type length):
-    lm(poly.ring()), exp(), p(poly) {
+    lm(poly.ring()), p(poly), exp() {
 
     PBORI_ASSERT(length>=0);
     
diff --git a/groebner/include/polybori/groebner/ReductionOptions.h b/groebner/include/polybori/groebner/ReductionOptions.h
index 4bd5fd6..a5539cb 100644
--- a/groebner/include/polybori/groebner/ReductionOptions.h
+++ b/groebner/include/polybori/groebner/ReductionOptions.h
@@ -29,9 +29,9 @@ BEGIN_NAMESPACE_PBORIGB
 class ReductionOptions {
 public:
   ReductionOptions():
-    reducibleUntil(-1),
-    optLL(false), optBrutalReductions(true),
-    optRedTail(true), optRedTailDegGrowth(true) {}
+    optBrutalReductions(true), optLL(false), 
+    optRedTailDegGrowth(true), optRedTail(true), 
+    reducibleUntil(-1) {}
 
   bool optBrutalReductions;
   bool optLL;
diff --git a/groebner/include/polybori/groebner/cache_manager.h b/groebner/include/polybori/groebner/cache_manager.h
index 7ab4a62..0454123 100644
--- a/groebner/include/polybori/groebner/cache_manager.h
+++ b/groebner/include/polybori/groebner/cache_manager.h
@@ -52,9 +52,9 @@ class CacheManager{
             if (it!=impl.end()){
                 succ=true;
                 res_type res(new poly_vec_type(it->second));
-                int i;
+
                 
-                for(i=0;i<res->size();i++){
+                for(poly_vec_type::size_type i=0;i<res->size();i++){
                     (*res)[i]=translate_indices((*res)[i],back_2_ring);
                 }
                 return res;
@@ -72,8 +72,8 @@ class CacheManager{
             set_up_translation_vectors(ring_2_0123,back_2_ring, used_exp);
             Polynomial key_t=translate_indices(key,ring_2_0123);
             poly_vec_type value_t(value);
-            int i;
-            for(i=0;i<value_t.size();i++){
+
+            for(poly_vec_type::size_type i=0;i<value_t.size();i++){
                 value_t[i]=translate_indices(value_t[i], ring_2_0123);
             }
             impl[key_t]=value_t;
diff --git a/groebner/include/polybori/groebner/linear_algebra_step.h b/groebner/include/polybori/groebner/linear_algebra_step.h
index 07aa767..3e2e99d 100644
--- a/groebner/include/polybori/groebner/linear_algebra_step.h
+++ b/groebner/include/polybori/groebner/linear_algebra_step.h
@@ -67,8 +67,7 @@ fix_point_iterate(const GroebnerStrategy& strat,std::vector<Polynomial> extendab
     leads_from_strat=MonomialSet(current_ring);
     res_terms=MonomialSet(current_ring);
 
-    int i;
-        for(i=0;i<extendable_system.size();i++){
+    for(std::size_t i=0;i<extendable_system.size();i++){
             Polynomial p=extendable_system[i];
 	    PBORI_ASSERT(p.ring().id() == current_ring.id());
 
@@ -110,8 +109,7 @@ fix_point_iterate(const GroebnerStrategy& strat,std::vector<Polynomial> extendab
 
 inline void
 fill_matrix(mzd_t* mat,std::vector<Polynomial> polys, from_term_map_type from_term_map){
-    int i;
-    for(i=0;i<polys.size();i++){
+    for(std::size_t i=0;i<polys.size();i++){
         Polynomial::exp_iterator it=polys[i].expBegin();//not order dependend
         Polynomial::exp_iterator end=polys[i].expEnd();
         while(it!=end){
@@ -130,7 +128,7 @@ fill_matrix(mzd_t* mat,std::vector<Polynomial> polys, from_term_map_type from_te
 inline void
 translate_back(std::vector<Polynomial>& polys, MonomialSet leads_from_strat,mzd_t* mat,const std::vector<int>& ring_order2lex, const std::vector<Exponent>& terms_as_exp,const std::vector<Exponent>& terms_as_exp_lex,int rank){
     int cols=mat->ncols;
-    int rows=mat->nrows;
+    //    int rows=mat->nrows; /// @todo unused?
     
     int i;
     for(i=0;i<rank;i++){
@@ -155,7 +153,7 @@ translate_back(std::vector<Polynomial>& polys, MonomialSet leads_from_strat,mzd_
         if (!(from_strat)){
             std::vector<Exponent> p_t(p_t_i.size());
             std::sort(p_t_i.begin(),p_t_i.end(),std::less<int>());            
-            for(j=0;j<p_t_i.size();j++){
+            for(std::size_t j=0;j<p_t_i.size();j++){
                 p_t[j]=terms_as_exp_lex[p_t_i[j]];
             }
             polys.push_back(add_up_lex_sorted_exponents(leads_from_strat.ring(),
@@ -268,13 +266,13 @@ linalg_step_modified(std::vector < Polynomial > &polys, MonomialSet terms, Monom
     }
     static int round=0;
     round++;
-    const int russian_k=16;
+    // const int russian_k=16; ///
     MonomialSet     terms_unique(current_ring);
     std::vector < Monomial > terms_unique_vec;
     MonomialSet     terms_step1(current_ring);
-    int             i;
     std::vector < std::pair < Polynomial, Monomial > >polys_lm;
-    for (i = 0; i < polys.size(); i++) {
+
+    for (std::size_t i = 0; i < polys.size(); i++) {
         if PBORI_LIKELY(!(polys[i].isZero()))
 		   polys_lm.push_back(std::pair < Polynomial, Monomial > (polys[i], polys[i].lead()));
     }
@@ -367,9 +365,9 @@ std::  sort(polys_lm.begin(), polys_lm.end(), PolyMonomialPairComparerLess());
         PBORI_ASSERT(cols>=rows);
         remaining_cols=cols-rows;
         compactified_columns2old_columns.resize(remaining_cols);
-        for(i=0;i<cols;i++){
-            int j;
-            for(j=pivot_row;j<rows;j++){
+        for(int i=0;i<cols;i++){
+            int j=pivot_row;
+            for(;j<rows;j++){
                 if PBORI_UNLIKELY(mzd_read_bit(mat_step1,j,i)==1){
                     if (j!=pivot_row)
                         mzd_row_swap(mat_step1,j,pivot_row);
@@ -405,7 +403,7 @@ std::  sort(polys_lm.begin(), polys_lm.end(), PolyMonomialPairComparerLess());
         }
         mzd_free(mat_step1);
 
-        for(i=0;i<remaining_cols;i++){
+        for(int i=0;i<remaining_cols;i++){
             int source=compactified_columns2old_columns[i];
             PBORI_ASSERT(i<=source);
             PBORI_ASSERT(source<=transposed_step1->nrows);
@@ -443,7 +441,7 @@ std::  sort(polys_lm.begin(), polys_lm.end(), PolyMonomialPairComparerLess());
     // setup_order_tables(step2.terms_as_exp,step2.terms_as_exp_lex,step2.ring_order2lex,step2.lex_order2ring,step2.from_term_map, terms_step2);
     
     
-    for(i=0;i<polys_rest.size();i++){
+    for(std::size_t i=0;i<polys_rest.size();i++){
         Polynomial p_r=polys_rest[i];
         Polynomial p_t=p_r.diagram().intersect(terms_step2);
         Polynomial p_u=p_r.diagram().diff(p_t.diagram());
@@ -475,7 +473,7 @@ std::  sort(polys_lm.begin(), polys_lm.end(), PolyMonomialPairComparerLess());
     }
     
     std::vector<int> remaining_col2new_col(remaining_cols);
-    for(i=0;i<remaining_cols;i++){
+    for(int i=0;i<remaining_cols;i++){
         remaining_col2new_col[i]=step2.from_term_map[step1.terms_as_exp[compactified_columns2old_columns[i]]];
     }
     PBORI_ASSERT(mat_step2_factor->ncols==mat_step1->nrows);
@@ -508,10 +506,9 @@ std::  sort(polys_lm.begin(), polys_lm.end(), PolyMonomialPairComparerLess());
     mzd_free(mat_step1);
     PBORI_ASSERT(polys_rest.size()==eliminated->nrows);
     PBORI_ASSERT(mat_step2->nrows==eliminated->nrows);
-    for(i=0;i<polys_rest.size();i++){
-        int j;
+    for(std::size_t i=0;i<polys_rest.size();i++){
         PBORI_ASSERT(remaining_cols==eliminated->ncols);
-        for(j=0;j<remaining_cols;j++){
+        for(int j=0;j<remaining_cols;j++){
             if PBORI_UNLIKELY(mzd_read_bit(eliminated,i,j)==1){
                 PBORI_ASSERT(step2.terms_as_exp[remaining_col2new_col[j]]==step1.terms_as_exp[compactified_columns2old_columns[j]]);
                 
diff --git a/groebner/include/polybori/groebner/minimal_elements.h b/groebner/include/polybori/groebner/minimal_elements.h
index 8f315aa..2c0762d 100644
--- a/groebner/include/polybori/groebner/minimal_elements.h
+++ b/groebner/include/polybori/groebner/minimal_elements.h
@@ -78,7 +78,7 @@ minimal_elements_internal2(MonomialSet s){
         return s;
     } else {
     
-        int z;
+        MonomialSet::size_type z;
         MonomialSet cv_set(s.ring());
         for(z=cv.size()-1;z>=0;z--){
             Monomial mv=Variable(cv[z], s.ring());
@@ -139,8 +139,7 @@ minimal_elements_internal3(MonomialSet s){
         return result;
     }
     std::vector<idx_type> cv=contained_variables(s);
-    int i;
-    for(i=0;i<cv.size();i++){
+    for(MonomialSet::size_type i=0;i<cv.size();i++){
             s=s.subset0(cv[i]);
             Exponent t;
             t.insert(cv[i]);
@@ -155,7 +154,7 @@ minimal_elements_internal3(MonomialSet s){
         exponents.insert(exponents.end(), s.expBegin(),s.expEnd());
         int nvars=s.ring().nVariables();
         std::vector<std::vector<int> > occ_vecs(nvars);
-        for(i=0;i<exponents.size()-1;i++){
+        for(MonomialSet::size_type i=0;i<exponents.size()-1;i++){
             Exponent::const_iterator it=((const Exponent&) exponents[i]).begin();
             Exponent::const_iterator end=((const Exponent&) exponents[i]).end();
             while(it!=end){
@@ -169,13 +168,12 @@ minimal_elements_internal3(MonomialSet s){
             occ_sets[i].insert(occ_vecs[i].begin(),occ_vecs[i].end());
         }*/
         std::vector<bool> still_minimal(exponents.size());
-        for(i=exponents.size()-1;i>=0;i--){
+        for(MonomialSet::size_type i=exponents.size()-1;i>=0;i--){
             still_minimal[i]=true;
         }
-        int result_orig=result.size();
-        //cout<<"orig:"<<exponents.size()<<endl;
+
         //lex smalles is last so backwards
-        for(i=exponents.size()-1;i>=0;i--){
+        for(MonomialSet::size_type i=exponents.size()-1;i>=0;i--){
             if (still_minimal[i]){
                 //we assume, that each exponents has deg>0
                 Exponent::const_iterator it=((const Exponent&) exponents[i]).begin();
@@ -218,7 +216,6 @@ minimal_elements_internal3(MonomialSet s){
                 result.push_back(exponents[i]);
             }
         }
-        //cout<<"after:"<<result.size()-result_orig<<endl;
         
     }
     return result;
diff --git a/groebner/include/polybori/groebner/red_tail.h b/groebner/include/polybori/groebner/red_tail.h
index e543a4f..8c67e63 100644
--- a/groebner/include/polybori/groebner/red_tail.h
+++ b/groebner/include/polybori/groebner/red_tail.h
@@ -30,7 +30,7 @@ red_tail_general(const ReductionStrategy& strat, Polynomial p){
 
   PBORI_ASSERT(!p.isZero());
 
-  int deg_bound=p.deg();
+  // int deg_bound=p.deg(); /// @todo unused?
   std::vector<Polynomial> res_vec;
   Polynomial orig_p=p;
   bool changed=false;
@@ -63,7 +63,7 @@ red_tail_general(const ReductionStrategy& strat, Polynomial p){
         rest_lead=*it;
         }
     else irr_p=p;
-    int s,i;
+    int s;
     s=irr.size();
     PBORI_ASSERT(s==irr_p.length());
     //if (s!=irr_p.length()) cout<<"ADDUP FAILED!!!!!!!!!!!!!!!!!!!!!!!!\n";
@@ -98,7 +98,7 @@ red_tail_generic(const ReductionStrategy& strat, Polynomial p){
 
   PBORI_ASSERT(!p.isZero());
 
-  int deg_bound=p.deg();
+  // int deg_bound=p.deg(); /// @todo unused?
   std::vector<Polynomial> res_vec;
   Polynomial orig_p=p;
   bool changed=false;
@@ -161,7 +161,7 @@ red_tail_generic(const ReductionStrategy& strat, Polynomial p){
         
         }
     else irr_p=p;
-    int s,i;
+    size_t s;
     s=irr.size();
 
     PBORI_ASSERT((s==irr_p.length())||(rest_is_irreducible));
diff --git a/groebner/include/polybori/groebner/tables.h b/groebner/include/polybori/groebner/tables.h
index 72d9114..7f70213 100644
--- a/groebner/include/polybori/groebner/tables.h
+++ b/groebner/include/polybori/groebner/tables.h
@@ -79,7 +79,7 @@ p2code_4(Polynomial p, const std::vector<char> & ring_2_0123){
   return p2code<unsigned int, ZeroFunction, SetBitUInt>(p,ring_2_0123, 4);
 }
 
-inline int
+inline unsigned int
 get_table_entry4(const BoolePolyRing& ring, int p_code, int pos){
   switch(ring.ordering().getBaseOrderCode()){
         #ifdef PBORI_HAVE_LP4_DATA
diff --git a/groebner/src/FGLMStrategy.cc b/groebner/src/FGLMStrategy.cc
index abe9434..b4e08ef 100644
--- a/groebner/src/FGLMStrategy.cc
+++ b/groebner/src/FGLMStrategy.cc
@@ -160,9 +160,8 @@ void FGLMStrategy::writeRowToVariableDivisors(mzd_t* row, Monomial lm){
                 monomial2MultiplicationMatrixRowIndex[lm]=divided_index;
                 first=false;
             }
-            int j;
             if (transposed){
-                for(j=0;j<varietySize;j++){
+              for(std::size_t j=0;j<varietySize;j++){
                     mzd_write_bit(mat, j, divided_index, mzd_read_bit(row,0,j));
                 }
             } else {
@@ -191,8 +190,7 @@ void transpose_window_to_row(mzd_t* transposed_vec, mzd_t* window){
 }
 Polynomial FGLMStrategy::rowToPoly(mzd_t* row){
     MonomialVector vec;
-    int i;
-    for(i=0;i<varietySize;i++){
+    for(std::size_t i=0;i<varietySize;i++){
         if (mzd_read_bit(row,0,i)==1){
             vec.push_back(standardMonomialsFromVector[i]);
         }
@@ -204,20 +202,19 @@ void FGLMStrategy::setupMultiplicationTables(){
     
     //first we write into rows, later we transpose
     //algorithm here
-    int i,j;
     multiplicationTables.resize(nVariables);
     tableXRowYIsMonomialFromWithIndex.resize(nVariables);
-    for(i=0;i<nVariables;i++){
+    for(std::size_t i=0; i < nVariables;i++){
         multiplicationTables[i]=mzd_init(varietySize,varietySize);
         tableXRowYIsMonomialFromWithIndex[i].resize(varietySize);
-        for(j=0;j<varietySize;j++){
+        for(std::size_t j=0;j<varietySize;j++){
             tableXRowYIsMonomialFromWithIndex[i][j]=-1;
         }
     }
     
     //standard monomials
     
-    for(i=0;i<standardMonomialsFromVector.size();i++){
+    for(std::size_t i=0;i<standardMonomialsFromVector.size();i++){
         Monomial m=standardMonomialsFromVector[i];
         Monomial::const_iterator it=m.begin();
         Monomial::const_iterator end=m.end();
@@ -333,9 +330,9 @@ void FGLMStrategy::setupMultiplicationTables(){
     
     {
         #ifdef DRAW_MATRICES
-        for(i=0;i<multiplicationTables.size();i++){
+      for(std::size_t i=0;i<multiplicationTables.size();i++){
             char matname[255];
-            sprintf(matname,"mult_table%d.png",i);
+            sprintf(matname,"mult_table%d.png",(int)i);
 
             draw_matrix(multiplicationTables[i],matname);
         }
@@ -355,18 +352,16 @@ void FGLMStrategy::findVectorInMultTables(mzd_t* dst, Monomial m){
         }
     }
 }
-void clear_mat(mzd_t* mat){
-    int i;
-    for(i=0;i<mat->nrows;i++){
-        mzd_row_clear_offset(mat,i,0);
-    }
+void clear_mat(mzd_t* mat) {
+  for(int i = 0; i < mat->nrows; ++i) {
+    mzd_row_clear_offset(mat,i,0);
+  }
 }
 void FGLMStrategy::transposeMultiplicationTables(){
     //From now on, we multiply, so here we transpose
-    int i;
     mzd_t* new_mat=mzd_init(varietySize,varietySize);
     mzd_t* swap;
-    for(i=0;i<multiplicationTables.size();i++){
+    for(std::size_t i=0;i<multiplicationTables.size();i++){
         //unnecassary many allocations of matrices
         //mzd_t* new_mat=mzd_init(varietySize,varietySize);
         clear_mat(new_mat);
@@ -384,8 +379,7 @@ void FGLMStrategy::transposeMultiplicationTables(){
 void FGLMStrategy::analyzeGB(const ReductionStrategy& gb){
 
     vars=gb.leadingTerms.usedVariables();
-    int i;
-    for (i=0;i<gb.size();i++){
+    for (std::size_t i=0;i<gb.size();i++){
         vars=vars * Monomial(gb[i].usedVariables, from);
     }
     
@@ -403,7 +397,7 @@ void FGLMStrategy::analyzeGB(const ReductionStrategy& gb){
     }
 
 
-    nVariables=vars.deg();
+    nVariables=vars.size();
     ring2Index.resize(from.nVariables());
     index2Ring.resize(nVariables);
     idx_type ring_index;
@@ -509,8 +503,7 @@ FGLMStrategy::IndexVector FGLMStrategy::rowVectorIsLinearCombinationOfRows(mzd_t
     //mzd_row_clear_offset(mat,d,varietySize);//might be random data at the end as mat is wider
 
 
-    int i,j;
-    for(i=0;i<varietySize;i++){
+    for(std::size_t i=0;i<varietySize;i++){
         if (mzd_read_bit(mat,d,i)==1){
             bool succ=false;
             int row_idx=rowStartingWithIndex[i];
@@ -535,7 +528,7 @@ FGLMStrategy::IndexVector FGLMStrategy::rowVectorIsLinearCombinationOfRows(mzd_t
         }
     }
     IndexVector res;
-    for(i=0;i<d;i++){
+    for(int i=0;i<d;i++){
         if (mzd_read_bit(mat,d,i+varietySize)==1){
             res.push_back(i);
         }
@@ -556,7 +549,6 @@ PolynomialVector FGLMStrategy::main(){
     mzd_t* acc1=mzd_init(1, varietySize);
     mzd_t* acc2=mzd_init(1, varietySize);
 
-    int i;
     
     typedef std::set<Monomial> MonomialSetSTL;
     
@@ -570,7 +562,7 @@ PolynomialVector FGLMStrategy::main(){
     IndexVector w_start_indices;
     rowStartingWithIndex.resize(varietySize);
     rowIsStandardMonomialToWithIndex.resize(varietySize);
-    for(i=0;i<rowStartingWithIndex.size();i++){
+    for(std::size_t i=0;i<rowStartingWithIndex.size();i++){
         rowStartingWithIndex[i]=-1;
         rowIsStandardMonomialToWithIndex[i]=-1;
     }
@@ -586,7 +578,7 @@ PolynomialVector FGLMStrategy::main(){
 
     VariableVector varsVectorTo;
     varsVectorTo.reserve(varsVector.size());
-    for(i=0;i<varsVector.size();i++){
+    for(std::size_t i=0;i<varsVector.size();i++){
       varsVectorTo.push_back(to.coerce(varsVector[i]));
       C.insert(varsVectorTo.back());
     }
@@ -652,7 +644,7 @@ PolynomialVector FGLMStrategy::main(){
                 
                 IndexVector lin_combination=rowVectorIsLinearCombinationOfRows(w_window,  v_d);
                 MonomialVector p_vec;
-                for(i=0;i<lin_combination.size();i++){
+                for(std::size_t i=0;i<lin_combination.size();i++){
                     PBORI_ASSERT (lin_combination[i]<b.size());
                     p_vec.push_back(b[lin_combination[i]]);
                 }
@@ -670,7 +662,7 @@ PolynomialVector FGLMStrategy::main(){
                 rowStartingWithIndex[e.firstNonZeroIndex]=d;
                 mzd_write_bit(w,d,varietySize+d,1);
                 if (is_standard_monomial_from){
-                    idx_type from_idx=standardMonomialsFrom2Index[m];
+                    std::size_t from_idx=standardMonomialsFrom2Index[m];
                     if (e.firstNonZeroIndex==from_idx){
                         //we assume, the row is untached
                         rowIsStandardMonomialToWithIndex[d]=d;
@@ -691,7 +683,7 @@ PolynomialVector FGLMStrategy::main(){
                 mzd_copy_row(v,d,v_d,0);
                 
                 idx_type m_begin=*m.begin();
-                for(i=0;(i<varsVectorTo.size())&&(index2Ring[i]<m_begin);i++){
+                for(std::size_t i=0;(i<varsVectorTo.size())&&(index2Ring[i]<m_begin);i++){
                   Variable var=varsVectorTo[i];
                     if (!(m.reducibleBy(var))){
                       Monomial m_v= var*m;
@@ -710,7 +702,7 @@ PolynomialVector FGLMStrategy::main(){
     mzd_free(v_d);
     mzd_free(v);
 
-    for(i=0;i<addTheseLater.size();i++){
+    for(std::size_t i=0;i<addTheseLater.size();i++){
         F.push_back(to.coerce(addTheseLater[i]));
     }
     
@@ -718,7 +710,7 @@ PolynomialVector FGLMStrategy::main(){
     mzd_free(acc2);
 
 #ifndef PBORI_NDEBUG
-    for (long idx = 0; idx < F.size(); ++idx) {
+    for (std::size_t idx = 0; idx < F.size(); ++idx) {
       PBORI_ASSERT(to.id() == F[idx].ring().id());
     }
 #endif
@@ -729,23 +721,19 @@ PolynomialVector FGLMStrategy::main(){
 void FGLMStrategy::testMultiplicationTables(){
     #ifndef PBORI_NDEBUG
 
-    int i;
-    int j;
-
-    for(i=0;i<varsVector.size();i++){
+    for(std::size_t i=0;i<varsVector.size();i++){
         Variable v=varsVector[i];
         PBORI_ASSERT (v.index()>=i);
-        for (j=0;j<standardMonomialsFromVector.size(); j++){
+        for (std::size_t j=0;j<standardMonomialsFromVector.size(); j++){
             Monomial m=standardMonomialsFromVector[j];
             mzd_t* table=multiplicationTableForVariable(v);
-            int k;
             if (m==v){continue;}
             
             Polynomial product=reducedNormalFormInFromRing(m*v);
 
             MonomialSet product_set=product.diagram();
             Polynomial sum(0, product.ring());
-            for(k=0;k<varietySize;k++){
+            for(std::size_t k=0;k<varietySize;k++){
                 Monomial m2=standardMonomialsFromVector[k];
                 
                 if (mzd_read_bit(table,j,k)==1){
@@ -780,12 +768,12 @@ bool FGLMStrategy::canAddThisElementLaterToGB(Polynomial p){
     return false;
 }
 FGLMStrategy::FGLMStrategy(const ring_with_ordering_type& from_ring, const ring_with_ordering_type& to_ring,  const PolynomialVector& gb)
-  :to(to_ring), from(from_ring), gbFrom(from_ring),
-   vars(from_ring), 
+  : vars(from_ring), 
+
    standardMonomialsFrom(from_ring),
    leadingTermsFrom(from_ring),
    varsSet(from_ring),
-   edgesUnitedVerticesFrom(from_ring) {
+    gbFrom(from_ring), edgesUnitedVerticesFrom(from_ring), from(from_ring), to(to_ring){
 
     prot=false;
     transposed=false;
diff --git a/groebner/src/GroebnerStrategy.cc b/groebner/src/GroebnerStrategy.cc
index 0adf7fa..ff939d5 100644
--- a/groebner/src/GroebnerStrategy.cc
+++ b/groebner/src/GroebnerStrategy.cc
@@ -60,7 +60,7 @@ static std::vector<Polynomial> small_next_degree_spolys(GroebnerStrategy& strat,
   strat.pairs.cleanTopByChainCriterion();
   deg_type deg=strat.pairs.queue.top().sugar;
   wlen_type wlen=strat.pairs.queue.top().wlen;
-  while((!(strat.pairs.pairSetEmpty())) &&(strat.pairs.queue.top().sugar<=deg) && (strat.pairs.queue.top().wlen<=wlen*f+2)&& (res.size()<n)){
+  while((!(strat.pairs.pairSetEmpty())) &&(strat.pairs.queue.top().sugar<=deg) && (strat.pairs.queue.top().wlen<=wlen*f+2)&& (res.size()<(std::size_t)n)){
     
     PBORI_ASSERT(strat.pairs.queue.top().sugar==deg);
     res.push_back(strat.nextSpoly());
@@ -72,19 +72,19 @@ static std::vector<Polynomial> small_next_degree_spolys(GroebnerStrategy& strat,
 
 // class members
 GroebnerStrategy::GroebnerStrategy(const GroebnerStrategy& orig):
+  GroebnerOptions(orig),
   PairManagerFacade<GroebnerStrategy>(orig),
   generators(orig.generators),
   cache(orig.cache),
-  GroebnerOptions(orig),
 
   reductionSteps(orig.reductionSteps),
   normalForms(orig.normalForms),
   currentDegree(orig.currentDegree),
+  averageLength(orig.averageLength),
   chainCriterions(orig.chainCriterions),
   variableChainCriterions(orig.variableChainCriterions),
   easyProductCriterions(orig.easyProductCriterions),
-  extendedProductCriterions(orig.extendedProductCriterions),
-  averageLength(orig.averageLength) {
+  extendedProductCriterions(orig.extendedProductCriterions) {
 
   //  this->pairs.strat = this;
 }
@@ -219,14 +219,13 @@ GroebnerStrategy::addHigherImplDelayedUsing4(const LiteralFactorization&
     std::vector<idx_type> back_2_ring(4);
     set_up_translation_vectors(ring_2_0123, back_2_ring, used_variables);
     unsigned int p_code=p2code_4(p, ring_2_0123);
-    int i;
     if ((get_table_entry4(ring, p_code,0) == p_code) &&
         (get_table_entry4(ring, p_code,1) == 0)){
       return false;
     }
     
     bool can_add_directly=true;
-    for(i=0;get_table_entry4(ring, p_code,i)!=0;i++){
+    for(int i=0;get_table_entry4(ring, p_code,i)!=0;i++){
       unsigned int impl_code=get_table_entry4(ring, p_code,i);
 
         if ((include_orig) ||(p_code!=impl_code)){
@@ -362,11 +361,10 @@ GroebnerStrategy::treatVariablePairs(PolyEntryReference entry){
   
   Polynomial rest=e.literal_factors.rest;
   
-  int rest_lm_deg=rest.leadDeg();
   Monomial rest_uv=rest.usedVariables();
   if ((rest_uv.deg() > 1) && (rest_uv.deg() < 12)){
     MonomialSet my_ones = zeros(rest + 1, rest_uv.divisors());
-    if ((my_ones.size() << rest.leadDeg()) == (1 << rest_uv.deg()))
+    if ((my_ones.size() << rest.leadDeg()) == (std::size_t(1) << rest_uv.deg()))
       return empty;
   }
 
@@ -715,10 +713,9 @@ std::vector<Polynomial> GroebnerStrategy::noroStep(const std::vector<Polynomial>
     static int round=0;
     round++;
     std::vector<Polynomial> polys;
-    int i;
     MonomialSet terms(orig_system[0].ring());
     
-    for(i=0;i<orig_system.size();i++){
+    for(std::size_t i=0;i<orig_system.size();i++){
         Polynomial p=orig_system[i];
         if PBORI_LIKELY(!(p.isZero())){
             p=ll_red_nf(p,generators.llReductor);
@@ -759,11 +756,11 @@ std::vector<Polynomial> GroebnerStrategy::noroStep(const std::vector<Polynomial>
 
     from_term_map_type from_term_map;
     //to_term_map_type to_term_map;
-    for (i=0;i<terms_as_exp.size();i++){
+    for (std::size_t i=0;i<terms_as_exp.size();i++){
         from_term_map[terms_as_exp[i]]=i;
         //to_term_map[i]=terms_as_exp[i]);
     }
-    for(i=0;i<polys.size();i++){
+    for(std::size_t i=0;i<polys.size();i++){
         Polynomial::exp_iterator it=polys[i].expBegin();//not order dependend
         Polynomial::exp_iterator end=polys[i].expEnd();
         while(it!=end){
@@ -795,10 +792,10 @@ std::vector<Polynomial> GroebnerStrategy::noroStep(const std::vector<Polynomial>
     else
             rank=0;
     #endif
-    for(i=rank-1;i>=0;i--){
-        int j;
+    for(int i=rank-1;i>=0;i--){
+        int j=0;
         std::vector<Exponent> p_t;
-        for(j=0;j<cols;j++){
+        for(;j<cols;j++){
             #ifndef PBORI_HAVE_M4RI
             if (mat[i][j]==1)
             #else
diff --git a/groebner/src/LiteralFactorization.cc b/groebner/src/LiteralFactorization.cc
index 5bb3e4e..2c2ce42 100644
--- a/groebner/src/LiteralFactorization.cc
+++ b/groebner/src/LiteralFactorization.cc
@@ -398,7 +398,7 @@ bool maps_to_zero( const std::pair<const polybori::groebner::idx_type, int>  v){
     return (v.second==0);
 }
 bool LiteralFactorization::is11Factorization() const {
-    if (this->factors.size()==lmDeg){
+  if (this->factors.size() == std::size_t(lmDeg)){
         if (find_if(factors.begin(),factors.end(), maps_to_zero)==factors.end()){
             return true;
         } else return false;
@@ -406,7 +406,7 @@ bool LiteralFactorization::is11Factorization() const {
     return false;
 }
 bool LiteralFactorization::is00Factorization() const {
-    if (this->factors.size()==lmDeg){
+  if (this->factors.size() == std::size_t(lmDeg)){
         if (find_if(factors.begin(),factors.end(), maps_to_one)==factors.end()){
             return true;
         } else return false;
diff --git a/groebner/src/groebner_alg.cc b/groebner/src/groebner_alg.cc
index 2b704de..d214a51 100644
--- a/groebner/src/groebner_alg.cc
+++ b/groebner/src/groebner_alg.cc
@@ -35,7 +35,7 @@
 
 BEGIN_NAMESPACE_PBORIGB
 
-static MonomialSet divide_monomial_divisors_out(const BooleSet& s, const Monomial& lm);
+//static MonomialSet divide_monomial_divisors_out(const BooleSet& s, const Monomial& lm);
 
 
 //Variant for navigaor
@@ -319,32 +319,33 @@ return
 //static Monomial oper(int i){
 //    return Monomial(Variable(i));
 //}
-static MonomialSet divide_monomial_divisors_out_old(const MonomialSet& s, const Monomial& lm){
-  /// deactivated, because segfaults on SatTestCase, AD
-  ///   return s.existAbstract(lm.diagram());
-  /**/
-    MonomialSet m=s;
-    Monomial::const_iterator it_lm=lm.begin();
-        Monomial::const_iterator end_lm=lm.end();
-        while(it_lm!=end_lm){
-            idx_type i=*it_lm;
-            m=m.subset0(i).unite(m.subset1(i));
-            it_lm++;
-        }
-   return m;/**/
-}
-static MonomialSet do_divide_monomial_divisors_out(const MonomialSet& s, Monomial::const_iterator it, Monomial::const_iterator end){
-    if(it==end) return s;
-    if (s.isZero()) return s;
+// static MonomialSet divide_monomial_divisors_out_old(const MonomialSet& s, const Monomial& lm){
+//   /// deactivated, because segfaults on SatTestCase, AD
+//   ///   return s.existAbstract(lm.diagram());
+//   /**/
+//     MonomialSet m=s;
+//     Monomial::const_iterator it_lm=lm.begin();
+//         Monomial::const_iterator end_lm=lm.end();
+//         while(it_lm!=end_lm){
+//             idx_type i=*it_lm;
+//             m=m.subset0(i).unite(m.subset1(i));
+//             it_lm++;
+//         }
+//    return m;/**/
+// }
+// static MonomialSet do_divide_monomial_divisors_out(const MonomialSet& s, Monomial::const_iterator it, Monomial::const_iterator end){
+//     if(it==end) return s;
+//     if (s.isZero()) return s;
     
-    Monomial::const_iterator itpp=it;
-    itpp++;
-    return (do_divide_monomial_divisors_out(s.subset0(*it),itpp,end).unite(do_divide_monomial_divisors_out(s.subset1(*it),itpp,end)));
+//     Monomial::const_iterator itpp=it;
+//     itpp++;
+//     return (do_divide_monomial_divisors_out(s.subset0(*it),itpp,end).unite(do_divide_monomial_divisors_out(s.subset1(*it),itpp,end)));
     
-}
-static MonomialSet divide_monomial_divisors_out(const BooleSet& s, const Monomial& lm){
-    return do_divide_monomial_divisors_out(s,lm.begin(),lm.end());
-}
+// }
+
+// static MonomialSet divide_monomial_divisors_out(const BooleSet& s, const Monomial& lm){
+//     return do_divide_monomial_divisors_out(s,lm.begin(),lm.end());
+// }
 
 
 // Core function which uses the manager given as firt argument
@@ -413,12 +414,6 @@ Polynomial map_every_x_to_x_plus_one(Polynomial p){
 
 
 
-
-static int get_first_variable_index(const Polynomial& p){
-    return *(p.navigation());
-}
-
-
 Polynomial mult_fast_sim(const std::vector<Polynomial>& vec,
 			 const BoolePolyRing& ring){
     std::vector<Polynomial> new_vec;
diff --git a/groebner/src/nf.cc b/groebner/src/nf.cc
index a3f0461..372c05e 100644
--- a/groebner/src/nf.cc
+++ b/groebner/src/nf.cc
@@ -40,24 +40,24 @@ BEGIN_NAMESPACE_PBORIGB
 
 
 
-static int log2_floor(int n){
-    int i;
-    for(i=0;__M4RI_TWOPOW(i)<=n;i++){}
-    return i-1;
-}
-static int optimal_k_for_multiplication(int a,int b,int c,const GroebnerStrategy& strat){
-    int res=std::min(M4RI_MAXKAY,std::max(1,log2_floor(b)));
-    if PBORI_UNLIKELY(strat.enabledLog)
-        std::cout<<"optimal k for multiplication:"<<res<<std::endl;
-    return res;
-}
-static int optimal_k_for_gauss(int m, int n, const GroebnerStrategy& strat){
-    int l=std::min(n,m);
-    int res=std::min(M4RI_MAXKAY,std::max(1,log2_floor(l)+1-log2_floor(log2_floor(l))));
-    if PBORI_UNLIKELY(strat.enabledLog)
-        std::cout<<"optimal k for gauss:"<<res<<std::endl;
-    return res;
-}
+// static int log2_floor(int n){
+//   unsigned i = 0;
+//   for(;__M4RI_TWOPOW(i)<=(unsigned)n;i++){}
+//     return i-1;
+// }
+// static int optimal_k_for_multiplication(int a,int b,int c,const GroebnerStrategy& strat){
+//     int res=std::min(M4RI_MAXKAY,std::max(1,log2_floor(b)));
+//     if PBORI_UNLIKELY(strat.enabledLog)
+//         std::cout<<"optimal k for multiplication:"<<res<<std::endl;
+//     return res;
+// }
+// static int optimal_k_for_gauss(int m, int n, const GroebnerStrategy& strat){
+//     int l=std::min(n,m);
+//     int res=std::min(M4RI_MAXKAY,std::max(1,log2_floor(l)+1-log2_floor(log2_floor(l))));
+//     if PBORI_UNLIKELY(strat.enabledLog)
+//         std::cout<<"optimal k for gauss:"<<res<<std::endl;
+//     return res;
+// }
 
 
 
@@ -238,23 +238,22 @@ const int FARE_WORSE=10;
 //   return p;
 // }
 
-static Polynomial exchange(GroebnerStrategy& strat , int i, const Polynomial & p){
-  PBORI_ASSERT(p.lead() == strat.generators[i].lead);
-  PolyEntry e(p);
+// static Polynomial exchange(GroebnerStrategy& strat , int i, const Polynomial & p){
+//   PBORI_ASSERT(p.lead() == strat.generators[i].lead);
+//   PolyEntry e(p);
 
-  e.vPairCalculated=strat.generators[i].vPairCalculated;
-  Polynomial res=spoly(strat.generators[i].p,p);
-  strat.generators.exchange(i, e);
+//   e.vPairCalculated=strat.generators[i].vPairCalculated;
+//   Polynomial res=spoly(strat.generators[i].p,p);
+//   strat.generators.exchange(i, e);
 
-  return res;
-}
+//   return res;
+// }
 
 static Polynomial exchange_with_promise(GroebnerStrategy& strat , int i, const Polynomial & p){
   PBORI_ASSERT(p.lead()==strat.generators[i].lead);
 
   //PolyEntry e(p);
   //e.vPairCalculated=strat.generators[i].vPairCalculated;
-  bool minimal=strat.generators[i].minimal;
   Polynomial res=strat.generators[i].p;
   strat.generators.exchange(i,p);
 
@@ -518,49 +517,49 @@ int sum_size(const MonomialSet& s1, const MonomialSet& s2){
 }
 
 
-static void step_T_complex(std::vector<PolynomialSugar>& curr, std::vector<Polynomial>& result,  const BooleMonomial& lm,GroebnerStrategy& strat){
-  std::sort(curr.begin(), curr.end(), PSCompareByEl());
-  const int max_cans=5;
-  int s=curr.size();
-  Polynomial reductor(lm.ring());
-  int found;
-  wlen_type pivot_el;
+// static void step_T_complex(std::vector<PolynomialSugar>& curr, std::vector<Polynomial>& result,  const BooleMonomial& lm,GroebnerStrategy& strat){
+//   std::sort(curr.begin(), curr.end(), PSCompareByEl());
+//   const int max_cans=5;
+//   int s=curr.size();
+//   Polynomial reductor(lm.ring());
+
+//   wlen_type pivot_el;
   
-  pivot_el=curr[0].eliminationLength();
+//   pivot_el=curr[0].eliminationLength();
   
-  int i,j;
-  for (i=s-1;i>0;i--){
-    int found=0;
-    MonomialSet as_set(curr[i].value());
-    int c_size=sum_size(as_set, MonomialSet(curr[0].value()));
-    for (j=1;j<std::min(i,max_cans);j++){ 
-      int size2=sum_size(as_set, MonomialSet(curr[j].value()));
-      if (size2<c_size){
-        found=j;
-        c_size=size2;
-      }
-    }
-    curr[i].add(curr[found].value(), curr[found].getSugar(), curr[found].getLengthEstimation());
-  }
-  reductor=curr[0].value();
-  curr.erase(curr.begin());
-  PBORI_ASSERT(!(reductor.isZero()));
-  result.push_back(reductor);
+//   int i,j;
+//   for (i=s-1;i>0;i--){
+//     int found=0;
+//     MonomialSet as_set(curr[i].value());
+//     int c_size=sum_size(as_set, MonomialSet(curr[0].value()));
+//     for (j=1;j<std::min(i,max_cans);j++){ 
+//       int size2=sum_size(as_set, MonomialSet(curr[j].value()));
+//       if (size2<c_size){
+//         found=j;
+//         c_size=size2;
+//       }
+//     }
+//     curr[i].add(curr[found].value(), curr[found].getSugar(), curr[found].getLengthEstimation());
+//   }
+//   reductor=curr[0].value();
+//   curr.erase(curr.begin());
+//   PBORI_ASSERT(!(reductor.isZero()));
+//   result.push_back(reductor);
   
   
-}
+// }
 
-static void step_T(std::vector<PolynomialSugar>& curr, std::vector<Polynomial>& result,  const BooleMonomial& lm,GroebnerStrategy& strat){
-  int s=curr.size();
+// static void step_T(std::vector<PolynomialSugar>& curr, std::vector<Polynomial>& result,  const BooleMonomial& lm,GroebnerStrategy& strat){
+//   int s=curr.size();
 
-  if (s>2) return step_T_complex(curr,result, lm, strat);
-  else
-    step_T_complex(curr,result, lm, strat);
+//   if (s>2) return step_T_complex(curr,result, lm, strat);
+//   else
+//     step_T_complex(curr,result, lm, strat);
 
 
   
   
-}
+// }
 
 
 std::vector<Polynomial> parallel_reduce(std::vector<Polynomial> inp, GroebnerStrategy& strat, int average_steps, double delay_f){
@@ -570,26 +569,25 @@ std::vector<Polynomial> parallel_reduce(std::vector<Polynomial> inp, GroebnerStr
   if (inp.empty())
     return result;
 
-  int i,s;
-  s=inp.size();
+  std::size_t s=inp.size();
   int max_steps=average_steps*s;
   int steps=0;
   std::priority_queue<PolynomialSugar, std::vector<PolynomialSugar>, LMLessComparePS> to_reduce;
   deg_type max_sugar=0;
-  Polynomial::size_type max_length=0;
+  ///  Polynomial::size_type max_length=0;
   
-  for(i=0;i<s;i++){
-    if (inp[i].isOne()){
-      result.push_back(inp[i]);
-      return result;
-    }
-		if (inp[i].isZero()) continue;
-    PolynomialSugar to_push=PolynomialSugar(inp[i]);
-    //max_length=std::max(max_length,inp[i].length());
-    
-    max_sugar=std::max(max_sugar,to_push.getSugar());
-    
-    to_reduce.push(to_push);
+  for(std::size_t i=0;i<s;i++){
+      if (inp[i].isOne()){
+        result.push_back(inp[i]);
+        return result;
+      }
+      if (inp[i].isZero()) continue;
+      PolynomialSugar to_push=PolynomialSugar(inp[i]);
+      //max_length=std::max(max_length,inp[i].length());
+      
+      max_sugar=std::max(max_sugar,to_push.getSugar());
+      
+      to_reduce.push(to_push);
   }
   const idx_type last_block_start=inp[0].ring().ordering().lastBlockStart();
   while (!(to_reduce.empty())){
@@ -614,7 +612,7 @@ std::vector<Polynomial> parallel_reduce(std::vector<Polynomial> inp, GroebnerStr
                 la=strat.faugereStepDense(la);
                 
                 //result.insert(result.size(),la.begin(),la.end());
-                for(i=0;i<la.size();i++){
+                for(std::size_t i=0;i<la.size();i++){
                     PBORI_ASSERT(!(la[i].isZero()));
                     result.push_back(la[i]);
                 }
@@ -644,8 +642,7 @@ std::vector<Polynomial> parallel_reduce(std::vector<Polynomial> inp, GroebnerStr
     } else {
       //simly take the first, not so clever
      
-      int i,s;
-      s=curr.size();
+      std::size_t s = curr.size();
       if (s>1){
         steps+=curr.size()-1;
         step_T_simple(curr,result,lm,strat);
@@ -660,7 +657,7 @@ std::vector<Polynomial> parallel_reduce(std::vector<Polynomial> inp, GroebnerStr
     
     //after each loop push back
     s=curr.size();
-    for(i=0;i<s;i++){
+    for(std::size_t i=0; i < s; i++){
       if (!(curr[i].isZero())){
         if (((!strat.optLazy) ||((curr[i].getSugar()<=max_sugar)
        ))||(curr[i].isOne())){
@@ -695,8 +692,7 @@ std::vector<Polynomial> parallel_reduce(std::vector<Polynomial> inp, GroebnerStr
                     to_reduce.pop();
                 }
                 std::vector<PolynomialSugar>::iterator for_basis=std::min_element(this_lm.begin(),this_lm.end(),PSCompareByEl());
-                int i;
-                for(i=0;i<this_lm.size();i++){
+                for(std::size_t i=0;i<this_lm.size();i++){
                     if (this_lm[i].value()!=for_basis->value()){
                         strat.addGeneratorDelayed(this_lm[i].value());
                     }
@@ -756,23 +752,23 @@ int select_no_deg_growth(const ReductionStrategy& strat, const Monomial& m){
   
 }
 
-static Polynomial nf4(GroebnerStrategy& strat, Polynomial p){
-  int index;
-  while((index=strat.generators.select1(p))>=0){
-    PBORI_ASSERT(index<strat.generators.size());
-    const Polynomial* g=&strat.generators[index].p;
+// static Polynomial nf4(GroebnerStrategy& strat, Polynomial p){
+//   int index;
+//   while((index=strat.generators.select1(p))>=0){
+//     PBORI_ASSERT(index<strat.generators.size());
+//     const Polynomial* g=&strat.generators[index].p;
     
-    if((strat.generators[index].ecart()==0) && (strat.generators[index].length<=4) &&(strat.generators[index].lead!=p.lead())){
-      wlen_type dummy;
-      p=reduce_complete(p,strat.generators[index],dummy);
+//     if((strat.generators[index].ecart()==0) && (strat.generators[index].length<=4) &&(strat.generators[index].lead!=p.lead())){
+//       wlen_type dummy;
+//       p=reduce_complete(p,strat.generators[index],dummy);
       
-    } else{
-      p=spoly(p,*g);
-    }
-  }
-  return p;
+//     } else{
+//       p=spoly(p,*g);
+//     }
+//   }
+//   return p;
   
-}
+// }
 
 Polynomial do_plug_1(const Polynomial& p, const MonomialSet& m_plus_ones){
     MonomialSet::navigator m_nav=m_plus_ones.navigation();
diff --git a/libpolybori/include/polybori/BooleExponent.h b/libpolybori/include/polybori/BooleExponent.h
index 7abad09..f682a2f 100644
--- a/libpolybori/include/polybori/BooleExponent.h
+++ b/libpolybori/include/polybori/BooleExponent.h
@@ -115,7 +115,7 @@ class BooleExponent:
   void resize(size_type nsize) { m_data.resize(nsize); }
 
   /// Degree of the corresponding monomial
-  size_type deg() const { return size(); }
+  deg_type deg() const { return size(); }
 
   /// Divisors of the monomial
   set_type divisors(const ring_type&) const;
@@ -206,7 +206,7 @@ class BooleExponent:
 //   bool_type reducibleBy(const var_type& rhs) const;
 
   /// Degree of the least common multiple
-  size_type LCMDeg(const self&) const;
+  deg_type LCMDeg(const self&) const;
 
   /// Compute theleast common multiple and assign
   /// self& LCMAssign(const self&);
diff --git a/libpolybori/include/polybori/BooleSet.h b/libpolybori/include/polybori/BooleSet.h
index 499fd75..ce2f4ed 100644
--- a/libpolybori/include/polybori/BooleSet.h
+++ b/libpolybori/include/polybori/BooleSet.h
@@ -167,7 +167,7 @@ public:
   exp_type usedVariablesExp() const;
 
   self change(idx_type idx) const {
-    if PBORI_UNLIKELY(idx >= ring().nVariables())
+    if PBORI_UNLIKELY(size_type(idx) >= ring().nVariables())
       throw PBoRiError(CTypes::out_of_bounds);
     return base::change(idx);
   }
diff --git a/libpolybori/include/polybori/factories/VariableBlock.h b/libpolybori/include/polybori/factories/VariableBlock.h
index 46f8a2b..4ce320e 100644
--- a/libpolybori/include/polybori/factories/VariableBlock.h
+++ b/libpolybori/include/polybori/factories/VariableBlock.h
@@ -49,15 +49,14 @@ public:
   VariableBlock(idx_type size, idx_type start_index, idx_type offset,
                 bool reverse, const ring_type& ring):
     base(ring), 
-    m_start_index(start_index), m_offset(offset),
-    m_last (start_index + size - 1), m_reverse(reverse) { }
+    m_start_index(start_index), 
+    m_last (start_index + size - 1), m_offset(offset), m_reverse(reverse) { }
 
   /// Copy constructor
   VariableBlock(const self& rhs):
     base(rhs),
     m_start_index(rhs.m_start_index),
-    m_offset(rhs.m_offset),
-    m_last(rhs.m_last), m_reverse(rhs.m_reverse) { } 
+    m_last(rhs.m_last), m_offset(rhs.m_offset), m_reverse(rhs.m_reverse) { } 
 
   /// Destructor
   ~VariableBlock() {}
diff --git a/libpolybori/include/polybori/iterators/CTermStack.h b/libpolybori/include/polybori/iterators/CTermStack.h
index 1268882..1335493 100644
--- a/libpolybori/include/polybori/iterators/CTermStack.h
+++ b/libpolybori/include/polybori/iterators/CTermStack.h
@@ -51,7 +51,7 @@ struct cached_deg {
   typedef typename cache_type::manager_type manager_type;
   cached_deg(const manager_type & mgr): m_deg_cache(mgr) {}
 
-  typename NavigatorType::size_type
+  typename NavigatorType::deg_type
   operator()(NavigatorType navi) const {
     return dd_cached_degree(m_deg_cache, navi);
   }
@@ -591,6 +591,7 @@ public:
   typedef CTermStack<NavigatorType, Category, BaseType> base;
   typedef NavigatorType navigator;
   typedef typename base::idx_type idx_type;
+  typedef typename base::deg_type deg_type;
   typedef typename base::size_type size_type;
   typedef typename cached_block_deg<navigator>::manager_type manager_type;
 
@@ -601,7 +602,7 @@ public:
   CDegStackCore(const CDegStackCore& rhs):
     base(rhs), block(rhs.block) {}
 
-  size_type getDeg(navigator navi) const { return block(navi); }
+  deg_type getDeg(navigator navi) const { return block(navi); }
 
   bool atBegin() const { 
     return base::empty() || (base::index() < block.min()); 
@@ -810,7 +811,7 @@ public:
         }
         base::gotoEnd();
 
-        if (doloop = (base::isInvalid() || (base::size() != size)) )
+        if ((doloop = (base::isInvalid() || (base::size() != size)) ) )
           base::decrementNode();
 
     } while (!base::empty() && doloop);
diff --git a/libpolybori/include/polybori/ring/CCuddCore.h b/libpolybori/include/polybori/ring/CCuddCore.h
index 6628cd6..d5d7930 100644
--- a/libpolybori/include/polybori/ring/CCuddCore.h
+++ b/libpolybori/include/polybori/ring/CCuddCore.h
@@ -90,15 +90,13 @@ public:
 
   /// Initialize raw decision diagram management
   CCuddCore(size_type numVarsZ, const order_ptr& order):  
-    ref(0), m_names(numVarsZ), 
-    m_mgr(0, numVarsZ), pOrder(order) {
-
-  }
+    m_mgr(0, numVarsZ), ref(0), m_names(numVarsZ), 
+    pOrder(order) {  }
 
   /// Copy Constructor (nearly deep copy, but shallow copy of manager, names and
   /// ordering)
   CCuddCore(const self& rhs):
-    ref(0), m_mgr(rhs.m_mgr), m_names(rhs.m_names), pOrder(rhs.pOrder) { }
+    m_mgr(rhs.m_mgr), ref(0), m_names(rhs.m_names), pOrder(rhs.pOrder) { }
 
   /// Destructor
   ~CCuddCore(){ }
diff --git a/libpolybori/include/polybori/ring/CCuddInterface.h b/libpolybori/include/polybori/ring/CCuddInterface.h
index 61b2784..8910ecc 100644
--- a/libpolybori/include/polybori/ring/CCuddInterface.h
+++ b/libpolybori/include/polybori/ring/CCuddInterface.h
@@ -54,6 +54,10 @@ inline const char* error_text(PBORI_PREFIX(DdManager)* mgr) {
       return("Invalid argument.");
     case CUDD_INTERNAL_ERROR:
       return("Internal error.");
+    case CUDD_TIMEOUT_EXPIRED:
+      return("Timed out.");
+    case CUDD_NO_ERROR:
+      return("No error. (Should not reach here!)");
     }
     return("Unexpected error.");
   }
@@ -68,10 +72,8 @@ intrusive_ptr_add_ref(PBORI_PREFIX(DdManager)* ptr){
 inline void 
 intrusive_ptr_release(PBORI_PREFIX(DdManager)* ptr) {
   if (!(--(ptr->hooks))) {
-    int retval = PBORI_PREFIX(Cudd_CheckZeroRef)(ptr);
-    // Check for unexpected non-zero reference counts
-    PBORI_ASSERT(retval == 0);
 
+    PBORI_ASSERT(PBORI_PREFIX(Cudd_CheckZeroRef)(ptr) == 0);
     PBORI_PREFIX(Cudd_Quit)(ptr);
   }
 }
@@ -134,7 +136,7 @@ public:
                  unsigned long maxMemory = PBORI_MAX_MEMORY):
     p_mgr(init(numVars, numVarsZ, numSlots, cacheSize, maxMemory)),
     m_vars(numVarsZ) {
-    for (idx_type idx = 0; idx < numVarsZ; ++idx) initVar(m_vars[idx], idx);
+    for (idx_type idx = 0; size_type(idx) < numVarsZ; ++idx) initVar(m_vars[idx], idx);
   }
 
   /// Copy constructor
@@ -293,7 +295,7 @@ public:
 
 
   node_ptr getVar(idx_type idx) const {
-    if PBORI_UNLIKELY(idx >= m_vars.size())
+    if PBORI_UNLIKELY(size_type(idx) >= m_vars.size())
       throw PBoRiError(CTypes::out_of_bounds);
     return  m_vars[idx];
   }
diff --git a/libpolybori/src/BooleExponent.cc b/libpolybori/src/BooleExponent.cc
index 55996b9..bd66f7e 100644
--- a/libpolybori/src/BooleExponent.cc
+++ b/libpolybori/src/BooleExponent.cc
@@ -289,7 +289,7 @@ BooleExponent::divide(const monom_type& rhs) const {
 }
 
 // Degree of the lcm
-BooleExponent::size_type
+BooleExponent::deg_type
 BooleExponent::LCMDeg(const self& rhs) const {
 
   PBORI_TRACE_FUNC( "BooleExponent::LCMDeg(const self&) const" );
diff --git a/libpolybori/src/BoolePolynomial.cc b/libpolybori/src/BoolePolynomial.cc
index c475360..08e7563 100644
--- a/libpolybori/src/BoolePolynomial.cc
+++ b/libpolybori/src/BoolePolynomial.cc
@@ -791,7 +791,7 @@ BoolePolynomial::eliminationLength() const{
     return 0;
   if (ring().ordering().isTotalDegreeOrder())
     return this->length();
-  size_type deg=this->deg();
+  deg_type deg=this->deg();
   if (deg==this->leadDeg()){
     return this->length();
   }
diff --git a/testsuite/src/BooleMonomialTest.cc b/testsuite/src/BooleMonomialTest.cc
index ad7969f..e888c1e 100644
--- a/testsuite/src/BooleMonomialTest.cc
+++ b/testsuite/src/BooleMonomialTest.cc
@@ -31,10 +31,10 @@ struct Fmonom {
   typedef BooleMonomial monom_type;
   Fmonom(const BoolePolyRing& input_ring = BoolePolyRing(5)):  
     ring(input_ring),
+    bset(1, ring.one(), ring.zero()),
     bexp(BooleExponent().change(1)),
     x(0, input_ring), y(1, input_ring), z(2, input_ring),
-    v(3, input_ring), w(4, input_ring),
-    bset(1, ring.one(), ring.zero()) {
+    v(3, input_ring), w(4, input_ring) {
 
     BOOST_TEST_MESSAGE( "setup fixture" );
     bset = BooleSet(1, ring.one(), ring.zero()); // something non-trivial
diff --git a/testsuite/src/PolynomialFactoryTest.cc b/testsuite/src/PolynomialFactoryTest.cc
index d536336..40249f9 100644
--- a/testsuite/src/PolynomialFactoryTest.cc
+++ b/testsuite/src/PolynomialFactoryTest.cc
@@ -48,8 +48,8 @@ struct Fpolyfac {
 
   BoolePolyRing ring;
   BooleExponent bexp;
-  BooleSet bset;
   BooleVariable x, y, z, v, w;
+  BooleSet bset;
 };
 
 

-- 
polybori: Polynomials over Boolean Rings



More information about the debian-science-commits mailing list