Accord.Statistics.Measures.correct C# (CSharp) Method

correct() private static method

private static correct ( bool unbiased, WeightType weightType, double sum, double weightSum, double squareSum ) : double
unbiased bool
weightType WeightType
sum double
weightSum double
squareSum double
return double
        private static double correct(bool unbiased, WeightType weightType, double sum, double weightSum, double squareSum)
        {
            if (unbiased)
            {
                if (weightType == WeightType.Automatic)
                {
                    if (weightSum > 1 && weightSum.IsInteger(1e-8))
                        return sum / (weightSum - 1);

                    return sum / (weightSum - (squareSum / weightSum));
                }
                else if (weightType == WeightType.Fraction)
                {
                    /*
                    if (Math.Abs(weightSum - 1.0) >= 1e-8)
                    {
                        throw new ArgumentException("An unbiased variance estimate"
                          + " cannot be computed if weights do not sum to one. The"
                          + " given weights sum up to " + squareSum, "weights");
                    }*/

                    return sum / (weightSum - (squareSum / weightSum));
                }
                else if (weightType == WeightType.Repetition)
                {
                    return sum / (weightSum - (squareSum / weightSum));
                }
            }

            return sum / weightSum;
        }
    }