|
|
@ -93,10 +93,18 @@ func RandInt31() int32 { |
|
|
|
return grand.Int31() |
|
|
|
} |
|
|
|
|
|
|
|
func RandInt31n(n int32) int32 { |
|
|
|
return grand.Int31n(n) |
|
|
|
} |
|
|
|
|
|
|
|
func RandInt63() int64 { |
|
|
|
return grand.Int63() |
|
|
|
} |
|
|
|
|
|
|
|
func RandInt63n(n int64) int64 { |
|
|
|
return grand.Int63n(n) |
|
|
|
} |
|
|
|
|
|
|
|
func RandUint16Exp() uint16 { |
|
|
|
return grand.Uint16Exp() |
|
|
|
} |
|
|
@ -224,6 +232,14 @@ func (r *Rand) Int31() int32 { |
|
|
|
return i31 |
|
|
|
} |
|
|
|
|
|
|
|
// It is not safe for cryptographic usage.
|
|
|
|
func (r *Rand) Int31n(n int32) int32 { |
|
|
|
r.Lock() |
|
|
|
i31n := r.rand.Int31n(n) |
|
|
|
r.Unlock() |
|
|
|
return i31n |
|
|
|
} |
|
|
|
|
|
|
|
// It is not safe for cryptographic usage.
|
|
|
|
func (r *Rand) Int63() int64 { |
|
|
|
r.Lock() |
|
|
@ -232,6 +248,14 @@ func (r *Rand) Int63() int64 { |
|
|
|
return i63 |
|
|
|
} |
|
|
|
|
|
|
|
// It is not safe for cryptographic usage.
|
|
|
|
func (r *Rand) Int63n(n int64) int64 { |
|
|
|
r.Lock() |
|
|
|
i63n := r.rand.Int63n(n) |
|
|
|
r.Unlock() |
|
|
|
return i63n |
|
|
|
} |
|
|
|
|
|
|
|
// Distributed pseudo-exponentially to test for various cases
|
|
|
|
// It is not safe for cryptographic usage.
|
|
|
|
func (r *Rand) Uint16Exp() uint16 { |
|
|
|