Ejemplo n.º 1
0
        public static DVectorNormal ToJointGaussian(params IKEPDist[] msgs)
        {
            // Stack all messages to form a big Gaussian distribution
            Vector[]      means = msgs.Select(dist => dist.GetMeanVector()).ToArray();
            Matrix[]      covs  = msgs.Select(dist => dist.GetCovarianceMatrix()).ToArray();
            Vector        M     = MatrixUtils.ConcatAll(means);
            Matrix        V     = MatrixUtils.BlkDiag(covs);
            DVectorNormal joint = new DVectorNormal(M, V);

            return(joint);
        }