private void ComputeParameters() { Lambda.ForEach(lambdas => Lambda0.AddElement(lambdas.Sum())); RoTotal = new Vector <double>(NodesCount); for (int stream = 0; stream < StreamsCount; stream++) { // input intensity InputProbability.Add(Lambda[stream].Clone().InsertElement(0, 0).Divide(Lambda0[stream])); // E E.Add(GaussMethod.Solve(GetExtendedMatrix(stream))); // lambda' LambdaBar.Add(E[stream].Multiply(Lambda0[stream])); // ro' & ro total RoBar.Add(LambdaBar[stream].DivideElementWise(Mu[stream])); RoTotal = RoTotal.AddElementWise(RoBar.Last()); if (RoBar[stream].Any(roBar => roBar > 1)) { throw new ArgumentOutOfRangeException(string.Format("RoBar, stream {0}", stream), "Some Ro' is greater than zero."); } } if (RoTotal.Any(roTotal => roTotal > 1)) { throw new ArgumentOutOfRangeException("RoTotal", "Some RoTotal is greater than zero."); } FindPaths(); }