module TimeSeriesMath::LinearInterpolation
Public Instance Methods
[](t)
click to toggle source
Returns interpolated value.
# 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