3
#include "polynomial.h"
5
#include "buchberger.h"
8
#include "reversesearch.h"
10
#include "ep_standard.h"
12
#include "gfanapplication.h"
13
#include "wallideal.h"
15
class EdwinsConjectureApplication : public GFanApplication
17
SimpleOption optionReadWeightVector;
19
bool includeInDefaultInstallation()
23
const char *helpText()
25
return "Program to help us test Edwin's conjecture\n";
27
EdwinsConjectureApplication():
28
optionReadWeightVector("-w","undocumented")
35
return "_edwinsconjecture";
38
bool inList(IntegerVector const &v,IntegerVectorList const &l)
40
for(IntegerVectorList::const_iterator i=l.begin();i!=l.end();i++)
44
IntegerVector MatrixMultiplication(IntegerVectorList const &a, IntegerVector const &b)
46
IntegerVector sum(a.begin()->size());
48
for(IntegerVectorList::const_iterator i=a.begin();i!=a.end();i++)
60
IntegerVectorList A=FileParser(Stdin).parseIntegerVectorList();
62
PolynomialSet g=FileParser(Stdin).parsePolynomialSetWithRing();
64
IntegerVectorList gL=wallInequalities(g);
66
IntegerVectorList circuits=FileParser(Stdin).parseIntegerVectorList();
69
fprintf(Stderr,"Input matrix:\n");
70
AsciiPrinter(Stderr).printVectorList(A);
71
fprintf(Stderr,"A Groebner basis:\n");
72
AsciiPrinter(Stderr).printPolynomialSet(g);
73
fprintf(Stderr,"As vectors:\n");
74
AsciiPrinter(Stderr).printVectorList(gL);
75
fprintf(Stderr,"The circuits:\n");
76
AsciiPrinter(Stderr).printVectorList(circuits);
78
IntegerVectorList additional;
79
for(IntegerVectorList::const_iterator i=gL.begin();i!=gL.end();i++)
81
if((!inList(*i,circuits))&&(!inList(-(*i),circuits)))
83
// AsciiPrinter(Stdout).printVector(*i);
84
IntegerVector degree=MatrixMultiplication(A,max(*i,*i-*i));
85
// AsciiPrinter(Stdout).printVector(degree);
86
additional.push_back(degree);
90
for(IntegerVectorList::const_iterator i=additional.begin();i!=additional.end();i++)
93
fprintf(Stderr,"New matrix:\n");
94
AsciiPrinter(Stderr).printVectorList(A);
95
AsciiPrinter(Stdout).printVectorList(A);
102
static EdwinsConjectureApplication theApplication;