public GaussianMixtureSurrogated(Mixture <VectorGaussian> mixture) { this.weights = new List <double>(mixture.Weights); this.means = new List <double[]>(); this.variances = new List <double[][]>(); for (int i = 0; i < mixture.Components.Count; ++i) { MicrosoftResearch.Infer.Maths.Vector mean = mixture.Components[i].GetMean(); PositiveDefiniteMatrix variance = mixture.Components[i].GetVariance(); this.means.Add(mean.ToArray()); this.variances.Add(MatrixToJaggedArray(variance.ToArray())); } }