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

/magnus/back_end/SMApps/include/Rewrites.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: Rewrites.h,v 1.4 2000/02/28 21:57:15 bormotov Exp $
00003  */
00004 
00005 // Copyright (C) 2000 The New York Group Theory Cooperative
00006 // See magnus/doc/COPYRIGHT for the full notice.
00007 
00008 // Contents: Declaration of the RewritesARCe, CommutatorRewriteProblem, 
00009 //           SquareRewriteProblem classes.
00010 //
00011 // Principal Authors: Denis Serbin
00012 //
00013 // Status: In progress
00014 //
00015 // Revision History:
00016 //
00017 // Special Notes:
00018 //
00019 //
00020 
00021 #ifndef _Rewrites_h_
00022 #define _Rewrites_h_
00023 
00024 #include "FPGroup.h"
00025 #include "ComputationManager.h"
00026 #include "SMWord.h"
00027 #include "Word.h"
00028 #include "OutMessages.h"
00029 #include "ARCer.h"
00030 
00031 
00032 //--------------------------CommutatorRewriteProblem-------------------------//
00033 
00034 class RewritesARCer : public ARCer
00035 {
00036 public:
00037 
00038   /////////////////////////////////////////////////////////////////////////
00039   //                                                                     //
00040   // Constructors:                                                       //
00041   //                                                                     //
00042   /////////////////////////////////////////////////////////////////////////
00043   
00044   RewritesARCer( ComputationManager& boss ) 
00045     : ARCer( boss ),
00046       retValue(),
00047       theWord(),
00048       G(),
00049       order(0),
00050       file()
00051     { } 
00052   
00053   void setArguments(const FPGroup&,const Word&,int ord);
00054   
00055   ~RewritesARCer()
00056     {
00057       file << end;
00058     }
00059 
00060   /////////////////////////////////////////////////////////////////////////
00061   //                                                                     //
00062   // Accessors:                                                          //
00063   //                                                                     //
00064   /////////////////////////////////////////////////////////////////////////
00065 
00066   Chars getRetValue() const
00067     { return retValue; }
00068   
00069   Chars getFileName() const
00070     { return file.getFileName(); }
00071   
00072   // Inherited from ARCer:
00073   // bool takeControl( );
00074  
00075   /////////////////////////////////////////////////////////////////////////
00076   //                                                                     //
00077   // IPC interaction members:                                            //
00078   //                                                                     //
00079   /////////////////////////////////////////////////////////////////////////
00080 
00081   void runComputation( );
00082  
00083   void writeResults( ostream& );
00084 
00085   void readResults( istream& );
00086 
00087   
00088 private:
00089 
00090   /////////////////////////////////////////////////////////////////////////
00091   //                                                                     //
00092   // Data Members:                                                       //
00093   //                                                                     //
00094   /////////////////////////////////////////////////////////////////////////
00095 
00096   Chars retValue;
00097   Word theWord;
00098   int order;
00099   FPGroup G;
00100   File file;
00101 };
00102 
00103 
00104 class CommutatorRewriteProblem : public ComputationManager
00105 {
00106 public:
00107 
00108   /////////////////////////////////////////////////////////////////////////
00109   //                                                                     //
00110   // Constructors:                                                       //
00111   //                                                                     //
00112   /////////////////////////////////////////////////////////////////////////
00113 
00114   CommutatorRewriteProblem(SMWord& w);
00115 
00116   /////////////////////////////////////////////////////////////////////////
00117   //                                                                     //
00118   // Front End Interfacing:                                              //
00119   //                                                                     //
00120   /////////////////////////////////////////////////////////////////////////
00121 
00122   void viewStructure(ostream& ostr) const;  // overrides SMObject
00123 
00124   /////////////////////////////////////////////////////////////////////////
00125   //                                                                     //
00126   // Control:                                                            //
00127   //                                                                     //
00128   /////////////////////////////////////////////////////////////////////////
00129 
00130   void takeControl( );         // overrides ComputationManager
00131 
00132   /////////////////////////////////////////////////////////////////////////
00133   //                                                                     //
00134   // State Transitions:                                                  //
00135   //                                                                     //
00136   /////////////////////////////////////////////////////////////////////////
00137 
00138   void start( ) { }              // overrides ComputationManager
00139 
00140   void terminate( ) { }          // overrides ComputationManager
00141 
00142 
00143 private:
00144 
00145   /////////////////////////////////////////////////////////////////////////
00146   //                                                                     //
00147   // Data Members:                                                       //
00148   //                                                                     //
00149   /////////////////////////////////////////////////////////////////////////
00150 
00151   SMWord& theWord;
00152   RewritesARCer arcer;
00153 };
00154 
00155 
00156 //--------------------------SquaresRewriteProblem-------------------------//
00157 
00158 class SquareRewriteProblem : public ComputationManager
00159 {
00160 public:
00161 
00162   /////////////////////////////////////////////////////////////////////////
00163   //                                                                     //
00164   // Constructors:                                                       //
00165   //                                                                     //
00166   /////////////////////////////////////////////////////////////////////////
00167 
00168   SquareRewriteProblem(SMWord& w);
00169 
00170   /////////////////////////////////////////////////////////////////////////
00171   //                                                                     //
00172   // Front End Interfacing:                                              //
00173   //                                                                     //
00174   /////////////////////////////////////////////////////////////////////////
00175 
00176   void viewStructure(ostream& ostr) const;  // overrides SMObject
00177 
00178   /////////////////////////////////////////////////////////////////////////
00179   //                                                                     //
00180   // Control:                                                            //
00181   //                                                                     //
00182   /////////////////////////////////////////////////////////////////////////
00183 
00184   void takeControl( );         // overrides ComputationManager
00185 
00186   /////////////////////////////////////////////////////////////////////////
00187   //                                                                     //
00188   // State Transitions:                                                  //
00189   //                                                                     //
00190   /////////////////////////////////////////////////////////////////////////
00191 
00192   void start( ) { }              // overrides ComputationManager
00193 
00194   void terminate( ) { }          // overrides ComputationManager
00195 
00196 
00197 private:
00198 
00199   /////////////////////////////////////////////////////////////////////////
00200   //                                                                     //
00201   // Data Members:                                                       //
00202   //                                                                     //
00203   /////////////////////////////////////////////////////////////////////////
00204 
00205   SMWord& theWord;
00206   RewritesARCer arcer;
00207 };
00208 
00209 #endif

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