You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by jm...@apache.org on 2010/01/28 07:23:34 UTC

svn commit: r903967 - in /lucene/mahout/trunk: core/src/main/java/org/apache/mahout/common/distance/SquaredEuclideanDistanceMeasure.java math/src/main/java/org/apache/mahout/math/AbstractVector.java

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);