prand

package
v0.4.181 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2024 License: ISC Imports: 3 Imported by: 1

Documentation

Overview

Package prand provides a fast and thread-safe random number generation.

  • prand.Uint32: 2 ns ±0.5
  • math/rand.Uint32: 14 ns ±0.5
  • /crypto/rand.Read: 330 ns ±0.5
  • same methods as math/rand package
  • based on runtime.fastrand

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ExpFloat64

func ExpFloat64() float64

ExpFloat64 returns an exponentially distributed float64 in the range (0, +math.MaxFloat64] with an exponential distribution whose rate parameter (lambda) is 1 and whose mean is 1/lambda (1). To produce a distribution with a different rate parameter, callers can adjust the output using:

sample = ExpFloat64() / desiredRateParameter

func Float32

func Float32() float32

Float32 returns, as a float32, a pseudo-random number in the half-open interval [0.0,1.0).

func Float64

func Float64() float64

Float64 returns, as a float64, a pseudo-random number in the half-open interval [0.0,1.0).

func Int

func Int() int

Int returns a non-negative pseudo-random int.

func Int31

func Int31() int32

Int31 returns a non-negative pseudo-random 31-bit integer as an int32.

func Int31n

func Int31n(n int32) (i32 int32)

Int31n returns, as an int32, a non-negative pseudo-random number in [0,n). It panics if n <= 0.

func Int63

func Int63() (random int64)

Int63 returns a non-negative pseudo-random 63-bit integer as an int64.

func Int63n

func Int63n(n int64) int64

Int63n returns, as an int64, a non-negative pseudo-random number in [0,n). It panics if n <= 0. Thread-safe.

func Intn

func Intn(n int) int

Intn returns, as an int, a non-negative pseudo-random number in the half-open interval [0,n). It panics if n <= 0.

func NormFloat64

func NormFloat64() float64

NormFloat64 returns a normally distributed float64 in the range -math.MaxFloat64 through +math.MaxFloat64 inclusive, with standard normal distribution (mean = 0, stddev = 1). To produce a different normal distribution, callers can adjust the output using:

sample = NormFloat64() * desiredStdDev + desiredMean

func Perm

func Perm(n int) []int

Perm returns, as a slice of n ints, a pseudo-random permutation of the integers in the half-open interval [0,n).

func Read

func Read(p []byte) (n int, err error)

Read reads n random bytes into p. Thread-Safe.

  • n always len(p), err always nil

func Shuffle

func Shuffle(n int, swap func(i, j int))

Shuffle pseudo-randomizes the order of elements. n is the number of elements. Shuffle panics if n < 0. swap swaps the elements with indexes i and j. Thread-safe.

func Uint32

func Uint32() (random uint32)

Uint32 returns a 32-bit unsigned random number using runtime.fastrand. Thread-safe

func Uint32n

func Uint32n(n uint32) (random uint32)

Uint32n returns a 32-bit unsigned random number using runtime.fastrand. Thread-safe

func Uint64

func Uint64() (random uint64)

Uint64 returns a 64-bit unsigned random number using runtime.fastrand. Thread-safe

func Uint64n

func Uint64n(n uint64) uint64

Uint64n returns, as a uint64, a pseudo-random number in [0,n). It is guaranteed more uniform than taking a Source value mod n for any n that is not a power of 2. Thread-safe.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL