27 #if defined(HAVE_ERAND48) || defined(HAVE_JRAND48) || defined(HAVE_NRAND48) 80 #if defined(HAVE_ERAND48) 81 return erand48(m_state);
82 #elif defined(HAVE_RAND_R) 83 return (
double)rand_r(&m_seed) / (double)RAND_MAX;
86 return (
double)rand() / (double)RAND_MAX;
92 #if defined(HAVE_JRAND48) 93 return (
long)jrand48(m_state);
94 #elif defined(HAVE_RAND_R) 95 return (
long)rand_r(&m_seed);
105 #if defined(HAVE_NRAND48) 106 return (
long)nrand48(m_state);
long random_l(void)
returns a pseudo-random long in the range [-2**31,2**31)
Definition: ddcRandom.h:91
~DDCRandom(void)
Default destructor.
Definition: ddcRandom.h:70
unsigned int m_seed
underlying random seed for POSIX.1 random numbers using rand_r() or srand()+rand() hack ...
Definition: ddcRandom.h:41
long random_n(void)
returns a pseudo-random unsigned long in the range [0,2**31)
Definition: ddcRandom.h:103
unsigned short m_state[3]
underlying computation state (defaults to {m_seed,m_seed,m_seed}) for jrand48() & friends ...
Definition: ddcRandom.h:45
DDCRandom(unsigned int seed=0)
Constructor given state.
Definition: ddcRandom.h:53
double random_d(void)
returns a pseudo-random double in the range [0,1)
Definition: ddcRandom.h:79
void set_seed(unsigned int seed=0)
set internal seed
Definition: ddcRandom.h:59
thread-safe pseudo-random number stream using drand48() & friends
Definition: ddcRandom.h:38