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

/magnus/back_end/SMApps/include/HToddCoxeter.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: Declaration of class HToddCoxeterARCer HToddCoxeter,
00009 //           HSGIndexToddCoxeter
00010 //
00011 // Principal Author: Alexei Myasnikov
00012 //
00013 // Status: Usable
00014 //
00015 // Revision History:
00016 //
00017 
00018 
00019 #ifndef _H_TODD_COXETER_H_
00020 #define _H_TODD_COXETER_H_
00021 
00022 
00023 #include "Supervisor.h"
00024 #include "HavasTC.h"
00025 #include "File.h"
00026 
00027 // ------------------ HToddCoxeterARCer ---------------------- //
00028 
00029 
00030 class HToddCoxeterARCer : public ARCer
00031 {
00032 public:
00033 
00034   /////////////////////////////////////////////////////////////////////////
00035   //                                                                     //
00036   // Constructors:                                                       //
00037   //                                                                     //
00038   /////////////////////////////////////////////////////////////////////////
00039 
00040   HToddCoxeterARCer( ComputationManager& boss,const FPGroup& group ) : 
00041     ARCer( boss ),
00042     tc(group),
00043     theGroup(group),
00044     theIndex( 0 ),
00045     success( false ){ } 
00046   
00047   HToddCoxeterARCer( ComputationManager& boss,const FPGroup& group,
00048                      const VectorOf<Word>& subgroup) : 
00049     ARCer( boss ),
00050     tc(group,subgroup), 
00051     theGroup(group), 
00052     theIndex( 0 ),
00053     success( false ){ } 
00054   
00055 
00056   /////////////////////////////////////////////////////////////////////////
00057   //                                                                     //
00058   // Accessors:                                                          //
00059   //                                                                     //
00060   /////////////////////////////////////////////////////////////////////////
00061   
00062   int getIndex() const{ return theIndex; }
00063 
00064   bool isSuccessful() const {return success;}
00065 
00066   // Inherited from ARCer:
00067   // bool takeControl( );
00068 
00069   /////////////////////////////////////////////////////////////////////////
00070   //                                                                     //
00071   // IPC interaction members:                                            //
00072   //                                                                     //
00073   /////////////////////////////////////////////////////////////////////////
00074 
00075   void runComputation( );
00076  
00077   void writeResults( ostream& );
00078 
00079   void readResults( istream& );
00080 
00081   
00082 private:
00083 
00084   /////////////////////////////////////////////////////////////////////////
00085   //                                                                     //
00086   // Data Members:                                                       //
00087   //                                                                     //
00088   /////////////////////////////////////////////////////////////////////////
00089 
00090   HavasTC tc;
00091   FPGroup theGroup;
00092 
00093   int theIndex;
00094   bool success;
00095 };
00096 
00097 
00098 // -------------------------- HToddCoxeter ---------------------------- //
00099 
00100 
00101 class HToddCoxeter : public ComputationManager
00102 {
00103 public:
00104 
00105   /////////////////////////////////////////////////////////////////////////
00106   //                                                                     //
00107   // Constructors:                                                       //
00108   //                                                                     //
00109   /////////////////////////////////////////////////////////////////////////
00110 
00111   HToddCoxeter(class GCM& boss);
00112 
00113 
00114   /////////////////////////////////////////////////////////////////////////
00115   //                                                                     //
00116   // Accessors:                                                          //
00117   //                                                                     //
00118   /////////////////////////////////////////////////////////////////////////
00119 
00120   /////////////////////////////////////////////////////////////////////////
00121   //                                                                     //
00122   // Control:                                                            //
00123   //                                                                     //
00124   /////////////////////////////////////////////////////////////////////////
00125 
00126   void takeControl( );         // overrides ComputationManager
00127 
00128 
00129   /////////////////////////////////////////////////////////////////////////
00130   //                                                                     //
00131   // State Transitions:                                                  //
00132   //                                                                     //
00133   /////////////////////////////////////////////////////////////////////////
00134 
00135   void start( ) { };          // overrides ComputationManager
00136 
00137   void terminate( ) { };      // overrides ComputationManager
00138 
00139 
00140 private:
00141 
00142   /////////////////////////////////////////////////////////////////////////
00143   //                                                                     //
00144   // Data Members:                                                       //
00145   //                                                                     //
00146   /////////////////////////////////////////////////////////////////////////
00147 
00148   class GCM& theBoss;
00149   class SMFPGroup& theGroup;
00150   HToddCoxeterARCer* arcer;
00151 };
00152 
00153 // -------------------------- HSGIndexToddCoxeter ------------------------- //
00154 
00155 
00156 class HSGIndexToddCoxeter : public ComputationManager
00157 {
00158 public:
00159 
00160   /////////////////////////////////////////////////////////////////////////
00161   //                                                                     //
00162   // Constructors:                                                       //
00163   //                                                                     //
00164   /////////////////////////////////////////////////////////////////////////
00165 
00166   HSGIndexToddCoxeter(class SCM& scm);
00167 
00168 
00169   /////////////////////////////////////////////////////////////////////////
00170   //                                                                     //
00171   // Accessors:                                                          //
00172   //                                                                     //
00173   /////////////////////////////////////////////////////////////////////////
00174 
00175   /////////////////////////////////////////////////////////////////////////
00176   //                                                                     //
00177   // Control:                                                            //
00178   //                                                                     //
00179   /////////////////////////////////////////////////////////////////////////
00180 
00181   void takeControl( );         // overrides ComputationManager
00182 
00183 
00184   /////////////////////////////////////////////////////////////////////////
00185   //                                                                     //
00186   // State Transitions:                                                  //
00187   //                                                                     //
00188   /////////////////////////////////////////////////////////////////////////
00189 
00190   void start( ) { };          // overrides ComputationManager
00191 
00192   void terminate( ) { };      // overrides ComputationManager
00193 
00194 
00195 private:
00196 
00197   /////////////////////////////////////////////////////////////////////////
00198   //                                                                     //
00199   // Data Members:                                                       //
00200   //                                                                     //
00201   /////////////////////////////////////////////////////////////////////////
00202 
00203   class SCM& theSCM;
00204   class SMSubgroup& theSubgroup;
00205   HToddCoxeterARCer arcer;
00206 };
00207 #endif
00208 
00209 
00210 
00211 
00212 
00213 
00214 
00215 
00216 

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