1*8ccd4a63SDavid du Colombier #include <u.h> 2*8ccd4a63SDavid du Colombier #include <libc.h> 3*8ccd4a63SDavid du Colombier 4*8ccd4a63SDavid du Colombier #define MASK 0x7fffffffL 5*8ccd4a63SDavid du Colombier #define NORM (1.0/(1.0+MASK)) 6*8ccd4a63SDavid du Colombier 7*8ccd4a63SDavid du Colombier double frand(void)8*8ccd4a63SDavid du Colombierfrand(void) 9*8ccd4a63SDavid du Colombier { 10*8ccd4a63SDavid du Colombier double x; 11*8ccd4a63SDavid du Colombier 12*8ccd4a63SDavid du Colombier do { 13*8ccd4a63SDavid du Colombier x = lrand() * NORM; 14*8ccd4a63SDavid du Colombier x = (x + lrand()) * NORM; 15*8ccd4a63SDavid du Colombier } while(x >= 1); 16*8ccd4a63SDavid du Colombier return x; 17*8ccd4a63SDavid du Colombier } 18