Author: robinanil
Date: Thu Apr 18 19:39:21 2013
New Revision: 1469535

URL: http://svn.apache.org/r1469535
Log:
MAHOUT-1192 Speed up vectors using 1) Inplace incrementQuick 2) faster clone, 
instead of like().assign(this) 3) Using cached lengthSquared

Modified:
    
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/sgd/AbstractOnlineLogisticRegression.java
    
mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/ManhattanDistanceMeasure.java
    
mahout/trunk/math/src/main/java-templates/org/apache/mahout/math/map/OpenKeyTypeValueTypeHashMap.java.t
    mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java
    mahout/trunk/math/src/main/java/org/apache/mahout/math/DelegatingVector.java
    mahout/trunk/math/src/main/java/org/apache/mahout/math/DenseVector.java
    
mahout/trunk/math/src/main/java/org/apache/mahout/math/FileBasedSparseBinaryMatrix.java
    mahout/trunk/math/src/main/java/org/apache/mahout/math/NamedVector.java
    
mahout/trunk/math/src/main/java/org/apache/mahout/math/OrderedIntDoubleMapping.java
    
mahout/trunk/math/src/main/java/org/apache/mahout/math/RandomAccessSparseVector.java
    
mahout/trunk/math/src/main/java/org/apache/mahout/math/SequentialAccessSparseVector.java
    mahout/trunk/math/src/main/java/org/apache/mahout/math/Vector.java
    
mahout/trunk/math/src/test/java/org/apache/mahout/math/FileBasedSparseBinaryMatrixTest.java
    mahout/trunk/math/src/test/java/org/apache/mahout/math/TestVectorView.java

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/sgd/AbstractOnlineLogisticRegression.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/classifier/sgd/AbstractOnlineLogisticRegression.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/sgd/AbstractOnlineLogisticRegression.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/classifier/sgd/AbstractOnlineLogisticRegression.java
 Thu Apr 18 19:39:21 2013
@@ -17,7 +17,8 @@
 
 package org.apache.mahout.classifier.sgd;
 
-import com.google.common.base.Preconditions;
+import java.util.Iterator;
+
 import org.apache.mahout.classifier.AbstractVectorClassifier;
 import org.apache.mahout.classifier.OnlineLearner;
 import org.apache.mahout.math.DenseVector;
@@ -26,7 +27,7 @@ import org.apache.mahout.math.Vector;
 import org.apache.mahout.math.function.DoubleFunction;
 import org.apache.mahout.math.function.Functions;
 
-import java.util.Iterator;
+import com.google.common.base.Preconditions;
 
 /**
  * Generic definition of a 1 of n logistic regression classifier that returns 
probabilities in
@@ -185,7 +186,7 @@ public abstract class AbstractOnlineLogi
       Vector.Element element = i.next();
       int j = element.index();
       updateSteps.setQuick(j, getStep());
-      updateCounts.setQuick(j, updateCounts.getQuick(j) + 1);
+      updateCounts.incrementQuick(j, 1);
     }
     nextStep();
 

Modified: 
mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/ManhattanDistanceMeasure.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/ManhattanDistanceMeasure.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- 
mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/ManhattanDistanceMeasure.java
 (original)
+++ 
mahout/trunk/core/src/main/java/org/apache/mahout/common/distance/ManhattanDistanceMeasure.java
 Thu Apr 18 19:39:21 2013
@@ -31,7 +31,7 @@ import org.apache.mahout.math.Vector;
  * between each coordinate
  */
 public class ManhattanDistanceMeasure implements DistanceMeasure {
-  
+
   public static double distance(double[] p1, double[] p2) {
     double result = 0.0;
     for (int i = 0; i < p1.length; i++) {
@@ -39,22 +39,22 @@ public class ManhattanDistanceMeasure im
     }
     return result;
   }
-  
+
   @Override
   public void configure(Configuration job) {
   // nothing to do
   }
-  
+
   @Override
   public Collection<Parameter<?>> getParameters() {
     return Collections.emptyList();
   }
-  
+
   @Override
   public void createParameters(String prefix, Configuration jobConf) {
   // nothing to do
   }
-  
+
   @Override
   public double distance(Vector v1, Vector v2) {
     if (v1.size() != v2.size()) {
@@ -62,7 +62,7 @@ public class ManhattanDistanceMeasure im
     }
     double result = 0;
     Vector vector = v1.minus(v2);
-    Iterator<Vector.Element> iter = vector.iterateNonZero(); 
+    Iterator<Vector.Element> iter = vector.iterateNonZero();
     // this contains all non zero elements between the two
     while (iter.hasNext()) {
       Vector.Element e = iter.next();
@@ -70,10 +70,9 @@ public class ManhattanDistanceMeasure im
     }
     return result;
   }
-  
+
   @Override
   public double distance(double centroidLengthSquare, Vector centroid, Vector 
v) {
     return distance(centroid, v); // TODO
   }
-  
 }

