diff --git a/src/edu/wlu/cs/levy/cg/DistanceMetric.java b/src/edu/wlu/cs/levy/cg/DistanceMetric.java index 7b443d2..b0f45b0 100644 --- a/src/edu/wlu/cs/levy/cg/DistanceMetric.java +++ b/src/edu/wlu/cs/levy/cg/DistanceMetric.java @@ -1,8 +1,6 @@ -// Abstract distance metric class - package edu.wlu.cs.levy.cg; -abstract class DistanceMetric { +interface DistanceMetric { - protected abstract double distance(double[] a, double[] b); + double distance(double[] a, double[] b); } diff --git a/src/edu/wlu/cs/levy/cg/EuclideanDistance.java b/src/edu/wlu/cs/levy/cg/EuclideanDistance.java index 474c4fc..bb0bfd7 100644 --- a/src/edu/wlu/cs/levy/cg/EuclideanDistance.java +++ b/src/edu/wlu/cs/levy/cg/EuclideanDistance.java @@ -2,23 +2,18 @@ package edu.wlu.cs.levy.cg; -class EuclideanDistance extends DistanceMetric { - - protected double distance(double[] a, double[] b) { - - return Math.sqrt(sqrdist(a, b)); +public class EuclideanDistance implements DistanceMetric { + public double distance(double[] a, double[] b) { + return Math.sqrt(squaredDistance(a, b)); } - protected static double sqrdist(double[] a, double[] b) { - + protected static double squaredDistance(double[] a, double[] b) { double dist = 0; - for (int i = 0; i < a.length; ++i) { double diff = (a[i] - b[i]); dist += diff * diff; } - return dist; } } diff --git a/src/edu/wlu/cs/levy/cg/HPoint.java b/src/edu/wlu/cs/levy/cg/HPoint.java index 3274781..b44ba4b 100644 --- a/src/edu/wlu/cs/levy/cg/HPoint.java +++ b/src/edu/wlu/cs/levy/cg/HPoint.java @@ -34,8 +34,7 @@ protected boolean equals(HPoint p) { } protected static double sqrdist(HPoint x, HPoint y) { - - return EuclideanDistance.sqrdist(x.coord, y.coord); + return EuclideanDistance.squaredDistance(x.coord, y.coord); } public String toString() { diff --git a/src/edu/wlu/cs/levy/cg/HammingDistance.java b/src/edu/wlu/cs/levy/cg/HammingDistance.java index cb1ae48..85d257c 100644 --- a/src/edu/wlu/cs/levy/cg/HammingDistance.java +++ b/src/edu/wlu/cs/levy/cg/HammingDistance.java @@ -2,9 +2,9 @@ package edu.wlu.cs.levy.cg; -class HammingDistance extends DistanceMetric { +public class HammingDistance implements DistanceMetric { - protected double distance(double[] a, double[] b) { + public double distance(double[] a, double[] b) { double dist = 0;