Skip to content

Random


final class Random<Value> < Expression<Value>

Random variate.

  • Value: Value type.

Random objects, like all Expression objects, are stateful. Random objects in the pilot state are considered variables, meaning that a call to grad() will compute gradients with respect to them, and a further call to move() will apply a Markov kernel to update their value. Random objects in the value state are considered constants.

Factory Functions

Name Description
Random Create a Random.
Random Create a Random.
Random Create a Random.

Assignments

Name Description
Value Value assignment.

Member Variables

Name Description
p:Distribution<Value>? Associated distribution.
d:Value? Accumulated gradient.

Member Functions

Name Description
hasDistribution Does this have a distribution?
getDistribution Get the distribution.
hasGradient Does this have a gradient?
getGradient Get the gradient of an evaluated function with respect to this random variable at its current value.
assume Assume the distribution for the random variate.

Factory Function Details

function Random<Value>() -> Random<Value>

Create a Random.

function Random<Value>(x:Value) -> Random<Value>

Create a Random.

  • x: Value to assign.

function Random<Value>(x:Value?) -> Random<Value>

Create a Random.

  • x: Optional value to assign.

Member Function Details

assume

function assume(p:Distribution<Value>)

Assume the distribution for the random variate. When a value for the random variate is required, it will be simulated from this distribution and trigger an update on the delayed sampling graph.

  • p: The distribution.

getDistribution

function getDistribution() -> Distribution<Value>

Get the distribution.

getGradient

function getGradient() -> Value

Get the gradient of an evaluated function with respect to this random variable at its current value.

hasDistribution

function hasDistribution() -> Boolean

Does this have a distribution?

hasGradient

function hasGradient() -> Boolean

Does this have a gradient?