Variable type 
Restrictions 
Distribution 
Distribution Class 
Example of use 
bool 
 

Bernoulli 
Two coins tutorial 
double 
 

Gaussian 
Learning a Gaussian tutorial 
double 
between 0 and infinity 

Gamma 
Learning a Gaussian tutorial 
double 
between 0 and 1 
Beta 
Beta 
Clinical trial tutorial 
double 
between settable lower and upper bounds 

TruncatedGaussian 
 
double 
between 0 and settable period length 
Wrapped Gaussian 
WrappedGaussian 
 
double 
between a lower bound and infinity 
Pareto 
Pareto 
 
int 
between 0 and D1 inclusive 

Discrete 
Latent Dirichlet Allocation 
int 
between 0 and infinity 

Poisson 
 
int 
between 0 and N inclusive 
Binomial 
Binomial 
 
enum 
 
Discrete over enum values 
DiscreteEnum 
 
Vector 
 

VectorGaussian 
Mixture of Gaussians tutorial 
Vector 
each element between 0 and 1, elements sum to 1 

Dirichlet 
Latent Dirichlet Allocation 
PositiveDefiniteMatrix 
matrix is positive definite 

Wishart 
Mixture of Gaussians tutorial 
string 
 
Probabilistic automaton 
StringDistribution 
Hello, Strings! 
char 
 
Discrete over char values 
DiscreteChar 
 
TDomain[]

T is a valuetype distribution over a domain TDomain 
Array of distributions considered as a distribution over an array 
DistributionStructArray <T, TDomain> 
 
TDomain[,] 
T is a valuetype distribution over a domain TDomain 
2D Array of distributions considered as a distribution over a 2D array 
DistributionStructArray2D <T, TDomain> 
 
TDomain[]

T is a referencetype distribution over a domain TDomain 
Array of distributions considered as a distribution over an array 
DistributionRefArray <T, TDomain> 
 
TDomain[,] 
T is a referencetype distribution over a domain TDomain 
2D Array of distributions considered as a distribution over a 2D array 
DistributionRefArray2D <T, TDomain> 
 
ISparseList<bool> 
 
Sparse list of Bernoulli distributions considered as a distribution over a sparse list of bools 
SparseBernoulliList 
 
ISparseList<double> 
elements between 0 and 1 
Sparse list of Beta distributions considered as a distribution over a sparse list of doubles 
SparseBetaList 
 
ISparseList<double> 
 
Sparse list of Gaussian distributions considered as a distribution over a sparse list of doubles 
SparseGaussianList 
 
ISparseList<double> 
elements between 0 and infinity 
Sparse list of Gamma distributions considered as a distribution over a sparse list of doubles 
SparseGammaList 
 
IList<int> 
elements between 0 and N1 inclusive 
SparseBernoulliList where domain is list of indices with value true 
BernoulliIntegerSubset 
 
IFunction 
 

SparseGP 
Gaussian process classifier 