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

/magnus/back_end/AProducts/include/ShortenByRelators2.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: ShortenByRelators2.h,v 1.1 1998/01/06 20:04:02 bormotov Exp $
00003  */
00004 
00005 // Copyright (C) 1997 The New York Group Theory Cooperative
00006 // See magnus/doc/COPYRIGHT for the full notice.
00007 //
00008 // Contents: Definition of the ShortenByRelators2 class
00009 //
00010 //
00011 // Principal Author: Dmitry Pechkin
00012 //
00013 // Status: in progress
00014 //
00015 // Usage:
00016 //
00017 
00018 #ifndef _SHORTEN2_BY_RELATORS_H_
00019 #define _SHORTEN2_BY_RELATORS_H_
00020 
00021 #include "SymmetricRelators.h"
00022 #include "QuickAssociations.h"
00023 #include "AP-fixups.h"
00024 
00025 class ShortenByRelators2 {
00026 
00027 public:
00028 
00029   ///////////////////////////////////////////////////////
00030   //                                                   //
00031   //  Constructors:                                    //
00032   //                                                   //
00033   ///////////////////////////////////////////////////////
00034 
00035   // No default constructor
00036   // Copy constructor provided by compiler (does logical deep copy).
00037   
00038   ShortenByRelators2 ( const SetOf<Word>& relators );
00039   // To construct a ShortenByRelators2 class of given relators.
00040 
00041   ///////////////////////////////////////////////////////
00042   //                                                   //
00043   // Accessors:                                        //
00044   //                                                   //
00045   ///////////////////////////////////////////////////////
00046 
00047   Word getShortenWord( const Word& w ) const;  
00048   // Return shorten form of word w.
00049 
00050   Word expressWordInConjugatesOfRelators( const Word& w, 
00051     ProductOfRelatorConjugates& productOfRelatorConjugates ) const;
00052   // Return shorten form of word w. 
00053   // Shortened part (=1) of w is r_0^c_0 * r_1^c_1 * .. * r_n^c_n,
00054   // where r_i are given relators and c_i some words in a free group generated by
00055   // generators of w.
00056 
00057 private:
00058 
00059   virtual int compare( const Word& w1, const Word& w2 ) const;
00060   // returns -1 if w1 is lesser than w2 in some order,
00061   // returns 1 if w2 is greater than w2 in the order,
00062   // otherwise returns 0.
00063 
00064   ///////////////////////////////////////////////////////
00065   //                                                   //
00066   //  Data members:                                    //
00067   //                                                   //
00068   ///////////////////////////////////////////////////////
00069 
00070   QuickAssociationsOf< Word, int > relatorsPieces;
00071   VectorOf<Word> theRelators;
00072   VectorOf<int> relatorsLengths;
00073   int base;
00074 };
00075 
00076 
00077 #endif // _SHORTEN2_BY_RELATORS_H_

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