You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2009/02/04 14:59:51 UTC
svn commit: r740744 - in /commons/proper/math/trunk/src:
java/org/apache/commons/math/linear/ test/org/apache/commons/math/linear/
Author: luc
Date: Wed Feb 4 13:59:50 2009
New Revision: 740744
URL: http://svn.apache.org/viewvc?rev=740744&view=rev
Log:
improved consistency between RealVector and RealMatrix API
JIRA: MATH-245
Modified:
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVector.java
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVectorImpl.java
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java
commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SparseRealVector.java
commons/proper/math/trunk/src/test/org/apache/commons/math/linear/RealVectorImplTest.java
commons/proper/math/trunk/src/test/org/apache/commons/math/linear/SparseRealVectorTest.java
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVector.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVector.java?rev=740744&r1=740743&r2=740744&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVector.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVector.java Wed Feb 4 13:59:50 2009
@@ -696,11 +696,23 @@
* @param index index location of entry to be fetched
* @return vector entry at index
* @throws MatrixIndexException if the index is not valid
+ * @see #setEntry(int, double)
*/
double getEntry(int index)
throws MatrixIndexException;
/**
+ * Set a single element.
+ * @param index element index.
+ * @param value new value for the element.
+ * @exception MatrixIndexException if the index is
+ * inconsistent with vector size
+ * @see #getEntry(int)
+ */
+ void setEntry(int index, double value)
+ throws MatrixIndexException;
+
+ /**
* Returns the size of the vector.
* @return size
*/
@@ -735,17 +747,7 @@
* @exception MatrixIndexException if the index is
* inconsistent with vector size
*/
- RealVector get(int index, int n)
- throws MatrixIndexException;
-
- /**
- * Set a single element.
- * @param index element index.
- * @param value new value for the element.
- * @exception MatrixIndexException if the index is
- * inconsistent with vector size
- */
- void set(int index, double value)
+ RealVector getSubVector(int index, int n)
throws MatrixIndexException;
/**
@@ -754,8 +756,9 @@
* @param v vector containing the values to set.
* @exception MatrixIndexException if the index is
* inconsistent with vector size
+ * @see #setSubVector(int, double[])
*/
- void set(int index, RealVector v)
+ void setSubVector(int index, RealVector v)
throws MatrixIndexException;
/**
@@ -764,8 +767,9 @@
* @param v vector containing the values to set.
* @exception MatrixIndexException if the index is
* inconsistent with vector size
+ * @see #setSubVector(int, RealVector)
*/
- void set(int index, double[] v)
+ void setSubVector(int index, double[] v)
throws MatrixIndexException;
/**
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVectorImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVectorImpl.java?rev=740744&r1=740743&r2=740744&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVectorImpl.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/RealVectorImpl.java Wed Feb 4 13:59:50 2009
@@ -1190,7 +1190,7 @@
}
/** {@inheritDoc} */
- public RealVector get(int index, int n) {
+ public RealVector getSubVector(int index, int n) {
RealVectorImpl out = new RealVectorImpl(n);
try {
System.arraycopy(data, index, out.data, 0, n);
@@ -1202,7 +1202,7 @@
}
/** {@inheritDoc} */
- public void set(int index, double value) {
+ public void setEntry(int index, double value) {
try {
data[index] = value;
} catch (IndexOutOfBoundsException e) {
@@ -1211,7 +1211,7 @@
}
/** {@inheritDoc} */
- public void set(int index, RealVector v) {
+ public void setSubVector(int index, RealVector v) {
try {
try {
set(index, (RealVectorImpl) v);
@@ -1227,7 +1227,7 @@
}
/** {@inheritDoc} */
- public void set(int index, double[] v) {
+ public void setSubVector(int index, double[] v) {
try {
System.arraycopy(v, 0, data, index, v.length);
} catch (IndexOutOfBoundsException e) {
@@ -1246,7 +1246,7 @@
*/
public void set(int index, RealVectorImpl v)
throws MatrixIndexException {
- set(index, v.data);
+ setSubVector(index, v.data);
}
/** {@inheritDoc} */
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java?rev=740744&r1=740743&r2=740744&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SingularValueDecompositionImpl.java Wed Feb 4 13:59:50 2009
@@ -372,7 +372,7 @@
if (si == 0) {
throw new SingularMatrixException();
}
- w.set(i, w.getEntry(i) / si);
+ w.setEntry(i, w.getEntry(i) / si);
}
return v.operate(w);
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SparseRealVector.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SparseRealVector.java?rev=740744&r1=740743&r2=740744&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SparseRealVector.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/linear/SparseRealVector.java Wed Feb 4 13:59:50 2009
@@ -238,7 +238,7 @@
iter.advance();
int key = iter.key();
if (v.getEntries().containsKey(key)) {
- res.set(key, iter.value() + v.getEntry(key));
+ res.setEntry(key, iter.value() + v.getEntry(key));
}
}
iter = v.getEntries().iterator();
@@ -246,7 +246,7 @@
iter.advance();
int key = iter.key();
if (!entries.containsKey(key)) {
- res.set(key, iter.value());
+ res.setEntry(key, iter.value());
}
}
return res;
@@ -257,7 +257,7 @@
checkVectorDimensions(v.length);
SparseRealVector res = new SparseRealVector(getDimension());
for (int i = 0; i < v.length; i++) {
- res.set(i, v[i] + getEntry(i));
+ res.setEntry(i, v[i] + getEntry(i));
}
return res;
}
@@ -272,7 +272,7 @@
Iterator iter = v.entries.iterator();
while (iter.hasNext()) {
iter.advance();
- res.set(iter.key() + virtualSize, iter.value());
+ res.setEntry(iter.key() + virtualSize, iter.value());
}
return res;
}
@@ -288,7 +288,7 @@
/** {@inheritDoc} */
public RealVector append(double d) {
RealVector res = new SparseRealVector(this, 1);
- res.set(virtualSize, d);
+ res.setEntry(virtualSize, d);
return res;
}
@@ -296,7 +296,7 @@
public RealVector append(double[] a) {
RealVector res = new SparseRealVector(this, a.length);
for (int i = 0; i < a.length; i++) {
- res.set(i + virtualSize, a[i]);
+ res.setEntry(i + virtualSize, a[i]);
}
return res;
}
@@ -340,7 +340,7 @@
Iterator iter = res.entries.iterator();
while (iter.hasNext()) {
iter.advance();
- res.set(iter.key(), iter.value() / v.getEntry(iter.key()));
+ res.setEntry(iter.key(), iter.value() / v.getEntry(iter.key()));
}
return res;
}
@@ -352,7 +352,7 @@
Iterator iter = res.entries.iterator();
while (iter.hasNext()) {
iter.advance();
- res.set(iter.key(), iter.value() / v[iter.key()]);
+ res.setEntry(iter.key(), iter.value() / v[iter.key()]);
}
return null;
}
@@ -364,7 +364,7 @@
Iterator iter = res.entries.iterator();
while (iter.hasNext()) {
iter.advance();
- res.set(iter.key(), iter.value() * v.getEntry(iter.key()));
+ res.setEntry(iter.key(), iter.value() * v.getEntry(iter.key()));
}
return res;
}
@@ -376,13 +376,13 @@
Iterator iter = res.entries.iterator();
while (iter.hasNext()) {
iter.advance();
- res.set(iter.key(), iter.value() * v[iter.key()]);
+ res.setEntry(iter.key(), iter.value() * v[iter.key()]);
}
return res;
}
/** {@inheritDoc} */
- public RealVector get(int index, int n) throws MatrixIndexException {
+ public RealVector getSubVector(int index, int n) throws MatrixIndexException {
checkIndex(index);
checkIndex(index+n-1);
SparseRealVector res = new SparseRealVector(n);
@@ -392,7 +392,7 @@
iter.advance();
int key = iter.key();
if (key >= index && key < end) {
- res.set(key - index, iter.value());
+ res.setEntry(key - index, iter.value());
}
}
return res;
@@ -632,7 +632,7 @@
/** {@inheritDoc} */
public RealVector mapAcosToSelf() {
for(int i=0; i < virtualSize; i++){
- set(i, Math.acos(getEntry(i)));
+ setEntry(i, Math.acos(getEntry(i)));
}
return this;
}
@@ -645,7 +645,7 @@
/** {@inheritDoc} */
public RealVector mapAddToSelf(double d) {
for (int i = 0; i < virtualSize; i++) {
- set(i, getEntry(i) + d);
+ setEntry(i, getEntry(i) + d);
}
return this;
}
@@ -806,7 +806,7 @@
/** {@inheritDoc} */
public RealVector mapInvToSelf() {
for(int i=0; i < virtualSize; i++){
- set(i, 1.0/getEntry(i));
+ setEntry(i, 1.0/getEntry(i));
}
return this;
}
@@ -824,7 +824,7 @@
/** {@inheritDoc} */
public RealVector mapLog10ToSelf() {
for(int i=0; i < virtualSize; i++){
- set(i, Math.log10(getEntry(i)));
+ setEntry(i, Math.log10(getEntry(i)));
}
return this;
}
@@ -847,7 +847,7 @@
/** {@inheritDoc} */
public RealVector mapLogToSelf() {
for(int i=0; i < virtualSize; i++){
- set(i, Math.log(getEntry(i)));
+ setEntry(i, Math.log(getEntry(i)));
}
return this;
}
@@ -1080,7 +1080,7 @@
}
/** {@inheritDoc} */
- public void set(int index, double value) throws MatrixIndexException {
+ public void setEntry(int index, double value) throws MatrixIndexException {
checkIndex(index);
if (!isZero(value)) {
entries.put(index, value);
@@ -1090,25 +1090,25 @@
}
/** {@inheritDoc} */
- public void set(int index, RealVector v) throws MatrixIndexException {
+ public void setSubVector(int index, RealVector v) throws MatrixIndexException {
checkIndex(index);
checkIndex(index + v.getDimension() - 1);
- set(index, v.getData());
+ setSubVector(index, v.getData());
}
/** {@inheritDoc} */
- public void set(int index, double[] v) throws MatrixIndexException {
+ public void setSubVector(int index, double[] v) throws MatrixIndexException {
checkIndex(index);
checkIndex(index + v.length - 1);
for (int i = 0; i < v.length; i++) {
- set(i + index, v[i]);
+ setEntry(i + index, v[i]);
}
}
/** {@inheritDoc} */
public void set(double value) {
for(int i=0; i < virtualSize; i++){
- set(i, value);
+ setEntry(i, value);
}
}
@@ -1145,9 +1145,9 @@
SparseRealVector res = new SparseRealVector(this);
for (int i = 0; i < v.length; i++) {
if (entries.containsKey(i)) {
- res.set(i, entries.get(i) - v[i]);
+ res.setEntry(i, entries.get(i) - v[i]);
} else {
- res.set(i, -v[i]);
+ res.setEntry(i, -v[i]);
}
}
return res;
Modified: commons/proper/math/trunk/src/test/org/apache/commons/math/linear/RealVectorImplTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/linear/RealVectorImplTest.java?rev=740744&r1=740743&r2=740744&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/org/apache/commons/math/linear/RealVectorImplTest.java (original)
+++ commons/proper/math/trunk/src/test/org/apache/commons/math/linear/RealVectorImplTest.java Wed Feb 4 13:59:50 2009
@@ -424,19 +424,19 @@
throw unsupported();
}
- public RealVector get(int index, int n) throws MatrixIndexException {
+ public RealVector getSubVector(int index, int n) throws MatrixIndexException {
throw unsupported();
}
- public void set(int index, double value) throws MatrixIndexException {
+ public void setEntry(int index, double value) throws MatrixIndexException {
throw unsupported();
}
- public void set(int index, RealVector v) throws MatrixIndexException {
+ public void setSubVector(int index, RealVector v) throws MatrixIndexException {
throw unsupported();
}
- public void set(int index, double[] v) throws MatrixIndexException {
+ public void setSubVector(int index, double[] v) throws MatrixIndexException {
throw unsupported();
}
@@ -576,11 +576,11 @@
// assertEquals("testData not same object ", v1.data, vout4.data);
- RealVector vout5 = v4.get(3, 3);
+ RealVector vout5 = v4.getSubVector(3, 3);
assertEquals("testData len", 3, vout5.getDimension());
assertEquals("testData is 4.0 ", 5.0, vout5.getEntry(1));
try {
- v4.get(3, 7);
+ v4.getSubVector(3, 7);
fail("MatrixIndexException expected");
} catch (MatrixIndexException ex) {
// expected behavior
@@ -589,10 +589,10 @@
}
RealVectorImpl v_set1 = (RealVectorImpl) v1.copy();
- v_set1.set(1, 11.0);
+ v_set1.setEntry(1, 11.0);
assertEquals("testData is 11.0 ", 11.0, v_set1.getEntry(1));
try {
- v_set1.set(3, 11.0);
+ v_set1.setEntry(3, 11.0);
fail("MatrixIndexException expected");
} catch (MatrixIndexException ex) {
// expected behavior
@@ -627,11 +627,11 @@
}
RealVectorImpl v_set4 = (RealVectorImpl) v4.copy();
- v_set4.set(3, v2_t);
+ v_set4.setSubVector(3, v2_t);
assertEquals("testData is 1.0 ", 4.0, v_set4.getEntry(3));
assertEquals("testData is 7.0 ", 7.0, v_set4.getEntry(6));
try {
- v_set4.set(7, v2_t);
+ v_set4.setSubVector(7, v2_t);
fail("MatrixIndexException expected");
} catch (MatrixIndexException ex) {
// expected behavior
@@ -643,7 +643,7 @@
RealVectorImpl vout10 = (RealVectorImpl) v1.copy();
RealVectorImpl vout10_2 = (RealVectorImpl) v1.copy();
assertEquals(vout10, vout10_2);
- vout10_2.set(0, 1.1);
+ vout10_2.setEntry(0, 1.1);
assertNotSame(vout10, vout10_2);
}
@@ -1147,16 +1147,16 @@
RealVectorImpl v = new RealVectorImpl(new double[] { 0, 1, 2 });
assertFalse(v.isNaN());
- v.set(1, Double.NaN);
+ v.setEntry(1, Double.NaN);
assertTrue(v.isNaN());
assertFalse(v.isInfinite());
- v.set(0, Double.POSITIVE_INFINITY);
+ v.setEntry(0, Double.POSITIVE_INFINITY);
assertFalse(v.isInfinite());
- v.set(1, 1);
+ v.setEntry(1, 1);
assertTrue(v.isInfinite());
- v.set(0, 0);
+ v.setEntry(0, 0);
assertEquals(v, new RealVectorImpl(new double[] { 0, 1, 2 }));
assertNotSame(v, new RealVectorImpl(new double[] { 0, 1, 2 + Math.ulp(2)}));
assertNotSame(v, new RealVectorImpl(new double[] { 0, 1, 2, 3 }));
Modified: commons/proper/math/trunk/src/test/org/apache/commons/math/linear/SparseRealVectorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/org/apache/commons/math/linear/SparseRealVectorTest.java?rev=740744&r1=740743&r2=740744&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/org/apache/commons/math/linear/SparseRealVectorTest.java (original)
+++ commons/proper/math/trunk/src/test/org/apache/commons/math/linear/SparseRealVectorTest.java Wed Feb 4 13:59:50 2009
@@ -424,19 +424,19 @@
throw unsupported();
}
- public RealVector get(int index, int n) throws MatrixIndexException {
+ public RealVector getSubVector(int index, int n) throws MatrixIndexException {
throw unsupported();
}
- public void set(int index, double value) throws MatrixIndexException {
+ public void setEntry(int index, double value) throws MatrixIndexException {
throw unsupported();
}
- public void set(int index, RealVector v) throws MatrixIndexException {
+ public void setSubVector(int index, RealVector v) throws MatrixIndexException {
throw unsupported();
}
- public void set(int index, double[] v) throws MatrixIndexException {
+ public void setSubVector(int index, double[] v) throws MatrixIndexException {
throw unsupported();
}
@@ -580,11 +580,11 @@
// assertEquals("testData not same object ", v1.data, vout4.data);
- RealVector vout5 = v4.get(3, 3);
+ RealVector vout5 = v4.getSubVector(3, 3);
assertEquals("testData len", 3, vout5.getDimension());
assertEquals("testData is 4.0 ", 5.0, vout5.getEntry(1));
try {
- v4.get(3, 7);
+ v4.getSubVector(3, 7);
fail("MatrixIndexException expected");
} catch (MatrixIndexException ex) {
// expected behavior
@@ -593,10 +593,10 @@
}
SparseRealVector v_set1 = (SparseRealVector) v1.copy();
- v_set1.set(1, 11.0);
+ v_set1.setEntry(1, 11.0);
assertEquals("testData is 11.0 ", 11.0, v_set1.getEntry(1));
try {
- v_set1.set(3, 11.0);
+ v_set1.setEntry(3, 11.0);
fail("MatrixIndexException expected");
} catch (MatrixIndexException ex) {
// expected behavior
@@ -605,11 +605,11 @@
}
SparseRealVector v_set2 = (SparseRealVector) v4.copy();
- v_set2.set(3, v1);
+ v_set2.setSubVector(3, v1);
assertEquals("testData is 1.0 ", 1.0, v_set2.getEntry(3));
assertEquals("testData is 7.0 ", 7.0, v_set2.getEntry(6));
try {
- v_set2.set(7, v1);
+ v_set2.setSubVector(7, v1);
fail("MatrixIndexException expected");
} catch (MatrixIndexException ex) {
// expected behavior
@@ -631,11 +631,11 @@
}
SparseRealVector v_set4 = (SparseRealVector) v4.copy();
- v_set4.set(3, v2_t);
+ v_set4.setSubVector(3, v2_t);
assertEquals("testData is 1.0 ", 4.0, v_set4.getEntry(3));
assertEquals("testData is 7.0 ", 7.0, v_set4.getEntry(6));
try {
- v_set4.set(7, v2_t);
+ v_set4.setSubVector(7, v2_t);
fail("MatrixIndexException expected");
} catch (MatrixIndexException ex) {
// expected behavior
@@ -1154,17 +1154,17 @@
SparseRealVector v = new SparseRealVector(new double[] { 0, 1, 2 });
assertFalse(v.isNaN());
- v.set(1, Double.NaN);
+ v.setEntry(1, Double.NaN);
assertTrue(v.isNaN());
assertFalse(v.isInfinite());
- v.set(0, Double.POSITIVE_INFINITY);
+ v.setEntry(0, Double.POSITIVE_INFINITY);
// TODO: fixme
//assertFalse(v.isInfinite());
- v.set(1, 1);
+ v.setEntry(1, 1);
assertTrue(v.isInfinite());
- v.set(0, 0);
+ v.setEntry(0, 0);
// TODO: backing store doesn't yet implement equals
//assertEquals(v, new SparseRealVector(new double[] { 0, 1, 2 }));
//assertNotSame(v, new SparseRealVector(new double[] { 0, 1, 2 + Math.ulp(2)}));