# class Benchmark::IPS::Stats::Bootstrap

### Attributes

data[R]

### Public Class Methods

new(samples, confidence) click to toggle source

    # File lib/benchmark/ips/stats/bootstrap.rb, line 9
    def initialize(samples, confidence)
      dependencies
      @iterations = 10_000
      @confidence = (confidence / 100.0).to_s
      @data = Kalibera::Data.new({[0] => samples}, [1, samples.size])
      interval = @data.bootstrap_confidence_interval(@iterations, @confidence)
      @median = interval.median
      @error = interval.error
    end

### Public Instance Methods

central_tendency() click to toggle source

    # File lib/benchmark/ips/stats/bootstrap.rb, line 19
    def central_tendency
      @median
    end

dependencies() click to toggle source

    # File lib/benchmark/ips/stats/bootstrap.rb, line 37
    def dependencies
      require 'kalibera'
    rescue LoadError
      puts
      puts "Can't load the kalibera gem - this is required to use the :bootstrap stats options."
      puts "It's optional, so we don't formally depend on it and it isn't installed along with benchmark-ips."
      puts "You probably want to do something like 'gem install kalibera' to fix this."
      abort
    end

error() click to toggle source

    # File lib/benchmark/ips/stats/bootstrap.rb, line 23
    def error
      @error
    end

slowdown(baseline) click to toggle source

    # File lib/benchmark/ips/stats/bootstrap.rb, line 27
    def slowdown(baseline)
      low, slowdown, high = baseline.data.bootstrap_quotient(@data, @iterations, @confidence)
      error = Timing.mean([slowdown - low, high - slowdown])
      [slowdown, error]
    end