Author: jmannix Date: Thu Jan 28 06:23:34 2010 New Revision: 903967 URL: http://svn.apache.org/viewvc?rev=903967&view=rev Log: size() checking in getDistanceSquared, and take it out of the DistanceMeasure, which is now much cleaner.
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/SquaredEuclideanDistanceMeasure.java lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/SquaredEuclideanDistanceMeasure.java URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/SquaredEuclideanDistanceMeasure.java?rev=903967&r1=903966&r2=903967&view=diff ============================================================================== --- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/SquaredEuclideanDistanceMeasure.java (original) +++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/SquaredEuclideanDistanceMeasure.java Thu Jan 28 06:23:34 2010 @@ -49,18 +49,11 @@ @Override public double distance(Vector v1, Vector v2) { - if (v1.size() != v2.size()) { - throw new CardinalityException(); - } - Vector vector = v1.minus(v2); - return vector.dot(vector); + return v1.getDistanceSquared(v2); } @Override public double distance(double centroidLengthSquare, Vector centroid, Vector v) { - if (centroid.size() != v.size()) { - throw new CardinalityException(); - } - return centroidLengthSquare + v.getLengthSquared() - 2 * v.dot(centroid); + return centroidLengthSquare - 2 * v.dot(centroid) + v.getLengthSquared(); } } Modified: lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java?rev=903967&r1=903966&r2=903967&view=diff ============================================================================== --- lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java (original) +++ lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java Thu Jan 28 06:23:34 2010 @@ -219,6 +219,9 @@ @Override public double getDistanceSquared(Vector v) { + if(v.size() != size()) { + throw new CardinalityException(); + } // if this and v has a cached lengthSquared, dot product is quickest way to compute this. if(lengthSquared >= 0 && v instanceof AbstractVector && ((AbstractVector)v).lengthSquared >= 0) { return lengthSquared + v.getLengthSquared() - 2 * this.dot(v);