Module: FastSimplify

Defined in:
lib/fast_simplify.rb,
lib/fast_simplify/version.rb

Constant Summary collapse

VERSION =
"0.4.0"

Class Method Summary collapse

Class Method Details

.simplify(array, rate) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fast_simplify.rb', line 4

def self.simplify(array, rate)
  len = array.length
  return array if len <= 2 || rate == 1
  return [array[0], array[-1]] if rate == 0

  result_count = (len * rate).round
  max_index = len - 1
  step = max_index / (result_count - 1).to_f

  result = []
  0.step(max_index, step) do |n|
    result << array[n.round]
  end
  #puts "len: #{len}, result_count: #{result_count}, step: #{step}, result.length: #{result.length}, result: #{result.inspect}"
  result
end