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

/magnus/back_end/Map/include/RandomAutoInFree.h

Go to the documentation of this file.
00001 /*
00002  *   $Id:
00003  */
00004  
00005 // Copyright (C) 1996 The New York Group Theory Cooperative
00006 // See magnus/doc/COPYRIGHT for the full notice.
00007 //
00008 // Contents: Declarations of class RandomAutoInFree
00009 //
00010 // Principal Author:Alexey Myasnikov
00011 //
00012 // Status: in progress
00013 //
00014 // Revision History:
00015 //
00016 
00017 #ifndef _RANDOMAUTOINFREE_H_
00018 #define _RANDOMAUTOINFREE_H_
00019 
00020 
00021 #include "RandomNumbers.h"
00022 #include "FreeGroup.h"
00023 #include "Map.h"
00024 
00025 
00026 //---------------------------------------------------------------------------//
00027 //--------------------------- RandomAutoInFree ------------------------------//
00028 //---------------------------------------------------------------------------//
00029 
00030 
00031 class RandomAutoInFree
00032 {
00033 public:
00034 
00035   /////////////////////////////////////////////////////////////////////////
00036   //                                                                     //
00037   // Constructors:                                                       //
00038   //                                                                     //
00039   /////////////////////////////////////////////////////////////////////////
00040 
00041   RandomAutoInFree(const FreeGroup& F, int avgNumGens);
00042 
00043 
00044   /////////////////////////////////////////////////////////////////////////
00045   //                                                                     //
00046   // Accessors:                                                          //
00047   //                                                                     //
00048   /////////////////////////////////////////////////////////////////////////
00049   Map getAutomorphism();
00050   // Returns random automorhism.
00051   Map getFiniteAutomorphism(int& order);
00052   // Returns random automorhism of finite order. "order" is equal to
00053   // order of automorpism.
00054   Trichotomy isFiniteAutomorphism(const Map& m,int& order)const;
00055   // Returns true if automorhism of finite order, no if not and dontknow, if
00056   // it can't solve this problem. "order" is equal to order of automorpism if it finite.
00057 
00058  
00059 private:
00060 
00061   bool isTooLong(const VectorOf<Word>& images )const;
00062   int sumOfImagesLens(const VectorOf<Word>& images)const;
00063   /////////////////////////////////////////////////////////////////////////
00064   //                                                                     //
00065   // Data Members:                                                       //
00066   //                                                                     //
00067   /////////////////////////////////////////////////////////////////////////
00068 
00069   static const short MAXLENGTH = 32767; //??????????????????
00070   FreeGroup theGroup;
00071 
00072   int numberOfGroupGens;
00073 
00074   NormalRandom numGensPicker;
00075   UniformRandom typeGenPicker;
00076 
00077   int avgNumGens;
00078 
00079 };
00080 
00081 #endif

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