Class RotateOp
Provides outgoing messages for Rotate(Double, Double, Double), given random arguments to the function.
Inherited Members
Namespace: Microsoft.ML.Probabilistic.Factors
Assembly: Microsoft.ML.Probabilistic.dll
Syntax
[FactorMethod(typeof(Factor), "Rotate", new Type[]{typeof(double), typeof(double), typeof(double)})]
[Quality(QualityBand.Experimental)]
public static class RotateOp
Methods
AngleAverageLogarithm(VectorGaussian, Gaussian, Gaussian)
VMP message to angle.
Declaration
public static WrappedGaussian AngleAverageLogarithm(VectorGaussian rotate, Gaussian x, Gaussian y)
Parameters
| Type | Name | Description |
|---|---|---|
| VectorGaussian | rotate | Incoming message from |
| Gaussian | x | Incoming message from |
| Gaussian | y | Incoming message from |
Returns
| Type | Description |
|---|---|
| WrappedGaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except angle. Because the factor is deterministic, rotate is integrated out before taking the logarithm. The formula is exp(sum_(x,y) p(x,y) log(sum_rotate p(rotate) factor(rotate,x,y,angle))).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
| ImproperMessageException |
|
| ImproperMessageException |
|
AngleAverageLogarithm(VectorGaussian, Double, Double)
VMP message to angle.
Declaration
public static WrappedGaussian AngleAverageLogarithm(VectorGaussian rotate, double x, double y)
Parameters
| Type | Name | Description |
|---|---|---|
| VectorGaussian | rotate | Incoming message from |
| Double | x | Constant value for |
| Double | y | Constant value for |
Returns
| Type | Description |
|---|---|
| WrappedGaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the factor viewed as a function of angle with rotate integrated out. The formula is sum_rotate p(rotate) factor(rotate,x,y,angle).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
AverageLogFactor(VectorGaussian)
Evidence message for VMP.
Declaration
public static double AverageLogFactor(VectorGaussian rotate)
Parameters
| Type | Name | Description |
|---|---|---|
| VectorGaussian | rotate | Incoming message from |
Returns
| Type | Description |
|---|---|
| Double | Zero. |
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.
RotateAverageLogarithm(Gaussian, Gaussian, WrappedGaussian, VectorGaussian)
VMP message to rotate.
Declaration
public static VectorGaussian RotateAverageLogarithm(Gaussian x, Gaussian y, WrappedGaussian angle, VectorGaussian result)
Parameters
| Type | Name | Description |
|---|---|---|
| Gaussian | x | Incoming message from |
| Gaussian | y | Incoming message from |
| WrappedGaussian | angle | Incoming message from |
| VectorGaussian | result | Modified to contain the outgoing message. |
Returns
| Type | Description |
|---|---|
| VectorGaussian |
|
Remarks
The outgoing message is a distribution matching the moments of rotate as the random arguments are varied. The formula is proj[sum_(x,y,angle) p(x,y,angle) factor(rotate,x,y,angle)].
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
| ImproperMessageException |
|
| ImproperMessageException |
|
RotateAverageLogarithm(Gaussian, Gaussian, Double, VectorGaussian)
VMP message to rotate.
Declaration
public static VectorGaussian RotateAverageLogarithm(Gaussian x, Gaussian y, double angle, VectorGaussian result)
Parameters
| Type | Name | Description |
|---|---|---|
| Gaussian | x | Incoming message from |
| Gaussian | y | Incoming message from |
| Double | angle | Constant value for |
| VectorGaussian | result | Modified to contain the outgoing message. |
Returns
| Type | Description |
|---|---|
| VectorGaussian |
|
Remarks
The outgoing message is a distribution matching the moments of rotate as the random arguments are varied. The formula is proj[sum_(x,y) p(x,y) factor(rotate,x,y,angle)].
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
| ImproperMessageException |
|
RotateAverageLogarithm(Double, Double, WrappedGaussian, VectorGaussian)
VMP message to rotate.
Declaration
public static VectorGaussian RotateAverageLogarithm(double x, double y, WrappedGaussian angle, VectorGaussian result)
Parameters
| Type | Name | Description |
|---|---|---|
| Double | x | Constant value for |
| Double | y | Constant value for |
| WrappedGaussian | angle | Incoming message from |
| VectorGaussian | result | Modified to contain the outgoing message. |
Returns
| Type | Description |
|---|---|
| VectorGaussian |
|
Remarks
The outgoing message is a distribution matching the moments of rotate as the random arguments are varied. The formula is proj[sum_(angle) p(angle) factor(rotate,x,y,angle)].
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
RotateAverageLogarithmInit()
Declaration
public static VectorGaussian RotateAverageLogarithmInit()
Returns
| Type | Description |
|---|---|
| VectorGaussian |
Remarks
XAverageLogarithm(VectorGaussian, WrappedGaussian)
VMP message to x.
Declaration
public static Gaussian XAverageLogarithm(VectorGaussian rotate, WrappedGaussian angle)
Parameters
| Type | Name | Description |
|---|---|---|
| VectorGaussian | rotate | Incoming message from |
| WrappedGaussian | angle | Incoming message from |
Returns
| Type | Description |
|---|---|
| Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except x. Because the factor is deterministic, rotate is integrated out before taking the logarithm. The formula is exp(sum_(angle) p(angle) log(sum_rotate p(rotate) factor(rotate,x,y,angle))).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
| ImproperMessageException |
|
XAverageLogarithm(VectorGaussian, Double)
VMP message to x.
Declaration
public static Gaussian XAverageLogarithm(VectorGaussian rotate, double angle)
Parameters
| Type | Name | Description |
|---|---|---|
| VectorGaussian | rotate | Incoming message from |
| Double | angle | Constant value for |
Returns
| Type | Description |
|---|---|
| Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the factor viewed as a function of x with rotate integrated out. The formula is sum_rotate p(rotate) factor(rotate,x,y,angle).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
YAverageLogarithm(VectorGaussian, WrappedGaussian)
VMP message to y.
Declaration
public static Gaussian YAverageLogarithm(VectorGaussian rotate, WrappedGaussian angle)
Parameters
| Type | Name | Description |
|---|---|---|
| VectorGaussian | rotate | Incoming message from |
| WrappedGaussian | angle | Incoming message from |
Returns
| Type | Description |
|---|---|
| Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except y. Because the factor is deterministic, rotate is integrated out before taking the logarithm. The formula is exp(sum_(angle) p(angle) log(sum_rotate p(rotate) factor(rotate,x,y,angle))).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|
| ImproperMessageException |
|
YAverageLogarithm(VectorGaussian, Double)
VMP message to y.
Declaration
public static Gaussian YAverageLogarithm(VectorGaussian rotate, double angle)
Parameters
| Type | Name | Description |
|---|---|---|
| VectorGaussian | rotate | Incoming message from |
| Double | angle | Constant value for |
Returns
| Type | Description |
|---|---|
| Gaussian | The outgoing VMP message to the |
Remarks
The outgoing message is the factor viewed as a function of y with rotate integrated out. The formula is sum_rotate p(rotate) factor(rotate,x,y,angle).
Exceptions
| Type | Condition |
|---|---|
| ImproperMessageException |
|