Microsoft Research, Cambridge
Infer.NET distributions
Classes
Class  Description  

AccumulateIntoCollection T  
AccumulatorList T 
Wraps a list of accumulators, adding each sample to all of them.
 
Array2DEstimator ItemEstimator, DistributionArray, Distribution 
Estimator for a 2D DistributionArray type, where the samples are distributions
 
Array2DEstimator ItemEstimator, DistributionArray, Distribution, Sample 
Estimator for a 2D DistributionArray type.
 
ArrayEstimator 
Useful static methods relating to array estimators
 
ArrayEstimator T 
Static class which implements useful functions on estimator arrays.
 
ArrayEstimator ItemEstimator, DistributionArray, Distribution 
Estimator for a DistributionArray type where the sample type is a distribution
 
ArrayEstimator ItemEstimator, DistributionArray, Distribution, Sample 
Estimator for a DistributionArray type.
 
BernoulliEstimator 
Estimates a Bernoulli distribution from samples.
 
BernoulliIntegerSubset 
Represents a list of Bernoulli distributions considered as a distribution over a variablesized list of
integers, which are the indices of elements in the boolean list with value 'true'
 
BetaEstimator 
Estimates a Beta distribution from samples.
 
BurnInAccumulator T 
Wraps an accumulator, discarding the first BurnIn samples.
 
ConditionalList TDist 
Conditional List
 
ConstantFunction 
Class implementing the constant function. Used as a domain prototype
for distributions over functions
 
Dirichlet 
A Dirichlet distribution on probability vectors.
 
DirichletEstimator 
Estimates a Dirichlet distribution from samples.
 
Discrete 
An arbitrary distribution over integers [0,D1].
 
DiscreteChar 
A discrete distribution over characters.
 
DiscreteEnum TEnum 
A discrete distribution over the values of an enum.
 
DiscreteEstimator 
Estimates a discrete distribution from samples.
 
Distribution 
Static class which implements useful functions on distributions.
 
Distribution T 
Static class which implements useful functions on distributions.
 
DistributionFileArray T, DomainType  
EstimatorFactory 
Estimator factor. Given a distribution instance, create a compatible estimator instance
 
GammaEstimator 
Estimates a Gamma distribution from samples.
 
GaussianEstimator 
Estimates a Gaussian distribution from samples.
 
GaussianProcess 
A base class for Gaussian process distributions
 
GenericDiscreteBase T, TThis 
A generic base class for discrete distributions over a type T.
 
ImproperDistributionException 
Exception thrown when a distribution is improper and its expectations need to be computed.
 
LinearSpline 
Very simple 1D linear spline class which implements IFunction.
Assumes knots at regular positions  given by a start and increment.
The vector of knot values defines how many knots.
 
Mixture T 
A mixture of distributions of the same type
 
Mixture T, DomainType  
PointMass T 
A point mass, which is the 'distribution' you get for an observed variable.
All the probability mass is at the point given by observed value.
 
PoissonEstimator 
Estimates a Poisson distribution from samples.
 
Rank1Pot 
Rank 1 potential for a sparse GP. This low rank parameterisation
is used for messages flowing from a SparseGP evaluation factor to
a function variable.
 
SampleList T 
Sample List
 
SparseBernoulliList 
Represents a list of Bernoulli distributions, optimised for the case where many share
the same probability of being true.
This class can be used as a distribution over a fixedsized list of booleans or sparsely
as a distribution over a variablesized list of integers, which are the indices of elements
in the boolean list with value 'true'.
 
SparseBernoulliListBase 
Base class for BernoulliIntegerSubset and SparseBernoulliList.
 
SparseBetaList 
Represents a list of Beta distributions, optimised for the case where many share
the same pseudocount values.
 
SparseGammaList 
Represents a sparse list of Gamma distributions, optimised for the case where many share
the same parameterisation.
 
SparseGaussianList 
Represents a sparse list of Gaussian distributions, optimised for the case where many share
the same parameterisation.
 
SparseGP 
A Gaussian Process distribution over functions, represented by a GP prior times a set of regression likelihoods on basis points.
The GP prior and basis point locations are stored in FixedParameters.
The regression likelihoods are stored as a single VectorGaussian called InducingDist.
IncludePrior=false does not include the prior in the distribution (i.e. the distribution is degenerate).
If pointFunc != null, the distribution is a point mass.
If InducingDist is uniform and IncludePrior is false, the distribution is uniform.
The GP prior is assumed to be nonuniform.
 
SparseGPFixed 
This class maintains all the fixed parameters for a sparse GP
 i.e. parameters which the inference does not change.
