[mathicgb] 304/393: Moved handling of Schreyer order into Basis and added syntax for that to ring description. The number given to a free module order then no longer does anything at all, so code passing that around has been removed.

Doug Torrance dtorrance-guest at moszumanska.debian.org
Fri Apr 3 15:59:26 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 fee815cb01956c8dd6f348c0bfc69ce8d4de1cec
Author: Bjarke Hammersholt Roune <bjarkehr.code at gmail.com>
Date:   Mon Apr 29 21:58:59 2013 +0200

    Moved handling of Schreyer order into Basis and added syntax for that to ring description. The number given to a free module order then no longer does anything at all, so code passing that around has been removed.
---
 src/cli/GBAction.cpp           | 12 +-----------
 src/cli/SigGBAction.cpp        | 14 ++------------
 src/cli/SigGBAction.hpp        |  1 -
 src/mathicgb.cpp               |  2 +-
 src/mathicgb/Basis.cpp         | 10 +++++++++-
 src/mathicgb/BuchbergerAlg.cpp |  3 +--
 src/mathicgb/BuchbergerAlg.hpp |  3 +--
 src/mathicgb/MonoMonoid.hpp    | 22 +++++++++++++++++-----
 src/mathicgb/PolyRing.cpp      |  2 +-
 src/mathicgb/PolyRing.hpp      |  2 +-
 src/mathicgb/SignatureGB.cpp   | 13 +++----------
 src/mathicgb/SignatureGB.hpp   |  6 +++---
 src/test/MonoMonoid.cpp        |  2 +-
 src/test/gb-test.cpp           | 41 ++++++++++++++++++++---------------------
 src/test/ideals.cpp            | 25 ++++++++++++++-----------
 src/test/ideals.hpp            |  2 +-
 16 files changed, 76 insertions(+), 84 deletions(-)

diff --git a/src/cli/GBAction.cpp b/src/cli/GBAction.cpp
index 32f1322..85c3147 100755
--- a/src/cli/GBAction.cpp
+++ b/src/cli/GBAction.cpp
@@ -21,11 +21,6 @@ GBAction::GBAction():
     "classic Buchberger algorithm.",
     true),
 
-  //mTermOrder("termOrder",
-  //  "The term order to compute a Grobner basis with respect to. This is "
-  //  "currently actually a free module term order, but that should be changed.",
-  //  4),
-
   mSPairGroupSize("sPairGroupSize",
     "Specifies how many S-pair to reduce at one time. A value of 0 "
     "indicates to use an appropriate default.",
@@ -39,11 +34,7 @@ GBAction::GBAction():
    0),
 
    mParams(1, 1)
