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/21 14:31:32 UTC

svn commit: r901697 - /lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractMatrix.java

Author: jmannix
Date: Thu Jan 21 13:31:31 2010
New Revision: 901697

URL: http://svn.apache.org/viewvc?rev=901697&view=rev
Log:
Performance improvement for timesSquared() - in the sparse case, dot products are often zero, and there's no need to add.

Modified:
    lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractMatrix.java

Modified: lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractMatrix.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractMatrix.java?rev=901697&r1=901696&r2=901697&view=diff
==============================================================================
--- lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractMatrix.java (original)
+++ lucene/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractMatrix.java Thu Jan 21 13:31:31 2010
@@ -428,8 +428,11 @@
     }
     Vector w = new DenseVector(c[COL]);
     for (int i = 0; i < c[ROW]; i++) {
-      Vector xi = getRow(i);
-      w.assign(xi, new PlusWithScaleFunction(xi.dot(v)));
+      Vector xi = getRow(i);+      
+      double d = xi.dot(v);
+      if(d != 0)
+        w.assign(xi, new PlusWithScaleFunction(d));
+
     }
     return w;
   }