Documentation

Overview

    Package prng provides random source PRNG implementations.

    PRNG implementations provided in package prng may be used directly as rand.Source values for the golang.org/x/exp/rand package, and for the math rand package via a wrapper type.

    Index

    Constants

    This section is empty.

    Variables

    This section is empty.

    Functions

    This section is empty.

    Types

    type MT19937

    type MT19937 struct {
    	// contains filtered or unexported fields
    }

      MT19937 implements the 32 bit Mersenne Twister PRNG. MT19937 is the default PRNG for a wide variety of programming systems. See https://en.wikipedia.org/wiki/Mersenne_Twister.

      func NewMT19937

      func NewMT19937() *MT19937

        NewMT19937 returns a new MT19937 PRNG. The returned PRNG will use the default seed 5489 unless the Seed method is called with another value.

        func (*MT19937) MarshalBinary

        func (src *MT19937) MarshalBinary() ([]byte, error)

          MarshalBinary returns the binary representation of the current state of the generator.

          func (*MT19937) Seed

          func (src *MT19937) Seed(seed uint64)

            Seed uses the provided seed value to initialize the generator to a deterministic state. Only the lower 32 bits of seed are used to seed the PRNG.

            func (*MT19937) SeedFromKeys

            func (src *MT19937) SeedFromKeys(keys []uint32)

              SeedFromKeys uses the provided seed key value to initialize the generator to a deterministic state. It is provided for compatibility with C implementations.

              func (*MT19937) Uint32

              func (src *MT19937) Uint32() uint32

                Uint32 returns a pseudo-random 32-bit unsigned integer as a uint32.

                func (*MT19937) Uint64

                func (src *MT19937) Uint64() uint64

                  Uint64 returns a pseudo-random 64-bit unsigned integer as a uint64. It makes use of two calls to Uint32 placing the first result in the upper bits and the second result in the lower bits of the returned value.

                  func (*MT19937) UnmarshalBinary

                  func (src *MT19937) UnmarshalBinary(data []byte) error

                    UnmarshalBinary sets the state of the generator to the state represented in data.

                    type MT19937_64

                    type MT19937_64 struct {
                    	// contains filtered or unexported fields
                    }

                      MT19937_64 implements the 64 bit Mersenne Twister PRNG. MT19937_64 is the 64 bit version of MT19937, it has the same sized state, but generates a different sequence. See https://en.wikipedia.org/wiki/Mersenne_Twister.

                      func NewMT19937_64

                      func NewMT19937_64() *MT19937_64

                        NewMT19937_64 returns a new MT19937_64 PRNG. The returned PRNG will use the default seed 5489 unless the Seed method is called with another value.

                        func (*MT19937_64) MarshalBinary

                        func (src *MT19937_64) MarshalBinary() ([]byte, error)

                          MarshalBinary returns the binary representation of the current state of the generator.

                          func (*MT19937_64) Seed

                          func (src *MT19937_64) Seed(seed uint64)

                            Seed uses the provided seed value to initialize the generator to a deterministic state.

                            func (*MT19937_64) SeedFromKeys

                            func (src *MT19937_64) SeedFromKeys(keys []uint64)

                              SeedFromKeys uses the provided seed key value to initialize the generator to a deterministic state. It is provided for compatibility with C implementations.

                              func (*MT19937_64) Uint64

                              func (src *MT19937_64) Uint64() uint64

                                Uint64 returns a pseudo-random 64-bit unsigned integer as a uint64.

                                func (*MT19937_64) UnmarshalBinary

                                func (src *MT19937_64) UnmarshalBinary(data []byte) error

                                  UnmarshalBinary sets the state of the generator to the state represented in data.

                                  type SplitMix64

                                  type SplitMix64 struct {
                                  	// contains filtered or unexported fields
                                  }

                                    SplitMix64 is the splitmix64 PRNG from http://prng.di.unimi.it/splitmix64.c. The zero value is usable directly. SplitMix64 is primarily provided to support seeding the xoshiro PRNGs.

                                    func NewSplitMix64

                                    func NewSplitMix64(seed uint64) *SplitMix64

                                      NewSplitMix64 returns a new pseudo-random splitmix64 source seeded with the given value.

                                      func (*SplitMix64) MarshalBinary

                                      func (src *SplitMix64) MarshalBinary() ([]byte, error)

                                        MarshalBinary returns the binary representation of the current state of the generator.

                                        func (*SplitMix64) Seed

                                        func (src *SplitMix64) Seed(seed uint64)

                                          Seed uses the provided seed value to initialize the generator to a deterministic state.

                                          func (*SplitMix64) Uint64

                                          func (src *SplitMix64) Uint64() uint64

                                            Uint64 returns a pseudo-random 64-bit unsigned integer as a uint64.

                                            func (*SplitMix64) UnmarshalBinary

                                            func (src *SplitMix64) UnmarshalBinary(data []byte) error

                                              UnmarshalBinary sets the state of the generator to the state represented in data.

                                              type Xoshiro256plus

                                              type Xoshiro256plus struct {
                                              	// contains filtered or unexported fields
                                              }

                                                Xoshiro256plus is the xoshiro256+ 1.0 PRNG from http://prng.di.unimi.it/xoshiro256plus.c. The xoshiro PRNGs are described in http://vigna.di.unimi.it/ftp/papers/ScrambledLinear.pdf and http://prng.di.unimi.it/. A Xoshiro256plus value is only valid if returned by NewXoshiro256plus.

                                                func NewXoshiro256plus

                                                func NewXoshiro256plus(seed uint64) *Xoshiro256plus

                                                  NewXoshiro256plus returns a new pseudo-random xoshiro256+ source seeded with the given value.

                                                  func (*Xoshiro256plus) MarshalBinary

                                                  func (src *Xoshiro256plus) MarshalBinary() ([]byte, error)

                                                    MarshalBinary returns the binary representation of the current state of the generator.

                                                    func (*Xoshiro256plus) Seed

                                                    func (src *Xoshiro256plus) Seed(seed uint64)

                                                      Seed uses the provided seed value to initialize the generator to a deterministic state.

                                                      func (*Xoshiro256plus) Uint64

                                                      func (src *Xoshiro256plus) Uint64() uint64

                                                        Uint64 returns a pseudo-random 64-bit unsigned integer as a uint64.

                                                        func (*Xoshiro256plus) UnmarshalBinary

                                                        func (src *Xoshiro256plus) UnmarshalBinary(data []byte) error

                                                          UnmarshalBinary sets the state of the generator to the state represented in data.

                                                          type Xoshiro256plusplus

                                                          type Xoshiro256plusplus struct {
                                                          	// contains filtered or unexported fields
                                                          }

                                                            Xoshiro256plusplus is the xoshiro256++ 1.0 PRNG from http://prng.di.unimi.it/xoshiro256plusplus.c. The xoshiro PRNGs are described in http://vigna.di.unimi.it/ftp/papers/ScrambledLinear.pdf and http://prng.di.unimi.it/. A Xoshiro256plusplus value is only valid if returned by NewXoshiro256plusplus.

                                                            func NewXoshiro256plusplus

                                                            func NewXoshiro256plusplus(seed uint64) *Xoshiro256plusplus

                                                              NewXoshiro256plusplus returns a new pseudo-random xoshiro256++ source seeded with the given value.

                                                              func (*Xoshiro256plusplus) MarshalBinary

                                                              func (src *Xoshiro256plusplus) MarshalBinary() ([]byte, error)

                                                                MarshalBinary returns the binary representation of the current state of the generator.

                                                                func (*Xoshiro256plusplus) Seed

                                                                func (src *Xoshiro256plusplus) Seed(seed uint64)

                                                                  Seed uses the provided seed value to initialize the generator to a deterministic state.

                                                                  func (*Xoshiro256plusplus) Uint64

                                                                  func (src *Xoshiro256plusplus) Uint64() uint64

                                                                    Uint64 returns a pseudo-random 64-bit unsigned integer as a uint64.

                                                                    func (*Xoshiro256plusplus) UnmarshalBinary

                                                                    func (src *Xoshiro256plusplus) UnmarshalBinary(data []byte) error

                                                                      UnmarshalBinary sets the state of the generator to the state represented in data.

                                                                      type Xoshiro256starstar

                                                                      type Xoshiro256starstar struct {
                                                                      	// contains filtered or unexported fields
                                                                      }

                                                                        Xoshiro256starstar is the xoshiro256** 1.0 PRNG from http://prng.di.unimi.it/xoshiro256starstar.c. The xoshiro PRNGs are described in http://vigna.di.unimi.it/ftp/papers/ScrambledLinear.pdf and http://prng.di.unimi.it/. A Xoshiro256starstar value is only valid if returned by NewXoshiro256starstar.

                                                                        func NewXoshiro256starstar

                                                                        func NewXoshiro256starstar(seed uint64) *Xoshiro256starstar

                                                                          NewXoshiro256starstar returns a new pseudo-random xoshiro256** source seeded with the given value.

                                                                          func (*Xoshiro256starstar) MarshalBinary

                                                                          func (src *Xoshiro256starstar) MarshalBinary() ([]byte, error)

                                                                            MarshalBinary returns the binary representation of the current state of the generator.

                                                                            func (*Xoshiro256starstar) Seed

                                                                            func (src *Xoshiro256starstar) Seed(seed uint64)

                                                                              Seed uses the provided seed value to initialize the generator to a deterministic state.

                                                                              func (*Xoshiro256starstar) Uint64

                                                                              func (src *Xoshiro256starstar) Uint64() uint64

                                                                                Uint64 returns a pseudo-random 64-bit unsigned integer as a uint64.

                                                                                func (*Xoshiro256starstar) UnmarshalBinary

                                                                                func (src *Xoshiro256starstar) UnmarshalBinary(data []byte) error

                                                                                  UnmarshalBinary sets the state of the generator to the state represented in data.