36 namespace N = NewMonos;
72 IOHandlerImpl(staticGetName(),
"Newer format used by the program Monos.") {
103 if (
in.peek(
'l') ||
in.peek(
'L')) {
112 }
while (
in.match(
'('));
117 for (
unsigned int i = 0;
i <
names.getVarCount(); ++
i) {
125 in.expect(
"lex-order");
126 while (!
in.match(
')'))
127 names.addVarSyntaxCheckUnique(
in,
in.readIdentifier());
131 in.expect(
"monomial-ideal-with-order");
139 while (!
in.match(
')'))
void nameFactoryRegister(NameFactory< AbstractProduct > &factory)
Registers the string returned by ConcreteProduct::getStaticName() to a function that default-construc...
static const DataType & getMonomialIdealListType()
Returns the one and only instance for monomial ideal lists.
static const DataType & getMonomialIdealType()
Returns the one and only instance for monomial ideals.
This class contains a minimum level of functionality that makes it more convenient to derive from tha...
void registerInput(const DataType &type)
Specify that input of the argument type is supported.
void registerOutput(const DataType &type)
Specify that output of the argument type is supported.
const VarNames & getNames()
virtual void doReadTerm(Scanner &in, InputConsumer &consumer)
virtual BigTermConsumer * doCreateIdealWriter(FILE *out)
void doReadIdeal(Scanner &in, InputConsumer &consumer)
virtual void doWriteTerm(const vector< mpz_class > &term, const VarNames &names, FILE *out)
static const char * staticGetName()
void doReadIdeals(Scanner &in, InputConsumer &consumer)
virtual void doWriteEmptyList()
virtual void doWriteTerm(const Term &term, const TermTranslator &translator, bool first)
NewMonosIdealWriter(FILE *out)
virtual void doWriteTerm(const vector< mpz_class > &term, bool first)
virtual void doWriteHeader(bool first)
virtual void doWriteFooter(bool wasZeroIdeal)
This class offers an input interface which is more convenient and for some purposes more efficient th...
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
Term represents a product of variables which does not include a coefficient.
Defines the variables of a polynomial ring and facilities IO involving them.
void writeRing(const VarNames &names, FILE *out)
void readRingNoLeftParen(Scanner &in, VarNames &names)
void readIdealNoLeftParen(Scanner &in, InputConsumer &consumer)
void writeTermProduct(const Term &term, const TermTranslator &translator, FILE *out)