33 reportError(
"Encountered positive entry as first entry in term. "
34 "This is impossible if using the required degree reverse "
35 "lexicographic term order.\n");
53 (
"The matrix defining the Frobenius-related Grobner basis must "
54 "have at least one column, and this one has none.");
59 for (
size_t i = 0; i < termCount; ++i)
73 for (
unsigned int i = 0; i < rowCount; ++i) {
75 for (
unsigned int j = 0; j < columnCount; ++j)
81 fprintf(out,
"%lu %lu\n",
85 const char* prefix =
"";
86 for (
unsigned int j = 0; j < basis[i].size(); ++j) {
87 gmp_fprintf(out,
"%s%Zd", prefix, basis[i][j].get_mpz_t());
void clearAndSetNames(const VarNames &names)
mpz_class & getLastTermExponentRef(size_t var)
size_t getVarCount() const
size_t getGeneratorCount() const
This class offers an input interface which is more convenient and for some purposes more efficient th...
void readIntegerAndNegativeAsZero(mpz_class &integer)
Read an integer and set it to zero if it is negative.
void readSizeT(size_t &size)
Reads a size_t, where the representable range of that type determines when the number is too big.
void readInteger(mpz_class &integer)
Read an arbitrary-precision integer.
Defines the variables of a polynomial ring and facilities IO involving them.
void reportError(const string &errorMsg)
void readGrobnerBasis(Scanner &scanner, BigIdeal &basis)
void readTerm(BigIdeal &ideal, Scanner &scanner)
void readLatticeBasis(Scanner &scanner, BigIdeal &basis)
void writeLatticeBasis(FILE *out, const BigIdeal &basis)