Packages

object Drv

Create discrete random variables representing arbitrary distributions.

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Drv
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class Aliased(alias: IndexedSeq[Int], prob: IndexedSeq[Double]) extends Drv with Product with Serializable

    A Drv using the Aliasing method [1]: a distribution is described by a set of probabilities and aliases.

    A Drv using the Aliasing method [1]: a distribution is described by a set of probabilities and aliases. In order to pick a value j in distribution Pr(Y = j), j=1..n, we first pick a random integer in the uniform distribution over 1..n. We then inspect the probability table whose value represents a biased coin; the random integer is returned with this probability, otherwise the index in the alias table is chosen.

    "It is a peculiar way to throw dice, but the results are indistinguishable from the real thing." -Knuth (TAOCP Vol. 2; 3.4.1 p.121).

    [1] Alastair J. Walker. 1977. An Efficient Method for Generating Discrete Random Variables with General Distributions. ACM Trans. Math. Softw. 3, 3 (September 1977), 253-256. DOI=10.1145/355744.355749 http://doi.acm.org/10.1145/355744.355749

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def apply(dist: Seq[Double]): Drv

    Create a new Drv representing the passed in distribution of probabilities.

    Create a new Drv representing the passed in distribution of probabilities. These must add up to 1, however we cannot reliably test for this due to numerical stability issues: we're operating on the honor's system.

  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  10. def fromWeights(weights: Seq[Double]): Drv

    Create a probability distribution based on a set of weights (ratios).

  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  15. def newVose(dist: Seq[Double]): Aliased

    Generate probability and alias tables in the manner of to Vose [1].

    Generate probability and alias tables in the manner of to Vose [1]. This algorithm is simple, efficient, and intuitive. Vose's algorithm is O(n) in the distribution size. The paper below contains correctness and complexity proofs.

    [1] Michael D. Vose. 1991. A Linear Algorithm for Generating Random Numbers with a Given Distribution. IEEE Trans. Softw. Eng. 17, 9 (September 1991), 972-975. DOI=10.1109/32.92917 http://dx.doi.org/10.1109/32.92917

  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped