This screen shot shows a list of factors and constraints available, along with their support when used in different algorithms. In the list, ‘S’ stands for stochastic (unknown) and ‘D’ stands for deterministic (known) - for example (S S)->D denotes calling a factor with two unknown arguments where the result is known. If a pattern has a * next to it, it means it does not support being in a condition block (if, case or switch). If a factor is shown as having full support but is marked with * then it is not supported in a condition block in all cases.
This list can be useful in helping you choose an inference algorithm as described in working with different inference algorithms. You can see the most up-to-date list by calling InferenceEngine.ShowFactorManager(), which will also show user-defined factors and constraints. Factors with generic parameters are not always shown correctly in this list.
Where a factor is described as “Cannot support” it is not possible (or not known) how to support such a factor in the particular algorithm or stochasticity pattern. If you try and use such a factor, then you will get a specific error message explaining why it is not possible to use it with that algorithm.
Bernoulli.Sample
double probTrue
Full support
Full support
(S)->D, (D)->D Cannot support:(S)->S, (D)->S
BernoulliIntegerSubset.Sample
ISparseList<double> probTrue
Full support
Full support
(D)->S, (S)->D, (D)->D Cannot support:(S)->S
Beta.Sample
double trueCount, double falseCount
(D D)->S, (S D)->D, (D S)->D, (D D)->D
(D D)->S, (S D)->D, (D S)->D, (D D)->D
(D D)->S, (S D)->D, (D S)->D, (D D)->D
Beta.SampleFromMeanAndVariance
double mean, double variance
(D D)->S, (D D)->D
(D D)->S, (D D)->D
(D D)->S, (D D)->D
Constrain.Equal<T>
T A, T B
Full support
(S D), (D S), (D D) Cannot support:(S S)
Full support
[(S S):2/3]*, [(D S):0/2]*, [(S D):0/2]*, [(D D):0/1]*
Constrain.EqualRandom<TDomain, TDistribution>
TDomain value, TDistribution dist
(S D), (D D)
(S D), (D D)
(S D), (D D)
Dirichlet.SampleFromPseudoCounts
Vector pseudoCount
(D)->S, (D)->D
(D)->S, (D)->D
(D)->S, (D)->D
Discrete.Sample
Vector probs
Full support
Full support
(S)->D, (D)->D Cannot support:(S)->S, (D)->S
EnumSupport.AreEqual<TEnum>
TEnum a, TEnum b
Full support
Full support
Full support
EnumSupport.DiscreteEnum<TEnum>
Vector probs
Full support
Full support
(S)->D, (S)->D, (D)->D, (D)->D Cannot support:(S)->S, (D)->S
EnumSupport.EnumToInt<TEnum>
TEnum en
Full support
Full support
Full support
Factor.AllTrue
IList<bool> array
Full support
(S)->S, (D)->D Cannot support:(S)->D
(D)->D Cannot support:(S)->S, (S)->D
Factor.And
bool a, bool b
Full support
(S S)->S, (D S)->S, (S D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->D
Full support
Factor.AreEqual
bool a, bool b
Full support
(S S)->S, (D S)->S, (S D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->D
Full support
Factor.AreEqual
int a, int b
Full support
(S S)->S, (D S)->S, (S D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->D
Full support
Factor.AreEqual
String str1, String str2
Full support
Full support
Factor.ArrayFromVector
Vector vector
Full support
Full support
(S)->D, (D)->D Cannot support:(S)->S
Factor.Bernoulli
double probTrue
Full support
Full support
(S)->D, (D)->D Cannot support:(S)->S, (D)->S
Factor.BernoulliFromLogOdds
double logOdds
Full support
Full support
(D)->S, (D)->D Cannot support:(S)->S, (S)->D
Factor.BetaFromMeanAndTotalCount
double mean, double totalCount
[(D D)->S:1/2]*, [(D D)->D:0/1]* Cannot support:(S S)->S, (S D)->S, (D S)->S, (S S)->D, (S D)->D, (D S)->D
[(S S)->S:3/4]*, [(S D)->S:2/3]*, [(D S)->S:2/3]*, [(S S)->D:2/3]*, [(S D)->D:1/2]*, (D D)->D, [(D D)->S:1/2]*, [(D S)->D:1/2]*
[(D D)->S:1/2]*, [(D D)->D:0/1]* Cannot support:(S S)->S, (S D)->S, (D S)->S, (S S)->D, (S D)->D, (D S)->D
Factor.Char
Vector probabilities
Full support
(S)->D, (D)->S, (D)->D Cannot support:(S)->S
Factor.Concat
Char ch, String str
Full support
Full support
Factor.Concat
String str, Char ch
Full support
Full support
Factor.Concat
String str1, String str2
Full support
Full support
Factor.CountTrue
bool[] array
Full support
(D)->D Cannot support:(S)->S, (S)->D
Factor.Difference
double a, double b
Full support
Full support
Full support
Factor.Difference
int a, int b
[(S S)->S:3/4]*, (D S)->S, [(S S)->D:2/3]*, [(S D)->S:2/3]*, (D S)->D, (D D)->D, [(S D)->D:1/2]*
[(S S)->S:3/4]*, (D S)->S, [(S S)->D:2/3]*, [(S D)->S:2/3]*, (D S)->D, (D D)->D, [(S D)->D:1/2]*
Factor.DirichletFromMeanAndTotalCount
Vector mean, double totalCount
(D D)->D Cannot support:(D D)->S, (S S)->S, (S D)->S, (D S)->S, (S S)->D, (S D)->D, (D S)->D
Full support
(D D)->D Cannot support:(D D)->S, (S S)->S, (S D)->S, (D S)->S, (S S)->D, (S D)->D, (D S)->D
Factor.DirichletSymmetric
int K, double alpha
(C D)->S, (C D)->D Cannot support:(C S)->S, (C S)->D
(C S)->S, (C S)->D, (C D)->S, (C D)->D
(C D)->S, (C D)->D Cannot support:(C S)->S, (C S)->D
Factor.Discrete
Vector probs
Full support
Full support
(S)->D, (D)->D Cannot support:(S)->S, (D)->S
Factor.DiscreteUniform
int size
Full support
Full support
Full support
Factor.Double
int integer
Full support
(S)->D, (D)->D Cannot support:(S)->S
Factor.FunctionEvaluate
IFunction func, Vector x
(S D)->S, (S D)->D, (D D)->D
(D D)->D Cannot support:(S D)->S, (S D)->D
Factor.GammaFromShapeAndRate
double shape, double rate
(D S)->S, (D D)->S, (D S)->D, (D D)->D Cannot support:(S S)->S, (S D)->S, (S S)->D, (S D)->D
Full support
(D D)->S, (D S)->D, (D D)->D Cannot support:(D S)->S, (S S)->S, (S D)->S, (S S)->D, (S D)->D
Factor.Gaussian
double mean, double precision
Full support
Full support
(S D)->S, (D D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->S, (D S)->S, (S S)->D
Factor.GaussianFromMeanAndVariance
double mean, double variance
Full support
(S D)->S, (D D)->S, (S D)->D, (D D)->D
(S D)->S, (D D)->S, (S D)->D, (D D)->D Cannot support:(S S)->S, (D S)->S, (S S)->D, (D S)->D
Factor.InnerProduct
double[] a, double[] b
(D S)->S, (S D)->S, (D D)->D Cannot support:(S D)->D, (D S)->D, (S S)->S, (S S)->D
(S S)->S, (D S)->S, (S D)->S, (D D)->D Cannot support:(S C)->D, (D S)->D
(D D)->D Cannot support:(D S)->S, (S D)->S, (S D)->D, (D S)->D, (S S)->S, (S S)->D
Factor.InnerProduct
double[] a, Vector b
Full support
Factor.Integral
double lowerBound, double upperBound, Func<double, double> func, ITruncatableDistribution<double> distribution
[(S S D D)->S:3/4]*, [(S S D D)->D:2/3]*, [(D S D D)->S:2/3]*, [(S D D D)->S:2/3]*, [(D S D D)->D:1/2]*, [(S D D D)->D:1/2]*, [(D D D D)->D:0/1]*
[(S S D D)->D:2/3]*, [(D S D D)->S:2/3]*, [(S D D D)->S:2/3]*, [(D S D D)->D:1/2]*, [(S D D D)->D:1/2]*, [(D D D D)->D:0/1]* Cannot support:(S S D D)->S
Factor.IsBetween
double x, double lowerBound, double upperBound
Full support
(S D D)->D, (D D D)->D Cannot support:(D S S)->S, (D S S)->D, (D D S)->S, (D S D)->S, (D D S)->D, (D S D)->D, (S S S)->S, (S S S)->D, (S D S)->S, (S S D)->S, (S D S)->D, (S S D)->D, (S D D)->S
(S S S)->D, (D S S)->S, (S D S)->S, (S S D)->S, (D S S)->D, (S D S)->D, (S S D)->D, (D D S)->S, (D S D)->S, (D D S)->D, (D S D)->D, (D D D)->D Cannot support:(S S S)->S, (S D D)->S, (S D D)->D
Factor.IsGreaterThan
double a, double b
[(S S)->S:3/4]*, [(S D)->S:2/3]*, [(D S)->S:2/3]*, [(S S)->D:2/3]*, [(S D)->D:1/2]*, [(D S)->D:1/2]*, [(D D)->D:0/1]*
[(S D)->S:2/3]*, [(D S)->S:2/3]*, [(S S)->D:2/3]*, [(D D)->D:0/1]* Cannot support:(S S)->S, (S D)->D, (D S)->D
Factor.IsGreaterThan
int a, int b
Full support
(S S)->S, (D S)->S, (S D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->D
Full support
Factor.IsPositive
double x
Full support
Full support
(D)->D Cannot support:(S)->S, (S)->D
Factor.MatrixMultiply
double[,] A, double[,] B
(D S)->S, (S D)->S, (D D)->D Cannot support:(S D)->D, (D S)->D, (S S)->S, (S S)->D
(S S)->S, (D S)->S, (S D)->S, (D D)->D Cannot support:(S C)->D, (D S)->D
(D D)->D Cannot support:(D S)->S, (S D)->S, (S D)->D, (D S)->D, (S S)->S, (S S)->D
Factor.MaxOfOthers
double[] array
[(S)->S:2/3]*, [(S)->D:0/2]*, [(D)->D:0/1]*
[(S)->D:0/2]*, [(D)->D:0/1]* Cannot support:(S)->S
Factor.MultinomialList
int trialCount, Vector probs
(D S)->D, (D D)->D
(D S)->D, (D D)->D
(D S)->D, (D D)->D
Factor.Not
bool b
Full support
Full support
Full support
Factor.Or
bool a, bool b
Full support
(S S)->S, (D S)->S, (S D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->D
Full support
Factor.Plus
double a, double b
Full support
Full support
Full support
Factor.Plus
int a, int b
Full support
Full support
Factor.Plus
Vector a, Vector b
(S D)->S, (D S)->S, (S D)->D, (D S)->D, (D D)->D
Full support
(S D)->S, (D S)->S, (S D)->D, (D S)->D, (D D)->D
Factor.Poisson
double mean
Full support
Full support
(S)->D, (D)->S, (D)->D Cannot support:(S)->S
Factor.ProbBetween<T>
CanGetProbLessThan<T> canGetProbLessThan, T lowerBound, T upperBound
[(S S S)->S:3/5]*, [(S S S)->D:2/4]*, [(S D S)->S:1/4]*, [(S S D)->S:1/4]*, [(S D S)->D:1/3]*, [(S S D)->D:1/3]*, [(D S S)->S:0/4]*, [(D S S)->D:0/3]*, [(D D S)->S:0/3]*, [(D S D)->S:0/3]*, [(S D D)->S:0/3]*, [(D D S)->D:0/2]*, [(D S D)->D:0/2]*, [(S D D)->D:0/2]*, [(D D D)->D:0/1]*
[(S S S)->D:2/4]*, [(S D S)->S:1/4]*, [(S S D)->S:1/4]*, [(S D S)->D:1/3]*, [(S S D)->D:1/3]*, [(D S S)->S:0/4]*, [(D S S)->D:0/3]*, [(D D S)->S:0/3]*, [(D S D)->S:0/3]*, [(S D D)->S:0/3]*, [(D D S)->D:0/2]*, [(D S D)->D:0/2]*, [(S D D)->D:0/2]*, [(D D D)->D:0/1]* Cannot support:(S S S)->S
Factor.Product
double a, double b
Full support
(S S)->S, (D S)->S, (S D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->D
(S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->S, (S S)->D, (D S)->S, (S D)->S
Factor.Product
double a, PositiveDefiniteMatrix b
(D S)->S, (S D)->S, (D S)->D, [(S D)->D:1/2]*, (D D)->D
(S S)->S, (D S)->S, (S D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->D
(D S)->S, (D S)->D, [(S D)->D:1/2]*, (D D)->D Cannot support:(S D)->S
Factor.Product
PositiveDefiniteMatrix a, double b
(S D)->S, (D S)->S, (S D)->D, [(D S)->D:1/2]*, (D D)->D
(S S)->S, (S D)->S, (D S)->S, (D S)->D, (S D)->D, (D D)->D Cannot support:(S S)->D
(S D)->S, (S D)->D, [(D S)->D:1/2]*, (D D)->D Cannot support:(D S)->S
Factor.Product
double[,] a, Vector b
[(S S)->S:3/4], (D S)->S, [(S D)->S:2/3], [(S D)->D:1/2], [(D S)->D:1/2]*, [(D D)->D:0/1]* Cannot support:(S S)->D
[(S S)->S:3/4], [(S D)->S:2/3], [(S D)->D:1/2], [(D S)->S:1/3]*, [(D S)->D:0/2]*, [(D D)->D:0/1]* Cannot support:(S S)->D
[(S S)->S:3/4], (D S)->S, [(S D)->S:2/3], [(S D)->D:1/2], [(D S)->D:1/2]*, [(D D)->D:0/1]* Cannot support:(S S)->D
Factor.Product
Matrix a, Vector b
(D S)->S, [(S S)->S:3/4], [(S D)->S:2/3], (D D)->D, [(S S)->D:1/3]*, [(S D)->D:0/2]* Cannot support:(D S)->D
(D S)->S, [(S C)->S:1/3]*, (D D)->D, [(S C)->D:0/2]* Cannot support:(D S)->D
(D S)->S, [(S S)->S:3/4], [(S D)->S:2/3], (D D)->D, [(S S)->D:1/3]*, [(S D)->D:0/2]* Cannot support:(D S)->D
Factor.Product
Vector a, double b
[(S S)->S:3/4]*, [(S S)->D:2/3]*, [(D S)->S:2/3]*, [(S D)->S:2/3]*, [(D S)->D:1/2]*, [(S D)->D:1/2]*, [(D D)->D:0/1]*
[(S S)->D:2/3]*, [(D S)->S:2/3]*, [(S D)->S:2/3]*, [(D S)->D:1/2]*, [(S D)->D:1/2]*, [(D D)->D:0/1]* Cannot support:(S S)->S
Factor.Product_SHG09
double a, double b
(S S)->S, (D S)->S, (S D)->S, [(S S)->D:2/3]*, [(D S)->D:1/2]*, [(S D)->D:1/2]*, [(D D)->D:0/1]*
(S S)->S, (D S)->S, (S D)->S, [(S S)->D:2/3]*, [(D S)->D:1/2]*, [(S D)->D:1/2]*, [(D D)->D:0/1]*
Factor.ProductExp
double a, double b
[(S S)->S:3/4]*, [(D S)->S:2/3]*, [(S D)->S:2/3]*, [(D S)->D:1/2]*, [(D D)->D:0/1]* Cannot support:(S S)->D, (S D)->D
Factor.Quantile
CanGetQuantile<double> canGetQuantile, double probability
[(D S)->S:2/3]*, [(D S)->D:1/2]*, [(D D)->D:0/1]*
[(D S)->D:1/2]*, [(D D)->D:0/1]* Cannot support:(D S)->S
Factor.Ratio
double a, double b
Full support
(S S)->S, (S D)->S, (S S)->D, (D S)->S, (S D)->D, (D D)->D Cannot support:(D S)->D
(S D)->S, (S S)->D, (D S)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->S
Factor.Rotate
double x, double y, double angle
Full support
Factor.Single
String str
[(S)->S:2/3]*, [(S)->D:1/2]*, [(D)->D:0/1]*
[(S)->S:2/3]*, [(S)->D:1/2]*, [(D)->D:0/1]*
Factor.String
int minLength, DiscreteChar allowedChars
[(D D)->S:1/2]*, [(D D)->D:0/1]*
[(D D)->S:1/2]*, [(D D)->D:0/1]*
Factor.String
int minLength, int maxLength, DiscreteChar allowedChars
[(D D D)->S:1/2]*, [(D D D)->D:0/1]*
[(D D D)->S:1/2]*, [(D D D)->D:0/1]*
Factor.StringCapitalized
int minLength
[(D)->S:1/2]*, [(D)->D:0/1]*
[(D)->S:1/2]*, [(D)->D:0/1]*
Factor.StringCapitalized
int minLength, int maxLength
[(D D)->S:1/2]*, [(D D)->D:0/1]*
[(D D)->S:1/2]*, [(D D)->D:0/1]*
Factor.StringFormat
String format, String[] args
Full support
(S D)->S, (S S)->D, (D S)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->S
Factor.StringFromArray
Char[] characters
(S)->S, (S)->D, [(D)->D:0/1]*
(S)->D, [(D)->D:0/1]* Cannot support:(S)->S
Factor.StringOfLength
int length, DiscreteChar allowedChars
(S D)->S, (S D)->D, [(D D)->S:1/2]*, (D D)->D
(S D)->S, (S D)->D, [(D D)->S:1/2]*, (D D)->D
Factor.Substring
String str, int start, int length
(S D D)->S, (S D D)->D, (D D D)->D
(S D D)->S, (S D D)->D, (D D D)->D
Factor.Sum
IList<double> array
Full support
Full support
(D)->D Cannot support:(S)->S, (S)->D
Factor.Sum
IList<Vector> array
Full support
Full support
(D)->D Cannot support:(S)->S, (S)->D
Factor.SumExcept
double[] array, int index
(S D)->S, [(S D)->D:1/2]*, [(D D)->D:0/1]*
[(S D)->D:1/2]*, [(D D)->D:0/1]* Cannot support:(S D)->S
Factor.TruncatedGammaFromShapeAndRate
double shape, double rate, double lowerBound, double upperBound
(D S D D)->S, (D D D D)->S, [(D S D D)->D:1/2]*, [(D D D D)->D:0/1]*
[(D S D D)->S:2/3]*, [(D S D D)->D:1/2]*, [(D D D D)->S:1/2]*, [(D D D D)->D:0/1]*
(D S D D)->S, (D D D D)->S, [(D S D D)->D:1/2]*, [(D D D D)->D:0/1]*
Factor.UniformPlusMinus
double upperBound
(S)->D, [(D)->D:0/1]*
[(S)->D:1/2]*, [(D)->D:0/1]*
(S)->D, [(D)->D:0/1]*
Factor.VectorGaussian
Vector mean, PositiveDefiniteMatrix precision
Full support
Full support
(S D)->S, (S S)->D, (D S)->S, (D D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->S
Gamma.Sample
double shape, double scale
(D D)->S, (D D)->D
(D D)->S, (D D)->D
(D D)->S, (D D)->D
Gamma.SampleFromMeanAndVariance
double mean, double variance
[(D D)->S:1/2]*, (D D)->D
[(D D)->S:1/2]*, (D D)->D
[(D D)->S:1/2]*, (D D)->D
Gaussian.Sample
double mean, double precision
Full support
Full support
(S D)->S, (D D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->S, (D S)->S, (S S)->D
Math.Exp
double d
Full support
Full support
(S)->D, (D)->D Cannot support:(S)->S
Math.Log
double d
Full support
Full support
(S)->D, (D)->D Cannot support:(S)->S
Math.Max
double val1, double val2
Full support
(D D)->D Cannot support:(S S)->S, (D S)->S, (S D)->S, (S S)->D, (S D)->D, (D S)->D
Math.Min
double val1, double val2
(S D)->S, (D S)->S, (D S)->D, [(S D)->D:1/2]*, (D D)->D
(S D)->S, (D S)->S, (D S)->D, [(S D)->D:1/2]*, (D D)->D
Math.Pow
double x, double y
[(S D)->S:2/3]*, [(S D)->D:1/2]*, [(D D)->D:0/1]*
[(S D)->S:2/3]*, [(S D)->D:0/2]*, [(D D)->D:0/1]*
[(S D)->D:1/2]*, [(D D)->D:0/1]* Cannot support:(S D)->S
MMath.IndexOfMaximumDouble
IList<double> list
(S)->S, [(S)->D:1/2], [(D)->D:0/1]*
[(S)->D:1/2], [(D)->D:0/1]* Cannot support:(S)->S
MMath.Logistic
double x
Full support
Full support
(S)->D, (D)->D Cannot support:(S)->S
MMath.Softmax
IList<double> x
Full support
Rand.Binomial
int n, double p
(D S)->S, (S D)->S, [(S S)->S:3/4], (S S)->D, (D D)->S, (S D)->D, (D S)->D, (D D)->D
(S S)->D, (D S)->D, (S D)->D, [(D S)->S:1/3]*, [(S S)->S:1/4]*, (D D)->D, [(D D)->S:0/2]*, [(S D)->S:0/3]*
(D S)->S, (S D)->S, [(S S)->S:3/4], (D D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->D
Rand.Multinomial
int trialCount, Vector probs
(D S)->D, (D D)->D
(D S)->D, (D D)->D
(D S)->D, (D D)->D
SparseBernoulliList.Sample
ISparseList<double> probTrue
Full support
Full support
(D)->S, (S)->D, (D)->D Cannot support:(S)->S
SparseGaussianList.Sample
ISparseList<double> means, ISparseList<double> precs
Full support
Full support
(S D)->S, (D D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->S, (D S)->S, (S S)->D
Undirected.Linear
int a, int b, double logUnitCost
[(S S D):2/3]*, [(D S D):0/2]*, [(S D D):0/2]*, [(D D D):0/1]*
Undirected.LinearTrunc
int a, int b, double logUnitCost, double maxCost
[(S S D D):2/3]*, [(D S D D):0/2]*, [(S D D D):0/2]*, [(D D D D):0/1]*
Undirected.Potts
bool a, bool b, double logCost
[(S S D):2/3]*, [(D S D):1/2]*, [(S D D):1/2]*, [(D D D):0/1]*
Undirected.Potts
int a, int b, double logCost
[(S S D):2/3]*, [(D S D):0/2]*, [(S D D):0/2]*, [(D D D):0/1]*
Vector.Concat
Vector first, Vector second
Full support
Full support
Full support
Vector.FromArray
double[] data
Full support
Full support
(S)->D, (D)->D Cannot support:(S)->S
Vector.InnerProduct
Vector a, Vector b
(S D)->S, (D S)->S, (D D)->D Cannot support:(S D)->D, (D S)->D, (S S)->S, (S S)->D
(S S)->S, (S D)->S, (D S)->S, (D D)->D Cannot support:(S S)->D, (S D)->D, (D S)->D
(S D)->S, (D S)->S, (D D)->D Cannot support:(S D)->D, (D S)->D, (S S)->S, (S S)->D
Vector.Subvector
Vector source, int startIndex, int count
(S D C)->S, (S D C)->D, (D D C)->D
(S D C)->S, (S D C)->D, (D D C)->D
(S D C)->S, (S D C)->D, (D D C)->D
VectorGaussian.Sample
Vector mean, PositiveDefiniteMatrix precision
Full support
Full support
(S D)->S, (S S)->D, (D S)->S, (D D)->S, (S D)->D, (D S)->D, (D D)->D Cannot support:(S S)->S
VectorGaussian.SampleFromMeanAndVariance
Vector mean, PositiveDefiniteMatrix variance
(S D)->S, (D D)->S, (S D)->D, (D D)->D
(D D)->S, (S D)->D, (D D)->D
(S D)->S, (D D)->S, (S D)->D, (D D)->D
Wishart.SampleFromShapeAndRate
double shape, PositiveDefiniteMatrix rate
(D S)->S, (D S)->D, (D D)->S, (D D)->D
(D S)->S, (D D)->S, (D S)->D, (D D)->D
(D S)->D, (D D)->S, (D D)->D Cannot support:(D S)->S
Wishart.SampleFromShapeAndScale
double shape, PositiveDefiniteMatrix scale
(D D)->S, (D D)->D
(D D)->S, (D D)->D
(D D)->S, (D D)->D