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;