module Benchmark::Perf::Stats
Public Class Methods
average(measurements)
click to toggle source
Calculate arithemtic average of measurements
@param [Array] measurements
@return [Float]
the average of given measurements
@api public
# File lib/benchmark/perf/stats.rb, line 14 def average(measurements) return 0 if measurements.empty? measurements.reduce(&:+).to_f / measurements.size end
stdev(measurements)
click to toggle source
Calculate standard deviation
@param [Array] measurements
@api public
# File lib/benchmark/perf/stats.rb, line 44 def stdev(measurements) return 0 if measurements.empty? Math.sqrt(variance(measurements)) end
variance(measurements)
click to toggle source
Calculate variance of measurements
@param [Array] measurements
@return [Float]
@api public
# File lib/benchmark/perf/stats.rb, line 28 def variance(measurements) return 0 if measurements.empty? avg = average(measurements) total = measurements.reduce(0) do |sum, x| sum + (x - avg)**2 end total.to_f / measurements.size end
Private Instance Methods
average(measurements)
click to toggle source
Calculate arithemtic average of measurements
@param [Array] measurements
@return [Float]
the average of given measurements
@api public
# File lib/benchmark/perf/stats.rb, line 14 def average(measurements) return 0 if measurements.empty? measurements.reduce(&:+).to_f / measurements.size end
stdev(measurements)
click to toggle source
Calculate standard deviation
@param [Array] measurements
@api public
# File lib/benchmark/perf/stats.rb, line 44 def stdev(measurements) return 0 if measurements.empty? Math.sqrt(variance(measurements)) end
variance(measurements)
click to toggle source
Calculate variance of measurements
@param [Array] measurements
@return [Float]
@api public
# File lib/benchmark/perf/stats.rb, line 28 def variance(measurements) return 0 if measurements.empty? avg = average(measurements) total = measurements.reduce(0) do |sum, x| sum + (x - avg)**2 end total.to_f / measurements.size end