Blame


1 498bb221 2004-03-21 devnull #include <u.h>
2 498bb221 2004-03-21 devnull #include <libc.h>
3 498bb221 2004-03-21 devnull
4 498bb221 2004-03-21 devnull #define MASK 0x7fffffffL
5 498bb221 2004-03-21 devnull
6 498bb221 2004-03-21 devnull long
7 498bb221 2004-03-21 devnull lnrand(long n)
8 498bb221 2004-03-21 devnull {
9 498bb221 2004-03-21 devnull long slop, v;
10 498bb221 2004-03-21 devnull
11 498bb221 2004-03-21 devnull if(n < 0)
12 498bb221 2004-03-21 devnull return n;
13 498bb221 2004-03-21 devnull slop = MASK % n;
14 498bb221 2004-03-21 devnull do
15 498bb221 2004-03-21 devnull v = lrand();
16 498bb221 2004-03-21 devnull while(v <= slop);
17 498bb221 2004-03-21 devnull return v % n;
18 498bb221 2004-03-21 devnull }