17 #ifndef IO_HANDLER_GUARD
18 #define IO_HANDLER_GUARD
59 (
const vector<mpz_class>& term,
const VarNames& names, FILE* out);
102 auto_ptr<IOHandler>
createOHandler(
const string& input,
const string& output);
void readFrobeniusInstance(Scanner &in, vector< mpz_class > &numbers)
void getIOHandlerNames(vector< string > &names)
Add the name of each fomat to names.
string getFormatNameIndicatingToUseInputFormatAsOutputFormat()
Using the returned string in place of an (output) format name indicates to use the input format as th...
string getFormatNameIndicatingToGuessTheInputFormat()
Using the returned string in place of an (input) format name indicates to guess the format based on w...
auto_ptr< IOHandler > createIOHandler(const string &prefix)
Returns an IOHandler for the format whose name has the given prefix.
auto_ptr< IOHandler > createOHandler(const string &input, const string &output)
Returns an IOHandler for the output format.
string autoDetectFormat(Scanner &in)
Return the format of what in is reading based on the first non-whitespace character.
The intention of this class is to describe the different kinds of mathematical structures that Frobby...
An IOHandler implements input and output for some format in such a way that client code does not need...
virtual void doWriteTerm(const vector< mpz_class > &term, const VarNames &names, FILE *out)=0
virtual void doReadSatBinomIdeal(Scanner &in, SatBinomConsumer &consumer)=0
void readSatBinomIdeal(Scanner &in, SatBinomConsumer &consumer)
void readPolynomial(Scanner &in, CoefBigTermConsumer &consumer)
virtual bool doSupportsInput(const DataType &type) const =0
virtual void doReadIdeals(Scanner &in, InputConsumer &consumer)=0
void writeTerm(const vector< mpz_class > &term, const VarNames &names, FILE *out)
virtual const char * doGetDescription() const =0
virtual void doReadPolynomial(Scanner &in, CoefBigTermConsumer &consumer)=0
virtual CoefBigTermConsumer * doCreatePolynomialWriter(FILE *out)=0
void readIdeal(Scanner &in, InputConsumer &consumer)
Read an ideal and feed it to the consumer.
bool supportsInput(const DataType &type) const
auto_ptr< BigTermConsumer > createIdealWriter(FILE *out)
const char * getName() const
virtual const char * doGetName() const =0
auto_ptr< CoefBigTermConsumer > createPolynomialWriter(FILE *out)
virtual BigTermConsumer * doCreateIdealWriter(FILE *out)=0
virtual bool doSupportsOutput(const DataType &type) const =0
virtual void doReadIdeal(Scanner &in, InputConsumer &consumer)=0
auto_ptr< BigTermConsumer > createIdealListWriter(FILE *out)
const char * getDescription() const
virtual bool doHasMoreInput(Scanner &in) const =0
bool supportsOutput(const DataType &type) const
virtual void doReadTerm(Scanner &in, InputConsumer &consumer)=0
void readTerm(Scanner &in, const VarNames &names, vector< mpz_class > &term)
bool hasMoreInput(Scanner &in) const
void readIdeals(Scanner &in, InputConsumer &consumer)
Read a number of ideals and feed them to the consumer.
This class offers an input interface which is more convenient and for some purposes more efficient th...
Term represents a product of variables which does not include a coefficient.
Defines the variables of a polynomial ring and facilities IO involving them.