#include <SubgroupFG.h>
Public Member Functions | |
SubgroupFG (int n_gens=0) | |
SubgroupFG (int n_gens, const vector< Word > &gens) | |
template<class ConstWordIterator > | |
SubgroupFG (int n_gens, ConstWordIterator B, ConstWordIterator E) | |
bool | operator== (const SubgroupFG &S) const |
Check the equality of two subgroups. | |
SubgroupFG | operator* (const SubgroupFG &S) const |
Compute the intersection of two subgroups. | |
SubgroupFG & | operator^= (const Word &conjugator) |
Conjugate a subgroup. | |
SubgroupFG | operator^ (const Word &conjugator) const |
Conjugate a subgroup. | |
SubgroupFG & | operator+= (const SubgroupFG &sbgp) |
Extend subgroup basis. | |
SubgroupFG | operator+ (const SubgroupFG &sbgp) const |
Extend subgroup basis. | |
SubgroupFG & | operator+= (const Word &w) |
Extend subgroup basis. | |
SubgroupFG | operator+ (const Word &w) const |
Extend subgroup basis. | |
bool | checkIsomorphism (const SubgroupFG &S, int vert1, int vert2) const |
Check if two subgroup graphs *this and S are isomorphic as automata, restricted that v1 -> v2. | |
const vector< Word > & | getGenerators () const |
Get the initial generators of the subgroup. | |
const vector< Word > & | getNielsenGenerators () const |
Get a set of Nielsen generators of the subgroup. | |
const IntLabeledGraph & | getFSA () const |
Get an automaton corresponding to a subgroup of a free froup. | |
int | getIndex () const |
Compute the index of a subgroup of a free group, -1 means infinite. | |
int | getRank () const |
Compute the rank of a subgroup of a free group. | |
bool | doesBelong (const Word &w) const |
check if a word belongs to a subgroup of a free group | |
Word | express (const Word &w) const |
Express a word in a generators of a subgroup of a free group (word must belong to subgroup). | |
SubgroupFG | centralizer () const |
Compute the centralizer of a subgroup. | |
SubgroupFG | normalizer () const |
Compute the normalizer of a subgroup. | |
pair< SubgroupFG, Word > | trim () const |
Trim the subgroup graph. (Cut off the "tail".). | |
pair< bool, Word > | areConjugate (const SubgroupFG &sbgp) const |
Check if two subgroups are conjugate. | |
string | graphviz_format () const |
Returns the graphviz graphical description of the subgroup graph (save it to file and use Graphviz to visualize the graph). | |
Protected Member Functions | |
SubgroupFG (int n_gens, const IntLabeledGraph &fsa) | |
Private Member Functions | |
void | computeFSA () const |
void | computeNielsenGenerators () const |
Private Attributes | |
vector< Word > | theGenerators |
int | theNumberOfGenerators |
bool | fsaDone |
IntLabeledGraph | theFSA |
list< FoldDetails < IntLabeledGraph::vertex_type, IntLabeledGraph::edge_type > > | foldDetails |
bool | nielsDone |
vector< Word > | theNielsenGenerators |
Definition at line 29 of file SubgroupFG.h.
SubgroupFG::SubgroupFG | ( | int | n_gens = 0 |
) |
SubgroupFG::SubgroupFG | ( | int | n_gens, | |
const vector< Word > & | gens | |||
) |
SubgroupFG::SubgroupFG | ( | int | n_gens, | |
ConstWordIterator | B, | |||
ConstWordIterator | E | |||
) | [inline] |
Definition at line 40 of file SubgroupFG.h.
References theGenerators.
SubgroupFG::SubgroupFG | ( | int | n_gens, | |
const IntLabeledGraph & | fsa | |||
) | [protected] |
pair< bool , Word > SubgroupFG::areConjugate | ( | const SubgroupFG & | sbgp | ) | const |
Check if two subgroups are conjugate.
SubgroupFG SubgroupFG::centralizer | ( | ) | const |
Compute the centralizer of a subgroup.
bool SubgroupFG::checkIsomorphism | ( | const SubgroupFG & | S, | |
int | vert1, | |||
int | vert2 | |||
) | const |
Check if two subgroup graphs *this and S are isomorphic as automata, restricted that v1 -> v2.
void SubgroupFG::computeFSA | ( | ) | const [private] |
void SubgroupFG::computeNielsenGenerators | ( | ) | const [private] |
bool SubgroupFG::doesBelong | ( | const Word & | w | ) | const |
check if a word belongs to a subgroup of a free group
Express a word in a generators of a subgroup of a free group (word must belong to subgroup).
const IntLabeledGraph& SubgroupFG::getFSA | ( | ) | const |
Get an automaton corresponding to a subgroup of a free froup.
const vector< Word >& SubgroupFG::getGenerators | ( | ) | const [inline] |
Get the initial generators of the subgroup.
Definition at line 120 of file SubgroupFG.h.
References theGenerators.
int SubgroupFG::getIndex | ( | ) | const |
Compute the index of a subgroup of a free group, -1 means infinite.
const vector< Word >& SubgroupFG::getNielsenGenerators | ( | ) | const |
Get a set of Nielsen generators of the subgroup.
int SubgroupFG::getRank | ( | ) | const |
Compute the rank of a subgroup of a free group.
string SubgroupFG::graphviz_format | ( | ) | const |
Returns the graphviz graphical description of the subgroup graph (save it to file and use Graphviz to visualize the graph).
SubgroupFG SubgroupFG::normalizer | ( | ) | const |
Compute the normalizer of a subgroup.
SubgroupFG SubgroupFG::operator* | ( | const SubgroupFG & | S | ) | const |
Compute the intersection of two subgroups.
SubgroupFG SubgroupFG::operator+ | ( | const Word & | w | ) | const [inline] |
Extend subgroup basis.
Definition at line 101 of file SubgroupFG.h.
SubgroupFG SubgroupFG::operator+ | ( | const SubgroupFG & | sbgp | ) | const [inline] |
Extend subgroup basis.
Definition at line 89 of file SubgroupFG.h.
SubgroupFG& SubgroupFG::operator+= | ( | const Word & | w | ) |
Extend subgroup basis.
SubgroupFG& SubgroupFG::operator+= | ( | const SubgroupFG & | sbgp | ) |
Extend subgroup basis.
bool SubgroupFG::operator== | ( | const SubgroupFG & | S | ) | const |
Check the equality of two subgroups.
SubgroupFG SubgroupFG::operator^ | ( | const Word & | conjugator | ) | const [inline] |
Conjugate a subgroup.
Definition at line 77 of file SubgroupFG.h.
SubgroupFG& SubgroupFG::operator^= | ( | const Word & | conjugator | ) |
Conjugate a subgroup.
pair< SubgroupFG , Word > SubgroupFG::trim | ( | ) | const |
Trim the subgroup graph. (Cut off the "tail".).
list< FoldDetails< IntLabeledGraph::vertex_type , IntLabeledGraph::edge_type > > SubgroupFG::foldDetails [mutable, private] |
Definition at line 193 of file SubgroupFG.h.
bool SubgroupFG::fsaDone [mutable, private] |
Definition at line 191 of file SubgroupFG.h.
bool SubgroupFG::nielsDone [mutable, private] |
Definition at line 195 of file SubgroupFG.h.
IntLabeledGraph SubgroupFG::theFSA [mutable, private] |
Definition at line 192 of file SubgroupFG.h.
vector< Word > SubgroupFG::theGenerators [private] |
Definition at line 188 of file SubgroupFG.h.
Referenced by getGenerators(), and SubgroupFG().
vector< Word > SubgroupFG::theNielsenGenerators [mutable, private] |
Definition at line 196 of file SubgroupFG.h.
int SubgroupFG::theNumberOfGenerators [private] |
Definition at line 189 of file SubgroupFG.h.