Skip to main content

Functions Reference

Operating on distributions

Here are the ways we combine distributions.

Addition

A horizontal right shift. The addition operation represents the distribution of the sum of the value of one random sample chosen from the first distribution and the value one random sample chosen from the second distribution.

Loading...

Subtraction

A horizontal left shift. A horizontal right shift. The substraction operation represents the distribution of the value of one random sample chosen from the first distribution minus the value of one random sample chosen from the second distribution.

Loading...

Multiplication

A proportional scaling. The addition operation represents the distribution of the multiplication of the value of one random sample chosen from the first distribution times the value one random sample chosen from the second distribution.

Loading...

We also provide concatenation of two distributions as a syntax sugar for *

Loading...

Division

A proportional scaling (normally a shrinking if the second distribution has values higher than 1). The addition operation represents the distribution of the division of the value of one random sample chosen from the first distribution over the value one random sample chosen from the second distribution. If the second distribution has some values near zero, it tends to be particularly unstable.

Loading...

Exponentiation

A projection over a contracted x-axis. The exponentiation operation represents the distribution of the exponentiation of the value of one random sample chosen from the first distribution to the power of the value one random sample chosen from the second distribution.

Loading...

Taking the base e exponential

Loading...

Taking logarithms

A projection over a stretched x-axis.

Loading...
Loading...

Base x

Loading...

Validity

Pointwise addition

For every point on the x-axis, operate the corresponding points in the y axis of the pdf.

Pointwise operations are done with PointSetDist internals rather than SampleSetDist internals.

TODO: this isn't in the new interpreter/parser yet.

Loading...

Pointwise subtraction

TODO: this isn't in the new interpreter/parser yet.

Loading...

Pointwise multiplication

Loading...

Pointwise division

Loading...

Pointwise exponentiation

Loading...

Standard functions on distributions

Probability density function

The pdf(dist, x) function returns the density of a distribution at the given point x.

Loading...

Validity

  • x must be a scalar
  • dist must be a distribution

Cumulative density function

The cdf(dist, x) gives the cumulative probability of the distribution or all values lower than x. It is the inverse of inv.

Loading...

Validity

  • x must be a scalar
  • dist must be a distribution

Inverse CDF

The inv(dist, prob) gives the value x or which the probability for all values lower than x is equal to prob. It is the inverse of cdf. In the literature, it is also known as the quantiles function.

Loading...

Validity

  • prob must be a scalar (please only put it in (0,1))
  • dist must be a distribution

Mean

The mean(distribution) function gives the mean (expected value) of a distribution.

Loading...

Sampling a distribution

The sample(distribution) samples a given distribution.

Loading...

Converting between distribution formats

Recall the three formats of distributions. We can force any distribution into SampleSet format

Loading...

Or PointSet format

Loading...

toSampleSet has two signatures

Above, we saw the unary toSampleSet, which uses an internal hardcoded number of samples. If you'd like to provide the number of samples, it has a binary signature as well (floored)

Loading...

Validity

  • Second argument to toSampleSet must be a number.

Normalization

Some distribution operations (like horizontal shift) return an unnormalized distriibution.

We provide a normalize function

Loading...

Validity - Input to normalize must be a dist

We provide a predicate isNormalized, for when we have simple control flow

Loading...

Validity

  • Input to isNormalized must be a dist

inspect

You may like to debug by right clicking your browser and using the inspect functionality on the webpage, and viewing the console tab. Then, wrap your squiggle output with inspect to log an internal representation.

Loading...

Save for a logging side effect, inspect does nothing to input and returns it.

Truncate

You can cut off from the left

Loading...

You can cut off from the right

Loading...

You can cut off from both sides

Loading...