Search Results for

    Show / Hide Table of Contents

    Class MatrixMultiplyOp

    Provides outgoing messages for MatrixMultiply(Double[,], Double[,]), given random arguments to the function.

    Inheritance
    Object
    MatrixMultiplyOp
    Inherited Members
    Object.Equals(Object)
    Object.Equals(Object, Object)
    Object.GetHashCode()
    Object.GetType()
    Object.MemberwiseClone()
    Object.ReferenceEquals(Object, Object)
    Object.ToString()
    Namespace: Microsoft.ML.Probabilistic.Factors
    Assembly: Microsoft.ML.Probabilistic.dll
    Syntax
    [FactorMethod(typeof(Factor), "MatrixMultiply", new Type[]{})]
    [Quality(QualityBand.Stable)]
    public static class MatrixMultiplyOp

    Methods

    AAverageConditional(DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>)

    EP message to A.

    Declaration
    [NotSupported("A MatrixMultiply factor between two Gaussian arrays is not yet implemented for Expectation Propagation.  Try using Variational Message Passing.")]
    public static DistributionStructArray2D<Gaussian, double> AAverageConditional(DistributionStructArray2D<Gaussian, double> matrixMultiply, DistributionStructArray2D<Gaussian, double> B, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is a distribution matching the moments of A as the random arguments are varied. The formula is proj[p(A) sum_(matrixMultiply,B) p(matrixMultiply,B) factor(matrixMultiply,A,B)]/p(A).

    Exceptions
    Type Condition
    ImproperMessageException

    B is not a proper distribution.

    AAverageConditional(DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, Double[,], DistributionStructArray2D<Gaussian, Double>)

    EP message to A.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> AAverageConditional(DistributionStructArray2D<Gaussian, double> matrixMultiply, DistributionStructArray2D<Gaussian, double> A, double[, ] B, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A. Must be a proper distribution. If any element is uniform, the result will be uniform.

    Double[,] B

    Constant value for B.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is a distribution matching the moments of A as the random arguments are varied. The formula is proj[p(A) sum_(matrixMultiply) p(matrixMultiply) factor(matrixMultiply,A,B)]/p(A).

    Exceptions
    Type Condition
    ImproperMessageException

    matrixMultiply is not a proper distribution.

    ImproperMessageException

    A is not a proper distribution.

    AAverageConditional(Double[,], Double[,], DistributionStructArray2D<Gaussian, Double>)

    EP message to A.

    Declaration
    [NotSupported("A MatrixMultiply factor with fixed output is not yet implemented for Expectation Propagation.")]
    public static DistributionStructArray2D<Gaussian, double> AAverageConditional(double[, ] matrixMultiply, double[, ] B, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    Double[,] B

    Constant value for B.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is the factor viewed as a function of A conditioned on the given values.

    AAverageLogarithm(DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>)

    VMP message to A.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> AAverageLogarithm(DistributionStructArray2D<Gaussian, double> matrixMultiply, DistributionStructArray2D<Gaussian, double> A, DistributionStructArray2D<Gaussian, double> B, DistributionStructArray2D<Gaussian, double> to_A)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> to_A

    Previous outgoing message to A.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    The outgoing VMP message to the A argument.

    Remarks

    The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except A. Because the factor is deterministic, matrixMultiply is integrated out before taking the logarithm. The formula is exp(sum_(B) p(B) log(sum_matrixMultiply p(matrixMultiply) factor(matrixMultiply,A,B))).

    Exceptions
    Type Condition
    ImproperMessageException

    matrixMultiply is not a proper distribution.

    ImproperMessageException

    B is not a proper distribution.

    AAverageLogarithm(DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, Double[,], DistributionStructArray2D<Gaussian, Double>)

    VMP message to A.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> AAverageLogarithm(DistributionStructArray2D<Gaussian, double> matrixMultiply, DistributionStructArray2D<Gaussian, double> A, double[, ] B, DistributionStructArray2D<Gaussian, double> to_A)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A. Must be a proper distribution. If any element is uniform, the result will be uniform.

    Double[,] B

    Constant value for B.

    DistributionStructArray2D<Gaussian, Double> to_A

    Previous outgoing message to A.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    The outgoing VMP message to the A argument.

    Remarks

    The outgoing message is the factor viewed as a function of A with matrixMultiply integrated out. The formula is sum_matrixMultiply p(matrixMultiply) factor(matrixMultiply,A,B).

    Exceptions
    Type Condition
    ImproperMessageException

    matrixMultiply is not a proper distribution.

    ImproperMessageException

    A is not a proper distribution.

    AAverageLogarithm(Double[,])

    VMP message to A.

    Declaration
    [NotSupported("Variational Message Passing does not support a MatrixMultiply factor with fixed output.")]
    public static DistributionStructArray2D<Gaussian, double> AAverageLogarithm(double[, ] matrixMultiply)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    The outgoing VMP message to the A argument.

    Remarks

    The outgoing message is the factor viewed as a function of A conditioned on the given values.

    AverageLogFactor()

    Evidence message for VMP.

    Declaration
    public static double AverageLogFactor()
    Returns
    Type Description
    Double

    Zero.

    Remarks

    The formula for the result is log(factor(matrixMultiply,A,B)). Adding up these values across all factors and variables gives the log-evidence estimate for VMP.

    AverageLogFactor(Double[,], Double[,], Double[,])

    Evidence message for VMP.

    Declaration
    public static double AverageLogFactor(double[, ] matrixMultiply, double[, ] A, double[, ] B)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    Double[,] A

    Constant value for A.

    Double[,] B

    Constant value for B.

    Returns
    Type Description
    Double

    Zero.

    Remarks

    The formula for the result is log(factor(matrixMultiply,A,B)). Adding up these values across all factors and variables gives the log-evidence estimate for VMP.

    BAverageConditional(DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>)

    EP message to B.

    Declaration
    [NotSupported("A MatrixMultiply factor between two Gaussian arrays is not yet implemented for Expectation Propagation.  Try using Variational Message Passing.")]
    public static DistributionStructArray2D<Gaussian, double> BAverageConditional(DistributionStructArray2D<Gaussian, double> matrixMultiply, DistributionStructArray2D<Gaussian, double> A, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply.

    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is a distribution matching the moments of B as the random arguments are varied. The formula is proj[p(B) sum_(matrixMultiply,A) p(matrixMultiply,A) factor(matrixMultiply,A,B)]/p(B).

    Exceptions
    Type Condition
    ImproperMessageException

    A is not a proper distribution.

    BAverageConditional(DistributionStructArray2D<Gaussian, Double>, Double[,], DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>)

    EP message to B.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> BAverageConditional(DistributionStructArray2D<Gaussian, double> matrixMultiply, double[, ] A, DistributionStructArray2D<Gaussian, double> B, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply. Must be a proper distribution. If any element is uniform, the result will be uniform.

    Double[,] A

    Constant value for A.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is a distribution matching the moments of B as the random arguments are varied. The formula is proj[p(B) sum_(matrixMultiply) p(matrixMultiply) factor(matrixMultiply,A,B)]/p(B).

    Exceptions
    Type Condition
    ImproperMessageException

    matrixMultiply is not a proper distribution.

    ImproperMessageException

    B is not a proper distribution.

    BAverageConditional(Double[,], Double[,], DistributionStructArray2D<Gaussian, Double>)

    EP message to B.

    Declaration
    [NotSupported("A MatrixMultiply factor with fixed output is not yet implemented for Expectation Propagation.")]
    public static DistributionStructArray2D<Gaussian, double> BAverageConditional(double[, ] matrixMultiply, double[, ] A, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    Double[,] A

    Constant value for A.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is the factor viewed as a function of B conditioned on the given values.

    BAverageLogarithm(DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>)

    VMP message to B.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> BAverageLogarithm(DistributionStructArray2D<Gaussian, double> matrixMultiply, DistributionStructArray2D<Gaussian, double> A, DistributionStructArray2D<Gaussian, double> B, DistributionStructArray2D<Gaussian, double> to_B)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> to_B

    Previous outgoing message to B.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    The outgoing VMP message to the B argument.

    Remarks

    The outgoing message is the exponential of the average log-factor value, where the average is over all arguments except B. Because the factor is deterministic, matrixMultiply is integrated out before taking the logarithm. The formula is exp(sum_(A) p(A) log(sum_matrixMultiply p(matrixMultiply) factor(matrixMultiply,A,B))).

    Exceptions
    Type Condition
    ImproperMessageException

    matrixMultiply is not a proper distribution.

    ImproperMessageException

    A is not a proper distribution.

    ImproperMessageException

    B is not a proper distribution.

    BAverageLogarithm(DistributionStructArray2D<Gaussian, Double>, Double[,], DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>)

    VMP message to B.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> BAverageLogarithm(DistributionStructArray2D<Gaussian, double> matrixMultiply, double[, ] A, DistributionStructArray2D<Gaussian, double> B, DistributionStructArray2D<Gaussian, double> to_B)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply. Must be a proper distribution. If any element is uniform, the result will be uniform.

    Double[,] A

    Constant value for A.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> to_B

    Previous outgoing message to B.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    The outgoing VMP message to the B argument.

    Remarks

    The outgoing message is the factor viewed as a function of B with matrixMultiply integrated out. The formula is sum_matrixMultiply p(matrixMultiply) factor(matrixMultiply,A,B).

    Exceptions
    Type Condition
    ImproperMessageException

    matrixMultiply is not a proper distribution.

    ImproperMessageException

    B is not a proper distribution.

    BAverageLogarithm(Double[,])

    VMP message to B.

    Declaration
    [NotSupported("Variational Message Passing does not support a MatrixMultiply factor with fixed output.")]
    public static DistributionStructArray2D<Gaussian, double> BAverageLogarithm(double[, ] matrixMultiply)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    The outgoing VMP message to the B argument.

    Remarks

    The outgoing message is the factor viewed as a function of B conditioned on the given values.

    LogAverageFactor(DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, Double[,])

    Evidence message for EP.

    Declaration
    public static double LogAverageFactor(DistributionStructArray2D<Gaussian, double> matrixMultiply, DistributionStructArray2D<Gaussian, double> A, double[, ] B)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply.

    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A.

    Double[,] B

    Constant value for B.

    Returns
    Type Description
    Double

    Logarithm of the factor's average value across the given argument distributions.

    Remarks

    The formula for the result is log(sum_(matrixMultiply,A) p(matrixMultiply,A) factor(matrixMultiply,A,B)).

    LogAverageFactor(DistributionStructArray2D<Gaussian, Double>, Double[,], DistributionStructArray2D<Gaussian, Double>)

    Evidence message for EP.

    Declaration
    public static double LogAverageFactor(DistributionStructArray2D<Gaussian, double> matrixMultiply, double[, ] A, DistributionStructArray2D<Gaussian, double> B)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply.

    Double[,] A

    Constant value for A.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B.

    Returns
    Type Description
    Double

    Logarithm of the factor's average value across the given argument distributions.

    Remarks

    The formula for the result is log(sum_(matrixMultiply,B) p(matrixMultiply,B) factor(matrixMultiply,A,B)).

    LogAverageFactor(Double[,], DistributionStructArray2D<Gaussian, Double>, Double[,])

    Evidence message for EP.

    Declaration
    public static double LogAverageFactor(double[, ] matrixMultiply, DistributionStructArray2D<Gaussian, double> A, double[, ] B)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A.

    Double[,] B

    Constant value for B.

    Returns
    Type Description
    Double

    Logarithm of the factor's average value across the given argument distributions.

    Remarks

    The formula for the result is log(sum_(A) p(A) factor(matrixMultiply,A,B)).

    LogAverageFactor(Double[,], Double[,], DistributionStructArray2D<Gaussian, Double>)

    Evidence message for EP.

    Declaration
    public static double LogAverageFactor(double[, ] matrixMultiply, double[, ] A, DistributionStructArray2D<Gaussian, double> B)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    Double[,] A

    Constant value for A.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B.

    Returns
    Type Description
    Double

    Logarithm of the factor's average value across the given argument distributions.

    Remarks

    The formula for the result is log(sum_(B) p(B) factor(matrixMultiply,A,B)).

    LogAverageFactor(Double[,], Double[,], Double[,])

    Evidence message for EP.

    Declaration
    public static double LogAverageFactor(double[, ] matrixMultiply, double[, ] A, double[, ] B)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    Double[,] A

    Constant value for A.

    Double[,] B

    Constant value for B.

    Returns
    Type Description
    Double

    Logarithm of the factor's average value across the given argument distributions.

    Remarks

    The formula for the result is log(factor(matrixMultiply,A,B)).

    LogEvidenceRatio(DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, Double[,])

    Evidence message for EP.

    Declaration
    public static double LogEvidenceRatio(DistributionStructArray2D<Gaussian, double> matrixMultiply, DistributionStructArray2D<Gaussian, double> A, double[, ] B)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply.

    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A.

    Double[,] B

    Constant value for B.

    Returns
    Type Description
    Double

    Logarithm of the factor's contribution the EP model evidence.

    Remarks

    The formula for the result is log(sum_(matrixMultiply,A) p(matrixMultiply,A) factor(matrixMultiply,A,B) / sum_matrixMultiply p(matrixMultiply) messageTo(matrixMultiply)). Adding up these values across all factors and variables gives the log-evidence estimate for EP.

    LogEvidenceRatio(DistributionStructArray2D<Gaussian, Double>, Double[,], DistributionStructArray2D<Gaussian, Double>)

    Evidence message for EP.

    Declaration
    public static double LogEvidenceRatio(DistributionStructArray2D<Gaussian, double> matrixMultiply, double[, ] A, DistributionStructArray2D<Gaussian, double> B)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> matrixMultiply

    Incoming message from matrixMultiply.

    Double[,] A

    Constant value for A.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B.

    Returns
    Type Description
    Double

    Logarithm of the factor's contribution the EP model evidence.

    Remarks

    The formula for the result is log(sum_(matrixMultiply,B) p(matrixMultiply,B) factor(matrixMultiply,A,B) / sum_matrixMultiply p(matrixMultiply) messageTo(matrixMultiply)). Adding up these values across all factors and variables gives the log-evidence estimate for EP.

    LogEvidenceRatio(Double[,], DistributionStructArray2D<Gaussian, Double>, Double[,])

    Evidence message for EP.

    Declaration
    public static double LogEvidenceRatio(double[, ] matrixMultiply, DistributionStructArray2D<Gaussian, double> A, double[, ] B)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A.

    Double[,] B

    Constant value for B.

    Returns
    Type Description
    Double

    Logarithm of the factor's contribution the EP model evidence.

    Remarks

    The formula for the result is log(sum_(A) p(A) factor(matrixMultiply,A,B)). Adding up these values across all factors and variables gives the log-evidence estimate for EP.

    LogEvidenceRatio(Double[,], Double[,], DistributionStructArray2D<Gaussian, Double>)

    Evidence message for EP.

    Declaration
    public static double LogEvidenceRatio(double[, ] matrixMultiply, double[, ] A, DistributionStructArray2D<Gaussian, double> B)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    Double[,] A

    Constant value for A.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B.

    Returns
    Type Description
    Double

    Logarithm of the factor's contribution the EP model evidence.

    Remarks

    The formula for the result is log(sum_(B) p(B) factor(matrixMultiply,A,B)). Adding up these values across all factors and variables gives the log-evidence estimate for EP.

    LogEvidenceRatio(Double[,], Double[,], Double[,])

    Evidence message for EP.

    Declaration
    public static double LogEvidenceRatio(double[, ] matrixMultiply, double[, ] A, double[, ] B)
    Parameters
    Type Name Description
    Double[,] matrixMultiply

    Constant value for matrixMultiply.

    Double[,] A

    Constant value for A.

    Double[,] B

    Constant value for B.

    Returns
    Type Description
    Double

    Logarithm of the factor's contribution the EP model evidence.

    Remarks

    The formula for the result is log(factor(matrixMultiply,A,B)). Adding up these values across all factors and variables gives the log-evidence estimate for EP.

    MatrixMultiplyAverageConditional(DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>)

    EP message to matrixMultiply.

    Declaration
    [NotSupported("A MatrixMultiply factor between two Gaussian arrays is not yet implemented for Expectation Propagation.  Try using Variational Message Passing.")]
    public static DistributionStructArray2D<Gaussian, double> MatrixMultiplyAverageConditional(DistributionStructArray2D<Gaussian, double> A, DistributionStructArray2D<Gaussian, double> B, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is a distribution matching the moments of matrixMultiply as the random arguments are varied. The formula is proj[p(matrixMultiply) sum_(A,B) p(A,B) factor(matrixMultiply,A,B)]/p(matrixMultiply).

    Exceptions
    Type Condition
    ImproperMessageException

    A is not a proper distribution.

    ImproperMessageException

    B is not a proper distribution.

    MatrixMultiplyAverageConditional(DistributionStructArray2D<Gaussian, Double>, Double[,], DistributionStructArray2D<Gaussian, Double>)

    EP message to matrixMultiply.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> MatrixMultiplyAverageConditional(DistributionStructArray2D<Gaussian, double> A, double[, ] B, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A. Must be a proper distribution. If any element is uniform, the result will be uniform.

    Double[,] B

    Constant value for B.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is a distribution matching the moments of matrixMultiply as the random arguments are varied. The formula is proj[p(matrixMultiply) sum_(A) p(A) factor(matrixMultiply,A,B)]/p(matrixMultiply).

    Exceptions
    Type Condition
    ImproperMessageException

    A is not a proper distribution.

    MatrixMultiplyAverageConditional(Double[,], DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>)

    EP message to matrixMultiply.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> MatrixMultiplyAverageConditional(double[, ] A, DistributionStructArray2D<Gaussian, double> B, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    Double[,] A

    Constant value for A.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is a distribution matching the moments of matrixMultiply as the random arguments are varied. The formula is proj[p(matrixMultiply) sum_(B) p(B) factor(matrixMultiply,A,B)]/p(matrixMultiply).

    Exceptions
    Type Condition
    ImproperMessageException

    B is not a proper distribution.

    MatrixMultiplyAverageLogarithm(DistributionArray2D<Gaussian>, DistributionArray2D<Gaussian>, DistributionStructArray2D<Gaussian, Double>)

    VMP message to matrixMultiply.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> MatrixMultiplyAverageLogarithm(DistributionArray2D<Gaussian> A, DistributionArray2D<Gaussian> B, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    DistributionArray2D<Gaussian> A

    Incoming message from A. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionArray2D<Gaussian> B

    Incoming message from B. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is a distribution matching the moments of matrixMultiply as the random arguments are varied. The formula is proj[sum_(A,B) p(A,B) factor(matrixMultiply,A,B)].

    Exceptions
    Type Condition
    ImproperMessageException

    A is not a proper distribution.

    ImproperMessageException

    B is not a proper distribution.

    MatrixMultiplyAverageLogarithm(DistributionStructArray2D<Gaussian, Double>, Double[,], DistributionStructArray2D<Gaussian, Double>)

    VMP message to matrixMultiply.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> MatrixMultiplyAverageLogarithm(DistributionStructArray2D<Gaussian, double> A, double[, ] B, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    DistributionStructArray2D<Gaussian, Double> A

    Incoming message from A. Must be a proper distribution. If any element is uniform, the result will be uniform.

    Double[,] B

    Constant value for B.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is a distribution matching the moments of matrixMultiply as the random arguments are varied. The formula is proj[sum_(A) p(A) factor(matrixMultiply,A,B)].

    Exceptions
    Type Condition
    ImproperMessageException

    A is not a proper distribution.

    MatrixMultiplyAverageLogarithm(Double[,], DistributionStructArray2D<Gaussian, Double>, DistributionStructArray2D<Gaussian, Double>)

    VMP message to matrixMultiply.

    Declaration
    public static DistributionStructArray2D<Gaussian, double> MatrixMultiplyAverageLogarithm(double[, ] A, DistributionStructArray2D<Gaussian, double> B, DistributionStructArray2D<Gaussian, double> result)
    Parameters
    Type Name Description
    Double[,] A

    Constant value for A.

    DistributionStructArray2D<Gaussian, Double> B

    Incoming message from B. Must be a proper distribution. If any element is uniform, the result will be uniform.

    DistributionStructArray2D<Gaussian, Double> result

    Modified to contain the outgoing message.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>

    result

    Remarks

    The outgoing message is a distribution matching the moments of matrixMultiply as the random arguments are varied. The formula is proj[sum_(B) p(B) factor(matrixMultiply,A,B)].

    Exceptions
    Type Condition
    ImproperMessageException

    B is not a proper distribution.

    MatrixMultiplyAverageLogarithmInit(DistributionArray2D<Gaussian>, DistributionArray2D<Gaussian>)

    Declaration
    public static DistributionStructArray2D<Gaussian, double> MatrixMultiplyAverageLogarithmInit(DistributionArray2D<Gaussian> A, DistributionArray2D<Gaussian> B)
    Parameters
    Type Name Description
    DistributionArray2D<Gaussian> A

    Incoming message from A.

    DistributionArray2D<Gaussian> B

    Incoming message from B.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>
    Remarks

    MatrixMultiplyAverageLogarithmInit(DistributionArray2D<Gaussian>, Double[,])

    Declaration
    public static DistributionStructArray2D<Gaussian, double> MatrixMultiplyAverageLogarithmInit(DistributionArray2D<Gaussian> A, double[, ] B)
    Parameters
    Type Name Description
    DistributionArray2D<Gaussian> A

    Incoming message from A.

    Double[,] B

    Constant value for B.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>
    Remarks

    MatrixMultiplyAverageLogarithmInit(Double[,], DistributionArray2D<Gaussian>)

    Declaration
    public static DistributionStructArray2D<Gaussian, double> MatrixMultiplyAverageLogarithmInit(double[, ] A, DistributionArray2D<Gaussian> B)
    Parameters
    Type Name Description
    Double[,] A

    Constant value for A.

    DistributionArray2D<Gaussian> B

    Incoming message from B.

    Returns
    Type Description
    DistributionStructArray2D<Gaussian, Double>
    Remarks

    In This Article
    Back to top Copyright © .NET Foundation. All rights reserved.