00001 00020 #include "orandom.h" 00021 00022 #define MASK 2147483647 00023 #define PRIME 65539 00024 #define SCALE 0.4656612875e-9 00025 00026 void ORandom::setSeed(unsigned long seed) { 00027 m_seed = seed; 00028 } 00029 00030 double ORandom::rand(void) { 00031 m_seed = (m_seed * PRIME) & MASK; 00032 return (m_seed * SCALE); 00033 } 00034 00035 unsigned long ORandom::getSeed(void) { 00036 return m_seed; 00037 }