lib/benchmark/trend.rb
def range(start, limit, ratio: 8)
      check_greater(start, 0)
      check_greater(limit, start)
      check_greater(ratio, 2)

      items = []
      count = start
      items << count
      (limit / ratio).times do
        count *= ratio
        break if count >= limit
        items << count
      end
      items << limit if start != limit
      items
    end
def range(start, limit, ratio: 8)
      check_greater(start, 0)
      check_greater(limit, start)
      check_greater(ratio, 2)

      items = []
      count = start
      items << count
      (limit / ratio).times do
        count *= ratio
        break if count >= limit
        items << count
      end
      items << limit if start != limit
      items
    end
Generate a range of inputs spaced by powers.

 The default range is generated in the multiples of 8.

 @example
   Benchmark::Trend.range(8, 8 << 10)
   # => [8, 64, 512, 4096, 8192]

 @param [Integer] start
 @param [Integer] limit
 @param [Integer] ratio

 @api public