You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by sr...@apache.org on 2009/07/06 20:36:46 UTC
svn commit: r791560 -
/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/
Author: srowen
Date: Mon Jul 6 18:36:45 2009
New Revision: 791560
URL: http://svn.apache.org/viewvc?rev=791560&view=rev
Log:
MAHOUT-65 clone fixes
Modified:
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractMatrix.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractVector.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/DenseMatrix.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/DenseVector.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/MatrixView.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/OrderedIntDoubleMapping.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseColumnMatrix.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseMatrix.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseRowMatrix.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseVector.java
lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/VectorView.java
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractMatrix.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractMatrix.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractMatrix.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractMatrix.java Mon Jul 6 18:36:45 2009
@@ -239,7 +239,21 @@
}
@Override
- public abstract Matrix clone();
+ public Matrix clone() {
+ AbstractMatrix clone;
+ try {
+ clone = (AbstractMatrix) super.clone();
+ } catch (CloneNotSupportedException cnse) {
+ throw new IllegalStateException(cnse); // can't happen
+ }
+ if (rowLabelBindings != null) {
+ clone.rowLabelBindings = (Map<String,Integer>) ((HashMap<String,Integer>) rowLabelBindings).clone();
+ }
+ if (columnLabelBindings != null) {
+ clone.columnLabelBindings = (Map<String,Integer>) ((HashMap<String,Integer>) columnLabelBindings).clone();
+ }
+ return clone;
+ }
@Override
public Matrix divide(double x) {
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractVector.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractVector.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractVector.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/AbstractVector.java Mon Jul 6 18:36:45 2009
@@ -64,9 +64,20 @@
public abstract Vector.Element getElement(int index);
-
@Override
- public abstract Vector clone();
+ public Vector clone() {
+ AbstractVector clone;
+ try {
+ clone = (AbstractVector) super.clone();
+ } catch (CloneNotSupportedException cnse) {
+ throw new IllegalStateException(cnse); // Can't happen
+ }
+ if (bindings != null) {
+ clone.bindings = (Map<String,Integer>) ((HashMap<String,Integer>) bindings).clone();
+ }
+ // name is OK
+ return clone;
+ }
@Override
public Vector divide(double x) {
@@ -343,12 +354,7 @@
@Override
public void setName(String name) {
this.name = name;
-
- }/*
- * (non-Javadoc)
- *
- * @see org.apache.mahout.matrix.Vector#asFormatString()
- */
+ }
@Override
public String asFormatString() {
@@ -429,11 +435,6 @@
return true;
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.mahout.matrix.Vector#get(java.lang.String)
- */
@Override
public double get(String label) throws IndexException, UnboundLabelException {
if (bindings == null)
@@ -444,21 +445,11 @@
return get(index);
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.mahout.matrix.Vector#getLabelBindings()
- */
@Override
public Map<String, Integer> getLabelBindings() {
return bindings;
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.mahout.matrix.Vector#set(java.lang.String, double)
- */
@Override
public void set(String label, double value) throws IndexException,
UnboundLabelException {
@@ -470,21 +461,11 @@
set(index, value);
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.mahout.matrix.Vector#setLabelBindings(java.util.Map)
- */
@Override
public void setLabelBindings(Map<String, Integer> bindings) {
this.bindings = bindings;
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.mahout.matrix.Vector#set(java.lang.String, int, double)
- */
@Override
public void set(String label, int index, double value) throws IndexException {
if (bindings == null)
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/DenseMatrix.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/DenseMatrix.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/DenseMatrix.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/DenseMatrix.java Mon Jul 6 18:36:45 2009
@@ -48,10 +48,10 @@
*/
public DenseMatrix(double[][] values) {
// clone the rows
- this.values = values.clone();
+ this.values = new double[values.length][];
// be careful, need to clone the columns too
for (int i = 0; i < values.length; i++)
- this.values[i] = this.values[i].clone();
+ this.values[i] = values[i].clone();
}
/**
@@ -74,7 +74,12 @@
@Override
public Matrix clone() {
- return new DenseMatrix(values);
+ DenseMatrix clone = (DenseMatrix) super.clone();
+ clone.values = new double[values.length][];
+ for (int i = 0; i < values.length; i++) {
+ clone.values[i] = values[i].clone();
+ }
+ return clone;
}
@Override
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/DenseVector.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/DenseVector.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/DenseVector.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/DenseVector.java Mon Jul 6 18:36:45 2009
@@ -28,6 +28,8 @@
*/
public class DenseVector extends AbstractVector {
+ private double[] values;
+
/** For serialization purposes only */
public DenseVector() {
}
@@ -36,8 +38,6 @@
super(name);
}
- private double[] values;
-
/**
* Construct a new instance using provided values
*
@@ -78,9 +78,9 @@
@Override
public DenseVector clone() {
- DenseVector denseVector = new DenseVector(values);
- denseVector.setLabelBindings(getLabelBindings());
- return denseVector;
+ DenseVector clone = (DenseVector) super.clone();
+ clone.values = values.clone();
+ return clone;
}
@Override
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/MatrixView.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/MatrixView.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/MatrixView.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/MatrixView.java Mon Jul 6 18:36:45 2009
@@ -58,7 +58,11 @@
@Override
public Matrix clone() {
- return new MatrixView(matrix.clone(), offset, cardinality);
+ MatrixView clone = (MatrixView) super.clone();
+ clone.matrix = matrix.clone();
+ clone.offset = offset.clone();
+ clone.cardinality = cardinality.clone();
+ return clone;
}
@Override
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/OrderedIntDoubleMapping.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/OrderedIntDoubleMapping.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/OrderedIntDoubleMapping.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/OrderedIntDoubleMapping.java Mon Jul 6 18:36:45 2009
@@ -154,7 +154,7 @@
}
@Override
- public Object clone() {
+ public OrderedIntDoubleMapping clone() {
OrderedIntDoubleMapping clone = new OrderedIntDoubleMapping(numMappings);
System.arraycopy(indices, 0, clone.indices, 0, numMappings);
System.arraycopy(values, 0, clone.values, 0, numMappings);
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseColumnMatrix.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseColumnMatrix.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseColumnMatrix.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseColumnMatrix.java Mon Jul 6 18:36:45 2009
@@ -67,10 +67,13 @@
@Override
public Matrix clone() {
- SparseColumnMatrix copy = new SparseColumnMatrix(cardinality);
- for (int col = 0; col < cardinality[COL]; col++)
- copy.columns[col] = columns[col].clone();
- return copy;
+ SparseColumnMatrix clone = (SparseColumnMatrix) super.clone();
+ clone.cardinality = cardinality.clone();
+ clone.columns = new Vector[columns.length];
+ for (int i = 0; i < columns.length; i++) {
+ clone.columns[i] = columns[i].clone();
+ }
+ return clone;
}
@Override
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseMatrix.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseMatrix.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseMatrix.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseMatrix.java Mon Jul 6 18:36:45 2009
@@ -28,14 +28,14 @@
*/
public class SparseMatrix extends AbstractMatrix {
- public SparseMatrix() {
- super();
- }
-
private int[] cardinality;
private Map<Integer, Vector> rows;
+ public SparseMatrix() {
+ super();
+ }
+
/**
* Construct a matrix of the given cardinality with the given row map
*
@@ -66,10 +66,10 @@
@Override
public Matrix clone() {
- SparseMatrix copy = new SparseMatrix(cardinality);
- for (Map.Entry<Integer, Vector> entry : rows.entrySet())
- copy.rows.put(entry.getKey(), entry.getValue().clone());
- return copy;
+ SparseMatrix clone = (SparseMatrix) super.clone();
+ clone.cardinality = cardinality.clone();
+ clone.rows = (Map<Integer,Vector>) ((HashMap<Integer,Vector>) rows).clone();
+ return clone;
}
@Override
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseRowMatrix.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseRowMatrix.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseRowMatrix.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseRowMatrix.java Mon Jul 6 18:36:45 2009
@@ -67,10 +67,13 @@
@Override
public Matrix clone() {
- SparseRowMatrix copy = new SparseRowMatrix(cardinality);
- for (int row = 0; row < cardinality[ROW]; row++)
- copy.rows[row] = rows[row].clone();
- return copy;
+ SparseRowMatrix clone = (SparseRowMatrix) super.clone();
+ clone.cardinality = cardinality.clone();
+ clone.rows = new Vector[rows.length];
+ for (int i = 0; i < rows.length; i++) {
+ clone.rows[i] = rows[i].clone();
+ }
+ return clone;
}
@Override
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseVector.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseVector.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseVector.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/SparseVector.java Mon Jul 6 18:36:45 2009
@@ -28,16 +28,16 @@
*/
public class SparseVector extends AbstractVector {
+ private OrderedIntDoubleMapping values;
+
+ private int cardinality;
+
/**
* For serialization purposes only.
*/
public SparseVector() {
}
- private OrderedIntDoubleMapping values;
-
- private int cardinality;
-
public SparseVector(int cardinality, int size) {
this(null, cardinality, size);
}
@@ -71,9 +71,9 @@
@Override
public SparseVector clone() {
- SparseVector result = like();
- result.values = (OrderedIntDoubleMapping) values.clone();
- return result;
+ SparseVector clone = (SparseVector) super.clone();
+ clone.values = values.clone();
+ return clone;
}
@Override
Modified: lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/VectorView.java
URL: http://svn.apache.org/viewvc/lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/VectorView.java?rev=791560&r1=791559&r2=791560&view=diff
==============================================================================
--- lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/VectorView.java (original)
+++ lucene/mahout/trunk/core/src/main/java/org/apache/mahout/matrix/VectorView.java Mon Jul 6 18:36:45 2009
@@ -28,10 +28,6 @@
*/
public class VectorView extends AbstractVector {
- /** For serialization purposes only */
- public VectorView() {
- }
-
private Vector vector;
// the offset into the Vector
@@ -40,6 +36,10 @@
// the cardinality of the view
private int cardinality;
+ /** For serialization purposes only */
+ public VectorView() {
+ }
+
public VectorView(Vector vector, int offset, int cardinality) {
this.vector = vector;
this.offset = offset;
@@ -58,7 +58,9 @@
@Override
public Vector clone() {
- return new VectorView(vector.clone(), offset, cardinality);
+ VectorView clone = (VectorView) super.clone();
+ clone.vector = vector.clone();
+ return clone;
}
@Override