[mathicgb] 320/393: Renamed BuchbergerAlg to ClassicGBAlg and GroebnerBasis to SigPolyBasis.
Doug Torrance
dtorrance-guest at moszumanska.debian.org
Fri Apr 3 15:59:28 UTC 2015
This is an automated email from the git hooks/post-receive script.
dtorrance-guest pushed a commit to branch upstream
in repository mathicgb.
commit 8c5eca7a6729d311f598091659471c67b8551f3f
Author: Bjarke Hammersholt Roune <bjarkehr.code at gmail.com>
Date: Mon May 13 15:27:08 2013 +0200
Renamed BuchbergerAlg to ClassicGBAlg and GroebnerBasis to SigPolyBasis.
---
Makefile.am | 6 +--
src/cli/GBAction.cpp | 4 +-
src/mathicgb.cpp | 6 +--
.../{BuchbergerAlg.cpp => ClassicGBAlg.cpp} | 22 ++++----
.../{BuchbergerAlg.hpp => ClassicGBAlg.hpp} | 11 ++--
src/mathicgb/DivLookup.hpp | 32 ++++++------
src/mathicgb/DivisorLookup.cpp | 2 +-
src/mathicgb/DivisorLookup.hpp | 4 +-
src/mathicgb/F4Reducer.cpp | 2 +-
src/mathicgb/F4Reducer.hpp | 2 +-
src/mathicgb/PolyBasis.hpp | 10 ++--
src/mathicgb/Reducer.cpp | 2 +-
src/mathicgb/Reducer.hpp | 4 +-
src/mathicgb/SPairs.cpp | 2 +-
.../{GroebnerBasis.cpp => SigPolyBasis.cpp} | 59 +++++++++++-----------
.../{GroebnerBasis.hpp => SigPolyBasis.hpp} | 30 +++++------
src/mathicgb/SigSPairQueue.cpp | 14 ++---
src/mathicgb/SigSPairQueue.hpp | 4 +-
src/mathicgb/SigSPairs.cpp | 4 +-
src/mathicgb/SigSPairs.hpp | 6 +--
src/mathicgb/SignatureGB.cpp | 2 +-
src/mathicgb/SignatureGB.hpp | 6 +--
src/mathicgb/TypicalReducer.cpp | 4 +-
src/mathicgb/TypicalReducer.hpp | 4 +-
src/mathicgb/io-util.cpp | 6 +--
src/mathicgb/io-util.hpp | 6 +--
src/test/gb-test.cpp | 6 +--
src/test/poly-test.cpp | 2 +-
28 files changed, 130 insertions(+), 132 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 8139165..303ec57 100755
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,11 +15,11 @@ libmathicgb_la_LIBADD= $(DEPS_LIBS)
# sources ensure that those files are included in distributions.
libmathicgb_la_SOURCES = src/mathicgb/BjarkeGeobucket2.cpp \
src/mathicgb/BjarkeGeobucket2.hpp src/mathicgb/BjarkeGeobucket.cpp \
- src/mathicgb/BjarkeGeobucket.hpp src/mathicgb/BuchbergerAlg.cpp \
- src/mathicgb/BuchbergerAlg.hpp src/mathicgb/ChainedHashTable.cpp \
+ src/mathicgb/BjarkeGeobucket.hpp src/mathicgb/ClassicGBAlg.cpp \
+ src/mathicgb/ClassicGBAlg.hpp src/mathicgb/ChainedHashTable.cpp \
src/mathicgb/ChainedHashTable.hpp src/mathicgb/DivisorLookup.hpp \
src/mathicgb/DivisorLookup.cpp src/mathicgb/DivLookup.hpp \
- src/mathicgb/GroebnerBasis.cpp src/mathicgb/GroebnerBasis.hpp \
+ src/mathicgb/SigPolyBasis.cpp src/mathicgb/SigPolyBasis.hpp \
src/mathicgb/HashTourReducer.cpp src/mathicgb/HashTourReducer.hpp \
src/mathicgb/Basis.cpp src/mathicgb/Basis.hpp \
src/mathicgb/io-util.cpp src/mathicgb/io-util.hpp \
diff --git a/src/cli/GBAction.cpp b/src/cli/GBAction.cpp
index 16b521b..2aa818a 100755
--- a/src/cli/GBAction.cpp
+++ b/src/cli/GBAction.cpp
@@ -1,7 +1,7 @@
#include "mathicgb/stdinc.h"
#include "GBAction.hpp"
-#include "mathicgb/BuchbergerAlg.hpp"
+#include "mathicgb/ClassicGBAlg.hpp"
#include "mathicgb/Basis.hpp"
#include "mathicgb/io-util.hpp"
#include "mathicgb/F4Reducer.hpp"
@@ -78,7 +78,7 @@ void GBAction::performAction() {
reducer = std::move(f4Reducer);
}
- BuchbergerAlg alg(
+ ClassicGBAlg alg(
basis,
*reducer,
mGBParams.mDivisorLookup.value(),
diff --git a/src/mathicgb.cpp b/src/mathicgb.cpp
index ee94f74..4ff4b61 100755
--- a/src/mathicgb.cpp
+++ b/src/mathicgb.cpp
@@ -5,7 +5,7 @@
#include "mathicgb/PolyRing.hpp"
#include "mathicgb/Poly.hpp"
#include "mathicgb/Reducer.hpp"
-#include "mathicgb/BuchbergerAlg.hpp"
+#include "mathicgb/ClassicGBAlg.hpp"
#include "mathicgb/mtbb.hpp"
#include "mathicgb/LogDomainSet.hpp"
#include <mathic.h>
@@ -762,7 +762,7 @@ namespace mgbi {
}
namespace {
- class CallbackAdapter : public BuchbergerAlg::Callback {
+ class CallbackAdapter : public ClassicGBAlg::Callback {
public:
typedef mgb::GroebnerConfiguration::Callback::Action Action;
@@ -838,7 +838,7 @@ namespace mgbi {
);
// Set up and configure algorithm
- BuchbergerAlg alg(basis, *reducer, 2, true, 0);
+ ClassicGBAlg alg(basis, *reducer, 2, true, 0);
alg.setReducerMemoryQuantum(100 * 1024);
alg.setUseAutoTopReduction(true);
alg.setUseAutoTailReduction(false);
diff --git a/src/mathicgb/BuchbergerAlg.cpp b/src/mathicgb/ClassicGBAlg.cpp
similarity index 97%
rename from src/mathicgb/BuchbergerAlg.cpp
rename to src/mathicgb/ClassicGBAlg.cpp
index f08b190..5603cd7 100755
--- a/src/mathicgb/BuchbergerAlg.cpp
+++ b/src/mathicgb/ClassicGBAlg.cpp
@@ -1,5 +1,5 @@
#include "stdinc.h"
-#include "BuchbergerAlg.hpp"
+#include "ClassicGBAlg.hpp"
#include "Basis.hpp"
#include "LogDomain.hpp"
@@ -10,7 +10,7 @@ MATHICGB_DEFINE_LOG_DOMAIN(
"Displays the degree of the S-pairs being considered in Buchberger's algorithm."
);
-BuchbergerAlg::BuchbergerAlg(
+ClassicGBAlg::ClassicGBAlg(
const Basis& basis,
Reducer& reducer,
int divisorLookupType,
@@ -40,14 +40,14 @@ BuchbergerAlg::BuchbergerAlg(
insertPolys(polys);
}
-void BuchbergerAlg::setSPairGroupSize(unsigned int groupSize) {
+void ClassicGBAlg::setSPairGroupSize(unsigned int groupSize) {
if (groupSize == 0)
groupSize = mReducer.preferredSetSize();
else
mSPairGroupSize = groupSize;
}
-void BuchbergerAlg::insertPolys
+void ClassicGBAlg::insertPolys
(std::vector<std::unique_ptr<Poly> >& polynomials)
{
if (!mUseAutoTopReduction) {
@@ -113,7 +113,7 @@ void BuchbergerAlg::insertPolys
MATHICGB_ASSERT(toReduce.empty());
}
-void BuchbergerAlg::insertReducedPoly(
+void ClassicGBAlg::insertReducedPoly(
std::unique_ptr<Poly> polyToInsert
) {
MATHICGB_ASSERT(polyToInsert.get() != 0);
@@ -199,7 +199,7 @@ void BuchbergerAlg::insertReducedPoly(
MATHICGB_ASSERT(toRetireAndReduce.empty());
}
-void BuchbergerAlg::computeGrobnerBasis() {
+void ClassicGBAlg::computeGrobnerBasis() {
size_t counter = 0;
mTimer.reset();
@@ -230,7 +230,7 @@ void BuchbergerAlg::computeGrobnerBasis() {
*/
}
-void BuchbergerAlg::step() {
+void ClassicGBAlg::step() {
MATHICGB_ASSERT(!mSPairs.empty());
if (tracingLevel > 30)
std::cerr << "Determining next S-pair" << std::endl;
@@ -303,7 +303,7 @@ void BuchbergerAlg::step() {
autoTailReduce();
}
-void BuchbergerAlg::autoTailReduce() {
+void ClassicGBAlg::autoTailReduce() {
MATHICGB_ASSERT(mUseAutoTailReduction);
for (size_t i = 0; i < mBasis.size(); ++i) {
@@ -316,7 +316,7 @@ void BuchbergerAlg::autoTailReduce() {
}
}
-size_t BuchbergerAlg::getMemoryUse() const {
+size_t ClassicGBAlg::getMemoryUse() const {
return
mBasis.getMemoryUse() +
mRing.getMemoryUse() +
@@ -324,7 +324,7 @@ size_t BuchbergerAlg::getMemoryUse() const {
mSPairs.getMemoryUse();
}
-void BuchbergerAlg::printStats(std::ostream& out) const {
+void ClassicGBAlg::printStats(std::ostream& out) const {
out << " reduction type: " << mReducer.description() << '\n';
out << " divisor tab type: " << mBasis.divisorLookup().getName() << '\n';
out << " S-pair queue type: " << mSPairs.name() << '\n';
@@ -496,7 +496,7 @@ void BuchbergerAlg::printStats(std::ostream& out) const {
<< pr << std::flush;
}
-void BuchbergerAlg::printMemoryUse(std::ostream& out) const
+void ClassicGBAlg::printMemoryUse(std::ostream& out) const
{
// Set up printer
mic::ColumnPrinter pr;
diff --git a/src/mathicgb/BuchbergerAlg.hpp b/src/mathicgb/ClassicGBAlg.hpp
similarity index 94%
rename from src/mathicgb/BuchbergerAlg.hpp
rename to src/mathicgb/ClassicGBAlg.hpp
index 812bc18..7c9839d 100755
--- a/src/mathicgb/BuchbergerAlg.hpp
+++ b/src/mathicgb/ClassicGBAlg.hpp
@@ -1,5 +1,5 @@
-#ifndef MATHICGB_BUCHBERGER_ALG_GUARD
-#define MATHICGB_BUCHBERGER_ALG_GUARD
+#ifndef MATHICGB_CLASSIC_GB_ALG_GUARD
+#define MATHICGB_CLASSIC_GB_ALG_GUARD
#include "Reducer.hpp"
#include "SPairs.hpp"
@@ -12,14 +12,15 @@
class Basis;
/// Calculates a classic Grobner basis using Buchberger's algorithm.
-class BuchbergerAlg {
+class ClassicGBAlg {
public:
- BuchbergerAlg(
+ ClassicGBAlg(
const Basis& basis,
Reducer& reducer,
int divisorLookupType,
bool preferSparseReducers,
- size_t queueType);
+ size_t queueType
+ );
// Replaces the current basis with a Grobner basis of the same ideal.
void computeGrobnerBasis();
diff --git a/src/mathicgb/DivLookup.hpp b/src/mathicgb/DivLookup.hpp
index ed6bb67..ae55b12 100755
--- a/src/mathicgb/DivLookup.hpp
+++ b/src/mathicgb/DivLookup.hpp
@@ -5,7 +5,7 @@
#include <vector>
#include <iostream>
-#include "GroebnerBasis.hpp"
+#include "SigPolyBasis.hpp"
#include "DivisorLookup.hpp"
#include "PolyRing.hpp"
@@ -55,7 +55,7 @@ public:
mBasis = &basis;
}
- void setSigBasis(const GroebnerBasis& sigBasis) {
+ void setSigBasis(const SigPolyBasis& sigBasis) {
if (mSigBasis == &sigBasis)
return;
MATHICGB_ASSERT(mSigBasis == 0);
@@ -208,7 +208,7 @@ public:
void displayStats(std::ostream &o) const;
///////////////////////////
- const GroebnerBasis* sigBasis() const {return mSigBasis;}
+ const SigPolyBasis* sigBasis() const {return mSigBasis;}
const PolyBasis* basis() const {return mBasis;}
const PolyRing* getPolyRing() const {return mRing;}
unsigned long long getExpQueryCount() const {return _expQueryCount;}
@@ -217,7 +217,7 @@ public:
private:
PolyBasis const* mBasis;
- GroebnerBasis const* mSigBasis;
+ SigPolyBasis const* mSigBasis;
const PolyRing* mRing;
const size_t _varCount;
const bool _minimize_on_insert;
@@ -252,7 +252,7 @@ class DivLookup : public DivisorLookup {
_finder.getConfiguration().setBasis(basis);
}
- virtual void setSigBasis(const GroebnerBasis& sigBasis) {
+ virtual void setSigBasis(const SigPolyBasis& sigBasis) {
_finder.getConfiguration().setSigBasis(sigBasis);
}
@@ -264,7 +264,7 @@ class DivLookup : public DivisorLookup {
size_t maxDivisors,
size_t newGenerator
) const {
- const GroebnerBasis* GB = _finder.getConfiguration().sigBasis();
+ const SigPolyBasis* GB = _finder.getConfiguration().sigBasis();
const_monomial sigNew = GB->getSignature(newGenerator);
@@ -274,7 +274,7 @@ class DivLookup : public DivisorLookup {
}
virtual size_t highBaseDivisor(size_t newGenerator) const {
- const GroebnerBasis* basis = _finder.getConfiguration().sigBasis();
+ const SigPolyBasis* basis = _finder.getConfiguration().sigBasis();
MATHICGB_ASSERT(newGenerator < basis->size());
HighBaseDivisor searchObject(*basis, newGenerator);
@@ -347,7 +347,7 @@ private:
class LowBaseDivisor {
public:
LowBaseDivisor(
- const GroebnerBasis& basis,
+ const SigPolyBasis& basis,
std::vector<size_t>& divisors,
size_t maxDivisors,
size_t newGenerator
@@ -383,7 +383,7 @@ private:
return true;
}
private:
- const GroebnerBasis& mSigBasis;
+ const SigPolyBasis& mSigBasis;
std::vector<size_t>& mDivisors;
const size_t mMaxDivisors;
const size_t mNewGenerator;
@@ -392,7 +392,7 @@ private:
// Class used in highBaseDivisor()
class HighBaseDivisor {
public:
- HighBaseDivisor(const GroebnerBasis& basis, size_t newGenerator):
+ HighBaseDivisor(const SigPolyBasis& basis, size_t newGenerator):
mSigBasis(basis),
mNewGenerator(newGenerator),
mHighDivisor(static_cast<size_t>(-1)) {}
@@ -411,7 +411,7 @@ private:
}
size_t highDivisor() const {return mHighDivisor;}
private:
- const GroebnerBasis& mSigBasis;
+ const SigPolyBasis& mSigBasis;
const size_t mNewGenerator;
size_t mHighDivisor;
};
@@ -419,7 +419,7 @@ private:
// Class used in minimalLeadInSig()
class MinimalLeadInSig {
public:
- MinimalLeadInSig(const GroebnerBasis& basis):
+ MinimalLeadInSig(const SigPolyBasis& basis):
mSigBasis(basis),
mMinLeadGen(static_cast<size_t>(-1)) {}
@@ -468,7 +468,7 @@ private:
size_t minLeadGen() const {return mMinLeadGen;}
private:
- const GroebnerBasis& mSigBasis;
+ const SigPolyBasis& mSigBasis;
size_t mMinLeadGen;
};
@@ -514,7 +514,7 @@ private:
class DOCheckAll {
public:
DOCheckAll(
- const GroebnerBasis& basis,
+ const SigPolyBasis& basis,
const_monomial sig,
const_monomial monom,
bool preferSparseReducers
@@ -555,8 +555,8 @@ private:
size_t reducer() {return mReducer;}
private:
- GroebnerBasis::StoredRatioCmp const mRatioCmp;
- GroebnerBasis const& mSigBasis;
+ SigPolyBasis::StoredRatioCmp const mRatioCmp;
+ SigPolyBasis const& mSigBasis;
size_t mReducer;
bool const mPreferSparseReducers;
};
diff --git a/src/mathicgb/DivisorLookup.cpp b/src/mathicgb/DivisorLookup.cpp
index 69cef21..2d280c3 100755
--- a/src/mathicgb/DivisorLookup.cpp
+++ b/src/mathicgb/DivisorLookup.cpp
@@ -4,7 +4,7 @@
#include "DivisorLookup.hpp"
#include <mathic.h>
-#include "GroebnerBasis.hpp"
+#include "SigPolyBasis.hpp"
#include "DivLookup.hpp"
namespace {
diff --git a/src/mathicgb/DivisorLookup.hpp b/src/mathicgb/DivisorLookup.hpp
index f765894..4ac6997 100755
--- a/src/mathicgb/DivisorLookup.hpp
+++ b/src/mathicgb/DivisorLookup.hpp
@@ -7,7 +7,7 @@
#include <vector>
class PolyBasis;
-class GroebnerBasis;
+class SigPolyBasis;
// Supports queries on the lead terms of the monomials in a PolyBasis.
// todo: rename to MonomialLookup.
@@ -20,7 +20,7 @@ public:
// Call after construction. Can be called multiple times, but only if the
// parameter object is the same each time.
- virtual void setSigBasis(const GroebnerBasis& sigBasis) = 0;
+ virtual void setSigBasis(const SigPolyBasis& sigBasis) = 0;
virtual ~DivisorLookup() {}
diff --git a/src/mathicgb/F4Reducer.cpp b/src/mathicgb/F4Reducer.cpp
index edfefed..4d8f563 100755
--- a/src/mathicgb/F4Reducer.cpp
+++ b/src/mathicgb/F4Reducer.cpp
@@ -236,7 +236,7 @@ Poly* F4Reducer::regularReduce(
const_monomial sig,
const_monomial multiple,
size_t basisElement,
- const GroebnerBasis& basis
+ const SigPolyBasis& basis
) {
if (tracingLevel >= 2)
std::cerr <<
diff --git a/src/mathicgb/F4Reducer.hpp b/src/mathicgb/F4Reducer.hpp
index f607dd9..8a07cce 100755
--- a/src/mathicgb/F4Reducer.hpp
+++ b/src/mathicgb/F4Reducer.hpp
@@ -48,7 +48,7 @@ public:
const_monomial sig,
const_monomial multiple,
size_t basisElement,
- const GroebnerBasis& basis
+ const SigPolyBasis& basis
);
virtual void setMemoryQuantum(size_t quantum);
diff --git a/src/mathicgb/PolyBasis.hpp b/src/mathicgb/PolyBasis.hpp
index 37e6971..df8577c 100755
--- a/src/mathicgb/PolyBasis.hpp
+++ b/src/mathicgb/PolyBasis.hpp
@@ -13,8 +13,7 @@ class PolyBasis {
public:
typedef PolyRing::Monoid Monoid;
- // Ring must live for as long as this object. divisorLookupFactory
- // only needs to live for the duration of the constructor.
+ // Ring must live for as long as this object.
PolyBasis(
const PolyRing& ring,
std::unique_ptr<DivisorLookup> divisorLookup
@@ -23,7 +22,7 @@ public:
// Deletes the Poly's stored in the basis.
~PolyBasis();
- // Returns the initial monomial basis of the basis (not the basis).
+ // Returns the initial monomial basis of the basis.
std::unique_ptr<Basis> initialIdeal() const;
// Inserts a polynomial into the basis at index size().
@@ -36,7 +35,7 @@ public:
size_t divisor(const_monomial mon) const;
// As divisor(mon), but if there is more than one divisor then the divisor
- // is chosen in according to a notion of which reducer is better.
+ // is chosen according to some notion of which reducer is better.
size_t classicReducer(const_monomial mon) const;
// As the non-slow version, but uses simpler and slower code.
@@ -59,9 +58,6 @@ public:
MATHICGB_ASSERT(mEntries[index].poly != 0);
}
- // As the non-slow version, but uses simpler and slower code.
- bool buchbergerLcmCriterionSlow(size_t a, size_t b) const;
-
// Returns the number of basis elements, including retired elements.
size_t size() const {return mEntries.size();}
diff --git a/src/mathicgb/Reducer.cpp b/src/mathicgb/Reducer.cpp
index 47364be..ed344cf 100755
--- a/src/mathicgb/Reducer.cpp
+++ b/src/mathicgb/Reducer.cpp
@@ -16,7 +16,7 @@
#include "ReducerHashPack.hpp"
#include "F4Reducer.hpp"
-#include "GroebnerBasis.hpp"
+#include "SigPolyBasis.hpp"
#include <iostream>
#include <algorithm>
diff --git a/src/mathicgb/Reducer.hpp b/src/mathicgb/Reducer.hpp
index 0700609..fcdcbda 100755
--- a/src/mathicgb/Reducer.hpp
+++ b/src/mathicgb/Reducer.hpp
@@ -8,7 +8,7 @@
#include <memtailor.h>
#include <memory>
-class GroebnerBasis;
+class SigPolyBasis;
class PolyBasis;
/** Abstract base class for classes that allow reduction of polynomials.
@@ -67,7 +67,7 @@ public:
const_monomial sig,
const_monomial multiple,
size_t basisElement,
- const GroebnerBasis& basis) = 0;
+ const SigPolyBasis& basis) = 0;
/** Sets how many bytes of memory to increase the memory use by
at a time - if such a thing is appropriate for the reducer. */
diff --git a/src/mathicgb/SPairs.cpp b/src/mathicgb/SPairs.cpp
index 576fa2a..b9ce010 100755
--- a/src/mathicgb/SPairs.cpp
+++ b/src/mathicgb/SPairs.cpp
@@ -1,7 +1,7 @@
#include "stdinc.h"
#include "SPairs.hpp"
-#include "GroebnerBasis.hpp"
+#include "SigPolyBasis.hpp"
#include "LogDomain.hpp"
#include <iostream>
diff --git a/src/mathicgb/GroebnerBasis.cpp b/src/mathicgb/SigPolyBasis.cpp
similarity index 91%
rename from src/mathicgb/GroebnerBasis.cpp
rename to src/mathicgb/SigPolyBasis.cpp
index 377c9ef..8b1256d 100755
--- a/src/mathicgb/GroebnerBasis.cpp
+++ b/src/mathicgb/SigPolyBasis.cpp
@@ -1,13 +1,14 @@
-// Copyright 2011 Michael E. Stillman
-
+// MathicGB copyright 2012 all rights reserved. MathicGB comes with ABSOLUTELY
+// NO WARRANTY and is licensed as GPL v2.0 or later - see LICENSE.txt.
#include "stdinc.h"
-#include <iostream>
-#include <iomanip>
+#include "SigPolyBasis.hpp"
+
#include "Poly.hpp"
-#include "GroebnerBasis.hpp"
#include <limits>
+#include <iostream>
+#include <iomanip>
-GroebnerBasis::GroebnerBasis(
+SigPolyBasis::SigPolyBasis(
const PolyRing* R0,
int divisorLookupType,
int monTableType,
@@ -24,7 +25,7 @@ GroebnerBasis::GroebnerBasis(
mMinimalDivisorLookup->setSigBasis(*this);
}
-GroebnerBasis::~GroebnerBasis()
+SigPolyBasis::~SigPolyBasis()
{
MATHICGB_ASSERT(mBasis.size() == mSignatures.size());
MATHICGB_ASSERT(mBasis.size() == sigLeadRatio.size());
@@ -40,7 +41,7 @@ GroebnerBasis::~GroebnerBasis()
mBasis.ring().freeMonomial(mTmp);
}
-void GroebnerBasis::addComponent() {
+void SigPolyBasis::addComponent() {
std::unique_ptr<DivisorLookup> lookup =
mDivisorLookupFactory->create(mPreferSparseReducers, true);
lookup->setSigBasis(*this);
@@ -48,7 +49,7 @@ void GroebnerBasis::addComponent() {
mSignatureLookup.back() = lookup.release(); // only release after alloc
}
-void GroebnerBasis::insert(monomial sig, std::unique_ptr<Poly> f)
+void SigPolyBasis::insert(monomial sig, std::unique_ptr<Poly> f)
{
MATHICGB_ASSERT(f.get() != 0);
MATHICGB_ASSERT(f->getLeadCoefficient() != 0);
@@ -160,7 +161,7 @@ again:
#endif
}
-size_t GroebnerBasis::regularReducer(
+size_t SigPolyBasis::regularReducer(
const_monomial sig,
const_monomial term
) const {
@@ -183,7 +184,7 @@ size_t GroebnerBasis::regularReducer(
return reducer;
}
-size_t GroebnerBasis::regularReducerSlow(
+size_t SigPolyBasis::regularReducerSlow(
const_monomial sig,
const_monomial term
) const {
@@ -203,7 +204,7 @@ size_t GroebnerBasis::regularReducerSlow(
return static_cast<size_t>(-1);
}
-void GroebnerBasis::lowBaseDivisors(
+void SigPolyBasis::lowBaseDivisors(
std::vector<size_t>& divisors,
size_t maxDivisors,
size_t newGenerator) const
@@ -224,7 +225,7 @@ void GroebnerBasis::lowBaseDivisors(
#endif
}
-void GroebnerBasis::lowBaseDivisorsSlow(
+void SigPolyBasis::lowBaseDivisorsSlow(
std::vector<size_t>& divisors,
size_t maxDivisors,
size_t newGenerator) const
@@ -260,7 +261,7 @@ void GroebnerBasis::lowBaseDivisorsSlow(
MATHICGB_ASSERT(divisors.size() <= maxDivisors);
}
-size_t GroebnerBasis::highBaseDivisor(size_t newGenerator) const {
+size_t SigPolyBasis::highBaseDivisor(size_t newGenerator) const {
MATHICGB_ASSERT(newGenerator < size());
size_t highDivisor = divisorLookup().highBaseDivisor(newGenerator);
#ifdef MATHICGB_DEBUG
@@ -273,7 +274,7 @@ size_t GroebnerBasis::highBaseDivisor(size_t newGenerator) const {
return highDivisor;
}
-size_t GroebnerBasis::highBaseDivisorSlow(size_t newGenerator) const {
+size_t SigPolyBasis::highBaseDivisorSlow(size_t newGenerator) const {
MATHICGB_ASSERT(newGenerator < size());
size_t highDivisor = static_cast<size_t>(-1);
@@ -292,7 +293,7 @@ size_t GroebnerBasis::highBaseDivisorSlow(size_t newGenerator) const {
return highDivisor;
}
-size_t GroebnerBasis::minimalLeadInSig(const_monomial sig) const {
+size_t SigPolyBasis::minimalLeadInSig(const_monomial sig) const {
MATHICGB_ASSERT(! sig.isNull() );
const size_t component = ring().monomialGetComponent(sig);
const size_t minLeadGen = mSignatureLookup[component]->minimalLeadInSig(sig);
@@ -300,7 +301,7 @@ size_t GroebnerBasis::minimalLeadInSig(const_monomial sig) const {
return minLeadGen;
}
-size_t GroebnerBasis::minimalLeadInSigSlow(const_monomial sig) const {
+size_t SigPolyBasis::minimalLeadInSigSlow(const_monomial sig) const {
monomial multiplier = ring().allocMonomial();
monomial minLead = ring().allocMonomial();
@@ -350,7 +351,7 @@ size_t GroebnerBasis::minimalLeadInSigSlow(const_monomial sig) const {
return minLeadGen;
}
-bool GroebnerBasis::isSingularTopReducibleSlow
+bool SigPolyBasis::isSingularTopReducibleSlow
(const Poly& poly, const_monomial sig) const {
MATHICGB_ASSERT( ! sig.isNull() );
if (poly.isZero())
@@ -370,7 +371,7 @@ bool GroebnerBasis::isSingularTopReducibleSlow
return false;
}
-void GroebnerBasis::display(std::ostream &o) const
+void SigPolyBasis::display(std::ostream &o) const
{
for (size_t i = 0; i<mBasis.size(); i++)
{
@@ -385,7 +386,7 @@ void GroebnerBasis::display(std::ostream &o) const
}
}
-void GroebnerBasis::displayBrief(std::ostream &o) const
+void SigPolyBasis::displayBrief(std::ostream &o) const
{
for (size_t i = 0; i<mBasis.size(); i++)
{
@@ -402,17 +403,17 @@ void GroebnerBasis::displayBrief(std::ostream &o) const
}
}
-void GroebnerBasis::dump() const
+void SigPolyBasis::dump() const
{
display(std::cerr);
}
-void GroebnerBasis::postprocess(const MonoProcessor<PolyRing::Monoid>& processor) {
+void SigPolyBasis::postprocess(const MonoProcessor<PolyRing::Monoid>& processor) {
for (size_t i = 0; i < mSignatures.size(); ++i)
processor.postprocess(mSignatures[i]);
}
-size_t GroebnerBasis::getMemoryUse() const
+size_t SigPolyBasis::getMemoryUse() const
{
// Note: we do not count the signatures as they are counted elsewhere.
size_t total = 0;
@@ -434,7 +435,7 @@ size_t GroebnerBasis::getMemoryUse() const
return total;
}
-size_t GroebnerBasis::ratioRank(const_monomial ratio) const {
+size_t SigPolyBasis::ratioRank(const_monomial ratio) const {
MATHICGB_ASSERT(mUseRatioRank);
const size_t index = size();
if (index == 0)
@@ -465,26 +466,26 @@ size_t GroebnerBasis::ratioRank(const_monomial ratio) const {
}
}
-GroebnerBasis::StoredRatioCmp::StoredRatioCmp(
+SigPolyBasis::StoredRatioCmp::StoredRatioCmp(
const_monomial numerator,
const_monomial denominator,
- const GroebnerBasis& basis):
+ const SigPolyBasis& basis):
mBasis(basis)
{
const PolyRing& ring = basis.ring();
mRatio = ring.allocMonomial();
ring.monomialDivideToNegative(numerator, denominator, mRatio);
- if (GroebnerBasis::mUseRatioRank) {
+ if (SigPolyBasis::mUseRatioRank) {
mRatioRank = basis.ratioRank(mRatio);
mTmp = 0;
} else
mTmp = mBasis.ring().allocMonomial();
}
-GroebnerBasis::StoredRatioCmp::~StoredRatioCmp() {
+SigPolyBasis::StoredRatioCmp::~StoredRatioCmp() {
mBasis.ring().freeMonomial(mRatio);
- if (!GroebnerBasis::mUseRatioRank)
+ if (!SigPolyBasis::mUseRatioRank)
mBasis.ring().freeMonomial(mTmp);
}
diff --git a/src/mathicgb/GroebnerBasis.hpp b/src/mathicgb/SigPolyBasis.hpp
similarity index 92%
rename from src/mathicgb/GroebnerBasis.hpp
rename to src/mathicgb/SigPolyBasis.hpp
index 5dad29e..225e571 100755
--- a/src/mathicgb/GroebnerBasis.hpp
+++ b/src/mathicgb/SigPolyBasis.hpp
@@ -1,31 +1,31 @@
-// Copyright 2011 Michael E. Stillman
+// MathicGB copyright 2012 all rights reserved. MathicGB comes with ABSOLUTELY
+// NO WARRANTY and is licensed as GPL v2.0 or later - see LICENSE.txt.
+#ifndef MATHICGB_SIG_POLY_BASIS_GUARD
+#define MATHICGB_SIG_POLY_BASIS_GUARD
-#ifndef _groebner_basis_h_
-#define _groebner_basis_h_
-
-#include <vector>
-#include <set>
#include "PolyRing.hpp"
#include "Poly.hpp"
#include "DivisorLookup.hpp"
#include "PolyBasis.hpp"
#include "MonoProcessor.hpp"
+#include <vector>
+#include <set>
#ifndef USE_RATIO_RANK
#define USE_RATIO_RANK true
#endif
-class GroebnerBasis {
+class SigPolyBasis {
public:
typedef PolyRing::Monoid Monoid;
- GroebnerBasis(
+ SigPolyBasis(
const PolyRing* R,
int divisorLookupType,
int monTableType,
bool preferSparseReducers
);
- ~GroebnerBasis();
+ ~SigPolyBasis();
const Monoid& monoid() const {return ring().monoid();}
const PolyRing& ring() const {return mBasis.ring();}
@@ -114,7 +114,7 @@ public:
StoredRatioCmp(
const_monomial numerator,
const_monomial denominator,
- const GroebnerBasis& basis);
+ const SigPolyBasis& basis);
~StoredRatioCmp();
// compares the stored ratio to the basis element with index be.
@@ -124,7 +124,7 @@ public:
StoredRatioCmp(const StoredRatioCmp&); // not available
void operator=(const StoredRatioCmp&); // not available
- const GroebnerBasis& mBasis;
+ const SigPolyBasis& mBasis;
size_t mRatioRank;
monomial mRatio;
mutable monomial mTmp;
@@ -194,7 +194,7 @@ private:
mutable monomial mTmp;
};
-inline int GroebnerBasis::ratioCompare(size_t a, size_t b) const {
+inline int SigPolyBasis::ratioCompare(size_t a, size_t b) const {
if (mUseRatioRank) {
#ifdef MATHICGB_DEBUG
int const value =
@@ -221,13 +221,13 @@ inline int GroebnerBasis::ratioCompare(size_t a, size_t b) const {
}
}
-inline int GroebnerBasis::StoredRatioCmp::compare(size_t be) const {
- if (GroebnerBasis::mUseStoredRatioRank) {
+inline int SigPolyBasis::StoredRatioCmp::compare(size_t be) const {
+ if (SigPolyBasis::mUseStoredRatioRank) {
#ifdef MATHICGB_DEBUG
const auto value =
mBasis.monoid().compare(mRatio, mBasis.getSigLeadRatio(be));
#endif
- GroebnerBasis::Rank otherRank = mBasis.ratioRank(be);
+ SigPolyBasis::Rank otherRank = mBasis.ratioRank(be);
if (mRatioRank < otherRank) {
MATHICGB_ASSERT_NO_ASSUME(value == LT);
return LT;
diff --git a/src/mathicgb/SigSPairQueue.cpp b/src/mathicgb/SigSPairQueue.cpp
index d7859c4..e5f2def 100755
--- a/src/mathicgb/SigSPairQueue.cpp
+++ b/src/mathicgb/SigSPairQueue.cpp
@@ -1,7 +1,7 @@
#include "stdinc.h"
#include "SigSPairQueue.hpp"
-#include "GroebnerBasis.hpp"
+#include "SigPolyBasis.hpp"
SigSPairQueue::~SigSPairQueue() {}
@@ -50,7 +50,7 @@ namespace {
class ConcreteSigSPairQueue : public SigSPairQueue {
public:
- ConcreteSigSPairQueue(GroebnerBasis const& basis):
+ ConcreteSigSPairQueue(SigPolyBasis const& basis):
mPairQueue(Configuration(basis)) {}
virtual monomial popSignature(Pairs& pairs) {
@@ -111,7 +111,7 @@ private:
// Configuration of mathic::PairTriangle for use with signature queues.
class Configuration {
public:
- Configuration(GroebnerBasis const& basis): mBasis(basis) {}
+ Configuration(SigPolyBasis const& basis): mBasis(basis) {}
typedef monomial PairData;
void computePairData(size_t col, size_t row, monomial sig) {
@@ -132,15 +132,15 @@ private:
}
bool cmpLessThan(bool v) const {return v;}
- GroebnerBasis const& basis() const {return mBasis;}
+ SigPolyBasis const& basis() const {return mBasis;}
private:
- GroebnerBasis const& mBasis;
+ SigPolyBasis const& mBasis;
};
// the compiler should be able to resolve these accessors into a direct
// offset as though these were member variables.
- const GroebnerBasis& basis() const {
+ const SigPolyBasis& basis() const {
return mPairQueue.configuration().basis();
}
PolyRing const& ring() const {return basis().ring();}
@@ -179,7 +179,7 @@ namespace mathic {
}
std::unique_ptr<SigSPairQueue> SigSPairQueue::create(
- GroebnerBasis const& basis
+ SigPolyBasis const& basis
) {
return make_unique<ConcreteSigSPairQueue>(basis);
}
diff --git a/src/mathicgb/SigSPairQueue.hpp b/src/mathicgb/SigSPairQueue.hpp
index 3bba62d..0fb75ef 100755
--- a/src/mathicgb/SigSPairQueue.hpp
+++ b/src/mathicgb/SigSPairQueue.hpp
@@ -13,7 +13,7 @@ struct PreSPair {
monomial signature;
};
-class GroebnerBasis;
+class SigPolyBasis;
// A priority queue on S-pairs where the priority is based on a
// signature as in signature Grobner basis algorithms. The class is
@@ -67,7 +67,7 @@ public:
// Returns number of bytes of memory used.
virtual size_t memoryUse() const = 0;
- static std::unique_ptr<SigSPairQueue> create(GroebnerBasis const& basis);
+ static std::unique_ptr<SigSPairQueue> create(SigPolyBasis const& basis);
};
#endif
diff --git a/src/mathicgb/SigSPairs.cpp b/src/mathicgb/SigSPairs.cpp
index 92759a8..d3b7b81 100755
--- a/src/mathicgb/SigSPairs.cpp
+++ b/src/mathicgb/SigSPairs.cpp
@@ -2,7 +2,7 @@
#include "stdinc.h"
#include "SigSPairs.hpp"
-#include "GroebnerBasis.hpp"
+#include "SigPolyBasis.hpp"
#include "MTArray.hpp"
#include "Reducer.hpp"
#include <limits>
@@ -11,7 +11,7 @@
SigSPairs::SigSPairs(
const PolyRing *R0,
- const GroebnerBasis *GB0,
+ const SigPolyBasis *GB0,
MonomialTableArray *Hsyz0,
Reducer* reducer,
bool postponeKoszuls,
diff --git a/src/mathicgb/SigSPairs.hpp b/src/mathicgb/SigSPairs.hpp
index 9c3def1..94a37f4 100755
--- a/src/mathicgb/SigSPairs.hpp
+++ b/src/mathicgb/SigSPairs.hpp
@@ -11,7 +11,7 @@
class Poly;
class MonomialTableArray;
-class GroebnerBasis;
+class SigPolyBasis;
class Reducer;
// Handles S-pairs in signature Grobner basis algorithms. Responsible
@@ -21,7 +21,7 @@ class SigSPairs
public:
SigSPairs(
const PolyRing *R0,
- const GroebnerBasis *GB0,
+ const SigPolyBasis *GB0,
MonomialTableArray *Hsyz0,
Reducer* reducer,
bool postponeKoszuls,
@@ -115,7 +115,7 @@ private:
// From elsewhere
MonomialTableArray *Hsyz; // we often modify this
- const GroebnerBasis *GB;
+ const SigPolyBasis *GB;
Reducer* mReducer;
const bool mPostponeKoszuls;
diff --git a/src/mathicgb/SignatureGB.cpp b/src/mathicgb/SignatureGB.cpp
index d5dcf0a..77f6524 100755
--- a/src/mathicgb/SignatureGB.cpp
+++ b/src/mathicgb/SignatureGB.cpp
@@ -35,7 +35,7 @@ SignatureGB::SignatureGB(
stats_relativelyPrimeEliminated(0),
stats_pairsReduced(0),
stats_nsecs(0.0),
- GB(make_unique<GroebnerBasis>(R, divlookup_type, montable_type, preferSparseReducers)),
+ GB(make_unique<SigPolyBasis>(R, divlookup_type, montable_type, preferSparseReducers)),
mKoszuls(R->monoid()),
Hsyz(MonomialTableArray::make(R, montable_type, basis.size(), !mPostponeKoszul)),
Hsyz2(MonomialTableArray::make(R, montable_type, basis.size(), !mPostponeKoszul)),
diff --git a/src/mathicgb/SignatureGB.hpp b/src/mathicgb/SignatureGB.hpp
index 2c13b2e..282fe8a 100755
--- a/src/mathicgb/SignatureGB.hpp
+++ b/src/mathicgb/SignatureGB.hpp
@@ -5,7 +5,7 @@
#include "PolyRing.hpp"
#include "MTArray.hpp"
-#include "GroebnerBasis.hpp"
+#include "SigPolyBasis.hpp"
#include "SigSPairs.hpp"
#include "Reducer.hpp"
#include "KoszulQueue.hpp"
@@ -42,7 +42,7 @@ public:
// How many reductions were singular
unsigned long long getSingularReductionCount() const;
- GroebnerBasis* getGB() { return GB.get(); }
+ SigPolyBasis* getGB() { return GB.get(); }
MonomialTableArray* getSyzTable() { return mProcessor->processingNeeded() ? Hsyz2.get() : Hsyz.get(); }
SigSPairs* getSigSPairs() { return SP.get(); }
@@ -95,7 +95,7 @@ private:
mic::Timer mTimer;
double stats_nsecs;
- std::unique_ptr<GroebnerBasis> GB;
+ std::unique_ptr<SigPolyBasis> GB;
KoszulQueue mKoszuls;
std::unique_ptr<MonomialTableArray> Hsyz;
std::unique_ptr<MonomialTableArray> Hsyz2;
diff --git a/src/mathicgb/TypicalReducer.cpp b/src/mathicgb/TypicalReducer.cpp
index a6436a0..e91cb5a 100755
--- a/src/mathicgb/TypicalReducer.cpp
+++ b/src/mathicgb/TypicalReducer.cpp
@@ -1,7 +1,7 @@
#include "stdinc.h"
#include "TypicalReducer.hpp"
-#include "GroebnerBasis.hpp"
+#include "SigPolyBasis.hpp"
#include "PolyBasis.hpp"
#include <iostream>
@@ -23,7 +23,7 @@ Poly* TypicalReducer::regularReduce(
const_monomial sig,
const_monomial multiple,
size_t basisElement,
- const GroebnerBasis& basis)
+ const SigPolyBasis& basis)
{
const PolyRing& ring = basis.ring();
++mSigStats.reductions;
diff --git a/src/mathicgb/TypicalReducer.hpp b/src/mathicgb/TypicalReducer.hpp
index d7c0414..ff21705 100755
--- a/src/mathicgb/TypicalReducer.hpp
+++ b/src/mathicgb/TypicalReducer.hpp
@@ -4,7 +4,7 @@
#include "Reducer.hpp"
#include "Poly.hpp"
#include "PolyRing.hpp"
-class GroebnerBasis;
+class SigPolyBasis;
class PolyBasis;
/** Uses the template method pattern (not C++ templates) to implement
@@ -24,7 +24,7 @@ public:
const_monomial sig,
const_monomial multiple,
size_t basisElement,
- const GroebnerBasis& basis);
+ const SigPolyBasis& basis);
virtual std::unique_ptr<Poly> classicReduce
(const Poly& poly, const PolyBasis& basis);
diff --git a/src/mathicgb/io-util.cpp b/src/mathicgb/io-util.cpp
index cc33a51..87248e6 100755
--- a/src/mathicgb/io-util.cpp
+++ b/src/mathicgb/io-util.cpp
@@ -13,7 +13,7 @@
#include "PolyHeap.hpp"
#include "PolyGeoBucket.hpp"
-#include "GroebnerBasis.hpp"
+#include "SigPolyBasis.hpp"
#include "SignatureGB.hpp"
#include "MTArray.hpp"
@@ -82,7 +82,7 @@ std::string monomialDisplay(const PolyRing *R, const_monomial mon)
}
////////////////////////////////////////////////////////////////
-std::string toString(GroebnerBasis *I)
+std::string toString(SigPolyBasis *I)
{
std::ostringstream o;
for (size_t i=0; i<I->size(); i++)
@@ -94,7 +94,7 @@ std::string toString(GroebnerBasis *I)
return o.str();
}
-std::string toString(GroebnerBasis *I, int)
+std::string toString(SigPolyBasis *I, int)
{
std::ostringstream o;
I->display(o);
diff --git a/src/mathicgb/io-util.hpp b/src/mathicgb/io-util.hpp
index d4368c2..80926de 100755
--- a/src/mathicgb/io-util.hpp
+++ b/src/mathicgb/io-util.hpp
@@ -6,7 +6,7 @@
#include "PolyRing.hpp"
class Poly;
-class GroebnerBasis;
+class SigPolyBasis;
class MonomialTableArray;
class PolyBasis;
class Basis;
@@ -20,9 +20,9 @@ std::string monomialDisplay(const PolyRing *R, const_monomial mon);
Monomial stringToMonomial(const PolyRing *R, std::string mon);
std::string monomialToString(const PolyRing *R, const Monomial& mon);
-std::string toString(GroebnerBasis *);
+std::string toString(SigPolyBasis *);
std::string toString(MonomialTableArray *);
-std::string toString(GroebnerBasis *, int unused); // also displays signature
+std::string toString(SigPolyBasis *, int unused); // also displays signature
std::string toString(Basis *);
std::string toString(const Poly *);
diff --git a/src/test/gb-test.cpp b/src/test/gb-test.cpp
index 8384432..a43eeeb 100755
--- a/src/test/gb-test.cpp
+++ b/src/test/gb-test.cpp
@@ -8,9 +8,9 @@
#include "mathicgb/MonTableNaive.hpp"
#include "mathicgb/io-util.hpp"
#include "mathicgb/PolyHeap.hpp"
-#include "mathicgb/GroebnerBasis.hpp"
+#include "mathicgb/SigPolyBasis.hpp"
#include "mathicgb/SignatureGB.hpp"
-#include "mathicgb/BuchbergerAlg.hpp"
+#include "mathicgb/ClassicGBAlg.hpp"
#include "mathicgb/mtbb.hpp"
#include "mathicgb/MathicIO.hpp"
#include "mathicgb/Scanner.hpp"
@@ -305,7 +305,7 @@ spairQueue reducerType divLookup monTable buchberger postponeKoszul useBaseDivis
if (buchberger) {
const auto reducer = Reducer::makeReducer
(Reducer::reducerType(reducerType), ring);
- BuchbergerAlg alg(
+ ClassicGBAlg alg(
std::move(basis),
*reducer,
divLookup,
diff --git a/src/test/poly-test.cpp b/src/test/poly-test.cpp
index 5bfc255..09a7f61 100755
--- a/src/test/poly-test.cpp
+++ b/src/test/poly-test.cpp
@@ -18,7 +18,7 @@
#include "mathicgb/PolyHashTable.hpp"
#include "mathicgb/PolyHeap.hpp"
#include "mathicgb/PolyGeoBucket.hpp"
-#include "mathicgb/GroebnerBasis.hpp"
+#include "mathicgb/SigPolyBasis.hpp"
#include "mathicgb/SignatureGB.hpp"
#include <gtest/gtest.h>
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/mathicgb.git
More information about the debian-science-commits
mailing list