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