All SparseGP messages can refer to a single SparseGPFixed
class, and cloning of SparseGP instances will just copy the
reference
 
TruncatedGaussianEstimator  
UnnormalizedDiscrete 
Represents a discrete distribution in the log domain without explicit normalization.
 
VectorGaussian 
Represents a multivariate Gaussian distribution.
 
VectorGaussianEstimator 
Estimates a Gaussian distribution from samples.
 
Wishart 
A Wishart distribution on positive definite matrices.
 
WishartEstimator 
Estimates a Wishart distribution from samples.

Structures
Structure  Description  

Bernoulli 
Represents a distribution on a binary variable.
 
Beta 
A Beta distribution over the interval [0,1].
 
Binomial 
Binomial distribution over the integers [0,n]
 
ConjugateDirichlet 
Represents the distribution proportion to x^{Shape1} exp(Rate*x) / B(x,D)^K
where B(x,D)=Gamma(x)^D/Gamma(D*x)
 
Gamma 
A Gamma distribution on positive reals.
 
GammaPower 
The distribution of a Gamma variable raised to a power. The Weibull distribution is a special case.
 
Gaussian 
Represents a onedimensional Gaussian distribution.
 
NonconjugateGaussian 
Nonconjugate Gaussian messages for VMP. The mean has a Gaussian distribution and the variance a Gamma distribution.
 
Poisson 
A Poisson distribution over the integers [0,infinity).
 
TruncatedGaussian 
A distribution over real numbers between an upper and lower bound. If both bounds are infinite, it reduces to an ordinary Gaussian distribution.
 
WrappedGaussian 
A Gaussian distribution on a periodic domain, such as angles between 0 and 2*pi.

Interfaces
Interface  Description  

Accumulator T 
Indicates support for adding an item to a distribution estimator
 
CanGetAverageLog T 
Whether the distribution supports the expected logarithm of one instance under another
 
CanGetLogAverageOf T 
Whether the distribution can compute the expectation of another distribution's value.
 
CanGetLogAverageOfPower T 
Whether the distribution can compute the expectation of another distribution raised to a power.
 
CanGetLogNormalizer 
Whether the distribution can compute its normalizer.
 
CanGetLogProb T 
Whether the distribution supports evaluation of its density
 
CanGetLogProbPrep DistributionType, T 
Whether the distribution supports preallocation of a workspace for density evaluation
 
CanGetMean MeanType 
Whether the distribution supports retrieval of a mean value
 
CanGetMeanAndVariance MeanType, VarType 
Whether the distribution supports the joint getting of mean and variance
where the mean and variance are reference types
 
CanGetMeanAndVarianceOut MeanType, VarType 
Whether the distribution supports the joint getting of mean and variance
where the mean and variance are returned as 'out' argiments
 
CanGetVariance VarType 
Whether the distribution supports retrieval of a variance value
 
CanSamplePrep DistributionType, T 
Whether the distribution supports preallocation of a workspace for sampling
 
CanSetMean MeanType 
Whether the distribution supports setting of its mean value
 
CanSetMeanAndVariance MeanType, VarType 
Whether the distribution supports the joint setting of mean and variance
 
Estimator T 
Indicates support for retrieving an estimated distribution
 
HasPoint T 
Whether the distribution supports being a point mass
 
IDistribution T  Distribution interface  
IFunction 
Function interface  used for distributions over a function domain
 
IGaussianProcess 
Basic GP interface
 
IsDistributionWrapper 
Marker interface for classes which wrap distributions
 
Sampleable T 
Whether the distribution supports sampling
 
SettableToUniform 
Whether the distribution can be set to uniform

Delegates
Delegate  Description  

Evaluator DistributionType, T 
Delegate type for evaluating log densities. This is used for distributions such as
VectorGaussian which have a large memory footprint. If a distribution
supports CanGetLogProbPrep DistributionType, T , then it can return a delegate of this type
to do evaluations without recreating a workspace each time.
 
Sampler T 
Delegate type for sampling
 
Sampler DistributionType, T 
Delegate type for sampling a distribution. This is used for distributions such as
VectorGaussian which have a large memory footprint. If a distribution
supports CanSamplePrep DistributionType, T , then it can return a delegate of this type
to do successive sampling without recreating a workspace each time.

Enumerations
Enumeration  Description  

ConjugateDirichlet ApproximationMethod 
Approximation method to use for nonanalytic expectations.
Asymptotic: use expectations under the approximating Gamma distribution
GaussHermiteQuadrature: Use GaussHermite quadrature with 32 quadrature points
ClenshawCurtisQuadrature: Use Clenshaw Curtis quadrature with an adaptive number of quadrature points
