Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

/magnus/back_end/Todd-Coxeter/include/HavasTC.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: 
00003  */
00004 
00005 // Copyright (C) 1998 The New York Group Theory Cooperative
00006 // See magnus/doc/COPYRIGHT for the full notice.
00007 //
00008 // Contents: Definition of class PermutationRepresentation, CosetEnumerator.
00009 //
00010 // Principal Author: Alexey Myasnikov
00011 //
00012 // Status: Useable
00013 //
00014 // Usage:
00015 //
00016 // Revision History:
00017 //
00018 //
00019 
00020 
00021 #ifndef _HAVAS_TC_H_
00022 #define _HAVAS_TC_H_
00023 
00024 #include "BlackBox.h"
00025 #include "FPGroup.h"
00026 
00027 enum TC_STATE {NSTARTED, RUNNING, SUCCESS, NOMEM};
00028 
00029 // ------------------------- HavasTC --------------//
00030 
00031 class HavasTC {
00032 public:
00033 
00034   HavasTC(const FPGroup& group); 
00035   // Constructor for order of a group problem
00036   HavasTC(const FPGroup& group,const VectorOf<Word>& subgroup);
00037   // Constructor for index of a subgroup problem
00038 
00039 
00040   ~HavasTC();
00041   /////////////////////////////////////////////////////////////////////// 
00042   //                                                                   //
00043   // Methods                                                           //
00044   //                                                                   //
00045   ///////////////////////////////////////////////////////////////////////
00046 
00047   void start();
00048 
00049   bool finished();
00050 
00051   int getIndex()const { return theIndex;}
00052 
00053   TC_STATE getState() const { return theState; }
00054 
00055   void printWord( ostream& ostr, const Word& w ) const;
00056 
00057   void setWorkspace(int w) { theWorkspace = w; } 
00058 
00059 private:
00060   bool isInitSegment(Chars str, Chars seg ) const;
00061   
00062   int theIndex;
00063   BlackBox tc;
00064   FPGroup theGroup;
00065   VectorOf<Word> theSubgroup;
00066 
00067   TC_STATE theState;
00068   int theWorkspace;
00069 };
00070 #endif
00071 
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
00095 
00096 
00097 
00098 
00099 
00100 
00101 
00102 
00103 
00104 
00105 
00106 
00107 
00108 
00109 
00110 
00111 
00112 
00113 
00114 
00115 
00116 
00117 
00118 
00119 
00120 
00121 
00122 
00123 
00124 
00125 
00126 
00127 
00128 
00129 
00130 
00131 
00132 
00133 

Generated at Tue Jun 19 09:49:44 2001 for Magnus Classes by doxygen1.2.6 written by Dimitri van Heesch, © 1997-2001