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

/magnus/back_end/SMApps/include/SetOfWordsChecker.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: SetOfWordsChecker.h,v 1.4 1998/08/03 20:24:16 bormotov Exp $
00003  */
00004  
00005 // Copyright (C) 1995 The New York Group Theory Cooperative
00006 // See magnus/doc/COPYRIGHT for the full notice.
00007 //
00008 // Contents: Declaration of class SetOfWordsChecker
00009 //
00010 // Principal Author: Dmitry Bormotov
00011 //
00012 // Status: in progress
00013 //
00014 // Revision History:
00015 //
00016 // * 7/96 Dmitry B. made porting to gcc 2.7.2.
00017 //
00018 
00019 
00020 #ifndef _SetOfWordsChecker_h_
00021 #define _SetOfWordsChecker_h_
00022 
00023 #include "SMFPGroup.h"
00024 #include "Word.h"
00025 
00026 
00027 // ----------------------- SetOfWordsChecker ------------------------------- //
00028 
00029 
00030 class SetOfWordsChecker
00031 {
00032 public:
00033 
00034   /////////////////////////////////////////////////////////////////////////
00035   //                                                                     //
00036   // Constructors:                                                       //
00037   //                                                                     //
00038   /////////////////////////////////////////////////////////////////////////
00039 
00040   SetOfWordsChecker( const SetOf<Word>&, const class SMFPGroup& );
00041 
00042   SetOfWordsChecker( const VectorOf<Word>&, const class SMFPGroup& );
00043 
00044   SetOfWordsChecker( const class SMFPGroup& );
00045 
00046 
00047   /////////////////////////////////////////////////////////////////////////
00048   //                                                                     //
00049   // Accessors:                                                          //
00050   //                                                                     //
00051   /////////////////////////////////////////////////////////////////////////
00052 
00053   Trichotomy isTrivial( );
00054 
00055   Chars getExplanation( ) const { return explanation; }
00056   
00057   GIC::AlgorithmID getAlgorithm( ) const { return solutionAlgorithm; }
00058 
00059   void replaceTheSet( const VectorOf<Word>& V);
00060   //  void replaceTheSet( const VectorOf<Word>& V) { theWords = V; }
00061 
00062   void replaceTheSet( const SetOf<Word>& );
00063 
00064   void enablePutDetailsToFile( );
00065   void disablePutDetailsToFile( );
00066   bool haveDetails( ) const;
00067   Chars getDecompositionFileName( ) const;
00068   Chars getDehnTransformationFileName( ) const;
00069 
00070 private:
00071 
00072   void init( );
00073 
00074 
00075   /////////////////////////////////////////////////////////////////////////
00076   //                                                                     //
00077   // Data Members:                                                       //
00078   //                                                                     //
00079   /////////////////////////////////////////////////////////////////////////
00080 
00081   VectorOf<Word> theWords;
00082 
00083   FPGroup G;
00084 
00085   const class GIC& gic;
00086 
00087   class GCM& gcm;
00088 
00089 
00090   // Housekeeping members:
00091 
00092   bool triedAbelianization;
00093 
00094   GIC::AlgorithmID solutionAlgorithm;
00095 
00096   Chars explanation;
00097 
00098   VectorOf<bool> theTrivialWords;
00099   bool keepDetails;
00100   DetailedReport dehnsDetails;
00101   DetailedReport wordsDecomposition;
00102 };
00103 
00104 
00105 //
00106 //  Class SetOfWordsChecker -- inline functions
00107 //
00108 
00109 inline
00110 void SetOfWordsChecker::enablePutDetailsToFile( ) 
00111 { 
00112   keepDetails = true; 
00113 }
00114 
00115 inline
00116 void SetOfWordsChecker::disablePutDetailsToFile( ) 
00117 { 
00118   keepDetails = false; 
00119 }
00120 
00121 inline
00122 bool SetOfWordsChecker::haveDetails ( ) const 
00123 { 
00124   return wordsDecomposition.haveDetails(); 
00125 }
00126 
00127 inline
00128 Chars SetOfWordsChecker::getDecompositionFileName( ) const 
00129 { 
00130   return wordsDecomposition.getFileName(); 
00131 }
00132 
00133 inline
00134 Chars SetOfWordsChecker::getDehnTransformationFileName( ) const 
00135 { 
00136   return dehnsDetails.getFileName(); 
00137 }
00138 
00139 #endif

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