12#ifndef TT_INCLUDE__RANDOM3CLASS_H
13#define TT_INCLUDE__RANDOM3CLASS_H
15int Pick_Random_Number(T & generator,
int minval,
int maxval)
17 if (minval == maxval)
return(minval);
24 int magnitude = maxval - minval;
25 int highbit = T::SIGNIFICANT_BITS-1;
26 while ((magnitude & (1 << highbit)) == 0 && highbit > 0)
30 int mask = ~( (~0L) << (highbit+1));
31 int pick = magnitude+1;
32 while (pick > magnitude)
34 pick = generator() & mask;
36 return(pick + minval);
42 Random3Class(
unsigned seed1 = 0,
unsigned seed2 = 0);
47 int operator() (
void);
48 int operator() (
int minval,
int maxval);