Class GateExitTwoOp
Provides outgoing messages for ExitTwo<T>(Boolean, Boolean, T[]), given random arguments to the function.
Inherited Members
Namespace: Microsoft.ML.Probabilistic.Factors
Assembly: Microsoft.ML.Probabilistic.dll
Syntax
[FactorMethod(typeof(Gate), "ExitTwo<>", new Type[]{})]
[Quality(QualityBand.Mature)]
public static class GateExitTwoOp
Methods
AverageLogFactor<TExit>(TExit, Bernoulli, Bernoulli, IList<TExit>, TExit)
Evidence message for VMP.
Declaration
public static double AverageLogFactor<TExit>(TExit exitTwo, Bernoulli case0, Bernoulli case1, IList<TExit> values, TExit to_exitTwo)
where TExit : ICloneable, SettableToProduct<TExit>, SettableToPower<TExit>, CanGetAverageLog<TExit>, SettableToUniform, SettableTo<TExit>, SettableToRatio<TExit>, SettableToWeightedSum<TExit>
Parameters
| Type | Name | Description |
|---|---|---|
| TExit | exitTwo | Incoming message from |
| Bernoulli | case0 | Incoming message from |
| Bernoulli | case1 | Incoming message from |
| IList<TExit> | values | Incoming message from |
| TExit | to_exitTwo | Outgoing message to |
Returns
| Type | Description |
|---|---|
| Double | Zero. |
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
Remarks
In Variational Message Passing, the evidence contribution of a deterministic factor is zero. Adding up these values across all factors and variables gives the log-evidence estimate for VMP.
Case0AverageConditional<TExit>(IList<TExit>)
EP message to case0.
Declaration
public static Bernoulli Case0AverageConditional<TExit>([SkipIfAllUniform] IList<TExit> values)
Parameters
| Type | Name | Description |
|---|---|---|
| IList<TExit> | values | Incoming message from |
Returns
| Type | Description |
|---|---|
| Bernoulli | The outgoing EP message to the |
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
Remarks
The outgoing message is a distribution matching the moments of case0 as the random arguments are varied. The formula is proj[p(case0) sum_(values) p(values) factor(exitTwo,case0,case1,values)]/p(case0).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
Case0AverageConditional<TExit, TExitDomain>(TExit, IList<TExitDomain>)
EP message to case0.
Declaration
public static Bernoulli Case0AverageConditional<TExit, TExitDomain>(TExit exitTwo, IList<TExitDomain> values)
where TExit : CanGetLogProb<TExitDomain>
Parameters
| Type | Name | Description |
|---|---|---|
| TExit | exitTwo | Incoming message from |
| IList<TExitDomain> | values | Incoming message from |
Returns
| Type | Description |
|---|---|
| Bernoulli | The outgoing EP message to the |
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
| TExitDomain | The domain of the variable exiting the gate. |
Remarks
The outgoing message is a distribution matching the moments of case0 as the random arguments are varied. The formula is proj[p(case0) sum_(exitTwo,values) p(exitTwo,values) factor(exitTwo,case0,case1,values)]/p(case0).
Case0AverageLogarithm<TExit>(TExit, IList<TExit>)
VMP message to case0.
Declaration
public static Bernoulli Case0AverageLogarithm<TExit>(TExit exitTwo, [SkipIfAllUniform] IList<TExit> values)
where TExit : CanGetAverageLog<TExit>
Parameters
| Type | Name | Description |
|---|---|---|
| TExit | exitTwo | Incoming message from |
| IList<TExit> | values | Incoming message from |
Returns
| Type | Description |
|---|---|
| Bernoulli | The outgoing VMP message to the |
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
Remarks
The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except case0. Because the factor is deterministic, exitTwo is integrated out before taking the logarithm. The formula is exp(sum_(values) p(values) log(sum_exitTwo p(exitTwo) factor(exitTwo,case0,case1,values))).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
Case1AverageConditional<TExit>(IList<TExit>)
EP message to case1.
Declaration
public static Bernoulli Case1AverageConditional<TExit>([SkipIfAllUniform] IList<TExit> values)
Parameters
| Type | Name | Description |
|---|---|---|
| IList<TExit> | values | Incoming message from |
Returns
| Type | Description |
|---|---|
| Bernoulli | The outgoing EP message to the |
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
Remarks
The outgoing message is a distribution matching the moments of case1 as the random arguments are varied. The formula is proj[p(case1) sum_(values) p(values) factor(exitTwo,case0,case1,values)]/p(case1).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
Case1AverageConditional<TExit, TExitDomain>(TExit, IList<TExitDomain>)
EP message to case1.
Declaration
public static Bernoulli Case1AverageConditional<TExit, TExitDomain>(TExit exitTwo, IList<TExitDomain> values)
where TExit : CanGetLogProb<TExitDomain>
Parameters
| Type | Name | Description |
|---|---|---|
| TExit | exitTwo | Incoming message from |
| IList<TExitDomain> | values | Incoming message from |
Returns
| Type | Description |
|---|---|
| Bernoulli | The outgoing EP message to the |
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
| TExitDomain | The domain of the variable exiting the gate. |
Remarks
The outgoing message is a distribution matching the moments of case1 as the random arguments are varied. The formula is proj[p(case1) sum_(exitTwo,values) p(exitTwo,values) factor(exitTwo,case0,case1,values)]/p(case1).
Case1AverageLogarithm<TExit>(TExit, IList<TExit>)
VMP message to case1.
Declaration
public static Bernoulli Case1AverageLogarithm<TExit>(TExit exitTwo, [SkipIfAllUniform] IList<TExit> values)
where TExit : CanGetAverageLog<TExit>
Parameters
| Type | Name | Description |
|---|---|---|
| TExit | exitTwo | Incoming message from |
| IList<TExit> | values | Incoming message from |
Returns
| Type | Description |
|---|---|
| Bernoulli | The outgoing VMP message to the |
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
Remarks
The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except case1. Because the factor is deterministic, exitTwo is integrated out before taking the logarithm. The formula is exp(sum_(values) p(values) log(sum_exitTwo p(exitTwo) factor(exitTwo,case0,case1,values))).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
ExitTwoAverageConditional<TExit>(TExit, Bernoulli, Bernoulli, IList<TExit>, TExit)
EP message to exitTwo.
Declaration
public static TExit ExitTwoAverageConditional<TExit>(TExit exitTwo, Bernoulli case0, Bernoulli case1, [SkipIfAllUniform] IList<TExit> values, TExit result)
where TExit : SettableTo<TExit>, ICloneable, SettableToProduct<TExit>, SettableToRatio<TExit>, SettableToWeightedSum<TExit>
Parameters
| Type | Name | Description |
|---|---|---|
| TExit | exitTwo | Incoming message from |
| Bernoulli | case0 | Incoming message from |
| Bernoulli | case1 | Incoming message from |
| IList<TExit> | values | Incoming message from |
| TExit | result | Modified to contain the outgoing message. |
Returns
| Type | Description |
|---|---|
| TExit |
|
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
Remarks
The outgoing message is a distribution matching the moments of exitTwo as the random arguments are varied. The formula is proj[p(exitTwo) sum_(case0,case1,values) p(case0,case1,values) factor(exitTwo,case0,case1,values)]/p(exitTwo).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
ExitTwoAverageConditional<TExit, TExitDomain>(TExit, Bernoulli, Bernoulli, IList<TExitDomain>, TExit)
EP message to exitTwo.
Declaration
public static TExit ExitTwoAverageConditional<TExit, TExitDomain>(TExit exitTwo, Bernoulli case0, Bernoulli case1, IList<TExitDomain> values, TExit result)
where TExit : ICloneable, HasPoint<TExitDomain>, SettableToWeightedSum<TExit>
Parameters
| Type | Name | Description |
|---|---|---|
| TExit | exitTwo | Incoming message from |
| Bernoulli | case0 | Incoming message from |
| Bernoulli | case1 | Incoming message from |
| IList<TExitDomain> | values | Incoming message from |
| TExit | result | Modified to contain the outgoing message. |
Returns
| Type | Description |
|---|---|
| TExit |
|
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
| TExitDomain | The domain of the variable exiting the gate. |
Remarks
The outgoing message is a distribution matching the moments of exitTwo as the random arguments are varied. The formula is proj[p(exitTwo) sum_(case0,case1,values) p(case0,case1,values) factor(exitTwo,case0,case1,values)]/p(exitTwo).
ExitTwoAverageLogarithm<TExit>(Bernoulli, Bernoulli, IList<TExit>, TExit)
VMP message to exitTwo.
Declaration
public static TExit ExitTwoAverageLogarithm<TExit>(Bernoulli case0, Bernoulli case1, [SkipIfAllUniform] IList<TExit> values, TExit result)
where TExit : ICloneable, SettableToProduct<TExit>, SettableToPower<TExit>, CanGetAverageLog<TExit>, SettableToUniform, SettableTo<TExit>, SettableToRatio<TExit>, SettableToWeightedSum<TExit>
Parameters
| Type | Name | Description |
|---|---|---|
| Bernoulli | case0 | Incoming message from |
| Bernoulli | case1 | Incoming message from |
| IList<TExit> | values | Incoming message from |
| TExit | result | Modified to contain the outgoing message. |
Returns
| Type | Description |
|---|---|
| TExit |
|
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
Remarks
The outgoing message is a distribution matching the moments of exitTwo as the random arguments are varied. The formula is proj[sum_(case0,case1,values) p(case0,case1,values) factor(exitTwo,case0,case1,values)].
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
ValuesAverageConditional<TExit, TResultList>(TExit, TResultList)
EP message to values.
Declaration
public static TResultList ValuesAverageConditional<TExit, TResultList>(TExit exitTwo, TResultList result)
where TResultList : CanSetAllElementsTo<TExit>
Parameters
| Type | Name | Description |
|---|---|---|
| TExit | exitTwo | Incoming message from |
| TResultList | result | Modified to contain the outgoing message. |
Returns
| Type | Description |
|---|---|
| TResultList |
|
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
| TResultList | The type of the outgoing message. |
Remarks
The outgoing message is a distribution matching the moments of values as the random arguments are varied. The formula is proj[p(values) sum_(exitTwo) p(exitTwo) factor(exitTwo,case0,case1,values)]/p(values).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
ValuesAverageLogarithm<TExit, TResultList>(TExit, TResultList)
VMP message to values.
Declaration
public static TResultList ValuesAverageLogarithm<TExit, TResultList>(TExit exitTwo, TResultList result)
where TResultList : CanSetAllElementsTo<TExit>
Parameters
| Type | Name | Description |
|---|---|---|
| TExit | exitTwo | Incoming message from |
| TResultList | result | Modified to contain the outgoing message. |
Returns
| Type | Description |
|---|---|
| TResultList |
|
Type Parameters
| Name | Description |
|---|---|
| TExit | The type of the distribution over the variable exiting the gate. |
| TResultList | The type of the outgoing message. |
Remarks
The outgoing message is the factor viewed as a function of values with exitTwo integrated out. The formula is sum_exitTwo p(exitTwo) factor(exitTwo,case0,case1,values).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|