randomDataGenerators.h File Reference

This file contains functions that generate data. More...

`#include <vector>`

Go to the source code of this file.

## Functions

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 the move is a valid king's move.
void | generateKnightChessIdeal (BigIdeal &ideal, size_t rowsAndColumns)
| Generate an ideal where is a generator when and indicate coordinates on a square chessboard where the move is a valid knight's move.
void | generateRookChessIdeal (BigIdeal &bigIdeal, size_t n, size_t k)
| Generate an ideal in n*k variables.
void | generateMatchingIdeal (BigIdeal &bigIdeal, size_t n)
| Generate an ideal whose facets are the maximum matchings in an n-clique.
void | generateTreeIdeal (BigIdeal &ideal, size_t varCount)
| Generate an ideal in varCount variables with minimal generators given by.
bool | generateRandomEdgeIdeal (BigIdeal &ideal, size_t varCount, size_t generatorCount)
| Generate a random ideal where every edge is a product of two different variables.
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.

## Detailed Description

This file contains functions that generate data.

They are NOT all random.

Todo
  Fix the name of the file, since not everything here is random, and consider the structure of the code. E.g. does generating Frobenius instances belong with the code generating monomial ideals? Should these methods be free functions? Should there be a facade which does nearly nothing but to call these functions? Should this be the place where the description of these ideals is presented? Shouldn't these be returning their output using a consumer? Shouldn't there be a clear mapping between these ideals' names as strings and the function creating them, rather than just having a static list in the Action that creates these?

Definition in file randomDataGenerators.h.

## Function Documentation

## generateKingChessIdeal()

void generateKingChessIdeal | ( | BigIdeal & | ideal,
|  | size_t | rowsAndColumns )

Generate an ideal where is a generator when and indicate coordinates on a square chessboard where the move is a valid king's move.

Definition at line 102 of file randomDataGenerators.cpp.

## generateKnightChessIdeal()

void generateKnightChessIdeal | ( | BigIdeal & | ideal,
|  | size_t | rowsAndColumns )

Generate an ideal where is a generator when and indicate coordinates on a square chessboard where the move is a valid knight's move.

Definition at line 113 of file randomDataGenerators.cpp.

## generateLinkedListIdeal()

void generateLinkedListIdeal | ( | BigIdeal & | ideal,
|  | size_t | varCount )

Generate an ideal of the form , and so on.

Definition at line 31 of file randomDataGenerators.cpp.

## generateMatchingIdeal()

void generateMatchingIdeal | ( | BigIdeal & | bigIdeal,
|  | size_t | n )

Generate an ideal whose facets are the maximum matchings in an n-clique.

Definition at line 224 of file randomDataGenerators.cpp.

## generateRandomEdgeIdeal()

bool generateRandomEdgeIdeal | ( | BigIdeal & | ideal,
|  | size_t | varCount,
|  | size_t | generatorCount )

Generate a random ideal where every edge is a product of two different variables.

Returns true if the requested number of generators was achieved.

Definition at line 392 of file randomDataGenerators.cpp.

## generateRandomFrobeniusInstance()

void generateRandomFrobeniusInstance | ( | vector< mpz_class > & | degrees,
|  | size_t | entryCount,
|  | const mpz_class & | maxEntry )

Generate a random vector of numbers whose gcd is 1.

Todo
  : preserve state across calls.

Definition at line 460 of file randomDataGenerators.cpp.

## generateRandomIdeal()

bool generateRandomIdeal | ( | BigIdeal & | bigIdeal,
|  | size_t | exponentRange,
|  | size_t | varCount,
|  | size_t | generatorCount )

Generate a random ideal with exponents in the range [0, exponentRange].

Returns true if the requested number of generators was achieved.

Definition at line 429 of file randomDataGenerators.cpp.

## generateRookChessIdeal()

void generateRookChessIdeal | ( | BigIdeal & | bigIdeal,
|  | size_t | n,
|  | size_t | k )

Generate an ideal in n*k variables.

Each facet corresponds to a way of placing rooks on an n*k chessboard without any rooks being able to take any other rook in one move.

Definition at line 171 of file randomDataGenerators.cpp.

## generateTreeIdeal()

void generateTreeIdeal | ( | BigIdeal & | ideal,
|  | size_t | varCount )

Generate an ideal in varCount variables with minimal generators given by.

i.e. to get the minimal generators, take each square free monomial except the identity, and raise it to the power of varCount + 1 minus it's total degree.

Definition at line 145 of file randomDataGenerators.cpp.