AppHarbor.ConsoleProgressBar.WeightedAverage C# (CSharp) Method

WeightedAverage() private static method

private static WeightedAverage ( IList input, int spread = 40 ) : double
input IList
spread int
return double
        private static double WeightedAverage(IList<double> input, int spread = 40)
        {
            if (input.Count == 1)
            {
                return input.Average();
            }

            var weightdifference = spread / (input.Count() - 1);
            var averageWeight = 50;
            var startWeight = averageWeight - spread / 2;

            return input.Select((x, i) => x * (startWeight + (i * weightdifference)))
                .Sum() / (averageWeight * input.Count());
        }