module Bench::Stats

Public Class Methods

format_percent(p) click to toggle source
# File lib/bench9000/stats.rb, line 35
def self.format_percent(p)
  "#{(p * 100).round(2)}%"
end
mean(samples) click to toggle source
# File lib/bench9000/stats.rb, line 17
def self.mean(samples)
  sum(samples) / samples.size
end
range(samples) click to toggle source
# File lib/bench9000/stats.rb, line 31
def self.range(samples)
  samples.max - samples.min
end
sample_variance(samples) click to toggle source
# File lib/bench9000/stats.rb, line 21
def self.sample_variance(samples)
  m = mean(samples)
  sum = samples.inject(0) { |a, i| a + (i - m)**2 }
  sum / (samples.length - 1).to_f
end
standard_deviation(samples) click to toggle source
# File lib/bench9000/stats.rb, line 27
def self.standard_deviation(samples)
  Math.sqrt(sample_variance(samples))
end
sum(samples) click to toggle source
# File lib/bench9000/stats.rb, line 13
def self.sum(samples)
  samples.inject(0, :+)
end