SubgroupFG Class Reference

#include <SubgroupFG.h>

List of all members.

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.
SubgroupFGoperator^= (const Word &conjugator)
 Conjugate a subgroup.
SubgroupFG operator^ (const Word &conjugator) const
 Conjugate a subgroup.
SubgroupFGoperator+= (const SubgroupFG &sbgp)
 Extend subgroup basis.
SubgroupFG operator+ (const SubgroupFG &sbgp) const
 Extend subgroup basis.
SubgroupFGoperator+= (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 IntLabeledGraphgetFSA () 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, Wordtrim () const
 Trim the subgroup graph. (Cut off the "tail".).
pair< bool, WordareConjugate (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< WordtheGenerators
int theNumberOfGenerators
bool fsaDone
IntLabeledGraph theFSA
list< FoldDetails
< IntLabeledGraph::vertex_type,
IntLabeledGraph::edge_type > > 
foldDetails
bool nielsDone
vector< WordtheNielsenGenerators

Detailed Description

Definition at line 29 of file SubgroupFG.h.


Constructor & Destructor Documentation

SubgroupFG::SubgroupFG ( int  n_gens = 0  ) 
SubgroupFG::SubgroupFG ( int  n_gens,
const vector< Word > &  gens 
)
template<class ConstWordIterator >
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]

Member Function Documentation

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

Word SubgroupFG::express ( const Word w  )  const

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".).


Member Data Documentation

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.

Definition at line 189 of file SubgroupFG.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Mon Sep 26 18:43:50 2011 for CRyptography And Groups (CRAG) by  doxygen 1.6.1