Module: Bench::Stats

Defined in:
lib/bench9000/stats.rb

Class Method Summary collapse

Class Method Details

.format_percent(p) ⇒ Object



35
36
37
# File 'lib/bench9000/stats.rb', line 35

def self.format_percent(p)
  "#{(p * 100).round(2)}%"
end

.mean(samples) ⇒ Object



17
18
19
# File 'lib/bench9000/stats.rb', line 17

def self.mean(samples)
  sum(samples) / samples.size
end

.range(samples) ⇒ Object



31
32
33
# File 'lib/bench9000/stats.rb', line 31

def self.range(samples)
  samples.max - samples.min
end

.sample_variance(samples) ⇒ Object



21
22
23
24
25
# 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) ⇒ Object



27
28
29
# File 'lib/bench9000/stats.rb', line 27

def self.standard_deviation(samples)
  Math.sqrt(sample_variance(samples))
end

.sum(samples) ⇒ Object



13
14
15
# File 'lib/bench9000/stats.rb', line 13

def self.sum(samples)
  samples.inject(0, :+)
end