class Vector
Attributes
components[R]
Public Class Methods
new(components)
click to toggle source
# File lib/vector.rb, line 4 def initialize(components) @components = components end
Public Instance Methods
*(scalar)
click to toggle source
# File lib/vector.rb, line 24 def *(scalar) Vector.new(components.map{|c| scalar*c }) end
+(vector)
click to toggle source
# File lib/vector.rb, line 12 def +(vector) if vector.dimension != dimension raise Newtonian::DimensionError end Vector.new(components.zip(vector.components).map {|(vi,wi)| vi+wi }) end
-(vector)
click to toggle source
# File lib/vector.rb, line 20 def -(vector) self + (vector * -1) end
==(vector)
click to toggle source
# File lib/vector.rb, line 28 def ==(vector) return false if vector.dimension != dimension components == vector.components end
dimension()
click to toggle source
# File lib/vector.rb, line 8 def dimension @components.length end
dot(vector)
click to toggle source
# File lib/vector.rb, line 38 def dot(vector) if vector.dimension != dimension raise Newtonian::DimensionError end components.zip(vector.components).map {|(vi,wi)| vi*wi }.inject(&:+) end
norm()
click to toggle source
# File lib/vector.rb, line 34 def norm Math.sqrt(dot(self)) end