org.saddle.util

Random

class Random extends AnyRef

The Random class provides methods to generate pseudorandom numbers via Marsaglia Xorshift PRNGs, which use simple exclusive-or and bit-shift operations to generate these numbers extremely quickly over long cycles.

For instance, nextInt and nextFloat have cycles of length 232 - 1, while nextLong and nextDouble have cycles of length 264 - 1.

There are 648 possible Marsiglia PRNG choices for 32 bits, and 2200 choices for 64 bits, corresponding to which triples are utilized in the calculations. One triple is chosen at random via a call to java.util.Random for cycling through the 32-bit state, and similarly one for the 64-bit state.

By default, the 64-bit seed is chosen via System.nanoTime, and the 32-bit seed by taking the 32 lower-order bits of the same seed.

To create repeatable behavior, seed0 and seed1 may be specified.

See Marsiglia for details.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Random
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Random(seed0: Option[Int], seed1: Option[Long])

    seed0

    Seed for java.util.Random triple selector

    seed1

    Seed for initial state of Marsiglia PRNG

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws()
  11. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  15. def nextDouble: Double

    Generate a new double

  16. def nextFloat: Float

    Generate a new float

  17. final def nextGaussian: Double

    Generate a new Gaussian (normally distributed) number

    Generate a new Gaussian (normally distributed) number

    This is based on Apache Commons Math's nextGaussian, which in turn is based on the Polar Method of Box, Muller, & Marsiglia as described in Knuth 3.4.1C

    Annotations
    @tailrec()
  18. def nextInt: Int

    Generate a new integer

  19. def nextLong: Long

    Generate a new long

  20. final def nextNonNegDouble: Double

    Generate a new non-negative double

    Generate a new non-negative double

    Annotations
    @tailrec()
  21. final def nextNonNegFloat: Float

    Generate a new non-negative float

    Generate a new non-negative float

    Annotations
    @tailrec()
  22. final def nextNonNegInt: Int

    Generate a new non-negative integer

    Generate a new non-negative integer

    Annotations
    @tailrec()
  23. final def nextNonNegLong: Long

    Generate a new non-negative long

    Generate a new non-negative long

    Annotations
    @tailrec()
  24. final def notify(): Unit

    Definition Classes
    AnyRef
  25. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  26. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  27. def toString(): String

    Definition Classes
    AnyRef → Any
  28. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  29. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()
  30. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws()

Inherited from AnyRef

Inherited from Any

Ungrouped