# Distribution

abstract class Distribution<Value> < Delay

Distribution with delayed-sampling support.

• Value Value type.

### Member Variables

Name Description
subordinate:Boolean Is this a subordinate in a joint distribution?

### Member Functions

Name Description
getVariate Get the variate associated with this distribution.
supportsLazy Are lazy operations supported?
supportsJoin Are join operations supported?
simulate Simulate a value.
simulateLazy Simulate a value using lazy expressions.
logpdf Evaluate the log probability density (or mass) function.
logpdfLazy Evaluate the log probability density (or mass) function using lazy expressions.
update Update the parent node on the $M$-path given the value of this node.
updateLazy Update the parent node on the $M$-path given the value of this node, using lazy expressions.
updateJoin Update the parent node on the $M$-path given the value of this node, using lazy expressions and joins.
pdf Evaluate the probability density (or mass) function.
cdf Evaluate the cumulative distribution function at a value.
quantile Evaluate the quantile function at a cumulative probability.
lower Finite lower bound of the support of this node, if any.
upper Finite upper bound of the support of this node, if any.

### Member Function Details

#### cdf

function cdf(x:Value!) -> Real!?

Evaluate the cumulative distribution function at a value.

• x The value.

Returns the cumulative probability, if supported.

#### getVariate

final function getVariate() -> Expression<Value>

Get the variate associated with this distribution.

#### logpdf

abstract function logpdf(x:Value!) -> Real!

Evaluate the log probability density (or mass) function.

• x The value.

Returns the log probability density (or mass).

#### logpdfLazy

function logpdfLazy(x:Value!) -> Real!?

Evaluate the log probability density (or mass) function using lazy expressions.

• x The value.

Returns the log probability density (or mass), if supported.

#### lower

function lower() -> Value!?

Finite lower bound of the support of this node, if any.

#### pdf

function pdf(x:Value!) -> Real!

Evaluate the probability density (or mass) function.

• x The value.

Returns the probability density (or mass).

#### quantile

function quantile(P:Real!) -> Value!?

Evaluate the quantile function at a cumulative probability.

• P The cumulative probability.

Returns the quantile, if supported.

#### simulate

abstract function simulate() -> Value!

Simulate a value.

Returns the value.

#### simulateLazy

function simulateLazy() -> Value!?

Simulate a value using lazy expressions.

Returns the value, if supported.

#### supportsJoin

function supportsJoin() -> Boolean

Are join operations supported?

#### supportsLazy

function supportsLazy() -> Boolean

Are lazy operations supported?

#### update

function update(x:Value!) -> Delay?

Update the parent node on the $M$-path given the value of this node.

• x The value.

#### updateJoin

function updateJoin(x:Expression<Value>) -> Delay?

Update the parent node on the $M$-path given the value of this node, using lazy expressions and joins.

• x The value.

#### updateLazy

function updateLazy(x:Expression<Value>) -> Delay?

Update the parent node on the $M$-path given the value of this node, using lazy expressions.

• x The value.

#### upper

function upper() -> Value!?

Finite upper bound of the support of this node, if any.