-{
-  std::ostringstream orderOut;
-  FreeModuleOrder::displayOrderTypes(orderOut);
-  //mTermOrder.appendToDescription(orderOut.str());
-}
+{}
 
 void GBAction::directOptions(
   std::vector<std::string> tokens,
@@ -87,7 +78,6 @@ void GBAction::performAction() {
 
   BuchbergerAlg alg(
     *basis,
-    4 /*mModuleOrder.value()*/ , // todo: alg should not take a *module* order
     *reducer,
     mGBParams.mDivisorLookup.value(),
     mGBParams.mPreferSparseReducers.value(),
diff --git a/src/cli/SigGBAction.cpp b/src/cli/SigGBAction.cpp
index b7566af..ce83dbe 100755
--- a/src/cli/SigGBAction.cpp
+++ b/src/cli/SigGBAction.cpp
@@ -25,16 +25,8 @@ SigGBAction::SigGBAction():
     "S-spairs quickly based on signature.",
     true),
 
-  mModuleOrder("moduleOrder",
-    "The free module term order.\n",
-    4),
-
   mParams(1, 1)
-{
-  std::ostringstream orderOut;
-  FreeModuleOrder::displayOrderTypes(orderOut);
-  mModuleOrder.appendToDescription(orderOut.str());
-}
+{}
 
 void SigGBAction::directOptions(
   std::vector<std::string> tokens,
@@ -59,8 +51,7 @@ void SigGBAction::performAction() {
 
   SignatureGB alg(
     std::move(*basis),
-    mModuleOrder.value(),
-    std::get<2>(tuple)->componentsAscendingDesired(),
+    std::move(*std::get<2>(tuple)),
     Reducer::reducerType(mGBParams.mReducer.value()),
     mGBParams.mDivisorLookup.value(),
     mGBParams.mMonomialTable.value(),
@@ -126,5 +117,4 @@ void SigGBAction::pushBackParameters(
   parameters.push_back(&mUseSingularCriterionEarly);
   parameters.push_back(&mPostponeKoszul);
   parameters.push_back(&mUseBaseDivisors);
-  parameters.push_back(&mModuleOrder);
 }
diff --git a/src/cli/SigGBAction.hpp b/src/cli/SigGBAction.hpp
old mode 100644
new mode 100755
index b63b409..c25e199
--- a/src/cli/SigGBAction.hpp
+++ b/src/cli/SigGBAction.hpp
@@ -30,7 +30,6 @@ private:
   mic::BoolParameter mUseSingularCriterionEarly;
   mic::BoolParameter mPostponeKoszul;
   mic::BoolParameter mUseBaseDivisors;
-  mic::IntegerParameter mModuleOrder;
 };
 
 #endif
diff --git a/src/mathicgb.cpp b/src/mathicgb.cpp
index ceb66ba..c99e7fe 100755
--- a/src/mathicgb.cpp
+++ b/src/mathicgb.cpp
@@ -803,7 +803,7 @@ namespace mgbi {
     );
 
     // Set up and configure algorithm
-    BuchbergerAlg alg(basis, 4, *reducer, 2, true, 0);
+    BuchbergerAlg alg(basis, *reducer, 2, true, 0);
     alg.setReducerMemoryQuantum(100 * 1024);
     alg.setUseAutoTopReduction(true);
     alg.setUseAutoTailReduction(false);
diff --git a/src/mathicgb/Basis.cpp b/src/mathicgb/Basis.cpp
index 7e86811..0e3665c 100755
--- a/src/mathicgb/Basis.cpp
+++ b/src/mathicgb/Basis.cpp
@@ -49,7 +49,7 @@ auto Basis::parse(std::istream& in) -> Parsed
 
   auto basis = make_unique<Basis>(*ring);
   auto processor = make_unique<MonoProcessor<Monoid>>(ring->monoid());
-  processor->setComponentsAscendingDesired(r.second);
+  processor->setComponentsAscendingDesired(r.second.first);
 
   size_t polyCount;
   in >> polyCount;
@@ -60,6 +60,14 @@ auto Basis::parse(std::istream& in) -> Parsed
     poly->parse(in);
     basis->insert(std::move(poly));
   }
+
+  if (r.second.second) {
+    Monoid::MonoVector schreyer(ring->monoid());
+    for (size_t gen = 0; gen < basis->size(); ++gen)
+      schreyer.push_back(basis->getPoly(gen)->getLeadMonomial());
+    processor->setModuleAdjustments(std::move(schreyer));
+  }
+
   return std::make_tuple(
     std::move(ring),
     std::move(basis),
diff --git a/src/mathicgb/BuchbergerAlg.cpp b/src/mathicgb/BuchbergerAlg.cpp
index c086d6a..0c6b69d 100755
--- a/src/mathicgb/BuchbergerAlg.cpp
+++ b/src/mathicgb/BuchbergerAlg.cpp
@@ -12,7 +12,6 @@ MATHICGB_DEFINE_LOG_DOMAIN(
 
 BuchbergerAlg::BuchbergerAlg(
   const Basis& basis,
-  FreeModuleOrderType orderType,
   Reducer& reducer,
   int divisorLookupType,
   bool preferSparseReducers,
@@ -25,7 +24,7 @@ BuchbergerAlg::BuchbergerAlg(
   mUseAutoTopReduction(true),
   mUseAutoTailReduction(false),
   mRing(*basis.getPolyRing()),
-  mOrder(FreeModuleOrder::makeOrder(orderType, *basis.getPolyRing())),
+  mOrder(FreeModuleOrder::makeOrder(0, *basis.getPolyRing())), // todo: remove
   mReducer(reducer),
   mBasis(mRing, *mOrder, DivisorLookup::makeFactory(
     *basis.getPolyRing(),
diff --git a/src/mathicgb/BuchbergerAlg.hpp b/src/mathicgb/BuchbergerAlg.hpp
index 700bbe6..7e582b6 100755
--- a/src/mathicgb/BuchbergerAlg.hpp
+++ b/src/mathicgb/BuchbergerAlg.hpp
@@ -17,7 +17,6 @@ class BuchbergerAlg {
 public:
   BuchbergerAlg(
     const Basis& basis,
-    FreeModuleOrderType orderType,
     Reducer& reducer,
     int divisorLookupType,
     bool preferSparseReducers,
@@ -93,7 +92,7 @@ private:
   void insertPolys(std::vector<std::unique_ptr<Poly> >& polynomials);
 
   const PolyRing& mRing;
-  std::unique_ptr<FreeModuleOrder> mOrder;
+  std::unique_ptr<FreeModuleOrder> mOrder; // todo: remove
   Reducer& mReducer;
   PolyBasis mBasis;
   SPairs mSPairs;
diff --git a/src/mathicgb/MonoMonoid.hpp b/src/mathicgb/MonoMonoid.hpp
index 0e891a9..baaf447 100755
--- a/src/mathicgb/MonoMonoid.hpp
+++ b/src/mathicgb/MonoMonoid.hpp
@@ -331,9 +331,12 @@ public:
     return MonoMonoid(order);
   }
 
-  /// The second component of the return pair indicates whether it is
-  /// desired that i>j => e_i > e_j.
-  static std::pair<MonoMonoid, bool> readMonoid(std::istream& in);
+  /// The second.first value of the return pair indicates whether it
+  /// is desired that i>j => e_i > e_j. the second.second value
+  /// indicates whether to do a Schreyer order. TODO: clearly this is
+  /// a mess that needs to be cleaned up. Step 1 is to move IO out of
+  /// MonoMonoid entirely.
+  static std::pair<MonoMonoid, std::pair<bool, bool>> readMonoid(std::istream& in);
   void printMonoid
     (const bool componentsAscendingDesired, std::ostream& out) const;
 
@@ -1742,12 +1745,13 @@ namespace MonoMonoidHelper {
 
 template<class E, bool HC, bool SH, bool SO>
 auto MonoMonoid<E, HC, SH, SO>::readMonoid(std::istream& in) ->
-  std::pair<MonoMonoid, bool>
+  std::pair<MonoMonoid, std::pair<bool, bool>>
 {
   using MonoMonoidHelper::unchar;
   VarIndex varCount;
   in >> varCount;
 
+  bool doSchreyer = false;
   bool lexBaseOrder = false;
   std::string str;
   char c;
@@ -1756,6 +1760,11 @@ auto MonoMonoid<E, HC, SH, SO>::readMonoid(std::istream& in) ->
   if (!std::isdigit(c)) {
     std::string str;
     in >> str;
+    if (str == "schreyer") {
+      doSchreyer = true;
+      in >> str;
+    }
+
     if (str == "revlex")
       lexBaseOrder = false;
     else if (str == "lex")
@@ -1835,7 +1844,10 @@ auto MonoMonoid<E, HC, SH, SO>::readMonoid(std::istream& in) ->
     lexBaseOrder ? Order::LexBaseOrder : Order::RevLexBaseOrder,
     componentCompareIndex
   );
-  return std::make_pair(MonoMonoid(order), componentsAscendingDesired);
+  return std::make_pair(
+    MonoMonoid(order),
+    std::make_pair(componentsAscendingDesired, doSchreyer)
+  );
 }
 
 template<class E, bool HC, bool SH, bool SO>
diff --git a/src/mathicgb/PolyRing.cpp b/src/mathicgb/PolyRing.cpp
index e07aed6..1c50fd1 100755
--- a/src/mathicgb/PolyRing.cpp
+++ b/src/mathicgb/PolyRing.cpp
@@ -228,7 +228,7 @@ void PolyRing::printMonomialFrobbyM2Format(std::ostream& out, ConstMonomial m) c
     out << '1';
 }
 
-std::pair<PolyRing*, bool> PolyRing::read(std::istream &i)
+std::pair<PolyRing*, std::pair<bool, bool>> PolyRing::read(std::istream &i)
 {
   int64 characInt;
   coefficient charac;
diff --git a/src/mathicgb/PolyRing.hpp b/src/mathicgb/PolyRing.hpp
index 66547d7..4b5e3f5 100755
--- a/src/mathicgb/PolyRing.hpp
+++ b/src/mathicgb/PolyRing.hpp
@@ -219,7 +219,7 @@ public:
   //       const std::vector<int> &degs,
   //       const std::string &monorder);
 
-  static std::pair<PolyRing*, bool> read(std::istream &i);
+  static std::pair<PolyRing*, std::pair<bool, bool>> read(std::istream &i);
   void write(std::ostream &o, bool componentIncreasingDesired) const;
   // Format for ring
   //   <char> <mNumVars> <deg1> ... <deg_n> <monorder>
diff --git a/src/mathicgb/SignatureGB.cpp b/src/mathicgb/SignatureGB.cpp
index 9e352f3..999c60b 100755
--- a/src/mathicgb/SignatureGB.cpp
+++ b/src/mathicgb/SignatureGB.cpp
@@ -14,8 +14,7 @@ int tracingLevel = 0;
 
 SignatureGB::SignatureGB(
   Basis&& basis,
-  FreeModuleOrderType typ,
-  bool componentsAscendingDesired,
+  Processor&& processor,
   Reducer::ReducerType reductiontyp,
   int divlookup_type,
   int montable_type,
@@ -28,7 +27,7 @@ SignatureGB::SignatureGB(
   mBreakAfter(0),
   mPrintInterval(0),
   R(basis.getPolyRing()),
-  F(FreeModuleOrder::makeOrder(typ, *basis.getPolyRing())),
+  F(FreeModuleOrder::makeOrder(0, *basis.getPolyRing())),
   mPostponeKoszul(postponeKoszul),
   mUseBaseDivisors(useBaseDivisors),
   stats_sPairSignaturesDone(0),
@@ -45,14 +44,8 @@ SignatureGB::SignatureGB(
   reducer(Reducer::makeReducer(reductiontyp, *R)),
   SP(make_unique<SigSPairs>(R, F.get(), GB.get(), Hsyz.get(), reducer.get(), mPostponeKoszul, mUseBaseDivisors, useSingularCriterionEarly, queueType))
 {
-  MonoVector schreyer(monoid());
-  if (typ == 5 || typ == 4 || typ == 3 || typ == 2 || typ == 6 || typ == 7)
-    for (size_t gen = 0; gen < basis.size(); ++gen)
-      schreyer.push_back(basis.getPoly(gen)->getLeadMonomial());
-  mProcessor = make_unique<MonoProcessor<Monoid>>(monoid());
-  mProcessor->setComponentsAscendingDesired(componentsAscendingDesired);
+  mProcessor = make_unique<MonoProcessor<Monoid>>(std::move(processor));
   mProcessor->setComponentCount(basis.size());
-  mProcessor->setModuleAdjustments(std::move(schreyer));
 
   // Populate GB
   for (size_t j = 0; j < basis.size(); j++)
diff --git a/src/mathicgb/SignatureGB.hpp b/src/mathicgb/SignatureGB.hpp
index ff3e47e..4177ae5 100755
--- a/src/mathicgb/SignatureGB.hpp
+++ b/src/mathicgb/SignatureGB.hpp
@@ -21,11 +21,11 @@ class SignatureGB {
 public:
   typedef PolyRing::Monoid Monoid;
   typedef Monoid::MonoVector MonoVector;
+  typedef MonoProcessor<Monoid> Processor;
 
   SignatureGB(
     Basis&& basis,
-    FreeModuleOrderType typ,
-    bool componentsAscendingDesired,
+    Processor&& processor,
     Reducer::ReducerType reductiontyp,
     int divlookup_type,
     int montable_type,
@@ -74,7 +74,7 @@ private:
   bool step();
 
   const PolyRing *R;
-  std::unique_ptr<FreeModuleOrder> F;
+  std::unique_ptr<FreeModuleOrder> F; // todo: remove
 
   
 
diff --git a/src/test/MonoMonoid.cpp b/src/test/MonoMonoid.cpp
index 7cb2a26..e0ca013 100755
--- a/src/test/MonoMonoid.cpp
+++ b/src/test/MonoMonoid.cpp
@@ -211,7 +211,7 @@ TYPED_TEST(Monoid, ReadWriteMonoid) {
       const auto& m = p.first;
 
       std::ostringstream out;
-      m.printMonoid(p.second, out);
+      m.printMonoid(p.second.first, out);
       ASSERT_EQ(outStr, out.str());
       ASSERT_EQ(varCount, m.varCount());
       ASSERT_EQ(gradingCount, m.gradingCount());
diff --git a/src/test/gb-test.cpp b/src/test/gb-test.cpp
index e3c5810..1a5c3a8 100755
--- a/src/test/gb-test.cpp
+++ b/src/test/gb-test.cpp
@@ -35,13 +35,13 @@ TEST(IO, ideal) {
   EXPECT_EQ("  -bc+ad\n  -b2+af\n  -bc2+a2e\n", toString(I.get()));
 }
 
-void testGB(int freeModuleOrder,
-            std::string idealStr,
-            std::string sigBasisStr,
-            std::string syzygiesStr,
-            std::string initialIdealStr,
-            size_t nonSingularReductions)
-{
+void testGB(
+  std::string idealStr,
+  std::string sigBasisStr,
+  std::string syzygiesStr,
+  std::string initialIdealStr,
+  size_t nonSingularReductions
+) {
   // Put the contents of pict.out into allPairsTest as a string. This
   // works because pict.out does not have any commas and we do not
   // care about whitespace. pict.out contains a set of tests such that
@@ -300,7 +300,7 @@ spairQueue	reducerType	divLookup	monTable	buchberger	postponeKoszul	useBaseDivis
       const auto reducer = Reducer::makeReducer
         (Reducer::reducerType(reducerType), I->ring());
       BuchbergerAlg alg
-        (*I, freeModuleOrder, *reducer,
+        (*I, *reducer,
          divLookup, preferSparseReducers, spairQueue);
       alg.setUseAutoTopReduction(autoTopReduce);
       alg.setUseAutoTailReduction(autoTailReduce);
@@ -314,8 +314,7 @@ spairQueue	reducerType	divLookup	monTable	buchberger	postponeKoszul	useBaseDivis
     } else {
       SignatureGB basis(
         std::move(*I),
-        freeModuleOrder,
-        std::get<2>(tuple)->componentsAscendingDesired(),
+        std::move(*std::get<2>(tuple)),
         Reducer::reducerType(reducerType),
         divLookup,
         monTable,
@@ -343,59 +342,59 @@ spairQueue	reducerType	divLookup	monTable	buchberger	postponeKoszul	useBaseDivis
 }
 
 TEST(GB, small) {
-  testGB(1, smallIdealComponentLastDescending(),
+  testGB(smallIdealComponentLastDescending(),
          idealSmallBasis, idealSmallSyzygies, idealSmallInitial, 7);
 }
 
 TEST(GB, liu_0_1) {
-  testGB(1, liuIdealComponentLastDescending(), liu_gb_strat0_free1,
+  testGB(liuIdealComponentLastDescending(), liu_gb_strat0_free1,
     liu_syzygies_strat0_free1, liu_initial_strat0_free1, 13);
 }
 
 TEST(GB, weispfennig97_0_4) {
-  testGB(4, weispfennig97IdealComponentLast(true),
+  testGB(weispfennig97IdealComponentLast(true),
          weispfennig97_gb_strat0_free4,
          weispfennig97_syzygies_strat0_free4, weispfennig97_initial_strat0_free4, 31);
 }
 
 TEST(GB, weispfennig97_0_5) {
-  testGB(5, weispfennig97IdealComponentLast(false),
+  testGB(weispfennig97IdealComponentLast(false),
          weispfennig97_gb_strat0_free5,
          weispfennig97_syzygies_strat0_free5, weispfennig97_initial_strat0_free5, 27);
 }
 
 TEST(GB, gerdt93_0_1) {
-  testGB(1, gerdt93IdealComponentLast(false), gerdt93_gb_strat0_free1,
+  testGB(gerdt93IdealComponentLast(false, false), gerdt93_gb_strat0_free1,
          gerdt93_syzygies_strat0_free1, gerdt93_initial_strat0_free1, 9);
 }
 
 TEST(GB, gerdt93_0_2) {
-  testGB(2, gerdt93IdealComponentMiddle(true), gerdt93_gb_strat0_free2,
+  testGB(gerdt93IdealComponentMiddle(true), gerdt93_gb_strat0_free2,
          gerdt93_syzygies_strat0_free2, gerdt93_initial_strat0_free2, 7);
 }
 
 TEST(GB, gerdt93_0_3) {
-  testGB(3, gerdt93IdealComponentMiddle(false), gerdt93_gb_strat0_free3,
+  testGB(gerdt93IdealComponentMiddle(false), gerdt93_gb_strat0_free3,
          gerdt93_syzygies_strat0_free3, gerdt93_initial_strat0_free3, 9);
 }
 
 TEST(GB, gerdt93_0_4) {
-  testGB(4, gerdt93IdealComponentLast(true), gerdt93_gb_strat0_free4,
+  testGB(gerdt93IdealComponentLast(true, true), gerdt93_gb_strat0_free4,
          gerdt93_syzygies_strat0_free4, gerdt93_initial_strat0_free4, 7);
 }
 
 TEST(GB, gerdt93_0_5) {
-  testGB(5, gerdt93IdealComponentLast(false), gerdt93_gb_strat0_free5,
+  testGB(gerdt93IdealComponentLast(false, true), gerdt93_gb_strat0_free5,
          gerdt93_syzygies_strat0_free5, gerdt93_initial_strat0_free5, 7);
 }
 
 TEST(GB, gerdt93_0_6) {
-  testGB(6, gerdt93IdealComponentFirst(true), gerdt93_gb_strat0_free6,
+  testGB(gerdt93IdealComponentFirst(true), gerdt93_gb_strat0_free6,
          gerdt93_syzygies_strat0_free6, gerdt93_initial_strat0_free6, 7);
 }
 
 TEST(GB, gerdt93_0_7) {
-  testGB(7, gerdt93IdealComponentFirst(false), gerdt93_gb_strat0_free7,
+  testGB(gerdt93IdealComponentFirst(false), gerdt93_gb_strat0_free7,
          gerdt93_syzygies_strat0_free7, gerdt93_initial_strat0_free7, 9);
 }
 
diff --git a/src/test/ideals.cpp b/src/test/ideals.cpp
index 13313b3..cb87fdd 100755
--- a/src/test/ideals.cpp
+++ b/src/test/ideals.cpp
@@ -72,7 +72,7 @@ const char* liu_initial_strat0_free1 =
 
 std::string weispfennig97IdealComponentLast(bool componentsAscending) {
   std::ostringstream out;
-  out << "7583 4 1\n";
+  out << "7583 4 schreyer revlex 1\n";
   if (componentsAscending)
     out << "1 1 1 1 _revlex component\n";
   else
@@ -170,35 +170,38 @@ const char* Gert93RawIdeal =
   "a3+b2c-a2d\n";
 
 
-std::string gerdt93IdealComponentLast(bool componentsAscending) {
+std::string gerdt93IdealComponentLast(bool componentsAscending, bool schreyer) {
   std::ostringstream out;
-  out << "7583 6 ";
+  out << "7583 6\n";
+  if (schreyer)
+    out << "schreyer ";
+  out << "revlex 1\n";
   if (componentsAscending)
-    out << "1 1 1 1 1 1 1 _revlex component\n";
+    out << " 1 1 1 1 1 1 _revlex component\n";
   else
-    out << "1 1 1 1 1 1 1 _revlex revcomponent\n";
+    out << " 1 1 1 1 1 1 _revlex revcomponent\n";
   out << Gert93RawIdeal;
   return out.str();
 }
 
 std::string gerdt93IdealComponentFirst(bool componentsAscending) {
   std::ostringstream out;
-  out << "7583 6 ";
+  out << "7583 6 schreyer revlex 2\n";
   if (componentsAscending)
-    out << "2 component 1 1 1 1 1 1\n";
+    out << " component\n 1 1 1 1 1 1\n";
   else
-    out << "2 revcomponent 1 1 1 1 1 1\n";
+    out << " revcomponent\n 1 1 1 1 1 1\n";
   out << Gert93RawIdeal;
   return out.str();
 }
 
 std::string gerdt93IdealComponentMiddle(bool componentsAscending) {
   std::ostringstream out;
-  out << "7583 6 ";
+  out << "7583 6 schreyer revlex 2\n";
   if (componentsAscending)
-    out << "2 1 1 1 1 1 1 component\n";
+    out << "1 1 1 1 1 1\n component\n";
   else
-    out << "2 1 1 1 1 1 1 revcomponent\n";
+    out << "1 1 1 1 1 1\n revcomponent\n";
   out << Gert93RawIdeal;
   return out.str();
 }
diff --git a/src/test/ideals.hpp b/src/test/ideals.hpp
index 4c03da9..4b0b709 100755
--- a/src/test/ideals.hpp
+++ b/src/test/ideals.hpp
@@ -29,7 +29,7 @@ extern const char* weispfennig97_initial_strat0_free5;
 // gerdt93
 std::string gerdt93IdealComponentFirst(bool componentsAscending);
 std::string gerdt93IdealComponentMiddle(bool componentsAscending);
-std::string gerdt93IdealComponentLast(bool componentsAscending);
+std::string gerdt93IdealComponentLast(bool componentsAscending, bool schreyer);
 
 extern const char* gerdt93_gb_strat0_free1;
 extern const char* gerdt93_syzygies_strat0_free1;

-- 
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