#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.
1.6.1