Modified: 
mahout/trunk/math/src/main/java-templates/org/apache/mahout/math/map/OpenKeyTypeValueTypeHashMap.java.t
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java-templates/org/apache/mahout/math/map/OpenKeyTypeValueTypeHashMap.java.t?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- 
mahout/trunk/math/src/main/java-templates/org/apache/mahout/math/map/OpenKeyTypeValueTypeHashMap.java.t
 (original)
+++ 
mahout/trunk/math/src/main/java-templates/org/apache/mahout/math/map/OpenKeyTypeValueTypeHashMap.java.t
 Thu Apr 18 19:39:21 2013
@@ -477,8 +477,8 @@ public class Open${keyTypeCap}${valueTyp
       this.values[i] += incrValue;
       return this.values[i];
     } else {
-        put(key, newValue);
-        return newValue;
+      put(key, newValue);
+      return newValue;
     }
  }
   

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java 
(original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/AbstractVector.java 
Thu Apr 18 19:39:21 2013
@@ -96,9 +96,9 @@ public abstract class AbstractVector imp
   @Override
   public Vector divide(double x) {
     if (x == 1.0) {
-      return like().assign(this);
+      return clone();
     }
-    Vector result = like().assign(this);
+    Vector result = createOptimizedCopy();
     Iterator<Element> iter = result.iterateNonZero();
     while (iter.hasNext()) {
       Element element = iter.next();
@@ -113,7 +113,7 @@ public abstract class AbstractVector imp
       throw new CardinalityException(size, x.size());
     }
     if (this == x) {
-      return dotSelf();
+      return getLengthSquared();
     }
 
     // Crude rule of thumb: when a sequential-access vector, with O(log n) 
lookups, has about
@@ -218,36 +218,8 @@ public abstract class AbstractVector imp
   }
 
   @Override
-  public Vector minus(Vector that) {
-    if (size != that.size()) {
-      throw new CardinalityException(size, that.size());
-    }
-
-    // TODO: check the numNonDefault elements to further optimize
-    Vector result;
-    if (isDense()) {
-      result = like().assign(this);
-    } else {
-      result = like();
-      Iterator<Element> i = this.iterateNonZero();
-      while (i.hasNext()) {
-        final Element element = i.next();
-        result.setQuick(element.index(), element.get());
-      }
-    }
-
-    Iterator<Element> iter = that.iterateNonZero();
-    while (iter.hasNext()) {
-      Element thatElement = iter.next();
-      int index = thatElement.index();
-      result.setQuick(index, this.getQuick(index) - thatElement.get());
-    }
-    return result;
-  }
-
-  @Override
   public Vector normalize() {
-    return divide(Math.sqrt(dotSelf()));
+    return divide(Math.sqrt(getLengthSquared()));
   }
 
   @Override
@@ -257,7 +229,7 @@ public abstract class AbstractVector imp
 
   @Override
   public Vector logNormalize() {
-    return logNormalize(2.0, Math.sqrt(dotSelf()));
+    return logNormalize(2.0, Math.sqrt(getLengthSquared()));
   }
 
   @Override
@@ -271,7 +243,7 @@ public abstract class AbstractVector imp
       throw new IllegalArgumentException("Power must be > 1 and < infinity");
     } else {
       double denominator = normLength * Math.log(power);
-      Vector result = like().assign(this);
+      Vector result = createOptimizedCopy();
       Iterator<Element> iter = result.iterateNonZero();
       while (iter.hasNext()) {
         Element element = iter.next();
@@ -295,7 +267,7 @@ public abstract class AbstractVector imp
       }
       return val;
     } else if (power == 2.0) {
-      return Math.sqrt(dotSelf());
+      return Math.sqrt(getLengthSquared());
     } else if (power == 1.0) {
       double val = 0.0;
       Iterator<Element> iter = this.iterateNonZero();
@@ -616,13 +588,13 @@ public abstract class AbstractVector imp
 
   @Override
   public Vector plus(double x) {
-    Vector result = like().assign(this);
+    Vector result = createOptimizedCopy();
     if (x == 0.0) {
       return result;
     }
     int size = result.size();
     for (int i = 0; i < size; i++) {
-      result.setQuick(i, getQuick(i) + x);
+      result.incrementQuick(i, x);
     }
     return result;
   }
@@ -633,17 +605,30 @@ public abstract class AbstractVector imp
       throw new CardinalityException(size, x.size());
     }
 
