46 _produceCanonicalOutput(false) {
59 auto_ptr<IOHandler> outputHandler =
76 string msg =
"Unsupported output type of ";
89 auto_ptr<IOHandler> outputHandler =
102 auto_ptr<IOHandler> outputHandler =
104 _idealConsumerDeleter = outputHandler->createIdealWriter(stdout);
105 _idealConsumer = _idealConsumerDeleter.get();
130 auto_ptr<TermConsumer> translated;
132 auto_ptr<BigTermConsumer> splitter
141 return auto_ptr<TermConsumer>
150 auto_ptr<CoefTermConsumer> translated
153 return auto_ptr<CoefTermConsumer>
160 return auto_ptr<CoefTermConsumer>
180 printer.
beginAction(
"Translating ideal to internal data structure.");
186 printer.beginAction(
"Minimizing ideal.");
192 printer.beginAction(
"Sorting variables for canonical representation.");
void setIdealAndPolyOutput(const CommonParams ¶ms, const BigIdeal &input, CoefBigTermConsumer &output)
Use given ideal and support polynomial output.
static const DataType & getPolynomialType()
Returns the one and only instance for polynomials.
void readIdeal(Scanner &in, BigTermConsumer &consumer)
Read an ideal from in and feed it to consumer.
auto_ptr< CoefTermConsumer > makeToUnivariatePolyConsumer()
bool _produceCanonicalOutput
auto_ptr< CoefTermConsumer > makeTranslatedPolyConsumer()
void readIdealAndSetPolyOutput(const CommonParams ¶ms)
Read input and support polynomial output.
static const DataType & getMonomialIdealListType()
Returns the one and only instance for monomial ideal lists.
void readIdeal(const CommonParams ¶ms, Scanner &in)
This follows the null object pattern.
void addPurePowersAtInfinity()
auto_ptr< IOHandler > createOHandler(const string &input, const string &output)
Returns an IOHandler for the output format.
Represents a monomial ideal with int exponents.
const string & getInputFormat() const
Returns the format used for parsing input.
bool getProduceCanonicalOutput() const
Returns whether to produce output in a canonical representation.
The intention of this class is to describe the different kinds of mathematical structures that Frobby...
auto_ptr< TermConsumer > makeTranslatedIdealConsumer(bool split=false)
void permute(vector< mpz_class > &term)
void beginAction(const char *message)
void setIdealAndIdealOutput(const CommonParams ¶ms, const BigIdeal &input, BigTermConsumer &output)
Use given ideal and support ideal output.
This class offers an input interface which is more convenient and for some purposes more efficient th...
void readIdealAndSetIdealOutput(const CommonParams ¶ms)
Read input and support ideal output.
void readIdealAndSetOutput(const CommonParams ¶ms, const DataType &output)
Read input ideal and support specified kind of output.
void setIdeal(const CommonParams ¶ms, const BigIdeal &ideal)
const char * getName() const
Returns the name of the structure.
bool getIdealIsMinimal() const
Returns whether the input ideal is known to be minimally generated.
CoefBigTermConsumer * _polyConsumer
Passes consumed items on in a canonical order.
TermTranslator & getTranslator()
TermTranslator handles translation between terms whose exponents are infinite precision integers and ...
bool getPrintActions() const
Returns whether to print and time the large-scale actions that Frobby performs.
auto_ptr< CoefBigTermConsumer > _polyConsumerDeleter
A facade for input and output of mathematical objects.
static const DataType & getMonomialIdealType()
Returns the one and only instance for monomial ideals.
const string & getOutputFormat() const
Returns the format in which output is produced.
void readIdeal(Scanner &in, InputConsumer &consumer, size_t generatorCount, size_t varCount)
auto_ptr< BigTermConsumer > _idealConsumerDeleter
void expectEOF()
Require that there is no more input.
BigTermConsumer * _idealConsumer
This follows the null object pattern.
#define INTERNAL_ERROR(msg)
static const DataType & getNullType()
Returns the one and only instance for null.
auto_ptr< TermTranslator > _translator