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

/magnus/back_end/NilpotentGroup/include/NilpCollectors.h

Go to the documentation of this file.
00001 // Copyright (C) 1994 The New York Group Theory Cooperative
00002 // See magnus/doc/COPYRIGHT for the full notice.
00003 //
00004 // Contents: Definition of classes CollectorToTheLeft
00005 //
00006 //
00007 // Principal Author: Eugene Paderin
00008 //
00009 // Status: In progress
00010 //
00011 // Revision History:
00012 //
00013 // Special Notes:
00014 //
00015 
00016 #ifndef _NILP_COLLECTORS_H_
00017 #define _NILP_COLLECTORS_H_
00018 
00019 #include "NilpotentCollector.h"
00020 
00021 
00022 //==========================================================================
00023 //=================== class CollectorToTheLeft =============================
00024 //==========================================================================
00025 
00026 class CollectorToTheLeft: public NilpotentCollector
00027 {
00028 
00029 public:
00030 
00031   //------------------------------------------------------------------------
00032   //   Constructors and initializers
00033   //------------------------------------------------------------------------
00034 
00035   CollectorToTheLeft(int numgen, int nilclass, bool initialize = true)
00036     : NilpotentCollector(numgen, nilclass, initialize)
00037   { 
00038     //cout << "This is a collector to the left." << endl;
00039   }
00040 
00041   CollectorToTheLeft(const BasicCommutators& bc)
00042     : NilpotentCollector(bc)
00043   { }
00044 
00045   
00046   //copy constructor, destructor and assignment operator provided by compiler
00047 
00048   virtual NilpotentCollector::Type type() const { 
00049     return NilpotentCollector::TO_THE_LEFT; 
00050   }
00051   // the collector type
00052 
00053   virtual void collectingProcess( PolyWord& pw ) const;
00054   // collects the given PolyWord. The result is stored in the same PolyWord.
00055 
00056   virtual NilpotentCollector * clone() const {
00057     return new CollectorToTheLeft(*this);
00058   }
00059 
00060   // method to clone the object
00061 
00062 
00063 };
00064 
00065 
00066 
00067 //==========================================================================
00068 //=================== class CollectorFromTheLeft =============================
00069 //==========================================================================
00070 
00071 class CollectorFromTheLeft: public NilpotentCollector
00072 {
00073 
00074 public:
00075 
00076   //------------------------------------------------------------------------
00077   //   Constructors and initializers
00078   //------------------------------------------------------------------------
00079 
00080   CollectorFromTheLeft(int numgen, int nilclass, bool initialize = true)
00081     : NilpotentCollector(numgen, nilclass, initialize)
00082   { 
00083     //cout << "This is a collector from the left." << endl;
00084   }
00085 
00086   CollectorFromTheLeft(const BasicCommutators& bc)
00087     : NilpotentCollector(bc)
00088   { }
00089 
00090   
00091   //copy constructor, destructor and assignment operator provided by compiler
00092 
00093   virtual NilpotentCollector::Type type() const { 
00094     return NilpotentCollector::FROM_THE_LEFT; 
00095   }
00096   // the collector type
00097 
00098   virtual void collectingProcess( PolyWord& pw ) const;
00099   // collects the given PolyWord. The result is stored in the same PolyWord.
00100 
00101   virtual NilpotentCollector * clone() const {
00102     return new CollectorFromTheLeft(*this);
00103   }
00104 
00105 };
00106 
00107 
00108 #endif
00109 
00110 

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