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

/magnus/back_end/SMApps/include/CommutatorsChecker.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: CommutatorsChecker.h,v 1.1.1.1 1996/12/05 19:45:07 bormotov Exp $
00003  */
00004  
00005 // Copyright (C) 1996 The New York Group Theory Cooperative
00006 // See magnus/doc/COPYRIGHT for the full notice.
00007 //
00008 // Contents: Declaration of classes CommutatorsChecker, CommutatorsCheckerARCer
00009 //
00010 // Principal Author: Dmitry Bormotov
00011 //
00012 // Status: in progress
00013 //
00014 // Revision History:
00015 //
00016 
00017 
00018 #ifndef _CommutatorsChecker_h_
00019 #define _CommutatorsChecker_h_
00020 
00021 
00022 #include "SMFPGroup.h"
00023 #include "ARCer.h"
00024 
00025 
00026 // ------------------------- CommutatorsChecker ---------------------------- //
00027 
00028 
00029 class CommutatorsChecker
00030 {
00031 public:
00032  
00033   /////////////////////////////////////////////////////////////////////////
00034   //                                                                     //
00035   // Constructors:                                                       //
00036   //                                                                     //
00037   /////////////////////////////////////////////////////////////////////////
00038   
00039   CommutatorsChecker( class SMFPGroup& group, int length );
00040 
00041   CommutatorsChecker( class SMFPGroup& group, int length,
00042                       const VectorOf<Word>& V );
00043   
00044 
00045   /////////////////////////////////////////////////////////////////////////
00046   //                                                                     //
00047   // Accessors:                                                          //
00048   //                                                                     //
00049   /////////////////////////////////////////////////////////////////////////
00050 
00051   Trichotomy areTrivial( );
00052   
00053   Chars getExplanation( ) { return explanation; }
00054 
00055   
00056   /////////////////////////////////////////////////////////////////////////
00057   //                                                                     //
00058   // IPC tools:                                                          //
00059   //                                                                     //
00060   /////////////////////////////////////////////////////////////////////////
00061 
00062   friend ostream& operator < ( ostream& ostr, const CommutatorsChecker& o )
00063   {
00064     ostr < o.triedAbelianization < o.explanation;
00065     return ostr;
00066   }
00067   
00068   friend istream& operator > ( istream& istr, CommutatorsChecker& o )
00069   {
00070     istr > o.triedAbelianization > o.explanation;
00071     return istr;
00072   }
00073 
00074   
00075 private:
00076 
00077   /////////////////////////////////////////////////////////////////////////
00078   //                                                                     //
00079   // Data Members:                                                       //
00080   //                                                                     //
00081   /////////////////////////////////////////////////////////////////////////
00082 
00083   FPGroup G;
00084   class GIC& gic;
00085   class GCM& gcm;
00086 
00087   int theLength;
00088   VectorOf<Word> generators;
00089   
00090   // Housekeeping members:
00091 
00092   bool triedAbelianization;
00093   Chars explanation;
00094 };
00095 
00096 
00097 // ---------------------- CommutatorsCheckerARCer -------------------------- //
00098 
00099 
00100 class CommutatorsCheckerARCer : public ARCer
00101 {
00102 public:
00103 
00104   /////////////////////////////////////////////////////////////////////////
00105   //                                                                     //
00106   // Constructors:                                                       //
00107   //                                                                     //
00108   /////////////////////////////////////////////////////////////////////////
00109 
00110   CommutatorsCheckerARCer( ComputationManager& boss ) 
00111     : ARCer( boss ), retValue( dontknow ) { } 
00112 
00113 
00114   /////////////////////////////////////////////////////////////////////////
00115   //                                                                     //
00116   // Accessors:                                                          //
00117   //                                                                     //
00118   /////////////////////////////////////////////////////////////////////////
00119 
00120   void setArguments( CommutatorsChecker* );
00121 
00122   Trichotomy getRetValue() { return retValue; }
00123 
00124   // Inherited from ARCer:
00125   // bool takeControl( );
00126 
00127 
00128   /////////////////////////////////////////////////////////////////////////
00129   //                                                                     //
00130   // IPC interaction members:                                            //
00131   //                                                                     //
00132   /////////////////////////////////////////////////////////////////////////
00133 
00134   void runComputation( );
00135  
00136   void writeResults( ostream& );
00137 
00138   void readResults( istream& );
00139 
00140 
00141 private:
00142 
00143   /////////////////////////////////////////////////////////////////////////
00144   //                                                                     //
00145   // Data Members:                                                       //
00146   //                                                                     //
00147   /////////////////////////////////////////////////////////////////////////
00148 
00149   CommutatorsChecker* theChecker;
00150 
00151   Trichotomy retValue;
00152 
00153 };
00154 
00155 #endif

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