You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bi...@apache.org on 2009/05/25 01:27:03 UTC
svn commit: r778256 - in /commons/proper/math/trunk/src:
java/org/apache/commons/math/linear/ test/org/apache/commons/math/linear/
Author: billbarker
Date: Sun May 24 23:27:03 2009
New Revision: 778256
URL: http://svn.apache.org/viewvc?rev=778256&view=rev
Log:
Serializable changes for FieldVector and FieldMatrix
Modified:
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/AbstractFieldMatrix.java
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/DenseFieldMatrix.java
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldMatrix.java
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldMatrixImpl.java
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldVector.java
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldVectorImpl.java
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SparseFieldVector.java
commons/proper/math/trunk/src/test/org/apache/commons/math/linear/DenseFieldMatrixTest.java
commons/proper/math/trunk/src/test/org/apache/commons/math/linear/FieldMatrixImplTest.java
commons/proper/math/trunk/src/test/org/apache/commons/math/linear/FieldVectorImplTest.java
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/AbstractFieldMatrix.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/AbstractFieldMatrix.java?rev=778256&r1=778255&r2=778256&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/AbstractFieldMatrix.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/AbstractFieldMatrix.java Sun May 24 23:27:03 2009
@@ -17,7 +17,6 @@
package org.apache.commons.math.linear;
-import java.io.Serializable;
import java.lang.reflect.Array;
import java.util.Arrays;
@@ -35,11 +34,8 @@
* @version $Revision$ $Date$
* @since 2.0
*/
-public abstract class AbstractFieldMatrix<T extends FieldElement<T>> implements FieldMatrix<T>, Serializable {
+public abstract class AbstractFieldMatrix<T extends FieldElement<T>> implements FieldMatrix<T> {
- /** Serializable version identifier. */
- private static final long serialVersionUID = -3665653040524315561L;
-
/** Field to which the elements belong. */
private final Field<T> field;
@@ -121,6 +117,13 @@
}
/**
+ * Constructor for use with Serializable
+ */
+ protected AbstractFieldMatrix() {
+ field = null;
+ }
+
+ /**
* Creates a matrix with no data
* @param field field to which the elements belong
*/
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/DenseFieldMatrix.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/DenseFieldMatrix.java?rev=778256&r1=778255&r2=778256&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/DenseFieldMatrix.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/DenseFieldMatrix.java Sun May 24 23:27:03 2009
@@ -17,6 +17,8 @@
package org.apache.commons.math.linear;
+import java.io.Serializable;
+
import org.apache.commons.math.Field;
import org.apache.commons.math.FieldElement;
import org.apache.commons.math.MathRuntimeException;
@@ -61,7 +63,7 @@
* @version $Revision$ $Date$
* @since 2.0
*/
-public class DenseFieldMatrix<T extends FieldElement<T>> extends AbstractFieldMatrix<T> {
+public class DenseFieldMatrix<T extends FieldElement<T>> extends AbstractFieldMatrix<T> implements Serializable {
/** Serializable version identifier */
private static final long serialVersionUID = -4602336630143123183L;
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldMatrix.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldMatrix.java?rev=778256&r1=778255&r2=778256&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldMatrix.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldMatrix.java Sun May 24 23:27:03 2009
@@ -17,7 +17,6 @@
package org.apache.commons.math.linear;
-import java.io.Serializable;
import org.apache.commons.math.Field;
import org.apache.commons.math.FieldElement;
@@ -32,7 +31,7 @@
* @param <T> the type of the field elements
* @version $Revision$ $Date$
*/
-public interface FieldMatrix<T extends FieldElement<T>> extends AnyMatrix, Serializable {
+public interface FieldMatrix<T extends FieldElement<T>> extends AnyMatrix {
/**
* Get the type of field elements of the matrix.
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldMatrixImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldMatrixImpl.java?rev=778256&r1=778255&r2=778256&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldMatrixImpl.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldMatrixImpl.java Sun May 24 23:27:03 2009
@@ -17,6 +17,8 @@
package org.apache.commons.math.linear;
+import java.io.Serializable;
+
import org.apache.commons.math.Field;
import org.apache.commons.math.FieldElement;
import org.apache.commons.math.MathRuntimeException;
@@ -32,7 +34,7 @@
* @param <T> the type of the field elements
* @version $Revision$ $Date$
*/
-public class FieldMatrixImpl<T extends FieldElement<T>> extends AbstractFieldMatrix<T> {
+public class FieldMatrixImpl<T extends FieldElement<T>> extends AbstractFieldMatrix<T> implements Serializable {
/** Serializable version identifier */
private static final long serialVersionUID = 7260756672015356458L;
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldVector.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldVector.java?rev=778256&r1=778255&r2=778256&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldVector.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldVector.java Sun May 24 23:27:03 2009
@@ -16,8 +16,6 @@
*/
package org.apache.commons.math.linear;
-import java.io.Serializable;
-
import org.apache.commons.math.Field;
import org.apache.commons.math.FieldElement;
@@ -45,7 +43,7 @@
* @version $Revision$ $Date$
* @since 2.0
*/
-public interface FieldVector<T extends FieldElement<T>> extends Serializable {
+public interface FieldVector<T extends FieldElement<T>> {
/**
* Get the type of field elements of the vector.
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldVectorImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldVectorImpl.java?rev=778256&r1=778255&r2=778256&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldVectorImpl.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/FieldVectorImpl.java Sun May 24 23:27:03 2009
@@ -16,6 +16,7 @@
*/
package org.apache.commons.math.linear;
+import java.io.Serializable;
import java.lang.reflect.Array;
import java.util.Arrays;
@@ -29,7 +30,7 @@
* @version $Revision$ $Date$
* @since 2.0
*/
-public class FieldVectorImpl<T extends FieldElement<T>> implements FieldVector<T> {
+public class FieldVectorImpl<T extends FieldElement<T>> implements FieldVector<T>, Serializable {
/** Serializable version identifier. */
private static final long serialVersionUID = 7648186910365927050L;
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SparseFieldVector.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SparseFieldVector.java?rev=778256&r1=778255&r2=778256&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SparseFieldVector.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SparseFieldVector.java Sun May 24 23:27:03 2009
@@ -16,6 +16,7 @@
*/
package org.apache.commons.math.linear;
+import java.io.Serializable;
import java.lang.reflect.Array;
import org.apache.commons.math.Field;
@@ -28,7 +29,7 @@
* @version $Revision: 728186 $ $Date: 2009-04-25 12:39:38 -0700 (Sat, 25 Apr 2009) $
* @since 2.0
*/
-public class SparseFieldVector<T extends FieldElement<T>> implements FieldVector<T> {
+public class SparseFieldVector<T extends FieldElement<T>> implements FieldVector<T>, Serializable {
/**
* Serial version id
Modified: commons/proper/math/trunk/src/test/org/apache/commons/math/linear/DenseFieldMatrixTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/linear/DenseFieldMatrixTest.java?rev=778256&r1=778255&r2=778256&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/org/apache/commons/math/linear/DenseFieldMatrixTest.java (original)
+++ commons/proper/math/trunk/src/test/org/apache/commons/math/linear/DenseFieldMatrixTest.java Sun May 24 23:27:03 2009
@@ -16,6 +16,12 @@
*/
package org.apache.commons.math.linear;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.util.Arrays;
import java.util.Random;
@@ -1245,7 +1251,28 @@
}
}
-
+
+ @SuppressWarnings("unchecked")
+ public void testSerial() {
+ try {
+ File test = File.createTempFile("DFM",".ser");
+ ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(test));
+ DenseFieldMatrix<Fraction> m = new DenseFieldMatrix<Fraction>(testData);
+ out.writeObject(m);
+ out.close();
+ ObjectInputStream in = new ObjectInputStream(new FileInputStream(test));
+ DenseFieldMatrix<Fraction> nm = (DenseFieldMatrix<Fraction>)in.readObject();
+ in.close();
+ test.delete();
+ assertEquals(m,nm);
+
+ } catch (IOException e) {
+ fail("IOException: "+e);
+ } catch (ClassNotFoundException e) {
+ fail("Can't happen: "+e);
+ }
+ }
+
private static class SetVisitor extends DefaultFieldMatrixChangingVisitor<Fraction> {
public SetVisitor() {
super(Fraction.ZERO);
Modified: commons/proper/math/trunk/src/test/org/apache/commons/math/linear/FieldMatrixImplTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/linear/FieldMatrixImplTest.java?rev=778256&r1=778255&r2=778256&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/org/apache/commons/math/linear/FieldMatrixImplTest.java (original)
+++ commons/proper/math/trunk/src/test/org/apache/commons/math/linear/FieldMatrixImplTest.java Sun May 24 23:27:03 2009
@@ -16,6 +16,13 @@
*/
package org.apache.commons.math.linear;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
@@ -931,7 +938,28 @@
}
}
-
+
+ @SuppressWarnings("unchecked")
+ public void testSerial() {
+ try {
+ File test = File.createTempFile("FMI",".ser");
+ ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(test));
+ FieldMatrixImpl<Fraction> m = new FieldMatrixImpl<Fraction>(testData);
+ out.writeObject(m);
+ out.close();
+ ObjectInputStream in = new ObjectInputStream(new FileInputStream(test));
+ FieldMatrixImpl<Fraction> nm = (FieldMatrixImpl<Fraction>)in.readObject();
+ in.close();
+ test.delete();
+ assertEquals(m,nm);
+
+ } catch (IOException e) {
+ fail("IOException: "+e);
+ } catch (ClassNotFoundException e) {
+ fail("Can't happen: "+e);
+ }
+ }
+
private static class SetVisitor extends DefaultFieldMatrixChangingVisitor<Fraction> {
public SetVisitor() {
super(Fraction.ZERO);
Modified: commons/proper/math/trunk/src/test/org/apache/commons/math/linear/FieldVectorImplTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/linear/FieldVectorImplTest.java?rev=778256&r1=778255&r2=778256&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/org/apache/commons/math/linear/FieldVectorImplTest.java (original)
+++ commons/proper/math/trunk/src/test/org/apache/commons/math/linear/FieldVectorImplTest.java Sun May 24 23:27:03 2009
@@ -16,6 +16,12 @@
*/
package org.apache.commons.math.linear;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.lang.reflect.Array;
@@ -612,6 +618,27 @@
}
+ @SuppressWarnings("unchecked")
+ public void testSerial() {
+ try {
+ File test = File.createTempFile("FVI",".ser");
+ ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(test));
+ FieldVectorImpl<Fraction> v = new FieldVectorImpl<Fraction>(vec1);
+ out.writeObject(v);
+ out.close();
+ ObjectInputStream in = new ObjectInputStream(new FileInputStream(test));
+ FieldVectorImpl<Fraction> nv = (FieldVectorImpl<Fraction>)in.readObject();
+ in.close();
+ test.delete();
+ assertEquals(v,nv);
+
+ } catch (IOException e) {
+ fail("IOException: "+e);
+ } catch (ClassNotFoundException e) {
+ fail("Can't happen: "+e);
+ }
+ }
+
/** verifies that two vectors are equals */
protected void checkArray(String msg, Fraction[] m, Fraction[] n) {
if (m.length != n.length) {