# 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.

### Member Functions

Name Description
hasDistribution Does this have a distribution?
getDistribution Get the distribution.
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.

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?