#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) |
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 | |||
| ) |
| int FPGroup::numberOfGenerators | ( | ) | const [inline] |
| const vector< string >& FPGroup::getGeneratorsNames | ( | ) | const [inline] |
| const FiniteAlphabet& FPGroup::getAlphabet | ( | ) | const [inline] |
| const vector< Word >& FPGroup::relators | ( | ) | 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_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
.
| 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_Baltimore | ( | int | length, | |
| float | conj_param | |||
| ) | const |
Generate random trivial word (using randomEqWord_Baltimore).
| FPGroup FPGroup::triangulatePresentation | ( | ) | const |
Triangulate the set of relations.
with all relators of length at most 3. Notice that the names of the original generators change to
to avoid possible name collisions. New generator names are
. | static vector< string > FPGroup::initializeGenNames | ( | int | num | ) | [static] |
| ostream& operator<< | ( | ostream & | os, | |
| const FPGroup & | group | |||
| ) | [friend] |
| istream& operator>> | ( | istream & | is, | |
| FPGroup & | group | |||
| ) | [friend] |
int FPGroup::numOfGenerators [protected] |
vector< Word > FPGroup::theRelators [protected] |
FiniteAlphabet FPGroup::theAlphabet [protected] |
bool FPGroup::useDefaultAlphabet [protected] |
1.5.6