[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