class Multilateration::TimeOfArrivalStrategies::SourceVectorDistance

Attributes

source_vector[R]
wave_speed[R]

Public Class Methods

new(source_vector, wave_speed=1) click to toggle source
# File lib/multilateration/time_of_arrival_strategies/source_vector_distance.rb, line 7
def initialize(source_vector, wave_speed=1)
  @source_vector = source_vector
  @wave_speed    = wave_speed
end

Public Instance Methods

tdoa(vector_a, vector_b) click to toggle source
# File lib/multilateration/time_of_arrival_strategies/source_vector_distance.rb, line 12
def tdoa(vector_a, vector_b)
  toa(vector_a) - toa(vector_b)
end
toa(target_vector) click to toggle source
# File lib/multilateration/time_of_arrival_strategies/source_vector_distance.rb, line 16
def toa(target_vector)
  distance_between_source_vector_and(target_vector) / wave_speed
end

Private Instance Methods

distance_between_source_vector_and(target_vector) click to toggle source
# File lib/multilateration/time_of_arrival_strategies/source_vector_distance.rb, line 22
def distance_between_source_vector_and(target_vector)
  Math.sqrt((target_vector - source_vector).map { |component| component.abs**2 }.reduce(&:+))
end