Class: LagrangePolynomial

Inherits:
Object
  • Object
show all
Defined in:
lib/polynomial_ruby/lagrange_polynomial.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(input) ⇒ LagrangePolynomial

Returns a new instance of LagrangePolynomial.



4
5
6
7
# File 'lib/polynomial_ruby/lagrange_polynomial.rb', line 4

def initialize(input)
  self.points = input.map { |a, _| a }
  self.values = input.map { |_, b| b }
end

Instance Attribute Details

#pointsObject

Returns the value of attribute points.



2
3
4
# File 'lib/polynomial_ruby/lagrange_polynomial.rb', line 2

def points
  @points
end

#valuesObject

Returns the value of attribute values.



2
3
4
# File 'lib/polynomial_ruby/lagrange_polynomial.rb', line 2

def values
  @values
end

Instance Method Details

#callObject



9
10
11
12
13
# File 'lib/polynomial_ruby/lagrange_polynomial.rb', line 9

def call
  basis_polynomials.zip(values)
                   .map { |p, v| p * v }
                   .reduce(:+)
end