#include #include #include "my_rand.h" #ifdef __ZTC__ #define RAND_MAX 32767 #else ifndef RAND_MAX #define RAND_MAX 0x3FFFFFFF /* 2^32 - 1 */ #endif int irand_range(lo,hi) int lo; int hi; { int r = rand(); int dif = hi-lo; int top = RAND_MAX; int top_mod; if ( dif < 0 ) { fprintf(stderr,"range too wide in irand_range(%d,%d)\n",lo,hi); exit(1); } top_mod = top % dif; if ( top_mod != dif-1 ) top = ( top - top_mod ) - 1; while ( r > top ) r = rand(); return ( r % dif ) + lo; } double drand_range(lo,hi) double lo; double hi; { int r = rand(); return ( ((hi-lo)*r) / ((double)RAND_MAX) ) + lo; }