AdvDehnAlgorithm.h

Go to the documentation of this file.
00001 
00002 #ifndef _AdvDehnAlgorithm_h_
00003 #define _AdvDehnAlgorithm_h_
00004 
00005 #include "FPGroup.h"
00006 
00007 #include "GraphType.h"
00008 #include "GraphConcept.h"
00009 #include "GraphConceptAlgorithms.h"
00010 using namespace Graphs;
00011 
00012 
00013 //---------------------------------------------------------------------------//
00014 //--------------------------- AdvDehnAlgorithm ------------------------------//
00015 //---------------------------------------------------------------------------//
00016 
00024 class AdvDehnAlgorithm 
00025 {
00026 
00028   //                                                     //
00029   //  Constructor:                                       //
00030   //                                                     //
00032 
00033  public:
00034   
00035   AdvDehnAlgorithm( const FPGroup& G , const Word& w );
00036   AdvDehnAlgorithm( const FPGroup& G , const set< Word >& gens , const Word& w );
00037 
00038 
00040   //                                                     //
00041   //  Accessors:                                         //
00042   //                                                     //
00044 
00045  public:
00046   
00047   const IntLabeledGraph& getFSA( ) const { return theFSA; }
00048   bool builtup( set< Word >* conj=0 , int coset_limit=100000 );
00049   // we need conjugators to construct a generating set for the automaton
00050   
00051   bool isLoop( const Word& w ) const;
00052   
00054   //                                                     //
00055   //  Manipulators:                                      //
00056   //                                                     //
00058 
00059  private:
00060   
00061   void addCycle( const Word& w , int origin );
00062   // function ported from my dehn.C file
00063   // I should unify it somehow
00064   
00065   
00067   //                                                     //
00068   //  Data members:                                      //
00069   //                                                     //
00071 
00072  private:
00073   
00074   const FPGroup theGroup;
00075   const Word theWord;  
00076 
00077   set< int > checkedStates;
00078   
00079   IntLabeledGraph theFSA;
00080 };
00081 
00082 
00083 
00084 
00085 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

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