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

/magnus/back_end/Group/include/RandomPrimitiveElement.h

Go to the documentation of this file.
00001 /*
00002  *   $Id: RandomPrimitiveElement.h,v 1.1 1995/12/18 21:16:39 serega 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: Declarations of classes RandomPrimitiveElement
00009 //
00010 // Principal Author: Sergei Lioutikov
00011 //
00012 // Status: in progress
00013 //
00014 // Revision History:
00015 //
00016 // Notes:
00017 //
00018 // * generates random primitive elements for a free group ( those which can be 
00019 //   extended to a basis. )
00020 // * copy constructor does logical copy.
00021 //
00022 
00023 #ifndef _RANDOMPRIMITIVEELEMENT_H_
00024 #define _RANDOMPRIMITIVEELEMENT_H_
00025 
00026 
00027 #include "RandomNumbers.h"
00028 #include "FreeGroup.h"
00029 
00030 //---------------------------------------------------------------------------//
00031 //----------------------- RandomPrimitiveElement ----------------------------//
00032 //---------------------------------------------------------------------------//
00033 
00034 
00035 class RandomPrimitiveElement
00036 {
00037 public:
00038 
00039   /////////////////////////////////////////////////////////////////////////
00040   //                                                                     //
00041   // Constructors:                                                       //
00042   //                                                                     //
00043   /////////////////////////////////////////////////////////////////////////
00044 
00045   RandomPrimitiveElement( const FreeGroup& F, int seed );
00046   // Giving the same `seed' you obtain the same sequence of automorphisms.
00047 
00048   ~RandomPrimitiveElement( );
00049 
00050   /////////////////////////////////////////////////////////////////////////
00051   //                                                                     //
00052   // Accessors:                                                          //
00053   //                                                                     //
00054   /////////////////////////////////////////////////////////////////////////
00055 
00056   Word getElement( int avgNumGens );
00057   // `avgNumGens' gives the average number of Whitehead automorphisms to apply.
00058 
00059 private:
00060 
00061   /////////////////////////////////////////////////////////////////////////
00062   //                                                                     //
00063   // Data Members:                                                       //
00064   //                                                                     //
00065   /////////////////////////////////////////////////////////////////////////
00066 
00067   FreeGroup theGroup;
00068 
00069   int numberOfGroupGens;
00070 
00071   NormalRandom numGensPicker;
00072   UniformRandom typeGenPicker;
00073 
00074 };
00075 
00076 #endif
00077 

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