28 _idealsDeleter(_ideals),
30 _requireSquareFree(
false) {
66 for (
size_t var = 0; var <
_term.size(); ++var) {
84 errorMsg <<
"There is no variable number " << var <<
'.';
152 if (!
in.match(
'1')) {
159 }
while (
in.match(
'*'));
237 <<
" appears twice in the same monomial.";
void exceptionSafePushBack(Container &container, auto_ptr< Element > pointer)
void nameFactoryRegister(NameFactory< AbstractProduct > &factory)
Registers the string returned by ConcreteProduct::getStaticName() to a function that default-construc...
A replacement for stringstream.
This class offers an input interface which is more convenient and for some purposes more efficient th...
Defines the variables of a polynomial ring and facilities IO involving them.
size_t getVarCount() const
Returns the current number of variables.
const string & getName(size_t index) const
The returned reference can become invalid next time addVar is called.
void swap(VarNames &names)
static const size_t invalidIndex
Returns a fixed variable offset that is always invalid.
size_t getIndex(const string &name) const
Returns VarNames::invalidIndex() if name is not known.
void reportSyntaxError(const Scanner &scanner, const string &errorMsg)
void reportError(const string &errorMsg)
void setExponent(Word *a, size_t var, bool value)
bool getExponent(const Word *a, size_t var)
returns true if var divides a and false otherwise.
unsigned long Word
The native unsigned type for the CPU.