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 
22 class BigIdeal;
23 
42 void generateLinkedListIdeal(BigIdeal& ideal, size_t varCount);
43 
48 void generateKingChessIdeal(BigIdeal& ideal, size_t rowsAndColumns);
49 
54 void generateKnightChessIdeal(BigIdeal& ideal, size_t rowsAndColumns);
55 
60 void generateRookChessIdeal(BigIdeal& bigIdeal, size_t n, size_t k);
61 
64 void generateMatchingIdeal(BigIdeal& bigIdeal, size_t n);
65 
84 void generateTreeIdeal(BigIdeal& ideal, size_t varCount);
85 
91 (BigIdeal& ideal, size_t varCount, size_t generatorCount);
92 
97 bool generateRandomIdeal(BigIdeal& bigIdeal,
98  size_t exponentRange,
99  size_t varCount,
100  size_t generatorCount);
101 
102 
105 void 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.