Class FPGroup (finitely presented group). More...
#include <FPGroup.h>
Public Member Functions | |
FPGroup (int num=0) | |
FPGroup (int numOfGen, const vector< Word > &relators) | |
FPGroup (const FiniteAlphabet &a) | |
FPGroup (const FiniteAlphabet &a, const vector< Word > &relators) | |
int | numberOfGenerators () const |
Get the number of generators. | |
const vector< string > & | getGeneratorsNames () const |
Get the names of the generators. | |
const FiniteAlphabet & | getAlphabet () const |
Get the alphabet. | |
const vector< Word > & | relators () const |
Word | randomEqWord_Baltimore (const Word &w, int length, float conj_param) const |
Generate random equivalent word. | |
Word | randomIdentity_Stack (int length) const |
Generate random trivial word. | |
Word | randomIdentity_Classic (int length, float conj_param) const |
Generate random trivial word. | |
Word | randomIdentity_Baltimore (int length, float conj_param) const |
Generate random trivial word (using randomEqWord_Baltimore). | |
FPGroup | triangulatePresentation () const |
Triangulate the set of relations. | |
Static Public Member Functions | |
static vector< string > | initializeGenNames (int num) |
Protected Attributes | |
int | numOfGenerators |
vector< Word > | theRelators |
FiniteAlphabet | theAlphabet |
bool | useDefaultAlphabet |
Friends | |
ostream & | operator<< (ostream &os, const FPGroup &group) |
istream & | operator>> (istream &is, FPGroup &group) |
Class FPGroup (finitely presented group).
Definition at line 32 of file FPGroup.h.
FPGroup::FPGroup | ( | int | num = 0 |
) |
FPGroup::FPGroup | ( | int | numOfGen, | |
const vector< Word > & | relators | |||
) |
FPGroup::FPGroup | ( | const FiniteAlphabet & | a | ) |
FPGroup::FPGroup | ( | const FiniteAlphabet & | a, | |
const vector< Word > & | relators | |||
) |
const FiniteAlphabet& FPGroup::getAlphabet | ( | ) | const [inline] |
const vector< string >& FPGroup::getGeneratorsNames | ( | ) | const [inline] |
static vector< string > FPGroup::initializeGenNames | ( | int | num | ) | [static] |
int FPGroup::numberOfGenerators | ( | ) | const [inline] |
Generate random equivalent word.
Function inserts into random positions in the given word relators (and their cyclic permutations and inverses) of the group conjugated by randomly chosen words. The lengths of conjugators is chosen using geometric distribution with parameter = conj_param. When the required length is reached the word is being reduced and output. So, the result often is shorter than the given parameter length.
Word FPGroup::randomIdentity_Baltimore | ( | int | length, | |
float | conj_param | |||
) | const |
Generate random trivial word (using randomEqWord_Baltimore).
Word FPGroup::randomIdentity_Classic | ( | int | length, | |
float | conj_param | |||
) | const |
Generate random trivial word.
Function starts with a trivial word . On each iteration it multiplies on the right by a relator (and their cyclic permutations and inverses) of the group conjugated by randomly chosen words. Lengths of conjugators are chosen using geometric distribution with parameter = conj_param. When the required length is reached the word is being reduced and output. So, the result often is shorter than the given parameter length.
Word FPGroup::randomIdentity_Stack | ( | int | length | ) | const |
Generate random trivial word.
Function starts with a pair of trivial words , . On each iteration randomly takes a relators , takes a random cyclic permutation of it or its inverse, then randomly cuts in two pieces (one can be trivial) and multiplies on the right by and on the right by . When reaches the length output freely reduced .
const vector< Word >& FPGroup::relators | ( | ) | const [inline] |
Definition at line 65 of file FPGroup.h.
References theRelators.
FPGroup FPGroup::triangulatePresentation | ( | ) | const |
Triangulate the set of relations.
ostream& operator<< | ( | ostream & | os, | |
const FPGroup & | group | |||
) | [friend] |
istream& operator>> | ( | istream & | is, | |
FPGroup & | group | |||
) | [friend] |
int FPGroup::numOfGenerators [protected] |
Definition at line 184 of file FPGroup.h.
Referenced by numberOfGenerators().
FiniteAlphabet FPGroup::theAlphabet [protected] |
Definition at line 189 of file FPGroup.h.
Referenced by getAlphabet(), and getGeneratorsNames().
vector< Word > FPGroup::theRelators [protected] |
Definition at line 187 of file FPGroup.h.
Referenced by relators().
bool FPGroup::useDefaultAlphabet [protected] |