type mutatorRand … var globalInc … const multiplier … type pcgRand … func godebugSeed() *int { … } // newPcgRand generates a new, seeded Rand, ready for use. func newPcgRand() *pcgRand { … } func (r *pcgRand) step() { … } func (r *pcgRand) save(randState, randInc *uint64) { … } func (r *pcgRand) restore(randState, randInc uint64) { … } // uint32 returns a pseudo-random uint32. func (r *pcgRand) uint32() uint32 { … } // intn returns a pseudo-random number in [0, n). // n must fit in a uint32. func (r *pcgRand) intn(n int) int { … } // uint32n returns a pseudo-random number in [0, n). // // For implementation details, see: // https://lemire.me/blog/2016/06/27/a-fast-alternative-to-the-modulo-reduction // https://lemire.me/blog/2016/06/30/fast-random-shuffling func (r *pcgRand) uint32n(n uint32) uint32 { … } // exp2 generates n with probability 1/2^(n+1). func (r *pcgRand) exp2() int { … } // bool generates a random bool. func (r *pcgRand) bool() bool { … } type noCopy … // Lock is a no-op used by -copylocks checker from `go vet`. func (*noCopy) Lock() { … } func (*noCopy) Unlock() { … }