1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
void computeKernelLatticeBasis(const vector<Degree>& degrees,
BigIdeal& basis,
const string& originalFilename) {
string filename = "__4ti2.tmp";
deleteFile(filename + ".lat");
deleteFile(filename + ".mat");
deleteFile(filename);
writeDegrees(degrees, filename);
string cmd = "zbasis -parb --quiet " + filename + " > /dev/null";
system(cmd.c_str());
readLatticeBasis(filename + ".lat", basis);
deleteFile(filename + ".lat");
cmd = "mv -f " + filename + " " + originalFilename + ".mat";
system(cmd.c_str());
}
void computeGrobnerBasis(const BigIdeal& latticeBasis,
BigIdeal& grobnerBasis,
const string& outputFilename) {
string filename = "__4ti2.tmp";
deleteFile(filename + ".gro");
deleteFile(filename + ".lat");
deleteFile(filename);
writeLatticeBasis(filename + ".lat", latticeBasis);
string cmd = "groebner -parb --quiet " + filename + " > /dev/null";
system(cmd.c_str());
readGrobnerBasis(filename + ".gro", grobnerBasis);
deleteFile(outputFilename);
cmd = "mv -f " + filename + ".gro " + outputFilename;
system(cmd.c_str());
deleteFile(filename + ".lat");
}
|