[mathicgb] 343/393: Renamed DivLookup to StaticMonoLookup and DivisorLookup to MonoLookup.
Doug Torrance
dtorrance-guest at moszumanska.debian.org
Fri Apr 3 15:59:32 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 1e0183222bc3521a4da3c7b5394c4ead53070f9d
Author: Bjarke Hammersholt Roune <bjarkehr.code at gmail.com>
Date: Wed Aug 28 16:40:14 2013 +0200
Renamed DivLookup to StaticMonoLookup and DivisorLookup to MonoLookup.
---
Makefile.am | 4 +--
build/vs12/mathicgb-lib/mathicgb-lib.vcxproj | 6 ++--
.../vs12/mathicgb-lib/mathicgb-lib.vcxproj.filters | 18 +++++-----
src/cli/GBAction.cpp | 2 +-
src/cli/GBCommonParams.cpp | 14 ++++----
src/cli/GBCommonParams.hpp | 2 +-
src/cli/SigGBAction.cpp | 2 +-
src/mathicgb/ClassicGBAlg.cpp | 8 ++---
src/mathicgb/ClassicGBAlg.hpp | 2 +-
src/mathicgb/{DivisorLookup.cpp => MonoLookup.cpp} | 41 +++++++++++-----------
src/mathicgb/{DivisorLookup.hpp => MonoLookup.hpp} | 12 +++----
src/mathicgb/PolyBasis.cpp | 23 ++++++------
src/mathicgb/PolyBasis.hpp | 14 ++++----
src/mathicgb/SPairs.cpp | 13 +++----
src/mathicgb/SigPolyBasis.cpp | 34 +++++++++---------
src/mathicgb/SigPolyBasis.hpp | 14 ++++----
src/mathicgb/SignatureGB.cpp | 4 +--
src/mathicgb/SignatureGB.hpp | 1 -
.../{DivLookup.hpp => StaticMonoLookup.hpp} | 18 +++++-----
src/test/F4MatrixBuilder.cpp | 2 +-
20 files changed, 116 insertions(+), 118 deletions(-)
diff --git a/Makefile.am b/Makefile.am
index 17590cf..6964917 100755
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,8 +17,8 @@ libmathicgb_la_SOURCES = src/mathicgb/BjarkeGeobucket2.cpp \
src/mathicgb/BjarkeGeobucket2.hpp src/mathicgb/BjarkeGeobucket.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/ChainedHashTable.hpp src/mathicgb/MonoLookup.hpp \
+ src/mathicgb/MonoLookup.cpp src/mathicgb/StaticMonoLookup.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 \
diff --git a/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj b/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj
index 46b17f6..e2a0ca3 100755
--- a/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj
+++ b/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj
@@ -446,7 +446,6 @@
<ClCompile Include="..\..\..\src\mathicgb\CFile.cpp" />
<ClCompile Include="..\..\..\src\mathicgb\ChainedHashTable.cpp" />
<ClCompile Include="..\..\..\src\mathicgb\ClassicGBAlg.cpp" />
- <ClCompile Include="..\..\..\src\mathicgb\DivisorLookup.cpp" />
<ClCompile Include="..\..\..\src\mathicgb\F4MatrixBuilder.cpp" />
<ClCompile Include="..\..\..\src\mathicgb\F4MatrixBuilder2.cpp" />
<ClCompile Include="..\..\..\src\mathicgb\F4MatrixProjection.cpp" />
@@ -457,6 +456,7 @@
<ClCompile Include="..\..\..\src\mathicgb\io-util.cpp" />
<ClCompile Include="..\..\..\src\mathicgb\LogDomain.cpp" />
<ClCompile Include="..\..\..\src\mathicgb\LogDomainSet.cpp" />
+ <ClCompile Include="..\..\..\src\mathicgb\MonoLookup.cpp" />
<ClCompile Include="..\..\..\src\mathicgb\MTArray.cpp" />
<ClCompile Include="..\..\..\src\mathicgb\PairTriangle.cpp" />
<ClCompile Include="..\..\..\src\mathicgb\Poly.cpp" />
@@ -489,8 +489,6 @@
<ClInclude Include="..\..\..\src\mathicgb\CFile.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\ChainedHashTable.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\ClassicGBAlg.hpp" />
- <ClInclude Include="..\..\..\src\mathicgb\DivisorLookup.hpp" />
- <ClInclude Include="..\..\..\src\mathicgb\DivLookup.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\F4MatrixBuilder.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\F4MatrixBuilder2.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\F4MatrixProjection.hpp" />
@@ -504,6 +502,7 @@
<ClInclude Include="..\..\..\src\mathicgb\LogDomain.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\LogDomainSet.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\MathicIO.hpp" />
+ <ClInclude Include="..\..\..\src\mathicgb\MonoLookup.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\MonomialHashTable.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\MonomialMap.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\MonoMonoid.hpp" />
@@ -543,6 +542,7 @@
<ClInclude Include="..\..\..\src\mathicgb\SigSPairs.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\SPairs.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\SparseMatrix.hpp" />
+ <ClInclude Include="..\..\..\src\mathicgb\StaticMonoLookup.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\stdinc.h" />
<ClInclude Include="..\..\..\src\mathicgb\TournamentReducer.hpp" />
<ClInclude Include="..\..\..\src\mathicgb\TypicalReducer.hpp" />
diff --git a/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj.filters b/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj.filters
index 7c97ddc..201079b 100755
--- a/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj.filters
+++ b/build/vs12/mathicgb-lib/mathicgb-lib.vcxproj.filters
@@ -20,9 +20,6 @@
<ClCompile Include="..\..\..\src\mathicgb\ChainedHashTable.cpp">
<Filter>Source Files</Filter>
</ClCompile>
- <ClCompile Include="..\..\..\src\mathicgb\DivisorLookup.cpp">
- <Filter>Source Files</Filter>
- </ClCompile>
<ClCompile Include="..\..\..\src\mathicgb\F4MatrixBuilder.cpp">
<Filter>Source Files</Filter>
</ClCompile>
@@ -131,6 +128,9 @@
<ClCompile Include="..\..\..\src\mathicgb\SigPolyBasis.cpp">
<Filter>Source Files</Filter>
</ClCompile>
+ <ClCompile Include="..\..\..\src\mathicgb\MonoLookup.cpp">
+ <Filter>Source Files</Filter>
+ </ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\..\src\mathicgb\BjarkeGeobucket.hpp">
@@ -142,12 +142,6 @@
<ClInclude Include="..\..\..\src\mathicgb\ChainedHashTable.hpp">
<Filter>Header Files</Filter>
</ClInclude>
- <ClInclude Include="..\..\..\src\mathicgb\DivisorLookup.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
- <ClInclude Include="..\..\..\src\mathicgb\DivLookup.hpp">
- <Filter>Header Files</Filter>
- </ClInclude>
<ClInclude Include="..\..\..\src\mathicgb\F4MatrixBuilder.hpp">
<Filter>Header Files</Filter>
</ClInclude>
@@ -331,5 +325,11 @@
<ClInclude Include="..\..\..\src\mathicgb\Unchar.hpp">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="..\..\..\src\mathicgb\StaticMonoLookup.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
+ <ClInclude Include="..\..\..\src\mathicgb\MonoLookup.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
</Project>
\ No newline at end of file
diff --git a/src/cli/GBAction.cpp b/src/cli/GBAction.cpp
index 5eebe0e..8715d88 100755
--- a/src/cli/GBAction.cpp
+++ b/src/cli/GBAction.cpp
@@ -85,7 +85,7 @@ void GBAction::performAction() {
ClassicGBAlg alg(
basis,
*reducer,
- mGBParams.mDivisorLookup.value(),
+ mGBParams.mMonoLookup.value(),
mGBParams.mPreferSparseReducers.value(),
mGBParams.mSPairQueue.value());
alg.setBreakAfter(mGBParams.mBreakAfter.value());
diff --git a/src/cli/GBCommonParams.cpp b/src/cli/GBCommonParams.cpp
index f541742..b77012d 100755
--- a/src/cli/GBCommonParams.cpp
+++ b/src/cli/GBCommonParams.cpp
@@ -5,7 +5,7 @@
#include "mathicgb/MTArray.hpp"
#include "mathicgb/PolyReducer.hpp"
-#include "mathicgb/DivisorLookup.hpp"
+#include "mathicgb/MonoLookup.hpp"
MATHICGB_NAMESPACE_BEGIN
@@ -46,8 +46,8 @@ GBCommonParams::GBCommonParams():
"The kind of monomial table data structure to use.\n",
2),
- mDivisorLookup("divisorLookup",
- "The divisor lookup data structure to use.\n",
+ mMonoLookup("divisorLookup",
+ "The monomial lookup data structure to use.\n",
2),
mReducer("reducer",
@@ -64,9 +64,9 @@ GBCommonParams::GBCommonParams():
mReducer.appendToDescription(reducerOut.str());
}
{
- std::ostringstream divisorLookupOut;
- DivisorLookup::displayDivisorLookupTypes(divisorLookupOut);
- mDivisorLookup.appendToDescription(divisorLookupOut.str());
+ std::ostringstream monoLookupOut;
+ MonoLookup::displayMonoLookupTypes(monoLookupOut);
+ mMonoLookup.appendToDescription(monoLookupOut.str());
}
{
std::ostringstream monomialTableOut;
@@ -84,7 +84,7 @@ void GBCommonParams::pushBackParameters(
parameters.push_back(&mBreakAfter);
parameters.push_back(&mPrintInterval);
parameters.push_back(&mMonomialTable);
- parameters.push_back(&mDivisorLookup);
+ parameters.push_back(&mMonoLookup);
parameters.push_back(&mReducer);
parameters.push_back(&mMemoryQuantum);
}
diff --git a/src/cli/GBCommonParams.hpp b/src/cli/GBCommonParams.hpp
index 65441a5..5bbb4f2 100755
--- a/src/cli/GBCommonParams.hpp
+++ b/src/cli/GBCommonParams.hpp
@@ -20,7 +20,7 @@ public:
mathic::IntegerParameter mBreakAfter;
mathic::IntegerParameter mPrintInterval;
mathic::IntegerParameter mMonomialTable;
- mathic::IntegerParameter mDivisorLookup;
+ mathic::IntegerParameter mMonoLookup;
mathic::IntegerParameter mReducer;
mathic::IntegerParameter mMemoryQuantum;
};
diff --git a/src/cli/SigGBAction.cpp b/src/cli/SigGBAction.cpp
index 01f6cc6..dbe5291 100755
--- a/src/cli/SigGBAction.cpp
+++ b/src/cli/SigGBAction.cpp
@@ -63,7 +63,7 @@ void SigGBAction::performAction() {
std::move(basis),
std::move(processor),
Reducer::reducerType(mGBParams.mReducer.value()),
- mGBParams.mDivisorLookup.value(),
+ mGBParams.mMonoLookup.value(),
mGBParams.mMonomialTable.value(),
mPostponeKoszul.value(),
mUseBaseDivisors.value(),
diff --git a/src/mathicgb/ClassicGBAlg.cpp b/src/mathicgb/ClassicGBAlg.cpp
index f4447f3..11014f1 100755
--- a/src/mathicgb/ClassicGBAlg.cpp
+++ b/src/mathicgb/ClassicGBAlg.cpp
@@ -18,7 +18,7 @@ MATHICGB_NAMESPACE_BEGIN
ClassicGBAlg::ClassicGBAlg(
const Basis& basis,
Reducer& reducer,
- int divisorLookupType,
+ int monoLookupType,
bool preferSparseReducers,
size_t queueType
):
@@ -30,9 +30,9 @@ ClassicGBAlg::ClassicGBAlg(
mUseAutoTailReduction(false),
mRing(*basis.getPolyRing()),
mReducer(reducer),
- mBasis(mRing, DivisorLookup::makeFactory(
+ mBasis(mRing, MonoLookup::makeFactory(
*basis.getPolyRing(),
- divisorLookupType)->create(preferSparseReducers, true)
+ monoLookupType)->create(preferSparseReducers, true)
),
mSPairs(mBasis, preferSparseReducers),
mSPolyReductionCount(0)
@@ -331,7 +331,7 @@ size_t ClassicGBAlg::getMemoryUse() const {
void ClassicGBAlg::printStats(std::ostream& out) const {
out << " reduction type: " << mReducer.description() << '\n';
- out << " divisor tab type: " << mBasis.divisorLookup().getName() << '\n';
+ out << " divisor tab type: " << mBasis.monoLookup().getName() << '\n';
out << " S-pair queue type: " << mSPairs.name() << '\n';
out << " total compute time: " << mTimer.getMilliseconds()/1000.0 << " seconds " << '\n';
out << " S-pair group size: " << mSPairGroupSize << '\n';
diff --git a/src/mathicgb/ClassicGBAlg.hpp b/src/mathicgb/ClassicGBAlg.hpp
index f98af63..b74674f 100755
--- a/src/mathicgb/ClassicGBAlg.hpp
+++ b/src/mathicgb/ClassicGBAlg.hpp
@@ -21,7 +21,7 @@ public:
ClassicGBAlg(
const Basis& basis,
Reducer& reducer,
- int divisorLookupType,
+ int monoLookupType,
bool preferSparseReducers,
size_t queueType
);
diff --git a/src/mathicgb/DivisorLookup.cpp b/src/mathicgb/MonoLookup.cpp
similarity index 84%
rename from src/mathicgb/DivisorLookup.cpp
rename to src/mathicgb/MonoLookup.cpp
index 8e010ea..58f861d 100755
--- a/src/mathicgb/DivisorLookup.cpp
+++ b/src/mathicgb/MonoLookup.cpp
@@ -1,10 +1,10 @@
// 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 "DivisorLookup.hpp"
+#include "MonoLookup.hpp"
#include "SigPolyBasis.hpp"
-#include "DivLookup.hpp"
+#include "StaticMonoLookup.hpp"
#include <mathic.h>
MATHICGB_NAMESPACE_BEGIN
@@ -15,9 +15,9 @@ namespace {
bool AllowRemovals,
bool UseDivMask
>
- class ConcreteDivisorLookup : public DivisorLookup {
+ class ConcreteMonoLookup : public MonoLookup {
public:
- ConcreteDivisorLookup(
+ ConcreteMonoLookup(
const Monoid& monoid,
int type,
bool preferSparseReducers
@@ -120,7 +120,7 @@ namespace {
virtual size_t size() const {return mLookup.size();}
private:
- DivLookup<BaseLookupTemplate, AllowRemovals, UseDivMask> mLookup;
+ StaticMonoLookup<BaseLookupTemplate, AllowRemovals, UseDivMask> mLookup;
const int mType;
const bool mPreferSparseReducers;
PolyBasis const* mBasis;
@@ -132,18 +132,18 @@ namespace {
bool AllowRemovals,
bool UseDivMask
>
- std::unique_ptr<DivisorLookup> create(
- const DivisorLookup::Monoid& monoid,
+ std::unique_ptr<MonoLookup> create(
+ const MonoLookup::Monoid& monoid,
int type,
bool preferSparseReducers
) {
- auto p = new ConcreteDivisorLookup<BaseLookup, AllowRemovals, UseDivMask>
+ auto p = new ConcreteMonoLookup<BaseLookup, AllowRemovals, UseDivMask>
(monoid, type, preferSparseReducers);
- return std::unique_ptr<DivisorLookup>(p);
+ return std::unique_ptr<MonoLookup>(p);
}
- std::unique_ptr<DivisorLookup> createGeneral(
- const DivisorLookup::Monoid& monoid,
+ std::unique_ptr<MonoLookup> createGeneral(
+ const MonoLookup::Monoid& monoid,
int type,
bool preferSparseReducers,
bool allowRemovals
@@ -180,14 +180,14 @@ namespace {
}
}
- class ConcreteFactory : public DivisorLookup::Factory {
+ class ConcreteFactory : public MonoLookup::Factory {
public:
ConcreteFactory(const Monoid& monoid, int type):
mMonoid(monoid),
mType(type)
{}
- virtual std::unique_ptr<DivisorLookup> create(
+ virtual std::unique_ptr<MonoLookup> create(
bool preferSparseReducers,
bool allowRemovals
) const {
@@ -201,20 +201,19 @@ namespace {
};
}
-std::unique_ptr<DivisorLookup::Factory> DivisorLookup::makeFactory(
+std::unique_ptr<MonoLookup::Factory> MonoLookup::makeFactory(
const PolyRing& ring,
int type
) {
return std::unique_ptr<Factory>(new ConcreteFactory(ring.monoid(), type));
}
-void DivisorLookup::displayDivisorLookupTypes(std::ostream &o)
-{
- o << "Divisor Lookup Types:" << std::endl;
- o << " 1 divlist+divmask" << std::endl;
- o << " 2 kdtree+divmask" << std::endl;
- o << " 3 divlist" << std::endl;
- o << " 4 kdtree" << std::endl;
+void MonoLookup::displayMonoLookupTypes(std::ostream& out) {
+ out << "Mono Lookup Types:" << std::endl;
+ out << " 1 divlist+divmask" << std::endl;
+ out << " 2 kdtree+divmask" << std::endl;
+ out << " 3 divlist" << std::endl;
+ out << " 4 kdtree" << std::endl;
}
MATHICGB_NAMESPACE_END
diff --git a/src/mathicgb/DivisorLookup.hpp b/src/mathicgb/MonoLookup.hpp
similarity index 93%
rename from src/mathicgb/DivisorLookup.hpp
rename to src/mathicgb/MonoLookup.hpp
index fd6c7a2..594e96d 100755
--- a/src/mathicgb/DivisorLookup.hpp
+++ b/src/mathicgb/MonoLookup.hpp
@@ -1,7 +1,7 @@
// 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_DIVISOR_LOOKUP_GUARD
-#define MATHICGB_DIVISOR_LOOKUP_GUARD
+#ifndef MATHICGB_MONO_LOOKUP_GUARD
+#define MATHICGB_MONO_LOOKUP_GUARD
#include "PolyRing.hpp"
#include <vector>
@@ -13,7 +13,7 @@ class SigPolyBasis;
// Supports queries on the lead terms of the monomials in a PolyBasis.
// todo: rename to MonomialLookup.
-class DivisorLookup
+class MonoLookup
{
public:
typedef PolyRing::Monoid Monoid;
@@ -28,7 +28,7 @@ public:
// parameter object is the same each time.
virtual void setSigBasis(const SigPolyBasis& sigBasis) = 0;
- virtual ~DivisorLookup() {}
+ virtual ~MonoLookup() {}
virtual void insert(ConstMonoRef mono, size_t index) = 0;
@@ -57,11 +57,11 @@ public:
virtual int type() const = 0;
- static void displayDivisorLookupTypes(std::ostream& o);
+ static void displayMonoLookupTypes(std::ostream& out);
class Factory {
public:
- virtual std::unique_ptr<DivisorLookup> create
+ virtual std::unique_ptr<MonoLookup> create
(bool preferSparseReducers, bool allowRemovals) const = 0;
};
static std::unique_ptr<Factory> makeFactory
diff --git a/src/mathicgb/PolyBasis.cpp b/src/mathicgb/PolyBasis.cpp
index e2cf091..4781ece 100755
--- a/src/mathicgb/PolyBasis.cpp
+++ b/src/mathicgb/PolyBasis.cpp
@@ -4,19 +4,18 @@
#include "PolyBasis.hpp"
#include "Basis.hpp"
-#include "DivisorLookup.hpp"
MATHICGB_NAMESPACE_BEGIN
PolyBasis::PolyBasis(
const PolyRing& ring,
- std::unique_ptr<DivisorLookup> divisorLookup
+ std::unique_ptr<MonoLookup> monoLookup
):
mRing(ring),
- mDivisorLookup(std::move(divisorLookup))
+ mMonoLookup(std::move(monoLookup))
{
- MATHICGB_ASSERT(mDivisorLookup.get() != 0);
- mDivisorLookup->setBasis(*this);
+ MATHICGB_ASSERT(mMonoLookup.get() != 0);
+ mMonoLookup->setBasis(*this);
}
PolyBasis::~PolyBasis() {
@@ -62,7 +61,7 @@ void PolyBasis::insert(std::unique_ptr<Poly> poly) {
// Update information about minimal lead terms.
const bool leadMinimal = (divisor(lead) == static_cast<size_t>(-1));
if (leadMinimal) {
- class MultipleOutput : public DivisorLookup::EntryOutput {
+ class MultipleOutput : public MonoLookup::EntryOutput {
public:
MultipleOutput(EntryCont& entries): mEntries(entries) {}
virtual bool proceed(size_t index) {
@@ -74,10 +73,10 @@ void PolyBasis::insert(std::unique_ptr<Poly> poly) {
EntryCont& mEntries;
};
MultipleOutput out(mEntries);
- divisorLookup().multiples(lead, out);
+ monoLookup().multiples(lead, out);
}
- mDivisorLookup->insert(lead, index);
+ mMonoLookup->insert(lead, index);
mEntries.push_back(Entry());
Entry& entry = mEntries.back();
@@ -90,7 +89,7 @@ void PolyBasis::insert(std::unique_ptr<Poly> poly) {
std::unique_ptr<Poly> PolyBasis::retire(size_t index) {
MATHICGB_ASSERT(index < size());
MATHICGB_ASSERT(!retired(index));
- mDivisorLookup->remove(leadMonomial(index));
+ mMonoLookup->remove(leadMonomial(index));
std::unique_ptr<Poly> poly(mEntries[index].poly);
mEntries[index].poly = 0;
mEntries[index].retired = true;
@@ -106,7 +105,7 @@ std::unique_ptr<Basis> PolyBasis::toBasisAndRetireAll() {
}
size_t PolyBasis::divisor(const_monomial mon) const {
- size_t index = divisorLookup().divisor(mon);
+ size_t index = monoLookup().divisor(mon);
MATHICGB_ASSERT((index == static_cast<size_t>(-1)) ==
(divisorSlow(mon) == static_cast<size_t>(-1)));
MATHICGB_ASSERT(index == static_cast<size_t>(-1) ||
@@ -115,8 +114,8 @@ size_t PolyBasis::divisor(const_monomial mon) const {
}
size_t PolyBasis::classicReducer(const_monomial mon) const {
- return divisorLookup().classicReducer(mon);
- size_t index = divisorLookup().classicReducer(mon);
+ return monoLookup().classicReducer(mon);
+ size_t index = monoLookup().classicReducer(mon);
MATHICGB_ASSERT((index == static_cast<size_t>(-1)) ==
(divisorSlow(mon) == static_cast<size_t>(-1)));
MATHICGB_ASSERT(index == static_cast<size_t>(-1) ||
diff --git a/src/mathicgb/PolyBasis.hpp b/src/mathicgb/PolyBasis.hpp
index 719dfc1..bb734be 100755
--- a/src/mathicgb/PolyBasis.hpp
+++ b/src/mathicgb/PolyBasis.hpp
@@ -4,7 +4,7 @@
#define MATHICGB_POLY_BASIS_GUARD
#include "Poly.hpp"
-#include "DivisorLookup.hpp"
+#include "MonoLookup.hpp"
#include <vector>
#include <memory>
@@ -20,7 +20,7 @@ public:
// Ring must live for as long as this object.
PolyBasis(
const PolyRing& ring,
- std::unique_ptr<DivisorLookup> divisorLookup
+ std::unique_ptr<MonoLookup> monoLookup
);
// Deletes the Poly's stored in the basis.
@@ -55,10 +55,10 @@ public:
MATHICGB_ASSERT(!newValue->isZero());
MATHICGB_ASSERT(mRing.monomialEQ
(leadMonomial(index), newValue->getLeadMonomial()));
- mDivisorLookup->remove(leadMonomial(index));
+ mMonoLookup->remove(leadMonomial(index));
delete mEntries[index].poly;
mEntries[index].poly = newValue.release();
- mDivisorLookup->insert(leadMonomial(index), index);
+ mMonoLookup->insert(leadMonomial(index), index);
MATHICGB_ASSERT(mEntries[index].poly != 0);
}
@@ -72,7 +72,7 @@ public:
// Returns a data structure containing the lead monomial of each lead
// monomial.
- const DivisorLookup& divisorLookup() const {return *mDivisorLookup;}
+ const MonoLookup& monoLookup() const {return *mMonoLookup;}
// Retires the basis element at index, which frees the memory associated
// to it, including the basis element polynomial, and marks it as retired.
@@ -130,7 +130,7 @@ public:
// basis element. Equality counts as divisibility.
bool leadMinimal(const Poly& poly) const {
MATHICGB_ASSERT(&poly != 0);
- return mDivisorLookup->divisor(poly.getLeadMonomial()) !=
+ return mMonoLookup->divisor(poly.getLeadMonomial()) !=
static_cast<size_t>(-1);
}
@@ -219,7 +219,7 @@ private:
typedef EntryCont::const_iterator EntryCIter;
const PolyRing& mRing;
- std::unique_ptr<DivisorLookup> mDivisorLookup;
+ std::unique_ptr<MonoLookup> mMonoLookup;
std::vector<Entry> mEntries;
};
diff --git a/src/mathicgb/SPairs.cpp b/src/mathicgb/SPairs.cpp
index ad57efe..3dd4d04 100755
--- a/src/mathicgb/SPairs.cpp
+++ b/src/mathicgb/SPairs.cpp
@@ -107,7 +107,7 @@ std::pair<size_t, size_t> SPairs::pop(exponent& w) {
namespace {
// Records multiples of a basis element.
// Used in addPairs().
- class RecordIndexes : public DivisorLookup::EntryOutput {
+ class RecordIndexes : public MonoLookup::EntryOutput {
public:
RecordIndexes(
size_t newGen,
@@ -160,7 +160,7 @@ void SPairs::addPairsAssumeAutoReduce(
}
RecordIndexes indexes(newGen, mEliminated, toRetireAndReduce);
- mBasis.divisorLookup().multiples(mBasis.leadMonomial(newGen), indexes);
+ mBasis.monoLookup().multiples(mBasis.leadMonomial(newGen), indexes);
}
addPairs(newGen);
}
@@ -279,7 +279,7 @@ bool SPairs::simpleBuchbergerLcmCriterion(
);
MATHICGB_ASSERT(mEliminated.columnCount() == mBasis.size());
- class Criterion : public DivisorLookup::EntryOutput {
+ class Criterion : public MonoLookup::EntryOutput {
public:
Criterion(
const size_t a,
@@ -396,7 +396,7 @@ bool SPairs::simpleBuchbergerLcmCriterion(
} else {
MATHICGB_ASSERT(!criterion.applies());
// This will be a tough nut to crack in terms of getting the types to match.
- mBasis.divisorLookup().divisors
+ mBasis.monoLookup().divisors
(Monoid::toRef(BareMonoid::toOld(criterion.lcmAB())), criterion);
applies = criterion.applies();
@@ -496,7 +496,7 @@ bool SPairs::advancedBuchbergerLcmCriterion(
// node in question is so far known to be connected to, if any.
typedef std::vector<std::pair<size_t, Connection> > Graph;
- class GraphBuilder : public DivisorLookup::EntryOutput {
+ class GraphBuilder : public MonoLookup::EntryOutput {
public:
GraphBuilder(Graph& graph): mGraph(graph) {graph.clear();}
virtual bool proceed(size_t index) {
@@ -510,7 +510,8 @@ bool SPairs::advancedBuchbergerLcmCriterion(
graph.clear();
GraphBuilder builder(graph);
// This will be a tough nut to crack in terms of getting the types to match.
- mBasis.divisorLookup().divisors(Monoid::toRef(BareMonoid::toOld(lcmAB)), builder);
+ mBasis.monoLookup().divisors
+ (Monoid::toRef(BareMonoid::toOld(lcmAB)), builder);
if (graph.size() <= 3) {
// For the graph approach to be better than the simpler approach of
diff --git a/src/mathicgb/SigPolyBasis.cpp b/src/mathicgb/SigPolyBasis.cpp
index f44551e..09486d5 100755
--- a/src/mathicgb/SigPolyBasis.cpp
+++ b/src/mathicgb/SigPolyBasis.cpp
@@ -12,19 +12,19 @@ MATHICGB_NAMESPACE_BEGIN
SigPolyBasis::SigPolyBasis(
const PolyRing* R0,
- int divisorLookupType,
+ int monoLookupType,
int monTableType,
bool preferSparseReducers):
- mDivisorLookupFactory
- (DivisorLookup::makeFactory(*R0, divisorLookupType)),
+ mMonoLookupFactory
+ (MonoLookup::makeFactory(*R0, monoLookupType)),
mRatioSorted(RatioOrder(sigLeadRatio, R0->monoid())),
- mMinimalDivisorLookup(mDivisorLookupFactory->create(preferSparseReducers, true)),
- mBasis(*R0, mDivisorLookupFactory->create(preferSparseReducers, true)),
+ mMinimalMonoLookup(mMonoLookupFactory->create(preferSparseReducers, true)),
+ mBasis(*R0, mMonoLookupFactory->create(preferSparseReducers, true)),
mPreferSparseReducers(preferSparseReducers)
{
mTmp = mBasis.ring().allocMonomial();
- const_cast<DivisorLookup&>(mBasis.divisorLookup()).setSigBasis(*this);
- mMinimalDivisorLookup->setSigBasis(*this);
+ const_cast<MonoLookup&>(mBasis.monoLookup()).setSigBasis(*this);
+ mMinimalMonoLookup->setSigBasis(*this);
}
SigPolyBasis::~SigPolyBasis()
@@ -44,8 +44,8 @@ SigPolyBasis::~SigPolyBasis()
}
void SigPolyBasis::addComponent() {
- std::unique_ptr<DivisorLookup> lookup =
- mDivisorLookupFactory->create(mPreferSparseReducers, true);
+ std::unique_ptr<MonoLookup> lookup =
+ mMonoLookupFactory->create(mPreferSparseReducers, true);
lookup->setSigBasis(*this);
mSignatureLookup.push_back(0);
mSignatureLookup.back() = lookup.release(); // only release after alloc
@@ -75,12 +75,12 @@ void SigPolyBasis::insert(monomial sig, std::unique_ptr<Poly> f)
const_monomial const lead = f->getLeadMonomial();
mBasis.insert(std::move(f));
if (mBasis.leadMinimal(mBasis.size() - 1)) {
- mMinimalDivisorLookup->removeMultiples(lead);
- mMinimalDivisorLookup->insert(lead, index);
+ mMinimalMonoLookup->removeMultiples(lead);
+ mMinimalMonoLookup->insert(lead, index);
}
- MATHICGB_ASSERT(mMinimalDivisorLookup->type() == 0 ||
- mBasis.minimalLeadCount() == mMinimalDivisorLookup->size());
+ MATHICGB_ASSERT(mMinimalMonoLookup->type() == 0 ||
+ mBasis.minimalLeadCount() == mMinimalMonoLookup->size());
MATHICGB_ASSERT(mSignatures.size() == index + 1);
MATHICGB_ASSERT(mBasis.size() == index + 1);
if (!mUseRatioRank || sig.isNull())
@@ -167,7 +167,7 @@ size_t SigPolyBasis::regularReducer(
const_monomial sig,
const_monomial term
) const {
- size_t reducer = divisorLookup().regularReducer(sig, term);
+ size_t reducer = monoLookup().regularReducer(sig, term);
#ifdef MATHICGB_SLOW_DEBUG
const size_t debugValue = regularReducerSlow(sig, term);
if (reducer == static_cast<size_t>(-1)) {
@@ -265,7 +265,7 @@ void SigPolyBasis::lowBaseDivisorsSlow(
size_t SigPolyBasis::highBaseDivisor(size_t newGenerator) const {
MATHICGB_ASSERT(newGenerator < size());
- size_t highDivisor = divisorLookup().highBaseDivisor(newGenerator);
+ size_t highDivisor = monoLookup().highBaseDivisor(newGenerator);
#ifdef MATHICGB_DEBUG
size_t debugValue = highBaseDivisorSlow(newGenerator);
MATHICGB_ASSERT((highDivisor == static_cast<size_t>(-1)) ==
@@ -423,8 +423,8 @@ size_t SigPolyBasis::getMemoryUse() const
total += mSignatures.capacity() * sizeof(mSignatures.front());
total += sigLeadRatio.capacity() * sizeof(sigLeadRatio.front());
total += mRatioRanks.capacity() * sizeof(mRatioRanks.front());
- total += divisorLookup().getMemoryUse();
- total += mMinimalDivisorLookup->getMemoryUse();
+ total += monoLookup().getMemoryUse();
+ total += mMinimalMonoLookup->getMemoryUse();
// This is an estimate of how much memory mRatioSorted uses per item.
// It is based on assuming a tree representation with a left pointer,
diff --git a/src/mathicgb/SigPolyBasis.hpp b/src/mathicgb/SigPolyBasis.hpp
index ed3977a..6feab69 100755
--- a/src/mathicgb/SigPolyBasis.hpp
+++ b/src/mathicgb/SigPolyBasis.hpp
@@ -5,7 +5,7 @@
#include "PolyRing.hpp"
#include "Poly.hpp"
-#include "DivisorLookup.hpp"
+#include "MonoLookup.hpp"
#include "PolyBasis.hpp"
#include "MonoProcessor.hpp"
#include <vector>
@@ -23,7 +23,7 @@ public:
SigPolyBasis(
const PolyRing* R,
- int divisorLookupType,
+ int monoLookupType,
int monTableType,
bool preferSparseReducers
);
@@ -144,11 +144,9 @@ private:
friend class StoredRatioCmp;
- const DivisorLookup& divisorLookup() const {
- return mBasis.divisorLookup();
- }
+ const MonoLookup& monoLookup() const {return mBasis.monoLookup();}
- std::unique_ptr<DivisorLookup::Factory const> const mDivisorLookupFactory;
+ std::unique_ptr<MonoLookup::Factory const> const mMonoLookupFactory;
// may change at next insert!
size_t ratioRank(size_t index) const {
@@ -186,10 +184,10 @@ private:
RatioSortedType mRatioSorted;
std::vector<Rank> mRatioRanks;
- std::vector<DivisorLookup*> mSignatureLookup;
+ std::vector<MonoLookup*> mSignatureLookup;
// Contains those lead terms that are minimal.
- std::unique_ptr<DivisorLookup> const mMinimalDivisorLookup;
+ std::unique_ptr<MonoLookup> const mMinimalMonoLookup;
PolyBasis mBasis;
bool const mPreferSparseReducers;
diff --git a/src/mathicgb/SignatureGB.cpp b/src/mathicgb/SignatureGB.cpp
index a5ac65c..cb7be16 100755
--- a/src/mathicgb/SignatureGB.cpp
+++ b/src/mathicgb/SignatureGB.cpp
@@ -4,7 +4,7 @@
#include "SignatureGB.hpp"
#include "Basis.hpp"
-#include "DivisorLookup.hpp"
+#include "MonoLookup.hpp"
#include "SigSPairs.hpp"
#include "PolyHeap.hpp"
#include "MTArray.hpp"
@@ -309,7 +309,7 @@ void SignatureGB::displayStats(std::ostream &o) const
<< (mPostponeKoszul ? "-postpone" : "")
<< (mUseBaseDivisors ? "-basediv" : "") << '\n';
o << " reduction type: " << reducer->description() << '\n';
- o << " divisor tab type: " << GB->basis().divisorLookup().getName() << '\n';
+ o << " divisor tab type: " << GB->basis().monoLookup().getName() << '\n';
o << " syzygy tab type: " << Hsyz->description() << '\n';
o << " S-pair queue type: " << SP->name() << '\n';
o << " total compute time: " << stats_nsecs << " -- seconds" << '\n';
diff --git a/src/mathicgb/SignatureGB.hpp b/src/mathicgb/SignatureGB.hpp
index b667210..ffb860e 100755
--- a/src/mathicgb/SignatureGB.hpp
+++ b/src/mathicgb/SignatureGB.hpp
@@ -16,7 +16,6 @@
MATHICGB_NAMESPACE_BEGIN
class SigSPairs;
-class DivisorLookup;
class SignatureGB {
public:
diff --git a/src/mathicgb/DivLookup.hpp b/src/mathicgb/StaticMonoLookup.hpp
similarity index 96%
rename from src/mathicgb/DivLookup.hpp
rename to src/mathicgb/StaticMonoLookup.hpp
index dd6c635..9f6ee6f 100755
--- a/src/mathicgb/DivLookup.hpp
+++ b/src/mathicgb/StaticMonoLookup.hpp
@@ -1,19 +1,21 @@
// 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_DIV_LOOKUP_GUARD
-#define MATHICGB_DIV_LOOKUP_GUARD
+#ifndef MATHICGB_STATIC_MONO_LOOKUP_GUARD
+#define MATHICGB_STATIC_MONO_LOOKUP_GUARD
#include "SigPolyBasis.hpp"
-#include "DivisorLookup.hpp"
+#include "PolyBasis.hpp"
+#include "MonoLookup.hpp"
#include "PolyRing.hpp"
#include <mathic.h>
#include <type_traits>
#include <string>
#include <vector>
-#include <iostream>
MATHICGB_NAMESPACE_BEGIN
+/// Data structure for performing queries on a set of monomials.
+/// This is static in the sense that the interface is not virtual.
template<
/// Should be mathic::DivList or mathic::KDTree
template<class> class BaseLookupTemplate,
@@ -27,15 +29,15 @@ template<
/// checks. This is usually a big speed up.
bool UseDivMask
>
-class DivLookup;
+class StaticMonoLookup;
template<template<class> class BaseLookupTemplate, bool AR, bool DM>
-class DivLookup {
+class StaticMonoLookup {
private:
typedef PolyRing::Monoid Monoid;
typedef Monoid::ConstMonoRef ConstMonoRef;
typedef Monoid::ConstMonoPtr ConstMonoPtr;
- typedef DivisorLookup::EntryOutput EntryOutput;
+ typedef MonoLookup::EntryOutput EntryOutput;
/// Configuration for a Mathic KDTree or DivList.
class Configuration {
@@ -112,7 +114,7 @@ public:
static_assert
(!Configuration::UseTreeDivMask || Configuration::UseDivMask, "");
- DivLookup(const Monoid& monoid): mLookup(Configuration(monoid)) {}
+ StaticMonoLookup(const Monoid& monoid): mLookup(Configuration(monoid)) {}
const Monoid& monoid() const {return mLookup.getConfiguration().monoid();}
diff --git a/src/test/F4MatrixBuilder.cpp b/src/test/F4MatrixBuilder.cpp
index ebe7771..a5671c9 100755
--- a/src/test/F4MatrixBuilder.cpp
+++ b/src/test/F4MatrixBuilder.cpp
@@ -25,7 +25,7 @@ namespace {
BuilderMaker():
mRing(ringFromString("101 6 1\n1 1 1 1 1 1")),
mIdeal(*mRing),
- mBasis(*mRing, DivisorLookup::makeFactory(*mRing, 1)->create(true, true)) {
+ mBasis(*mRing, MonoLookup::makeFactory(*mRing, 1)->create(true, true)) {
}
const Poly& addBasisElement(const std::string& str) {
--
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