private double Computation(double value) { SetThrow().Invoke(); int result = -1; int low = currentThrow.GetLowerBound(); int up = currentThrow.GetUpperBound(); Dictionary <int, double> massFunction = currentThrow.GetMassFunction(); double accum = 0; for (int i = low; i <= up; i++) { accum += massFunction[i]; if (value < accum) { result = i; firstDone = !firstDone; break; } } lastResult = result; return(result); }