Module: TimeSeriesMath::LinearInterpolation

Includes:
ElemwiseOperators
Defined in:
lib/time_series_math/linear_interpolation.rb

Instance Method Summary collapse

Methods included from ElemwiseOperators

#elemwise_add, #elemwise_mul_scalar, #elemwise_sub

Instance Method Details

#[](t) ⇒ Object

Returns interpolated value.



6
7
8
9
10
11
12
13
14
# File 'lib/time_series_math/linear_interpolation.rb', line 6

def [](t)
  i0, i1 = indices_at(t)
  return first[1] if i0.nil?
  return last[1] if i1.nil?

  k = (t - @data[i0][0]) / (@data[i1][0] - @data[i0][0])
  diff_value = elemwise_sub(@data[i1][1], @data[i0][1])
  elemwise_add(@data[i0][1], elemwise_mul_scalar(k, diff_value))
end