/src/main/java/stream/series/util/Distance.java

https://bitbucket.org/cbockermann/stream-analysis · Java · 38 lines · 13 code · 9 blank · 16 comment · 3 complexity · 72383785625618defed1bc42e5a69af0 MD5 · raw file

  1. package stream.series.util;
  2. import java.io.Serializable;
  3. import java.util.Vector;
  4. /**
  5. * This class provides an outline for distance functions on real valued spaces. Coordinates
  6. * must be provided as {@code Vector}s containing {@code Double} values for each dimension.
  7. *
  8. * @author Markus Kokott ( markus.kokott(at)udo.edu )
  9. * 27.02.2012
  10. */
  11. public abstract class Distance implements Serializable {
  12. /**
  13. *
  14. */
  15. private static final long serialVersionUID = -7977518993888146888L;
  16. public Double getDistance (Vector<Double> coordinates_a, Vector<Double> coordinates_b){
  17. if (coordinates_a.size() != coordinates_b.size() || coordinates_a.isEmpty()){
  18. return Double.NaN;
  19. }
  20. return this.computeDistance(coordinates_a, coordinates_b);
  21. }
  22. /**
  23. * Override this method for computing a distance.
  24. * @param coordinates_a
  25. * @param coordinates_b
  26. * @return
  27. */
  28. protected abstract Double computeDistance(Vector<Double> coordinates_a, Vector<Double> coordinates_b);
  29. }