clcg32.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __CLCG32_H
00020 #define __CLCG32_H
00021
00022 #include "simkerneldefs.h"
00023 #include "globals.h"
00024 #include "crng.h"
00025 #include "cconfiguration.h"
00026
00027 NAMESPACE_BEGIN
00028
00029
00030 #define LCG32_MAX 0x7ffffffeL
00031
00044 class SIM_API cLCG32 : public cRNG
00045 {
00046 protected:
00047 long seed;
00048
00049
00050
00051
00052
00053 static long autoSeeds[256];
00054
00055 public:
00056 cLCG32() {}
00057 virtual ~cLCG32() {}
00058
00060 virtual void initialize(int seedSet, int rngId, int numRngs,
00061 int parsimProcId, int parsimNumPartitions,
00062 cConfiguration *cfg);
00063
00065 virtual void selfTest();
00066
00068 virtual unsigned long intRand();
00069
00071 virtual unsigned long intRandMax();
00072
00074 virtual unsigned long intRand(unsigned long n);
00075
00077 virtual double doubleRand();
00078
00080 virtual double doubleRandNonz();
00081
00083 virtual double doubleRandIncl1();
00084 };
00085
00086 NAMESPACE_END
00087
00088
00089 #endif
00090
00091