Frobby 0.9.5
randomDataGenerators.h
Go to the documentation of this file.
1/* Frobby: Software for monomial ideal computations.
2 Copyright (C) 2007 Bjarke Hammersholt Roune (www.broune.com)
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see http://www.gnu.org/licenses/.
16*/
17#ifndef RANDOM_DATA_GENERATORS_GUARD
18#define RANDOM_DATA_GENERATORS_GUARD
19
20#include <vector>
21
22class BigIdeal;
23
42void generateLinkedListIdeal(BigIdeal& ideal, size_t varCount);
43
48void generateKingChessIdeal(BigIdeal& ideal, size_t rowsAndColumns);
49
54void generateKnightChessIdeal(BigIdeal& ideal, size_t rowsAndColumns);
55
60void generateRookChessIdeal(BigIdeal& bigIdeal, size_t n, size_t k);
61
64void generateMatchingIdeal(BigIdeal& bigIdeal, size_t n);
65
84void generateTreeIdeal(BigIdeal& ideal, size_t varCount);
85
91(BigIdeal& ideal, size_t varCount, size_t generatorCount);
92
97bool generateRandomIdeal(BigIdeal& bigIdeal,
98 size_t exponentRange,
99 size_t varCount,
100 size_t generatorCount);
101
102
105void generateRandomFrobeniusInstance(vector<mpz_class>& degrees,
106 size_t entryCount,
107 const mpz_class& maxEntry);
108
109#endif
void generateKnightChessIdeal(BigIdeal &ideal, size_t rowsAndColumns)
Generate an ideal where is a generator when and indicate coordinates on a square chessboard where ...
bool generateRandomEdgeIdeal(BigIdeal &ideal, size_t varCount, size_t generatorCount)
Generate a random ideal where every edge is a product of two different variables.
void generateLinkedListIdeal(BigIdeal &ideal, size_t varCount)
Generate an ideal of the form , and so on.
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 generateRandomIdeal(BigIdeal &bigIdeal, size_t exponentRange, size_t varCount, size_t generatorCount)
Generate a random ideal with exponents in the range [0, exponentRange].
void generateRandomFrobeniusInstance(vector< mpz_class > &degrees, size_t entryCount, const mpz_class &maxEntry)
Generate a random vector of numbers whose gcd is 1.
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.