Sha256: 26bd3f11b46b644f85eabf672c007620cc1ded4bc1e9c3e858863acfb5d430e8

Contents?: true

Size: 512 Bytes

Versions: 1

Compression:

Stored size: 512 Bytes

Contents

require 'enumerable/statistics'
require 'benchmark/ips'

Benchmark.ips do |x|
  x.config(times: 5, warmup: 2)

  n = 1_000
  ary = Array.new(n) { rand }
  mean = ary.inject(:+) / n.to_f

  x.report('inject') do
    var = ary.inject(0.0) { |sum, x|
      sum += (x - mean) ** 2
    } / (n - 1).to_f
  end

  x.report('while') do
    i = 0
    var = 0
    while i < n
      var += (ary[i] - mean) ** 2
      i += 1
    end
    mean /= (n - 1).to_f
  end

  x.report('variance') do
    var = ary.variance
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
enumerable-statistics-1.0.1 bench/variance.rb