Skip to content

Commit 0a097b5

Browse files
committed
change rand names to match type names
R=r DELTA=66 (19 added, 9 deleted, 38 changed) OCL=15232 CL=15265
1 parent 729bc5c commit 0a097b5

File tree

1 file changed

+44
-34
lines changed

1 file changed

+44
-34
lines changed

src/lib/rand.go

Lines changed: 44 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,11 @@
99
*/
1010

1111
package rand
12-
/*
13-
export
14-
srand // set rand state (int32)
15-
vrand // int64 63-bits
16-
lrand // int32 31-bits
17-
rand // int 15-bits
18-
vnrand // int64 % (int64)
19-
lnrand // int32 % (int32)
20-
nrand // int % (int)
21-
frand; // float64 >=0.0 <1.0
22-
*/
12+
13+
// rand, rand31, rand63 - return non-negative random int, int32, int64
14+
// urand32 - return random uint32
15+
// nrand, nrand31, nrand63 - return 0 <= random < n
16+
// frand, frand64, frand32 - return 0 <= random float, float64, float32 < 1
2317

2418
const
2519
(
@@ -84,7 +78,7 @@ srand(seed int32)
8478
}
8579

8680
export func
87-
vrand() int64
81+
rand63() int64
8882
{
8983
rng_tap--;
9084
if rng_tap < 0 {
@@ -102,56 +96,72 @@ vrand() int64
10296
}
10397

10498
export func
105-
lrand() int32
99+
urand32() uint32
106100
{
107-
x := vrand() & 0x7fffffff;
108-
return int32(x);
101+
return uint32(rand63() >> 31);
109102
}
110103

111104
export func
112-
rand() int
105+
rand31() int32
113106
{
114-
x := vrand() & 0x7fff;
115-
return int(x);
107+
return int32(rand63() >> 32);
116108
}
117109

118110
export func
119-
vnrand(n int64) int64
111+
rand() int
120112
{
121-
var v,slop int64;
113+
u := uint(rand63());
114+
return int(u << 1 >> 1); // clear sign bit if int == int32
115+
}
122116

123-
slop = MASK % n;
124-
for v = vrand(); v <= slop; v = vrand() {
117+
export func
118+
nrand63(n int64) int64
119+
{
120+
if n <= 0 {
121+
return 0
125122
}
126-
return v % n;
123+
max := int64((1<<63)-1 - (1<<63) % uint64(n));
124+
v := rand63()
125+
for v > max {
126+
v = rand63()
127+
}
128+
return v % n
127129
}
128130

129131
export func
130-
lnrand(n int32) int32
132+
nrand31(n int32) int32
131133
{
132-
v := vnrand(int64(n));
133-
return int32(v);
134+
return int32(nrand63(int64(n)))
134135
}
135136

136137
export func
137138
nrand(n int) int
138139
{
139-
v := vnrand(int64(n));
140-
return int(v);
140+
return int(nrand63(int64(n)))
141141
}
142142

143143
export func
144-
frand() float64
144+
frand64() float64
145145
{
146-
var x float64;
147-
148-
x = float64(vrand()) / float64(MASK);
146+
x := float64(rand63()) / float64(MASK);
149147
for x >= 1 {
150-
x = float64(vrand()) / float64(MASK);
151-
}
148+
x = float64(rand63()) / float64(MASK);
149+
}
152150
return x;
153151
}
154152

153+
export func
154+
frand32() float32
155+
{
156+
return float32(frand64())
157+
}
158+
159+
export func
160+
frand() float
161+
{
162+
return float(frand64())
163+
}
164+
155165
func
156166
init()
157167
{

0 commit comments

Comments
 (0)