Main Page | Namespace List | Class Hierarchy | Class List | File List | Class Members | File Members

ParkMiller.cpp

Go to the documentation of this file.
00001 #include ".\parkmiller.h"
00002 #include "time.h"
00003 
00004 ParkMiller::ParkMiller(LongNatural Seed_ ) : Seed(Seed_)
00005 {
00006     Seed != 0 ? Seed : clock();
00007 }
00008 
00009 ParkMiller::~ParkMiller()
00010 {
00011 }
00012 /*
00013 void ParkMiller::SetSeed(LongInteger Seed_)
00014 {
00015   Seed=Seed_;
00016   if (Seed ==0)
00017         Seed=1;
00018 }
00019 */
00020 VeryLongNatural ParkMiller::Max() {
00021     return m-1;
00022 }
00023 
00024 LongNatural ParkMiller::Min() {
00025     return 1;
00026 }
00027 
00028 LongNatural ParkMiller::GetOneRandomInteger() {
00029     LongInteger k;
00030     k=Seed/q;
00031 
00032         LongInteger Seed2;
00033     Seed2=a*(Seed-k*q)-r*k; 
00034 
00035     if (Seed2 < 0) 
00036         Seed2 += m;
00037 
00038         Seed=Seed2;
00039     return Seed;
00040 }
00041 
00042 Real ParkMiller::getUniform() {
00043         return (GetOneRandomInteger()-0.5)/Real(m-1);
00044 }
00045 
00046 void ParkMiller::SetSeed(LongNatural Seed_) {
00047   Seed=Seed_;
00048   if (Seed ==0)
00049         Seed=1;
00050 }

Note: Generated nightly - reload for latest version
Generated on Thu Dec 22 23:12:36 2005 for terreneuve by doxygen 1.3.6