Sha256: de0be5da07938b6ea67aa4f3208ffdc8125575e596c00cc49311ac01cf75d030

Contents?: true

Size: 698 Bytes

Versions: 6

Compression:

Stored size: 698 Bytes

Contents

module Metrics
  module Statistics
    class UniformSample < Sample
      
      def initialize(size = 1028)
        @values = Array.new(size)
        @count = 0
        @size = size
        self.clear
      end
      
      def clear
        (0..@values.length-1).each do |i|
          @values[i] = 0
        end
        @count = 0
      end
      
      def size
        @values.length
      end
      
      def update(value)
        if @count < @values.length
          @values[@count] = value
          @count += 1
        else
          index = rand(@size) % @count
          @values[index] = value
        end
      end
      
      def values
        @values.dup
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
ruby-metrics-0.8.6 lib/ruby-metrics/statistics/uniform_sample.rb
ruby-metrics-0.8.5 lib/ruby-metrics/statistics/uniform_sample.rb
ruby-metrics-0.8.0 lib/ruby-metrics/statistics/uniform_sample.rb
ruby-metrics-0.7.0 lib/ruby-metrics/statistics/uniform_sample.rb
ruby-metrics-0.6.0 lib/ruby-metrics/statistics/uniform_sample.rb
ruby-metrics-0.5.0 lib/ruby-metrics/statistics/uniform_sample.rb