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

/magnus/back_end/Group/include/RandomAutomorphism.h

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

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