unsigned long a=genrand_int32()>>5, b=genrand_int32()>>6;
return(a*67108864.0+b)*(1.0/9007199254740992.0);
}
+
+ /* generates a random number on [low,high] closed interval */
+ int uniform_int_closed(int low, int high)
+ {
+ const unsigned long MT_RAND_MAX = 0x7fffffff;
+ int range = high - low + 1;
+ int secureMax = 1 + (MT_RAND_MAX - MT_RAND_MAX % range);
+ int x;
+ do x = genrand_int31(); while (x > secureMax);
+ return low + x % range;
+ }
};
}
#endif