-    // prefer to have this be the denser than x
-    if (!isDense() && (x.isDense() || x.getNumNondefaultElements() > 
this.getNumNondefaultElements())) {
-      return x.plus(this);
-    }
+    Vector result = createOptimizedCopy();
 
-    Vector result = like().assign(this);
     Iterator<Element> iter = x.iterateNonZero();
     while (iter.hasNext()) {
       Element e = iter.next();
       int index = e.index();
-      result.setQuick(index, this.getQuick(index) + e.get());
+      result.incrementQuick(index, e.get());
+    }
+    return result;
+  }
+
+  @Override
+  public Vector minus(Vector that) {
+    if (size != that.size()) {
+      throw new CardinalityException(size, that.size());
+    }
+
+    Vector result = createOptimizedCopy();
+
+    Iterator<Element> iter = that.iterateNonZero();
+    while (iter.hasNext()) {
+      Element thatElement = iter.next();
+      int index = thatElement.index();
+      result.incrementQuick(index, -thatElement.get());
     }
     return result;
   }
@@ -657,12 +642,18 @@ public abstract class AbstractVector imp
   }
 
   @Override
+  public void incrementQuick(int index, double increment) {
+    setQuick(index, getQuick(index) + increment);
+  }
+
+  @Override
   public Vector times(double x) {
     if (x == 0.0) {
       return like();
     }
 
-    Vector result = like().assign(this);
+    Vector result = createOptimizedCopy();
+
     if (x == 1.0) {
       return result;
     }
@@ -676,6 +667,26 @@ public abstract class AbstractVector imp
     return result;
   }
 
