/* ECP: FILEname=fig9_33.c */ /* 1*/ static const long int A = 48271; /* 2*/ static const long int M = 2147483647; /* 2^31 - 1 */ /* 3*/ static const long int Q = 44488; /* M / A */ /* 4*/ static const long int R = 3399; /* M % A */ /* 5*/ unsigned long int Seed = 1; /* 6*/ unsigned long int /* 7*/ BetterRand( void ) /* 8*/ { /* 9*/ long int TmpSeed; /*10*/ TmpSeed = A * ( Seed % Q ) - R * ( Seed / Q ); /*11*/ if( TmpSeed >= 0 ) /*12*/ Seed = TmpSeed; /*13*/ else /*14*/ Seed = TmpSeed + M; /*15*/ return Seed; /*16*/ }