type PCG … // NewPCG returns a new PCG seeded with the given values. func NewPCG(seed1, seed2 uint64) *PCG { … } // Seed resets the PCG to behave the same way as NewPCG(seed1, seed2). func (p *PCG) Seed(seed1, seed2 uint64) { … } // AppendBinary implements the [encoding.BinaryAppender] interface. func (p *PCG) AppendBinary(b []byte) ([]byte, error) { … } // MarshalBinary implements the [encoding.BinaryMarshaler] interface. func (p *PCG) MarshalBinary() ([]byte, error) { … } var errUnmarshalPCG … // UnmarshalBinary implements the [encoding.BinaryUnmarshaler] interface. func (p *PCG) UnmarshalBinary(data []byte) error { … } func (p *PCG) next() (hi, lo uint64) { … } // Uint64 return a uniformly-distributed random uint64 value. func (p *PCG) Uint64() uint64 { … }