Class ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>
Represents a factorized distribution over pairs of elements
P(x, y) = P(x)P(y)
. Pair elements x
and y
can be of different types.
Inheritance
Implements
Inherited Members
Namespace: Microsoft.ML.Probabilistic.Distributions.Automata
Assembly: Microsoft.ML.Probabilistic.dll
Syntax
[Quality(QualityBand.Experimental)]
public class ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2> : ImmutablePairDistributionBase<TElement1, TElementDistribution1, TElement2, TElementDistribution2, ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>>, IImmutableDistribution<(Option<TElement1>, Option<TElement2>), ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>>, IImmutableDistribution, ICloneable, Diffable, CanCreateUniform<ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>>, CanCreatePointMass<(Option<TElement1>, Option<TElement2>), ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>>, CanGetLogProb<(Option<TElement1>, Option<TElement2>)>, CanGetLogAverageOf<ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>>, CanComputeProduct<ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>>, CanComputeProduct<ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>, ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>>, SummableExactly<ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>>, SummableExactly<ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>, ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>>, Summable<ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>, ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>>, CanCreatePartialUniform<ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>> where TElementDistribution1 : IImmutableDistribution<TElement1, TElementDistribution1>, CanGetLogAverageOf<TElementDistribution1>, CanComputeProduct<TElementDistribution1>, CanCreatePartialUniform<TElementDistribution1>, new()
where TElementDistribution2 : IImmutableDistribution<TElement2, TElementDistribution2>, CanGetLogAverageOf<TElementDistribution2>, CanComputeProduct<TElementDistribution2>, CanCreatePartialUniform<TElementDistribution2>, new()
Type Parameters
Name | Description |
---|---|
TElement1 | The type of a first element of a pair. |
TElementDistribution1 | The type of a distribution over |
TElement2 | The type of a second element of a pair. |
TElementDistribution2 | The type of a distribution over |
Methods
GetLogProb((Option<TElement1>, Option<TElement2>))
Evaluate the log of the density function at the specified domain value
Declaration
public override double GetLogProb((Option<TElement1>, Option<TElement2>) pair)
Parameters
Type | Name | Description |
---|---|---|
(T1, T2)<Option<TElement1>, Option<TElement2>> | pair |
Returns
Type | Description |
---|---|
Double | The log density |
Overrides
Remarks
Not currently implemented.
MaxDiff(Object)
The maximum difference between this instance and the given
Declaration
public override double MaxDiff(object that)
Parameters
Type | Name | Description |
---|---|---|
Object | that |
Returns
Type | Description |
---|---|
Double |
Overrides
Remarks
Not currently implemented.
Multiply(ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>)
Computes the product of the current instance and other
.
Declaration
public override ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2> Multiply(ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2> other)
Parameters
Type | Name | Description |
---|---|---|
ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2> | other |
Returns
Type | Description |
---|---|
ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2> | The product. |
Overrides
Remarks
Not currently implemented.
Sum(Double, ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2>, Double)
Computes a distribution with its parameters set to best match a mixture distribution.
Declaration
public override ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2> Sum(double weightThis, ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2> other, double weightOther)
Parameters
Type | Name | Description |
---|---|---|
Double | weightThis | A finite nonnegative weight. |
ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2> | other | |
Double | weightOther | A finite nonnegative weight. |
Returns
Type | Description |
---|---|
ImmutablePairDistribution<TElement1, TElementDistribution1, TElement2, TElementDistribution2> | A distribution of the result type that best matches a mixture distribution. |
Overrides
Remarks
Not currently implemented.
Transpose()
Creates a distribution Q(y, x) = P(x, y)
, where P(x, y)
is the current distribution.
Declaration
public ImmutablePairDistribution<TElement2, TElementDistribution2, TElement1, TElementDistribution1> Transpose()
Returns
Type | Description |
---|---|
ImmutablePairDistribution<TElement2, TElementDistribution2, TElement1, TElementDistribution1> | The created distribution. |