+  /**
+   * Copy the current vector in the most optimum fashion. Used by immutable 
methods like plus(), minus().
+   * Use this instead of vector.like().assign(vector). Sub-class can choose to 
override this method.
+   *
+   * @return a copy of the current vector.
+   */
+  protected Vector createOptimizedCopy() {
+    return createOptimizedCopy(this);
+  }
+
+  private Vector createOptimizedCopy(Vector v) {
+    Vector result;
+    if (isDense()) {
+      result = v.like().assign(v);
+    } else {
+      result = v.clone();
+    }
+    return result;
+  }
+
   @Override
   public Vector times(Vector x) {
     if (size != x.size()) {
@@ -690,7 +701,7 @@ public abstract class AbstractVector imp
       from = this;
     }
 
-    Vector result = to.like().assign(to);
+    Vector result = createOptimizedCopy(to);
     Iterator<Element> iter = result.iterateNonZero();
     while (iter.hasNext()) {
       Element element = iter.next();

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/DelegatingVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/DelegatingVector.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- 
mahout/trunk/math/src/main/java/org/apache/mahout/math/DelegatingVector.java 
(original)
+++ 
mahout/trunk/math/src/main/java/org/apache/mahout/math/DelegatingVector.java 
Thu Apr 18 19:39:21 2013
@@ -280,6 +280,11 @@ public class DelegatingVector implements
   }
 
   @Override
+  public void incrementQuick(int index, double increment) {
+    delegate.incrementQuick(index, increment);
+  }
+
+  @Override
   public int getNumNondefaultElements() {
     return delegate.getNumNondefaultElements();
   }

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/DenseVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/DenseVector.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/DenseVector.java 
(original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/DenseVector.java Thu 
Apr 18 19:39:21 2013
@@ -142,6 +142,12 @@ public class DenseVector extends Abstrac
   }
 
   @Override
+  public void incrementQuick(int index, double increment) {
+    invalidateCachedLength();
+    values[index] += increment;
+  }
+
+  @Override
   public Vector assign(double value) {
     invalidateCachedLength();
     Arrays.fill(values, value);

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/FileBasedSparseBinaryMatrix.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/FileBasedSparseBinaryMatrix.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- 
mahout/trunk/math/src/main/java/org/apache/mahout/math/FileBasedSparseBinaryMatrix.java
 (original)
+++ 
mahout/trunk/math/src/main/java/org/apache/mahout/math/FileBasedSparseBinaryMatrix.java
 Thu Apr 18 19:39:21 2013
@@ -17,12 +17,6 @@
 
 package org.apache.mahout.math;
 
-import com.google.common.base.Function;
-import com.google.common.base.Preconditions;
-import com.google.common.collect.AbstractIterator;
-import com.google.common.collect.Iterators;
-import com.google.common.collect.Lists;
-
 import java.io.DataOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
@@ -35,6 +29,12 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
+import com.google.common.base.Function;
+import com.google.common.base.Preconditions;
+import com.google.common.collect.AbstractIterator;
+import com.google.common.collect.Iterators;
+import com.google.common.collect.Lists;
+
 /**
  * Provides a way to get data from a file and treat it as if it were a matrix, 
but avoids putting
  * all that data onto the Java heap.  Instead, the file is mapped into 
non-heap memory as a
@@ -425,6 +425,16 @@ public final class FileBasedSparseBinary
     }
 
     /**
+     * Copy the vector for fast operations.
+     *
+     * @return a Vector
+     */
+    @Override
+    protected Vector createOptimizedCopy() {
+      return new RandomAccessSparseVector(size()).assign(this);
+    }
+
+    /**
      * Set the value at the given index, without checking bounds
      *
      * @param index an int index into the receiver
@@ -436,6 +446,17 @@ public final class FileBasedSparseBinary
     }
 
     /**
+     * Set the value at the given index, without checking bounds
+     *
+     * @param index an int index into the receiver
+     * @param value a double value to set
+     */
+    @Override
+    public void incrementQuick(int index, double increment) {
+      throw new UnsupportedOperationException("Read-only view");
+    }
+
+    /**
      * Return the number of values in the recipient which are not the default 
value.  For instance, for
      * a sparse vector, this would be the number of non-zero values.
      *

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/NamedVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/NamedVector.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/NamedVector.java 
(original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/NamedVector.java Thu 
Apr 18 19:39:21 2013
@@ -237,6 +237,11 @@ public class NamedVector implements Vect
   }
 
   @Override
+  public void incrementQuick(int index, double increment) {
+    delegate.incrementQuick(index, increment);
+  }
+
+  @Override
   public int getNumNonZeroElements() {
     return delegate.getNumNonZeroElements();
   }

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/OrderedIntDoubleMapping.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/OrderedIntDoubleMapping.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- 
mahout/trunk/math/src/main/java/org/apache/mahout/math/OrderedIntDoubleMapping.java
 (original)
+++ 
mahout/trunk/math/src/main/java/org/apache/mahout/math/OrderedIntDoubleMapping.java
 Thu Apr 18 19:39:21 2013
@@ -68,7 +68,7 @@ final class OrderedIntDoubleMapping impl
   int getNumMappings() {
     return numMappings;
   }
-  
+
   private void growTo(int newCapacity) {
     if (newCapacity > indices.length) {
       int[] newIndices = new int[newCapacity];
@@ -84,7 +84,7 @@ final class OrderedIntDoubleMapping impl
     int low = 0;
     int high = numMappings - 1;
     while (low <= high) {
-      int mid = low + ((high - low) >>> 1);
+      int mid = low + (high - low >>> 1);
       int midVal = indices[mid];
       if (midVal < index) {
         low = mid + 1;
@@ -105,31 +105,9 @@ final class OrderedIntDoubleMapping impl
   public void set(int index, double value) {
     int offset = find(index);
     if (offset >= 0) {
-      if (value == DEFAULT_VALUE) {
-        for (int i = offset + 1, j = offset; i < numMappings; i++, j++) {
-          indices[j] = indices[i];
-          values[j] = values[i];
-        }
-        numMappings--;
-      } else {
-        values[offset] = value;
-      }
+      insertOrUpdateValueIfPresent(offset, value);
     } else {
-      if (value != DEFAULT_VALUE) {
-        if (numMappings >= indices.length) {
-          growTo(Math.max((int) (1.2 * numMappings), numMappings + 1));
-        }
-        int at = -offset - 1;
-        if (numMappings > at) {
-          for (int i = numMappings - 1, j = numMappings; i >= at; i--, j--) {
-            indices[j] = indices[i];
-            values[j] = values[i];
-          }
-        }
-        indices[at] = index;
-        values[at] = value;
-        numMappings++;
-      }
+      insertValueIfNotDefault(index, offset, value);
     }
   }
 
@@ -177,4 +155,44 @@ final class OrderedIntDoubleMapping impl
     return new OrderedIntDoubleMapping(indices.clone(), values.clone(), 
numMappings);
   }
 
+  public void increment(int index, double increment) {
+    int offset = find(index);
+    if (offset >= 0) {
+      double newValue = values[offset] + increment;
+      insertOrUpdateValueIfPresent(offset, newValue);
+    } else {
+      double newValue = increment;
+      insertValueIfNotDefault(index, offset, newValue);
+    }
+  }
+
+  private void insertValueIfNotDefault(int index, int offset, double value) {
+    if (value != DEFAULT_VALUE) {
+      if (numMappings >= indices.length) {
+        growTo(Math.max((int) (1.2 * numMappings), numMappings + 1));
+      }
+      int at = -offset - 1;
+      if (numMappings > at) {
+        for (int i = numMappings - 1, j = numMappings; i >= at; i--, j--) {
+          indices[j] = indices[i];
+          values[j] = values[i];
+        }
+      }
+      indices[at] = index;
+      values[at] = value;
+      numMappings++;
+    }
+  }
+
+  private void insertOrUpdateValueIfPresent(int offset, double newValue) {
+    if (newValue == DEFAULT_VALUE) {
+      for (int i = offset + 1, j = offset; i < numMappings; i++, j++) {
+        indices[j] = indices[i];
+        values[j] = values[i];
+      }
+      numMappings--;
+    } else {
+      values[offset] = newValue;
+    }
+  }
 }

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/RandomAccessSparseVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/RandomAccessSparseVector.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- 
mahout/trunk/math/src/main/java/org/apache/mahout/math/RandomAccessSparseVector.java
 (original)
+++ 
mahout/trunk/math/src/main/java/org/apache/mahout/math/RandomAccessSparseVector.java
 Thu Apr 18 19:39:21 2013
@@ -141,6 +141,13 @@ public class RandomAccessSparseVector ex
   }
 
   @Override
+  public void incrementQuick(int index, double increment) {
+    invalidateCachedLength();
+    values.adjustOrPutValue(index, increment, increment);
+  }
+
+
+  @Override
   public RandomAccessSparseVector like() {
     return new RandomAccessSparseVector(size(), values.size());
   }

Modified: 
mahout/trunk/math/src/main/java/org/apache/mahout/math/SequentialAccessSparseVector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/SequentialAccessSparseVector.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- 
mahout/trunk/math/src/main/java/org/apache/mahout/math/SequentialAccessSparseVector.java
 (original)
+++ 
mahout/trunk/math/src/main/java/org/apache/mahout/math/SequentialAccessSparseVector.java
 Thu Apr 18 19:39:21 2013
@@ -191,6 +191,12 @@ public class SequentialAccessSparseVecto
   }
 
   @Override
+  public void incrementQuick(int index, double increment) {
+    invalidateCachedLength();
+    values.increment(index, increment);
+  }
+
+  @Override
   public SequentialAccessSparseVector like() {
     return new SequentialAccessSparseVector(size(), values.getNumMappings());
   }

Modified: mahout/trunk/math/src/main/java/org/apache/mahout/math/Vector.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/Vector.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/Vector.java 
(original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/Vector.java Thu Apr 
18 19:39:21 2013
@@ -298,6 +298,14 @@ public interface Vector extends Cloneabl
   void setQuick(int index, double value);
 
   /**
+   * Increment the value at the given index by the given value.
+   *
+   * @param index an int index into the receiver
+   * @param increment sets the value at the given index to value + increment;
+   */
+  void incrementQuick(int index, double increment);
+
+  /**
    * Return the number of values in the recipient which are not the default 
value.  For instance, for a
    * sparse vector, this would be the number of non-zero values.
    *

Modified: 
mahout/trunk/math/src/test/java/org/apache/mahout/math/FileBasedSparseBinaryMatrixTest.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/FileBasedSparseBinaryMatrixTest.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- 
mahout/trunk/math/src/test/java/org/apache/mahout/math/FileBasedSparseBinaryMatrixTest.java
 (original)
+++ 
mahout/trunk/math/src/test/java/org/apache/mahout/math/FileBasedSparseBinaryMatrixTest.java
 Thu Apr 18 19:39:21 2013
@@ -17,16 +17,16 @@
 
 package org.apache.mahout.math;
 
-import org.apache.mahout.common.RandomUtils;
-import org.junit.Test;
-
 import java.io.File;
 import java.io.IOException;
 import java.util.Random;
 
+import org.apache.mahout.common.RandomUtils;
+import org.junit.Test;
+
 public class FileBasedSparseBinaryMatrixTest extends MahoutTestCase {
-  
-  /*  
+
+  /*
   // 10 million rows x 40 columns x 8 bytes = 3.2GB of data
   // we need >2GB to stress the file based matrix implementation
   private static final int ROWS = 10 * 1000 * 1000;
@@ -92,6 +92,4 @@ public class FileBasedSparseBinaryMatrix
       assertEquals(0, error, 1.0e-14);
     }
   }
-
-
 }

Modified: 
mahout/trunk/math/src/test/java/org/apache/mahout/math/TestVectorView.java
URL: 
http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/TestVectorView.java?rev=1469535&r1=1469534&r2=1469535&view=diff
==============================================================================
--- mahout/trunk/math/src/test/java/org/apache/mahout/math/TestVectorView.java 
(original)
+++ mahout/trunk/math/src/test/java/org/apache/mahout/math/TestVectorView.java 
Thu Apr 18 19:39:21 2013
@@ -17,12 +17,12 @@
 
 package org.apache.mahout.math;
 
+import java.util.Iterator;
+
 import org.apache.mahout.math.function.Functions;
 import org.apache.mahout.math.function.TimesFunction;
 import org.junit.Test;
 
-import java.util.Iterator;
-
 public final class TestVectorView extends MahoutTestCase {
 
   private static final int CARDINALITY = 3;


Reply via email to