[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