49 numeric_limits<size_t>::max())
50 reportError(
"Number of positions on requested chess board too large.");
165 for (
size_t var = 0; var <
varCount; ++var)
172 if (
n == 0 ||
k == 0)
173 reportError(
"One side of rook ideal has zero vertices.");
174 if (
n > 1000 ||
k > 1000)
175 reportError(
"Number of variables in rook ideal too large.");
226 reportError(
"Too few variables in matching ideal.");
227 if (
n > 1000 ||
n > 1000)
228 reportError(
"Number of variables in matching ideal too large.");
282 size_t getNeighbor(
size_t node)
const {
297 const Term& getTerm()
const {
return _term;}
298 size_t getNodeCount()
const {
return _nodes.size();}
327 const size_t var = (
a * (
a - 1)) / 2 +
b;
328 ASSERT(var < _term.getVarCount());
333 std::vector<size_t>
_nodes;
344 if (
state.getNodeCount() % 2 == 1) {
350 if (
node ==
static_cast<size_t>(-1)) {
398 size_t triesLeft = (size_t)4 * 1000 * 1000;
437 size_t triesLeft = (size_t)4 * 1000 * 1000;
473 (
unsigned long)
clock());
void nameFactoryRegister(NameFactory< AbstractProduct > &factory)
Registers the string returned by ConcreteProduct::getStaticName() to a function that default-construc...
void reserve(size_t capacity)
void clearAndSetNames(const VarNames &names)
mpz_class & getLastTermExponentRef(size_t var)
A replacement for stringstream.
Represents a monomial ideal with int exponents.
bool isIncomparable(const Exponent *term) const
void insert(const Exponent *term)
size_t getVarCount() const
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 reportError(const string &errorMsg)
void generateRandomFrobeniusInstance(vector< mpz_class > &instance, size_t entryCount, const mpz_class &maxEntry)
Generate a random vector of numbers whose gcd is 1.
bool generateRandomIdeal(BigIdeal &bigIdeal, size_t exponentRange, size_t variableCount, size_t generatorCount)
Generate a random ideal with exponents in the range [0, exponentRange].
void generateKnightChessIdeal(BigIdeal &ideal, size_t rowsAndColumns)
Generate an ideal where is a generator when and indicate coordinates on a square chessboard where ...
void generateKingChessIdeal(BigIdeal &ideal, size_t rowsAndColumns)
Generate an ideal where is a generator when and indicate coordinates on a square chessboard where ...
void generateTreeIdeal(BigIdeal &ideal, size_t varCount)
Generate an ideal in varCount variables with minimal generators given by.
bool generateRandomEdgeIdeal(BigIdeal &bigIdeal, size_t variableCount, size_t generatorCount)
Generate a random ideal where every edge is a product of two different variables.
void generateMatchingIdeal(BigIdeal &bigIdeal, size_t n)
Generate an ideal whose facets are the maximum matchings in an n-clique.
void generateRookChessIdeal(BigIdeal &bigIdeal, size_t n, size_t k)
Generate an ideal in n*k variables.
void generateLinkedListIdeal(BigIdeal &ideal, size_t variableCount)
Generate an ideal of the form , and so on.
void generateChessIdeal(BigIdeal &bigIdeal, size_t rowCount, size_t columnCount, int deltaRow[], int deltaColumn[], size_t deltaCount)
This file contains functions that generate data.