You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2010/09/25 01:12:35 UTC
svn commit: r1001107 [1/2] - in /commons/proper/math/trunk/src:
main/java/org/apache/commons/math/exception/
main/java/org/apache/commons/math/exception/util/
main/java/org/apache/commons/math/linear/
main/resources/META-INF/localization/ site/xdoc/ te...
Author: erans
Date: Fri Sep 24 23:12:34 2010
New Revision: 1001107
URL: http://svn.apache.org/viewvc?rev=1001107&view=rev
Log:
Introduced "MatrixDimensionMismatchException" to replace "InvalidMatrixException"
whenever it was used to signal a row or column dimension mismatch.
"MessageFactory": Fixed wrong order of appearance of general and specific messages.
Added:
commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java (with props)
commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java (with props)
commons/proper/math/trunk/src/test/java/org/apache/commons/math/exception/MatrixDimensionMismatchExceptionTest.java (with props)
Modified:
commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/DimensionMismatchException.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/MessageFactory.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractRealMatrix.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockFieldMatrix.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockRealMatrix.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldMatrix.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/InvalidMatrixException.java
commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/RealMatrix.java
commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties
commons/proper/math/trunk/src/site/xdoc/changes.xml
commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/Array2DRowRealMatrixTest.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BlockFieldMatrixTest.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BlockRealMatrixTest.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/FieldMatrixImplTest.java
commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/RealMatrixImplTest.java
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/DimensionMismatchException.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/DimensionMismatchException.java?rev=1001107&r1=1001106&r2=1001107&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/DimensionMismatchException.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/DimensionMismatchException.java Fri Sep 24 23:12:34 2010
@@ -40,7 +40,9 @@ public class DimensionMismatchException
*/
public DimensionMismatchException(int wrong,
int expected) {
- super(LocalizedFormats.DIMENSIONS_MISMATCH_SIMPLE, wrong, expected);
+ super(LocalizedFormats.DIMENSIONS_MISMATCH_SIMPLE,
+ LocalizedFormats.DIMENSIONS_MISMATCH,
+ wrong, expected);
dimension = expected;
}
Added: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java?rev=1001107&view=auto
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java (added)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java Fri Sep 24 23:12:34 2010
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.math.exception;
+
+import org.apache.commons.math.exception.util.LocalizedFormats;
+
+/**
+ * Exception to be thrown when either the number of rows or the number of
+ * columns of a matrix do not match the expected values.
+ *
+ * @since 3.0
+ * @version $Revision$ $Date$
+ */
+public class MatrixDimensionMismatchException extends MultiDimensionMismatchException {
+ /** Serializable version Id. */
+ private static final long serialVersionUID = -8415396756375798143L;
+
+ /**
+ * Construct an exception from the mismatched dimensions.
+ *
+ * @param wrongRowDim Wrong row dimension.
+ * @param wrongColDim Wrong column dimension.
+ * @param expectedRowDim Expected row dimension.
+ * @param expectedColDim Expected column dimension.
+ */
+ public MatrixDimensionMismatchException(int wrongRowDim,
+ int wrongColDim,
+ int expectedRowDim,
+ int expectedColDim) {
+ super(LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
+ new Integer[] { wrongRowDim, wrongColDim },
+ new Integer[] { expectedRowDim, expectedColDim });
+ }
+
+ /**
+ * @return the expected row dimension.
+ */
+ public int getWrongRowDimension() {
+ return getWrongDimensions()[0];
+ }
+ /**
+ * @return the expected row dimension.
+ */
+ public int getExpectedRowDimension() {
+ return getExpectedDimensions()[0];
+ }
+ /**
+ * @return the wrong column dimension.
+ */
+ public int getWrongColumnDimension() {
+ return getWrongDimensions()[1];
+ }
+ /**
+ * @return the expected column dimension.
+ */
+ public int getExpectedColumnDimension() {
+ return getExpectedDimensions()[1];
+ }
+}
Propchange: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java?rev=1001107&view=auto
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java (added)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java Fri Sep 24 23:12:34 2010
@@ -0,0 +1,76 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.math.exception;
+
+import org.apache.commons.math.exception.util.Localizable;
+import org.apache.commons.math.exception.util.LocalizedFormats;
+
+/**
+ * Exception to be thrown when two sets of dimensions differ.
+ *
+ * @since 3.0
+ * @version $Revision$ $Date$
+ */
+public class MultiDimensionMismatchException extends MathIllegalArgumentException {
+ /** Serializable version Id. */
+ private static final long serialVersionUID = -8415396756375798143L;
+
+ /** Wrong dimensions. */
+ private final Integer[] wrong;
+ /** Correct dimensions. */
+ private final Integer[] expected;
+
+ /**
+ * Construct an exception from the mismatched dimensions.
+ *
+ * @param wrong Wrong dimensionq.
+ * @param expected Expected dimensionq.
+ */
+ public MultiDimensionMismatchException(Integer[] wrong,
+ Integer[] expected) {
+ this(null, wrong, expected);
+ }
+
+ /**
+ * Construct an exception from the mismatched dimensions.
+ *
+ * @param specific Message pattern providing the specific context of
+ * the error.
+ * @param wrong Wrong dimensions.
+ * @param expected Expected dimensions.
+ */
+ public MultiDimensionMismatchException(Localizable specific,
+ Integer[] wrong,
+ Integer[] expected) {
+ super(specific, LocalizedFormats.DIMENSIONS_MISMATCH, wrong, expected);
+ this.wrong = wrong.clone();
+ this.expected = expected.clone();
+ }
+
+ /**
+ * @return a reference to the array containing the wrong dimensions.
+ */
+ public Integer[] getWrongDimensions() {
+ return wrong;
+ }
+ /**
+ * @return a reference to the array containing the expected dimensions.
+ */
+ public Integer[] getExpectedDimensions() {
+ return expected;
+ }
+}
Propchange: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java?rev=1001107&r1=1001106&r2=1001107&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java Fri Sep 24 23:12:34 2010
@@ -79,8 +79,9 @@ public enum LocalizedFormats implements
CUMULATIVE_PROBABILITY_RETURNED_NAN("Cumulative probability function returned NaN for argument {0} p = {1}"),
DIFFERENT_ROWS_LENGTHS("some rows have length {0} while others have length {1}"),
DIGEST_NOT_INITIALIZED("digest not initialized"),
- DIMENSIONS_MISMATCH_2x2("dimensions mismatch: got {0}x{1} but expected {2}x{3}"),
- DIMENSIONS_MISMATCH_SIMPLE("dimensions mismatch {0} != {1}"), /* keep */
+ DIMENSIONS_MISMATCH_2x2("got {0}x{1} but expected {2}x{3}"), /* keep */
+ DIMENSIONS_MISMATCH_SIMPLE("{0} != {1}"), /* keep */
+ DIMENSIONS_MISMATCH("dimensions mismatch"), /* keep */
DISCRETE_CUMULATIVE_PROBABILITY_RETURNED_NAN("Discrete cumulative probability function returned NaN for argument {0}"),
DISTRIBUTION_NOT_LOADED("distribution not loaded"),
DUPLICATED_ABSCISSA("Abscissa {0} is duplicated at both indices {1} and {2}"),
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/MessageFactory.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/MessageFactory.java?rev=1001107&r1=1001106&r2=1001107&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/MessageFactory.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/MessageFactory.java Fri Sep 24 23:12:34 2010
@@ -63,13 +63,13 @@ public class MessageFactory {
Object ... arguments) {
final StringBuilder sb = new StringBuilder();
MessageFormat fmt = null;
+ fmt = new MessageFormat(general.getLocalizedString(locale), locale);
+ sb.append(fmt.format(arguments));
if (specific != null) {
+ sb.append(": ");
fmt = new MessageFormat(specific.getLocalizedString(locale), locale);
sb.append(fmt.format(arguments));
- sb.append(": ");
}
- fmt = new MessageFormat(general.getLocalizedString(locale), locale);
- sb.append(fmt.format(arguments));
return sb.toString();
}
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java?rev=1001107&r1=1001106&r2=1001107&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java Fri Sep 24 23:12:34 2010
@@ -23,6 +23,7 @@ import java.util.Arrays;
import org.apache.commons.math.Field;
import org.apache.commons.math.FieldElement;
import org.apache.commons.math.MathRuntimeException;
+import org.apache.commons.math.exception.MatrixDimensionMismatchException;
import org.apache.commons.math.exception.util.LocalizedFormats;
/**
@@ -445,16 +446,14 @@ public abstract class AbstractFieldMatri
}
/** {@inheritDoc} */
- public void setRowMatrix(final int row, final FieldMatrix<T> matrix)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setRowMatrix(final int row, final FieldMatrix<T> matrix) {
checkRowIndex(row);
final int nCols = getColumnDimension();
if ((matrix.getRowDimension() != 1) ||
(matrix.getColumnDimension() != nCols)) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- matrix.getRowDimension(), matrix.getColumnDimension(), 1, nCols);
+ throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
+ matrix.getColumnDimension(),
+ 1, nCols);
}
for (int i = 0; i < nCols; ++i) {
setEntry(row, i, matrix.getEntry(0, i));
@@ -478,16 +477,14 @@ public abstract class AbstractFieldMatri
}
/** {@inheritDoc} */
- public void setColumnMatrix(final int column, final FieldMatrix<T> matrix)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setColumnMatrix(final int column, final FieldMatrix<T> matrix) {
checkColumnIndex(column);
final int nRows = getRowDimension();
if ((matrix.getRowDimension() != nRows) ||
(matrix.getColumnDimension() != 1)) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- matrix.getRowDimension(), matrix.getColumnDimension(), nRows, 1);
+ throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
+ matrix.getColumnDimension(),
+ nRows, 1);
}
for (int i = 0; i < nRows; ++i) {
setEntry(i, column, matrix.getEntry(i, 0));
@@ -502,15 +499,12 @@ public abstract class AbstractFieldMatri
}
/** {@inheritDoc} */
- public void setRowVector(final int row, final FieldVector<T> vector)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setRowVector(final int row, final FieldVector<T> vector) {
checkRowIndex(row);
final int nCols = getColumnDimension();
if (vector.getDimension() != nCols) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- 1, vector.getDimension(), 1, nCols);
+ throw new MatrixDimensionMismatchException(1, vector.getDimension(),
+ 1, nCols);
}
for (int i = 0; i < nCols; ++i) {
setEntry(row, i, vector.getEntry(i));
@@ -525,15 +519,12 @@ public abstract class AbstractFieldMatri
}
/** {@inheritDoc} */
- public void setColumnVector(final int column, final FieldVector<T> vector)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setColumnVector(final int column, final FieldVector<T> vector) {
checkColumnIndex(column);
final int nRows = getRowDimension();
if (vector.getDimension() != nRows) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- vector.getDimension(), 1, nRows, 1);
+ throw new MatrixDimensionMismatchException(vector.getDimension(), 1,
+ nRows, 1);
}
for (int i = 0; i < nRows; ++i) {
setEntry(i, column, vector.getEntry(i));
@@ -557,15 +548,11 @@ public abstract class AbstractFieldMatri
}
/** {@inheritDoc} */
- public void setRow(final int row, final T[] array)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setRow(final int row, final T[] array) {
checkRowIndex(row);
final int nCols = getColumnDimension();
if (array.length != nCols) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- 1, array.length, 1, nCols);
+ throw new MatrixDimensionMismatchException(1, array.length, 1, nCols);
}
for (int i = 0; i < nCols; ++i) {
setEntry(row, i, array[i]);
@@ -589,20 +576,15 @@ public abstract class AbstractFieldMatri
}
/** {@inheritDoc} */
- public void setColumn(final int column, final T[] array)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setColumn(final int column, final T[] array) {
checkColumnIndex(column);
final int nRows = getRowDimension();
if (array.length != nRows) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- array.length, 1, nRows, 1);
+ throw new MatrixDimensionMismatchException(array.length, 1, nRows, 1);
}
for (int i = 0; i < nRows; ++i) {
setEntry(i, column, array[i]);
}
-
}
/** {@inheritDoc} */
@@ -623,22 +605,18 @@ public abstract class AbstractFieldMatri
/** {@inheritDoc} */
public FieldMatrix<T> transpose() {
-
final int nRows = getRowDimension();
final int nCols = getColumnDimension();
final FieldMatrix<T> out = createMatrix(nCols, nRows);
walkInOptimizedOrder(new DefaultFieldMatrixPreservingVisitor<T>(field.getZero()) {
-
/** {@inheritDoc} */
@Override
public void visit(final int row, final int column, final T value) {
out.setEntry(column, row, value);
}
-
});
return out;
-
}
/** {@inheritDoc} */
@@ -689,7 +667,6 @@ public abstract class AbstractFieldMatri
}
return out;
-
}
/** {@inheritDoc} */
@@ -741,7 +718,6 @@ public abstract class AbstractFieldMatri
}
return out;
-
}
/** {@inheritDoc} */
@@ -769,7 +745,6 @@ public abstract class AbstractFieldMatri
}
return new ArrayFieldVector<T>(out);
-
}
}
@@ -958,7 +933,6 @@ public abstract class AbstractFieldMatri
res.append("}");
return res.toString();
-
}
/**
@@ -1063,8 +1037,6 @@ public abstract class AbstractFieldMatri
throw new MatrixIndexException(LocalizedFormats.INITIAL_COLUMN_AFTER_FINAL_COLUMN,
startColumn, endColumn);
}
-
-
}
/**
@@ -1134,5 +1106,4 @@ public abstract class AbstractFieldMatri
m.getRowDimension(), m.getColumnDimension());
}
}
-
}
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractRealMatrix.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractRealMatrix.java?rev=1001107&r1=1001106&r2=1001107&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractRealMatrix.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractRealMatrix.java Fri Sep 24 23:12:34 2010
@@ -17,7 +17,10 @@
package org.apache.commons.math.linear;
-import org.apache.commons.math.MathRuntimeException;
+import org.apache.commons.math.exception.NoDataException;
+import org.apache.commons.math.exception.NotStrictlyPositiveException;
+import org.apache.commons.math.exception.DimensionMismatchException;
+import org.apache.commons.math.exception.MatrixDimensionMismatchException;
import org.apache.commons.math.exception.util.LocalizedFormats;
import org.apache.commons.math.util.MathUtils;
import org.apache.commons.math.util.FastMath;
@@ -51,17 +54,14 @@ public abstract class AbstractRealMatrix
*
* @param rowDimension the number of rows in the new matrix
* @param columnDimension the number of columns in the new matrix
- * @throws IllegalArgumentException if row or column dimension is not positive
+ * @throws NotStrictlyPositiveException if row or column dimension is not positive
*/
- protected AbstractRealMatrix(final int rowDimension, final int columnDimension)
- throws IllegalArgumentException {
- if (rowDimension < 1 ) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.INSUFFICIENT_DIMENSION, rowDimension, 1);
- }
- if (columnDimension <= 0) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.INSUFFICIENT_DIMENSION, columnDimension, 1);
+ protected AbstractRealMatrix(final int rowDimension, final int columnDimension) {
+ if (rowDimension < 1) {
+ throw new NotStrictlyPositiveException(rowDimension);
+ }
+ if (columnDimension < 1) {
+ throw new NotStrictlyPositiveException(columnDimension);
}
lu = null;
}
@@ -89,7 +89,6 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
@@ -108,7 +107,6 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
@@ -124,7 +122,6 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
@@ -140,7 +137,6 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
@@ -165,7 +161,6 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
@@ -187,7 +182,6 @@ public abstract class AbstractRealMatrix
}
return data;
-
}
/** {@inheritDoc} */
@@ -225,7 +219,6 @@ public abstract class AbstractRealMatrix
public double end() {
return maxColSum;
}
-
});
}
@@ -252,7 +245,6 @@ public abstract class AbstractRealMatrix
public double end() {
return FastMath.sqrt(sum);
}
-
});
}
@@ -272,7 +264,6 @@ public abstract class AbstractRealMatrix
}
return subMatrix;
-
}
/** {@inheritDoc} */
@@ -296,7 +287,6 @@ public abstract class AbstractRealMatrix
});
return subMatrix;
-
}
/** {@inheritDoc} */
@@ -310,10 +300,8 @@ public abstract class AbstractRealMatrix
final int rowsCount = endRow + 1 - startRow;
final int columnsCount = endColumn + 1 - startColumn;
if ((destination.length < rowsCount) || (destination[0].length < columnsCount)) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- destination.length, destination[0].length,
- rowsCount, columnsCount);
+ throw new MatrixDimensionMismatchException(destination.length, destination[0].length,
+ rowsCount, columnsCount);
}
// copy entries
@@ -341,21 +329,17 @@ public abstract class AbstractRealMatrix
}
}, startRow, endRow, startColumn, endColumn);
-
}
/** {@inheritDoc} */
- public void copySubMatrix(int[] selectedRows, int[] selectedColumns, double[][] destination)
- throws MatrixIndexException, IllegalArgumentException {
+ public void copySubMatrix(int[] selectedRows, int[] selectedColumns, double[][] destination) {
// safety checks
MatrixUtils.checkSubMatrixIndex(this, selectedRows, selectedColumns);
if ((destination.length < selectedRows.length) ||
(destination[0].length < selectedColumns.length)) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- destination.length, destination[0].length,
- selectedRows.length, selectedColumns.length);
+ throw new MatrixDimensionMismatchException(destination.length, destination[0].length,
+ selectedRows.length, selectedColumns.length);
}
// copy entries
@@ -365,7 +349,6 @@ public abstract class AbstractRealMatrix
destinationI[j] = getEntry(selectedRows[i], selectedColumns[j]);
}
}
-
}
/** {@inheritDoc} */
@@ -374,19 +357,17 @@ public abstract class AbstractRealMatrix
final int nRows = subMatrix.length;
if (nRows == 0) {
- throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.AT_LEAST_ONE_ROW);
+ throw new NoDataException(LocalizedFormats.AT_LEAST_ONE_ROW);
}
final int nCols = subMatrix[0].length;
if (nCols == 0) {
- throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
+ throw new NoDataException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
}
for (int r = 1; r < nRows; ++r) {
if (subMatrix[r].length != nCols) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.DIFFERENT_ROWS_LENGTHS,
- nCols, subMatrix[r].length);
+ throw new DimensionMismatchException(nCols, subMatrix[r].length);
}
}
@@ -402,7 +383,6 @@ public abstract class AbstractRealMatrix
}
lu = null;
-
}
/** {@inheritDoc} */
@@ -417,25 +397,21 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
- public void setRowMatrix(final int row, final RealMatrix matrix)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setRowMatrix(final int row, final RealMatrix matrix) {
MatrixUtils.checkRowIndex(this, row);
final int nCols = getColumnDimension();
if ((matrix.getRowDimension() != 1) ||
(matrix.getColumnDimension() != nCols)) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- matrix.getRowDimension(), matrix.getColumnDimension(), 1, nCols);
+ throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
+ matrix.getColumnDimension(),
+ 1, nCols);
}
for (int i = 0; i < nCols; ++i) {
setEntry(row, i, matrix.getEntry(0, i));
}
-
}
/** {@inheritDoc} */
@@ -450,25 +426,21 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
- public void setColumnMatrix(final int column, final RealMatrix matrix)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setColumnMatrix(final int column, final RealMatrix matrix) {
MatrixUtils.checkColumnIndex(this, column);
final int nRows = getRowDimension();
if ((matrix.getRowDimension() != nRows) ||
(matrix.getColumnDimension() != 1)) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- matrix.getRowDimension(), matrix.getColumnDimension(), nRows, 1);
+ throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
+ matrix.getColumnDimension(),
+ nRows, 1);
}
for (int i = 0; i < nRows; ++i) {
setEntry(i, column, matrix.getEntry(i, 0));
}
-
}
/** {@inheritDoc} */
@@ -478,20 +450,16 @@ public abstract class AbstractRealMatrix
}
/** {@inheritDoc} */
- public void setRowVector(final int row, final RealVector vector)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setRowVector(final int row, final RealVector vector) {
MatrixUtils.checkRowIndex(this, row);
final int nCols = getColumnDimension();
if (vector.getDimension() != nCols) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- 1, vector.getDimension(), 1, nCols);
+ throw new MatrixDimensionMismatchException(1, vector.getDimension(),
+ 1, nCols);
}
for (int i = 0; i < nCols; ++i) {
setEntry(row, i, vector.getEntry(i));
}
-
}
/** {@inheritDoc} */
@@ -501,20 +469,16 @@ public abstract class AbstractRealMatrix
}
/** {@inheritDoc} */
- public void setColumnVector(final int column, final RealVector vector)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setColumnVector(final int column, final RealVector vector) {
MatrixUtils.checkColumnIndex(this, column);
final int nRows = getRowDimension();
if (vector.getDimension() != nRows) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- vector.getDimension(), 1, nRows, 1);
+ throw new MatrixDimensionMismatchException(vector.getDimension(), 1,
+ nRows, 1);
}
for (int i = 0; i < nRows; ++i) {
setEntry(i, column, vector.getEntry(i));
}
-
}
/** {@inheritDoc} */
@@ -529,24 +493,18 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
- public void setRow(final int row, final double[] array)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setRow(final int row, final double[] array) {
MatrixUtils.checkRowIndex(this, row);
final int nCols = getColumnDimension();
if (array.length != nCols) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- 1, array.length, 1, nCols);
+ throw new MatrixDimensionMismatchException(1, array.length, 1, nCols);
}
for (int i = 0; i < nCols; ++i) {
setEntry(row, i, array[i]);
}
-
}
/** {@inheritDoc} */
@@ -561,24 +519,18 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
- public void setColumn(final int column, final double[] array)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setColumn(final int column, final double[] array) {
MatrixUtils.checkColumnIndex(this, column);
final int nRows = getRowDimension();
if (array.length != nRows) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- array.length, 1, nRows, 1);
+ throw new MatrixDimensionMismatchException(array.length, 1, nRows, 1);
}
for (int i = 0; i < nRows; ++i) {
setEntry(i, column, array[i]);
}
-
}
/** {@inheritDoc} */
@@ -614,7 +566,6 @@ public abstract class AbstractRealMatrix
});
return out;
-
}
/** {@inheritDoc} */
@@ -676,9 +627,7 @@ public abstract class AbstractRealMatrix
final int nRows = getRowDimension();
final int nCols = getColumnDimension();
if (v.length != nCols) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.VECTOR_LENGTH_MISMATCH,
- v.length, nCols);
+ throw new DimensionMismatchException(v.length, nCols);
}
final double[] out = new double[nRows];
@@ -691,7 +640,6 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
@@ -703,9 +651,7 @@ public abstract class AbstractRealMatrix
final int nRows = getRowDimension();
final int nCols = getColumnDimension();
if (v.getDimension() != nCols) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.VECTOR_LENGTH_MISMATCH,
- v.getDimension(), nCols);
+ throw new DimensionMismatchException(v.getDimension(), nCols);
}
final double[] out = new double[nRows];
@@ -728,9 +674,7 @@ public abstract class AbstractRealMatrix
final int nRows = getRowDimension();
final int nCols = getColumnDimension();
if (v.length != nRows) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.VECTOR_LENGTH_MISMATCH,
- v.length, nRows);
+ throw new DimensionMismatchException(v.length, nRows);
}
final double[] out = new double[nCols];
@@ -743,7 +687,6 @@ public abstract class AbstractRealMatrix
}
return out;
-
}
/** {@inheritDoc} */
@@ -756,9 +699,7 @@ public abstract class AbstractRealMatrix
final int nRows = getRowDimension();
final int nCols = getColumnDimension();
if (v.getDimension() != nRows) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.VECTOR_LENGTH_MISMATCH,
- v.getDimension(), nRows);
+ throw new DimensionMismatchException(v.getDimension(), nRows);
}
final double[] out = new double[nCols];
@@ -771,7 +712,6 @@ public abstract class AbstractRealMatrix
}
return new ArrayRealVector(out);
-
}
}
@@ -1011,7 +951,6 @@ public abstract class AbstractRealMatrix
res.append("}");
return res.toString();
-
}
/**
@@ -1066,5 +1005,4 @@ public abstract class AbstractRealMatrix
}
return ret;
}
-
}
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockFieldMatrix.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockFieldMatrix.java?rev=1001107&r1=1001106&r2=1001107&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockFieldMatrix.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockFieldMatrix.java Fri Sep 24 23:12:34 2010
@@ -21,7 +21,9 @@ import java.io.Serializable;
import org.apache.commons.math.Field;
import org.apache.commons.math.FieldElement;
-import org.apache.commons.math.MathRuntimeException;
+import org.apache.commons.math.exception.NoDataException;
+import org.apache.commons.math.exception.DimensionMismatchException;
+import org.apache.commons.math.exception.MatrixDimensionMismatchException;
import org.apache.commons.math.exception.util.LocalizedFormats;
import org.apache.commons.math.util.FastMath;
@@ -171,9 +173,8 @@ public class BlockFieldMatrix<T extends
final int iHeight = blockHeight(iBlock);
for (int jBlock = 0; jBlock < blockColumns; ++jBlock, ++index) {
if (blockData[index].length != iHeight * blockWidth(jBlock)) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.WRONG_BLOCK_LENGTH,
- blockData[index].length, iHeight * blockWidth(jBlock));
+ throw new DimensionMismatchException(blockData[index].length,
+ iHeight * blockWidth(jBlock));
}
if (copyArray) {
blocks[index] = blockData[index].clone();
@@ -219,9 +220,7 @@ public class BlockFieldMatrix<T extends
for (int i = 0; i < rawData.length; ++i) {
final int length = rawData[i].length;
if (length != columns) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.DIFFERENT_ROWS_LENGTHS,
- columns, length);
+ throw new DimensionMismatchException(columns, length);
}
}
@@ -810,17 +809,15 @@ public class BlockFieldMatrix<T extends
// safety checks
final int refLength = subMatrix[0].length;
- if (refLength < 1) {
- throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
+ if (refLength == 0) {
+ throw new NoDataException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
}
final int endRow = row + subMatrix.length - 1;
final int endColumn = column + refLength - 1;
checkSubMatrixIndex(row, endRow, column, endColumn);
for (final T[] subRow : subMatrix) {
if (subRow.length != refLength) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.DIFFERENT_ROWS_LENGTHS,
- refLength, subRow.length);
+ throw new DimensionMismatchException(refLength, subRow.length);
}
}
@@ -891,8 +888,7 @@ public class BlockFieldMatrix<T extends
/** {@inheritDoc} */
@Override
- public void setRowMatrix(final int row, final FieldMatrix<T> matrix)
- throws MatrixIndexException, InvalidMatrixException {
+ public void setRowMatrix(final int row, final FieldMatrix<T> matrix) {
try {
setRowMatrix(row, (BlockFieldMatrix<T>) matrix);
} catch (ClassCastException cce) {
@@ -908,20 +904,17 @@ public class BlockFieldMatrix<T extends
* @param matrix row matrix (must have one row and the same number of columns
* as the instance)
* @throws MatrixIndexException if the specified row index is invalid
- * @throws InvalidMatrixException if the matrix dimensions do not match one
+ * @throws MatrixDimensionMismatchException if the matrix dimensions do not match one
* instance row
*/
- public void setRowMatrix(final int row, final BlockFieldMatrix<T> matrix)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setRowMatrix(final int row, final BlockFieldMatrix<T> matrix) {
checkRowIndex(row);
final int nCols = getColumnDimension();
if ((matrix.getRowDimension() != 1) ||
(matrix.getColumnDimension() != nCols)) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- matrix.getRowDimension(), matrix.getColumnDimension(),
- 1, nCols);
+ throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
+ matrix.getColumnDimension(),
+ 1, nCols);
}
// perform copy block-wise, to ensure good cache behavior
@@ -980,8 +973,7 @@ public class BlockFieldMatrix<T extends
/** {@inheritDoc} */
@Override
- public void setColumnMatrix(final int column, final FieldMatrix<T> matrix)
- throws MatrixIndexException, InvalidMatrixException {
+ public void setColumnMatrix(final int column, final FieldMatrix<T> matrix) {
try {
setColumnMatrix(column, (BlockFieldMatrix<T>) matrix);
} catch (ClassCastException cce) {
@@ -997,20 +989,17 @@ public class BlockFieldMatrix<T extends
* @param matrix column matrix (must have one column and the same number of rows
* as the instance)
* @throws MatrixIndexException if the specified column index is invalid
- * @throws InvalidMatrixException if the matrix dimensions do not match one
+ * @throws MatrixDimensionMismatchException if the matrix dimensions do not match one
* instance column
*/
- void setColumnMatrix(final int column, final BlockFieldMatrix<T> matrix)
- throws MatrixIndexException, InvalidMatrixException {
-
+ void setColumnMatrix(final int column, final BlockFieldMatrix<T> matrix) {
checkColumnIndex(column);
final int nRows = getRowDimension();
if ((matrix.getRowDimension() != nRows) ||
(matrix.getColumnDimension() != 1)) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- matrix.getRowDimension(), matrix.getColumnDimension(),
- nRows, 1);
+ throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
+ matrix.getColumnDimension(),
+ nRows, 1);
}
// perform copy block-wise, to ensure good cache behavior
@@ -1031,7 +1020,6 @@ public class BlockFieldMatrix<T extends
block[i * jWidth + jColumn] = mBlock[mIndex++];
}
}
-
}
/** {@inheritDoc} */
@@ -1059,8 +1047,7 @@ public class BlockFieldMatrix<T extends
/** {@inheritDoc} */
@Override
- public void setRowVector(final int row, final FieldVector<T> vector)
- throws MatrixIndexException, InvalidMatrixException {
+ public void setRowVector(final int row, final FieldVector<T> vector) {
try {
setRow(row, ((ArrayFieldVector<T>) vector).getDataRef());
} catch (ClassCastException cce) {
@@ -1095,8 +1082,7 @@ public class BlockFieldMatrix<T extends
/** {@inheritDoc} */
@Override
- public void setColumnVector(final int column, final FieldVector<T> vector)
- throws MatrixIndexException, InvalidMatrixException {
+ public void setColumnVector(final int column, final FieldVector<T> vector) {
try {
setColumn(column, ((ArrayFieldVector<T>) vector).getDataRef());
} catch (ClassCastException cce) {
@@ -1129,15 +1115,11 @@ public class BlockFieldMatrix<T extends
/** {@inheritDoc} */
@Override
- public void setRow(final int row, final T[] array)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setRow(final int row, final T[] array) {
checkRowIndex(row);
final int nCols = getColumnDimension();
if (array.length != nCols) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- 1, array.length, 1, nCols);
+ throw new MatrixDimensionMismatchException(1, array.length, 1, nCols);
}
// perform copy block-wise, to ensure good cache behavior
@@ -1150,7 +1132,6 @@ public class BlockFieldMatrix<T extends
System.arraycopy(array, outIndex, block, iRow * jWidth, jWidth);
outIndex += jWidth;
}
-
}
/** {@inheritDoc} */
@@ -1175,20 +1156,15 @@ public class BlockFieldMatrix<T extends
}
return out;
-
}
/** {@inheritDoc} */
@Override
- public void setColumn(final int column, final T[] array)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setColumn(final int column, final T[] array) {
checkColumnIndex(column);
final int nRows = getRowDimension();
if (array.length != nRows) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- array.length, 1, nRows, 1);
+ throw new MatrixDimensionMismatchException(array.length, 1, nRows, 1);
}
// perform copy block-wise, to ensure good cache behavior
@@ -1203,7 +1179,6 @@ public class BlockFieldMatrix<T extends
block[i * jWidth + jColumn] = array[outIndex++];
}
}
-
}
/** {@inheritDoc} */
@@ -1314,7 +1289,6 @@ public class BlockFieldMatrix<T extends
}
return out;
-
}
/** {@inheritDoc} */
@@ -1335,9 +1309,7 @@ public class BlockFieldMatrix<T extends
throws IllegalArgumentException {
if (v.length != columns) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.VECTOR_LENGTH_MISMATCH,
- v.length, columns);
+ throw new DimensionMismatchException(v.length, columns);
}
final T[] out = buildArray(getField(), rows);
final T zero = getField().getZero();
@@ -1372,7 +1344,6 @@ public class BlockFieldMatrix<T extends
}
return out;
-
}
/** {@inheritDoc} */
@@ -1381,9 +1352,7 @@ public class BlockFieldMatrix<T extends
throws IllegalArgumentException {
if (v.length != rows) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.VECTOR_LENGTH_MISMATCH,
- v.length, rows);
+ throw new DimensionMismatchException(v.length, rows);
}
final T[] out = buildArray(getField(), columns);
final T zero = getField().getZero();
@@ -1423,7 +1392,6 @@ public class BlockFieldMatrix<T extends
}
return out;
-
}
/** {@inheritDoc} */
@@ -1665,5 +1633,4 @@ public class BlockFieldMatrix<T extends
private int blockWidth(final int blockColumn) {
return (blockColumn == blockColumns - 1) ? columns - blockColumn * BLOCK_SIZE : BLOCK_SIZE;
}
-
}
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockRealMatrix.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockRealMatrix.java?rev=1001107&r1=1001106&r2=1001107&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockRealMatrix.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockRealMatrix.java Fri Sep 24 23:12:34 2010
@@ -20,7 +20,9 @@ package org.apache.commons.math.linear;
import java.io.Serializable;
import java.util.Arrays;
-import org.apache.commons.math.MathRuntimeException;
+import org.apache.commons.math.exception.MatrixDimensionMismatchException;
+import org.apache.commons.math.exception.DimensionMismatchException;
+import org.apache.commons.math.exception.NoDataException;
import org.apache.commons.math.exception.util.LocalizedFormats;
import org.apache.commons.math.util.FastMath;
@@ -168,16 +170,14 @@ public class BlockRealMatrix extends Abs
final int iHeight = blockHeight(iBlock);
for (int jBlock = 0; jBlock < blockColumns; ++jBlock, ++index) {
if (blockData[index].length != iHeight * blockWidth(jBlock)) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.WRONG_BLOCK_LENGTH,
- blockData[index].length, iHeight * blockWidth(jBlock));
+ throw new DimensionMismatchException(blockData[index].length,
+ iHeight * blockWidth(jBlock));
}
if (copyArray) {
blocks[index] = blockData[index].clone();
}
}
}
-
}
/**
@@ -214,9 +214,7 @@ public class BlockRealMatrix extends Abs
for (int i = 0; i < rawData.length; ++i) {
final int length = rawData[i].length;
if (length != columns) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.DIFFERENT_ROWS_LENGTHS,
- columns, length);
+ throw new DimensionMismatchException(columns, length);
}
}
@@ -249,7 +247,6 @@ public class BlockRealMatrix extends Abs
}
return blocks;
-
}
/**
@@ -285,7 +282,6 @@ public class BlockRealMatrix extends Abs
}
return blocks;
-
}
/** {@inheritDoc} */
@@ -308,7 +304,6 @@ public class BlockRealMatrix extends Abs
}
return copied;
-
}
/** {@inheritDoc} */
@@ -351,7 +346,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
}
@@ -381,7 +375,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@@ -424,7 +417,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
}
@@ -454,7 +446,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@@ -474,7 +465,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@@ -494,7 +484,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@@ -554,7 +543,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
}
@@ -627,7 +615,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@@ -657,7 +644,6 @@ public class BlockRealMatrix extends Abs
}
return data;
-
}
/** {@inheritDoc} */
@@ -796,7 +782,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/**
@@ -836,17 +821,15 @@ public class BlockRealMatrix extends Abs
// safety checks
final int refLength = subMatrix[0].length;
- if (refLength < 1) {
- throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
+ if (refLength == 0) {
+ throw new NoDataException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
}
final int endRow = row + subMatrix.length - 1;
final int endColumn = column + refLength - 1;
MatrixUtils.checkSubMatrixIndex(this, row, endRow, column, endColumn);
for (final double[] subRow : subMatrix) {
if (subRow.length != refLength) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.DIFFERENT_ROWS_LENGTHS,
- refLength, subRow.length);
+ throw new DimensionMismatchException(refLength, subRow.length);
}
}
@@ -912,13 +895,11 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@Override
- public void setRowMatrix(final int row, final RealMatrix matrix)
- throws MatrixIndexException, InvalidMatrixException {
+ public void setRowMatrix(final int row, final RealMatrix matrix) {
try {
setRowMatrix(row, (BlockRealMatrix) matrix);
} catch (ClassCastException cce) {
@@ -934,20 +915,17 @@ public class BlockRealMatrix extends Abs
* @param matrix row matrix (must have one row and the same number of columns
* as the instance)
* @throws MatrixIndexException if the specified row index is invalid
- * @throws InvalidMatrixException if the matrix dimensions do not match one
+ * @throws MatrixDimensionMismatchException if the matrix dimensions do not match one
* instance row
*/
- public void setRowMatrix(final int row, final BlockRealMatrix matrix)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setRowMatrix(final int row, final BlockRealMatrix matrix) {
MatrixUtils.checkRowIndex(this, row);
final int nCols = getColumnDimension();
if ((matrix.getRowDimension() != 1) ||
(matrix.getColumnDimension() != nCols)) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- matrix.getRowDimension(), matrix.getColumnDimension(),
- 1, nCols);
+ throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
+ matrix.getColumnDimension(),
+ 1, nCols);
}
// perform copy block-wise, to ensure good cache behavior
@@ -970,7 +948,6 @@ public class BlockRealMatrix extends Abs
mIndex += jWidth;
}
}
-
}
/** {@inheritDoc} */
@@ -1001,13 +978,11 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@Override
- public void setColumnMatrix(final int column, final RealMatrix matrix)
- throws MatrixIndexException, InvalidMatrixException {
+ public void setColumnMatrix(final int column, final RealMatrix matrix) {
try {
setColumnMatrix(column, (BlockRealMatrix) matrix);
} catch (ClassCastException cce) {
@@ -1023,20 +998,17 @@ public class BlockRealMatrix extends Abs
* @param matrix column matrix (must have one column and the same number of rows
* as the instance)
* @throws MatrixIndexException if the specified column index is invalid
- * @throws InvalidMatrixException if the matrix dimensions do not match one
+ * @throws MatrixDimensionMismatchException if the matrix dimensions do not match one
* instance column
*/
- void setColumnMatrix(final int column, final BlockRealMatrix matrix)
- throws MatrixIndexException, InvalidMatrixException {
-
+ void setColumnMatrix(final int column, final BlockRealMatrix matrix) {
MatrixUtils.checkColumnIndex(this, column);
final int nRows = getRowDimension();
if ((matrix.getRowDimension() != nRows) ||
(matrix.getColumnDimension() != 1)) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- matrix.getRowDimension(), matrix.getColumnDimension(),
- nRows, 1);
+ throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
+ matrix.getColumnDimension(),
+ nRows, 1);
}
// perform copy block-wise, to ensure good cache behavior
@@ -1057,7 +1029,6 @@ public class BlockRealMatrix extends Abs
block[i * jWidth + jColumn] = mBlock[mIndex++];
}
}
-
}
/** {@inheritDoc} */
@@ -1080,13 +1051,11 @@ public class BlockRealMatrix extends Abs
}
return new ArrayRealVector(outData, false);
-
}
/** {@inheritDoc} */
@Override
- public void setRowVector(final int row, final RealVector vector)
- throws MatrixIndexException, InvalidMatrixException {
+ public void setRowVector(final int row, final RealVector vector) {
try {
setRow(row, ((ArrayRealVector) vector).getDataRef());
} catch (ClassCastException cce) {
@@ -1116,13 +1085,11 @@ public class BlockRealMatrix extends Abs
}
return new ArrayRealVector(outData, false);
-
}
/** {@inheritDoc} */
@Override
- public void setColumnVector(final int column, final RealVector vector)
- throws MatrixIndexException, InvalidMatrixException {
+ public void setColumnVector(final int column, final RealVector vector) {
try {
setColumn(column, ((ArrayRealVector) vector).getDataRef());
} catch (ClassCastException cce) {
@@ -1150,20 +1117,15 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@Override
- public void setRow(final int row, final double[] array)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setRow(final int row, final double[] array) {
MatrixUtils.checkRowIndex(this, row);
final int nCols = getColumnDimension();
if (array.length != nCols) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- 1, array.length, 1, nCols);
+ throw new MatrixDimensionMismatchException(1, array.length, 1, nCols);
}
// perform copy block-wise, to ensure good cache behavior
@@ -1176,7 +1138,6 @@ public class BlockRealMatrix extends Abs
System.arraycopy(array, outIndex, block, iRow * jWidth, jWidth);
outIndex += jWidth;
}
-
}
/** {@inheritDoc} */
@@ -1201,20 +1162,15 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@Override
- public void setColumn(final int column, final double[] array)
- throws MatrixIndexException, InvalidMatrixException {
-
+ public void setColumn(final int column, final double[] array) {
MatrixUtils.checkColumnIndex(this, column);
final int nRows = getRowDimension();
if (array.length != nRows) {
- throw new InvalidMatrixException(
- LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
- array.length, 1, nRows, 1);
+ throw new MatrixDimensionMismatchException(array.length, 1, nRows, 1);
}
// perform copy block-wise, to ensure good cache behavior
@@ -1229,7 +1185,6 @@ public class BlockRealMatrix extends Abs
block[i * jWidth + jColumn] = array[outIndex++];
}
}
-
}
/** {@inheritDoc} */
@@ -1338,7 +1293,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@@ -1359,9 +1313,7 @@ public class BlockRealMatrix extends Abs
throws IllegalArgumentException {
if (v.length != columns) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.VECTOR_LENGTH_MISMATCH,
- v.length, columns);
+ throw new DimensionMismatchException(v.length, columns);
}
final double[] out = new double[rows];
@@ -1394,7 +1346,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@@ -1403,9 +1354,7 @@ public class BlockRealMatrix extends Abs
throws IllegalArgumentException {
if (v.length != rows) {
- throw MathRuntimeException.createIllegalArgumentException(
- LocalizedFormats.VECTOR_LENGTH_MISMATCH,
- v.length, rows);
+ throw new DimensionMismatchException(v.length, rows);
}
final double[] out = new double[columns];
@@ -1443,7 +1392,6 @@ public class BlockRealMatrix extends Abs
}
return out;
-
}
/** {@inheritDoc} */
@@ -1685,5 +1633,4 @@ public class BlockRealMatrix extends Abs
private int blockWidth(final int blockColumn) {
return (blockColumn == blockColumns - 1) ? columns - blockColumn * BLOCK_SIZE : BLOCK_SIZE;
}
-
}
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldMatrix.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldMatrix.java?rev=1001107&r1=1001106&r2=1001107&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldMatrix.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldMatrix.java Fri Sep 24 23:12:34 2010
@@ -64,7 +64,7 @@ public interface FieldMatrix<T extends F
* @return this + m
* @throws IllegalArgumentException if m is not the same size as this
*/
- FieldMatrix<T> add(FieldMatrix<T> m) throws IllegalArgumentException;
+ FieldMatrix<T> add(FieldMatrix<T> m);
/**
* Compute this minus m.
@@ -73,7 +73,7 @@ public interface FieldMatrix<T extends F
* @return this + m
* @throws IllegalArgumentException if m is not the same size as this
*/
- FieldMatrix<T> subtract(FieldMatrix<T> m) throws IllegalArgumentException;
+ FieldMatrix<T> subtract(FieldMatrix<T> m);
/**
* Returns the result of adding d to each entry of this.
@@ -99,7 +99,7 @@ public interface FieldMatrix<T extends F
* @throws IllegalArgumentException
* if columnDimension(this) != rowDimension(m)
*/
- FieldMatrix<T> multiply(FieldMatrix<T> m) throws IllegalArgumentException;
+ FieldMatrix<T> multiply(FieldMatrix<T> m);
/**
* Returns the result premultiplying this by <code>m</code>.
@@ -108,7 +108,7 @@ public interface FieldMatrix<T extends F
* @throws IllegalArgumentException
* if rowDimension(this) != columnDimension(m)
*/
- FieldMatrix<T> preMultiply(FieldMatrix<T> m) throws IllegalArgumentException;
+ FieldMatrix<T> preMultiply(FieldMatrix<T> m);
/**
* Returns matrix entries as a two-dimensional array.
@@ -129,8 +129,7 @@ public interface FieldMatrix<T extends F
* specified rows and columns
* @exception MatrixIndexException if the indices are not valid
*/
- FieldMatrix<T> getSubMatrix(int startRow, int endRow, int startColumn, int endColumn)
- throws MatrixIndexException;
+ FieldMatrix<T> getSubMatrix(int startRow, int endRow, int startColumn, int endColumn);
/**
* Gets a submatrix. Rows and columns are indicated
@@ -142,8 +141,7 @@ public interface FieldMatrix<T extends F
* specified rows and columns
* @exception MatrixIndexException if row or column selections are not valid
*/
- FieldMatrix<T> getSubMatrix(int[] selectedRows, int[] selectedColumns)
- throws MatrixIndexException;
+ FieldMatrix<T> getSubMatrix(int[] selectedRows, int[] selectedColumns);
/**
* Copy a submatrix. Rows and columns are indicated
@@ -159,8 +157,7 @@ public interface FieldMatrix<T extends F
* @exception IllegalArgumentException if the destination array is too small
*/
void copySubMatrix(int startRow, int endRow, int startColumn, int endColumn,
- T[][] destination)
- throws MatrixIndexException, IllegalArgumentException;
+ T[][] destination);
/**
* Copy a submatrix. Rows and columns are indicated
@@ -173,8 +170,7 @@ public interface FieldMatrix<T extends F
* @exception MatrixIndexException if the indices are not valid
* @exception IllegalArgumentException if the destination array is too small
*/
- void copySubMatrix(int[] selectedRows, int[] selectedColumns, T[][] destination)
- throws MatrixIndexException, IllegalArgumentException;
+ void copySubMatrix(int[] selectedRows, int[] selectedColumns, T[][] destination);
/**
* Replace the submatrix starting at <code>row, column</code> using data in
@@ -203,8 +199,7 @@ public interface FieldMatrix<T extends F
* @throws NullPointerException if <code>subMatrix</code> is null
* @since 2.0
*/
- void setSubMatrix(T[][] subMatrix, int row, int column)
- throws MatrixIndexException;
+ void setSubMatrix(T[][] subMatrix, int row, int column);
/**
* Returns the entries in row number <code>row</code>
@@ -214,7 +209,7 @@ public interface FieldMatrix<T extends F
* @return row matrix
* @throws MatrixIndexException if the specified row index is invalid
*/
- FieldMatrix<T> getRowMatrix(int row) throws MatrixIndexException;
+ FieldMatrix<T> getRowMatrix(int row);
/**
* Sets the entries in row number <code>row</code>
@@ -224,11 +219,10 @@ public interface FieldMatrix<T extends F
* @param matrix row matrix (must have one row and the same number of columns
* as the instance)
* @throws MatrixIndexException if the specified row index is invalid
- * @throws InvalidMatrixException if the matrix dimensions do not match one
- * instance row
+ * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
+ * if the matrix dimensions do not match one instance row.
*/
- void setRowMatrix(int row, FieldMatrix<T> matrix)
- throws MatrixIndexException, InvalidMatrixException;
+ void setRowMatrix(int row, FieldMatrix<T> matrix);
/**
* Returns the entries in column number <code>column</code>
@@ -238,7 +232,7 @@ public interface FieldMatrix<T extends F
* @return column matrix
* @throws MatrixIndexException if the specified column index is invalid
*/
- FieldMatrix<T> getColumnMatrix(int column) throws MatrixIndexException;
+ FieldMatrix<T> getColumnMatrix(int column);
/**
* Sets the entries in column number <code>column</code>
@@ -248,11 +242,10 @@ public interface FieldMatrix<T extends F
* @param matrix column matrix (must have one column and the same number of rows
* as the instance)
* @throws MatrixIndexException if the specified column index is invalid
- * @throws InvalidMatrixException if the matrix dimensions do not match one
- * instance column
+ * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
+ * if the matrix dimensions do not match one instance column.
*/
- void setColumnMatrix(int column, FieldMatrix<T> matrix)
- throws MatrixIndexException, InvalidMatrixException;
+ void setColumnMatrix(int column, FieldMatrix<T> matrix);
/**
* Returns the entries in row number <code>row</code>
@@ -262,7 +255,7 @@ public interface FieldMatrix<T extends F
* @return row vector
* @throws MatrixIndexException if the specified row index is invalid
*/
- FieldVector<T> getRowVector(int row) throws MatrixIndexException;
+ FieldVector<T> getRowVector(int row);
/**
* Sets the entries in row number <code>row</code>
@@ -272,11 +265,10 @@ public interface FieldMatrix<T extends F
* @param vector row vector (must have the same number of columns
* as the instance)
* @throws MatrixIndexException if the specified row index is invalid
- * @throws InvalidMatrixException if the vector dimension does not match one
- * instance row
+ * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
+ * if the vector dimension does not match one instance row.
*/
- void setRowVector(int row, FieldVector<T> vector)
- throws MatrixIndexException, InvalidMatrixException;
+ void setRowVector(int row, FieldVector<T> vector);
/**
* Returns the entries in column number <code>column</code>
@@ -286,7 +278,7 @@ public interface FieldMatrix<T extends F
* @return column vector
* @throws MatrixIndexException if the specified column index is invalid
*/
- FieldVector<T> getColumnVector(int column) throws MatrixIndexException;
+ FieldVector<T> getColumnVector(int column);
/**
* Sets the entries in column number <code>column</code>
@@ -295,23 +287,22 @@ public interface FieldMatrix<T extends F
* @param column the column to be set
* @param vector column vector (must have the same number of rows as the instance)
* @throws MatrixIndexException if the specified column index is invalid
- * @throws InvalidMatrixException if the vector dimension does not match one
- * instance column
+ * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
+ * if the vector dimension does not match one instance column.
*/
- void setColumnVector(int column, FieldVector<T> vector)
- throws MatrixIndexException, InvalidMatrixException;
+ void setColumnVector(int column, FieldVector<T> vector);
/**
* Returns the entries in row number <code>row</code> as an array.
* <p>
* Row indices start at 0. A <code>MatrixIndexException</code> is thrown
- * unless <code>0 <= row < rowDimension.</code></p>
+ * unless {@code 0 <= row < rowDimension}.</p>
*
* @param row the row to be fetched
* @return array of entries in the row
* @throws MatrixIndexException if the specified row index is not valid
*/
- T[] getRow(int row) throws MatrixIndexException;
+ T[] getRow(int row);
/**
* Sets the entries in row number <code>row</code>
@@ -320,23 +311,22 @@ public interface FieldMatrix<T extends F
* @param row the row to be set
* @param array row matrix (must have the same number of columns as the instance)
* @throws MatrixIndexException if the specified row index is invalid
- * @throws InvalidMatrixException if the array size does not match one
- * instance row
+ * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
+ * if the array size does not match one instance row.
*/
- void setRow(int row, T[] array)
- throws MatrixIndexException, InvalidMatrixException;
+ void setRow(int row, T[] array);
/**
* Returns the entries in column number <code>col</code> as an array.
* <p>
* Column indices start at 0. A <code>MatrixIndexException</code> is thrown
- * unless <code>0 <= column < columnDimension.</code></p>
+ * unless {@code 0 <= column < columnDimension}.</p>
*
* @param column the column to be fetched
* @return array of entries in the column
* @throws MatrixIndexException if the specified column index is not valid
*/
- T[] getColumn(int column) throws MatrixIndexException;
+ T[] getColumn(int column);
/**
* Sets the entries in column number <code>column</code>
@@ -345,19 +335,18 @@ public interface FieldMatrix<T extends F
* @param column the column to be set
* @param array column array (must have the same number of rows as the instance)
* @throws MatrixIndexException if the specified column index is invalid
- * @throws InvalidMatrixException if the array size does not match one
- * instance column
+ * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
+ * if the array size does not match one instance column.
*/
- void setColumn(int column, T[] array)
- throws MatrixIndexException, InvalidMatrixException;
+ void setColumn(int column, T[] array);
/**
* Returns the entry in the specified row and column.
* <p>
* Row and column indices start at 0 and must satisfy
* <ul>
- * <li><code>0 <= row < rowDimension</code></li>
- * <li><code> 0 <= column < columnDimension</code></li>
+ * <li>{@code 0 <= row < rowDimension}</li>
+ * <li>{@code 0 <= column < columnDimension}</li>
* </ul>
* otherwise a <code>MatrixIndexException</code> is thrown.</p>
*
@@ -366,15 +355,15 @@ public interface FieldMatrix<T extends F
* @return matrix entry in row,column
* @throws MatrixIndexException if the row or column index is not valid
*/
- T getEntry(int row, int column) throws MatrixIndexException;
+ T getEntry(int row, int column);
/**
* Set the entry in the specified row and column.
* <p>
* Row and column indices start at 0 and must satisfy
* <ul>
- * <li><code>0 <= row < rowDimension</code></li>
- * <li><code> 0 <= column < columnDimension</code></li>
+ * <li>{@code 0 <= row < rowDimension}</li>
+ * <li>{@code 0 <= column < columnDimension}</li>
* </ul>
* otherwise a <code>MatrixIndexException</code> is thrown.</p>
*
@@ -384,15 +373,15 @@ public interface FieldMatrix<T extends F
* @throws MatrixIndexException if the row or column index is not valid
* @since 2.0
*/
- void setEntry(int row, int column, T value) throws MatrixIndexException;
+ void setEntry(int row, int column, T value);
/**
* Change an entry in the specified row and column.
* <p>
* Row and column indices start at 0 and must satisfy
* <ul>
- * <li><code>0 <= row < rowDimension</code></li>
- * <li><code> 0 <= column < columnDimension</code></li>
+ * <li>{@code 0 <= row < rowDimension}</li>
+ * <li>{@code 0 <= column < columnDimension}</li>
* </ul>
* otherwise a <code>MatrixIndexException</code> is thrown.</p>
*
@@ -409,8 +398,8 @@ public interface FieldMatrix<T extends F
* <p>
* Row and column indices start at 0 and must satisfy
* <ul>
- * <li><code>0 <= row < rowDimension</code></li>
- * <li><code> 0 <= column < columnDimension</code></li>
+ * <li>{@code 0 <= row < rowDimension}</li>
+ * <li>{@code 0 <= column < columnDimension}</li>
* </ul>
* otherwise a <code>MatrixIndexException</code> is thrown.</p>
*
@@ -420,7 +409,7 @@ public interface FieldMatrix<T extends F
* @throws MatrixIndexException if the row or column index is not valid
* @since 2.0
*/
- void multiplyEntry(int row, int column, T factor) throws MatrixIndexException;
+ void multiplyEntry(int row, int column, T factor);
/**
* Returns the transpose of this matrix.
@@ -436,7 +425,7 @@ public interface FieldMatrix<T extends F
* @return trace
* @throws NonSquareMatrixException if the matrix is not square
*/
- T getTrace() throws NonSquareMatrixException;
+ T getTrace();
/**
* Returns the result of multiplying this by the vector <code>v</code>.
@@ -445,7 +434,7 @@ public interface FieldMatrix<T extends F
* @return this*v
* @throws IllegalArgumentException if columnDimension != v.size()
*/
- T[] operate(T[] v) throws IllegalArgumentException;
+ T[] operate(T[] v);
/**
* Returns the result of multiplying this by the vector <code>v</code>.
@@ -454,7 +443,7 @@ public interface FieldMatrix<T extends F
* @return this*v
* @throws IllegalArgumentException if columnDimension != v.size()
*/
- FieldVector<T> operate(FieldVector<T> v) throws IllegalArgumentException;
+ FieldVector<T> operate(FieldVector<T> v);
/**
* Returns the (row) vector result of premultiplying this by the vector <code>v</code>.
@@ -463,7 +452,7 @@ public interface FieldMatrix<T extends F
* @return v*this
* @throws IllegalArgumentException if rowDimension != v.size()
*/
- T[] preMultiply(T[] v) throws IllegalArgumentException;
+ T[] preMultiply(T[] v);
/**
* Returns the (row) vector result of premultiplying this by the vector <code>v</code>.
@@ -472,7 +461,7 @@ public interface FieldMatrix<T extends F
* @return v*this
* @throws IllegalArgumentException if rowDimension != v.size()
*/
- FieldVector<T> preMultiply(FieldVector<T> v) throws IllegalArgumentException;
+ FieldVector<T> preMultiply(FieldVector<T> v);
/**
* Visit (and possibly change) all matrix entries in row order.
@@ -495,8 +484,7 @@ public interface FieldMatrix<T extends F
* @return the value returned by {@link FieldMatrixChangingVisitor#end()} at the end
* of the walk
*/
- T walkInRowOrder(FieldMatrixChangingVisitor<T> visitor)
- throws MatrixVisitorException;
+ T walkInRowOrder(FieldMatrixChangingVisitor<T> visitor);
/**
* Visit (but don't change) all matrix entries in row order.
@@ -519,8 +507,7 @@ public interface FieldMatrix<T extends F
* @return the value returned by {@link FieldMatrixPreservingVisitor#end()} at the end
* of the walk
*/
- T walkInRowOrder(FieldMatrixPreservingVisitor<T> visitor)
- throws MatrixVisitorException;
+ T walkInRowOrder(FieldMatrixPreservingVisitor<T> visitor);
/**
* Visit (and possibly change) some matrix entries in row order.
@@ -549,8 +536,7 @@ public interface FieldMatrix<T extends F
* of the walk
*/
T walkInRowOrder(FieldMatrixChangingVisitor<T> visitor,
- int startRow, int endRow, int startColumn, int endColumn)
- throws MatrixIndexException, MatrixVisitorException;
+ int startRow, int endRow, int startColumn, int endColumn);
/**
* Visit (but don't change) some matrix entries in row order.
@@ -579,8 +565,7 @@ public interface FieldMatrix<T extends F
* of the walk
*/
T walkInRowOrder(FieldMatrixPreservingVisitor<T> visitor,
- int startRow, int endRow, int startColumn, int endColumn)
- throws MatrixIndexException, MatrixVisitorException;
+ int startRow, int endRow, int startColumn, int endColumn);
/**
* Visit (and possibly change) all matrix entries in column order.
@@ -603,8 +588,7 @@ public interface FieldMatrix<T extends F
* @return the value returned by {@link FieldMatrixChangingVisitor#end()} at the end
* of the walk
*/
- T walkInColumnOrder(FieldMatrixChangingVisitor<T> visitor)
- throws MatrixVisitorException;
+ T walkInColumnOrder(FieldMatrixChangingVisitor<T> visitor);
/**
* Visit (but don't change) all matrix entries in column order.
@@ -627,8 +611,7 @@ public interface FieldMatrix<T extends F
* @return the value returned by {@link FieldMatrixPreservingVisitor#end()} at the end
* of the walk
*/
- T walkInColumnOrder(FieldMatrixPreservingVisitor<T> visitor)
- throws MatrixVisitorException;
+ T walkInColumnOrder(FieldMatrixPreservingVisitor<T> visitor);
/**
* Visit (and possibly change) some matrix entries in column order.
@@ -657,8 +640,7 @@ public interface FieldMatrix<T extends F
* of the walk
*/
T walkInColumnOrder(FieldMatrixChangingVisitor<T> visitor,
- int startRow, int endRow, int startColumn, int endColumn)
- throws MatrixIndexException, MatrixVisitorException;
+ int startRow, int endRow, int startColumn, int endColumn);
/**
* Visit (but don't change) some matrix entries in column order.
@@ -687,8 +669,7 @@ public interface FieldMatrix<T extends F
* of the walk
*/
T walkInColumnOrder(FieldMatrixPreservingVisitor<T> visitor,
- int startRow, int endRow, int startColumn, int endColumn)
- throws MatrixIndexException, MatrixVisitorException;
+ int startRow, int endRow, int startColumn, int endColumn);
/**
* Visit (and possibly change) all matrix entries using the fastest possible order.
@@ -710,8 +691,7 @@ public interface FieldMatrix<T extends F
* @return the value returned by {@link FieldMatrixChangingVisitor#end()} at the end
* of the walk
*/
- T walkInOptimizedOrder(FieldMatrixChangingVisitor<T> visitor)
- throws MatrixVisitorException;
+ T walkInOptimizedOrder(FieldMatrixChangingVisitor<T> visitor);
/**
* Visit (but don't change) all matrix entries using the fastest possible order.
@@ -733,8 +713,7 @@ public interface FieldMatrix<T extends F
* @return the value returned by {@link FieldMatrixPreservingVisitor#end()} at the end
* of the walk
*/
- T walkInOptimizedOrder(FieldMatrixPreservingVisitor<T> visitor)
- throws MatrixVisitorException;
+ T walkInOptimizedOrder(FieldMatrixPreservingVisitor<T> visitor);
/**
* Visit (and possibly change) some matrix entries using the fastest possible order.
@@ -762,8 +741,7 @@ public interface FieldMatrix<T extends F
* of the walk
*/
T walkInOptimizedOrder(FieldMatrixChangingVisitor<T> visitor,
- int startRow, int endRow, int startColumn, int endColumn)
- throws MatrixIndexException, MatrixVisitorException;
+ int startRow, int endRow, int startColumn, int endColumn);
/**
* Visit (but don't change) some matrix entries using the fastest possible order.
@@ -791,7 +769,5 @@ public interface FieldMatrix<T extends F
* of the walk
*/
T walkInOptimizedOrder(FieldMatrixPreservingVisitor<T> visitor,
- int startRow, int endRow, int startColumn, int endColumn)
- throws MatrixIndexException, MatrixVisitorException;
-
+ int startRow, int endRow, int startColumn, int endColumn);
}
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/InvalidMatrixException.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/InvalidMatrixException.java?rev=1001107&r1=1001106&r2=1001107&view=diff
==============================================================================
--- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/InvalidMatrixException.java (original)
+++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/InvalidMatrixException.java Fri Sep 24 23:12:34 2010
@@ -26,6 +26,8 @@ import org.apache.commons.math.exception
* that matrix does not satisfy the preconditions for the
* aforementioned operation.
* @version $Revision$ $Date$
+ * @deprecated since 2.2. Please use the classes in the
+ * {@link org.apache.commons.math.exception} package.
*/
public class InvalidMatrixException extends MathRuntimeException {
Re: svn commit: r1001107 [1/2] - in /commons/proper/math/trunk/src:
main/java/org/apache/commons/math/exception/ main/java/org/apache/commons/math/exception/util/
main/java/org/apache/commons/math/linear/ main/resources/META-INF/localization/
site/xdoc/ te...
Posted by Phil Steitz <ph...@gmail.com>.
On 9/24/10 7:12 PM, erans@apache.org wrote:
> Author: erans
> Date: Fri Sep 24 23:12:34 2010
> New Revision: 1001107
>
> URL: http://svn.apache.org/viewvc?rev=1001107&view=rev
> Log:
> Introduced "MatrixDimensionMismatchException" to replace "InvalidMatrixException"
> whenever it was used to signal a row or column dimension mismatch.
> "MessageFactory": Fixed wrong order of appearance of general and specific messages.
>
It would be good to update changes.xml to document this change so it
can be referenced in the 3.0 release notes.
Phil
> Added:
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java (with props)
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java (with props)
> commons/proper/math/trunk/src/test/java/org/apache/commons/math/exception/MatrixDimensionMismatchExceptionTest.java (with props)
> Modified:
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/DimensionMismatchException.java
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/MessageFactory.java
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractRealMatrix.java
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockFieldMatrix.java
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockRealMatrix.java
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldMatrix.java
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/InvalidMatrixException.java
> commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/RealMatrix.java
> commons/proper/math/trunk/src/main/resources/META-INF/localization/LocalizedFormats_fr.properties
> commons/proper/math/trunk/src/site/xdoc/changes.xml
> commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/Array2DRowRealMatrixTest.java
> commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BlockFieldMatrixTest.java
> commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/BlockRealMatrixTest.java
> commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/FieldMatrixImplTest.java
> commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/RealMatrixImplTest.java
>
> Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/DimensionMismatchException.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/DimensionMismatchException.java?rev=1001107&r1=1001106&r2=1001107&view=diff
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/DimensionMismatchException.java (original)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/DimensionMismatchException.java Fri Sep 24 23:12:34 2010
> @@ -40,7 +40,9 @@ public class DimensionMismatchException
> */
> public DimensionMismatchException(int wrong,
> int expected) {
> - super(LocalizedFormats.DIMENSIONS_MISMATCH_SIMPLE, wrong, expected);
> + super(LocalizedFormats.DIMENSIONS_MISMATCH_SIMPLE,
> + LocalizedFormats.DIMENSIONS_MISMATCH,
> + wrong, expected);
> dimension = expected;
> }
>
>
> Added: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java?rev=1001107&view=auto
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java (added)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java Fri Sep 24 23:12:34 2010
> @@ -0,0 +1,73 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one or more
> + * contributor license agreements. See the NOTICE file distributed with
> + * this work for additional information regarding copyright ownership.
> + * The ASF licenses this file to You under the Apache License, Version 2.0
> + * (the "License"); you may not use this file except in compliance with
> + * the License. You may obtain a copy of the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +package org.apache.commons.math.exception;
> +
> +import org.apache.commons.math.exception.util.LocalizedFormats;
> +
> +/**
> + * Exception to be thrown when either the number of rows or the number of
> + * columns of a matrix do not match the expected values.
> + *
> + * @since 3.0
> + * @version $Revision$ $Date$
> + */
> +public class MatrixDimensionMismatchException extends MultiDimensionMismatchException {
> + /** Serializable version Id. */
> + private static final long serialVersionUID = -8415396756375798143L;
> +
> + /**
> + * Construct an exception from the mismatched dimensions.
> + *
> + * @param wrongRowDim Wrong row dimension.
> + * @param wrongColDim Wrong column dimension.
> + * @param expectedRowDim Expected row dimension.
> + * @param expectedColDim Expected column dimension.
> + */
> + public MatrixDimensionMismatchException(int wrongRowDim,
> + int wrongColDim,
> + int expectedRowDim,
> + int expectedColDim) {
> + super(LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> + new Integer[] { wrongRowDim, wrongColDim },
> + new Integer[] { expectedRowDim, expectedColDim });
> + }
> +
> + /**
> + * @return the expected row dimension.
> + */
> + public int getWrongRowDimension() {
> + return getWrongDimensions()[0];
> + }
> + /**
> + * @return the expected row dimension.
> + */
> + public int getExpectedRowDimension() {
> + return getExpectedDimensions()[0];
> + }
> + /**
> + * @return the wrong column dimension.
> + */
> + public int getWrongColumnDimension() {
> + return getWrongDimensions()[1];
> + }
> + /**
> + * @return the expected column dimension.
> + */
> + public int getExpectedColumnDimension() {
> + return getExpectedDimensions()[1];
> + }
> +}
>
> Propchange: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MatrixDimensionMismatchException.java
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Added: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java?rev=1001107&view=auto
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java (added)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java Fri Sep 24 23:12:34 2010
> @@ -0,0 +1,76 @@
> +/*
> + * Licensed to the Apache Software Foundation (ASF) under one or more
> + * contributor license agreements. See the NOTICE file distributed with
> + * this work for additional information regarding copyright ownership.
> + * The ASF licenses this file to You under the Apache License, Version 2.0
> + * (the "License"); you may not use this file except in compliance with
> + * the License. You may obtain a copy of the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +package org.apache.commons.math.exception;
> +
> +import org.apache.commons.math.exception.util.Localizable;
> +import org.apache.commons.math.exception.util.LocalizedFormats;
> +
> +/**
> + * Exception to be thrown when two sets of dimensions differ.
> + *
> + * @since 3.0
> + * @version $Revision$ $Date$
> + */
> +public class MultiDimensionMismatchException extends MathIllegalArgumentException {
> + /** Serializable version Id. */
> + private static final long serialVersionUID = -8415396756375798143L;
> +
> + /** Wrong dimensions. */
> + private final Integer[] wrong;
> + /** Correct dimensions. */
> + private final Integer[] expected;
> +
> + /**
> + * Construct an exception from the mismatched dimensions.
> + *
> + * @param wrong Wrong dimensionq.
> + * @param expected Expected dimensionq.
> + */
> + public MultiDimensionMismatchException(Integer[] wrong,
> + Integer[] expected) {
> + this(null, wrong, expected);
> + }
> +
> + /**
> + * Construct an exception from the mismatched dimensions.
> + *
> + * @param specific Message pattern providing the specific context of
> + * the error.
> + * @param wrong Wrong dimensions.
> + * @param expected Expected dimensions.
> + */
> + public MultiDimensionMismatchException(Localizable specific,
> + Integer[] wrong,
> + Integer[] expected) {
> + super(specific, LocalizedFormats.DIMENSIONS_MISMATCH, wrong, expected);
> + this.wrong = wrong.clone();
> + this.expected = expected.clone();
> + }
> +
> + /**
> + * @return a reference to the array containing the wrong dimensions.
> + */
> + public Integer[] getWrongDimensions() {
> + return wrong;
> + }
> + /**
> + * @return a reference to the array containing the expected dimensions.
> + */
> + public Integer[] getExpectedDimensions() {
> + return expected;
> + }
> +}
>
> Propchange: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/MultiDimensionMismatchException.java
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java?rev=1001107&r1=1001106&r2=1001107&view=diff
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java (original)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/LocalizedFormats.java Fri Sep 24 23:12:34 2010
> @@ -79,8 +79,9 @@ public enum LocalizedFormats implements
> CUMULATIVE_PROBABILITY_RETURNED_NAN("Cumulative probability function returned NaN for argument {0} p = {1}"),
> DIFFERENT_ROWS_LENGTHS("some rows have length {0} while others have length {1}"),
> DIGEST_NOT_INITIALIZED("digest not initialized"),
> - DIMENSIONS_MISMATCH_2x2("dimensions mismatch: got {0}x{1} but expected {2}x{3}"),
> - DIMENSIONS_MISMATCH_SIMPLE("dimensions mismatch {0} != {1}"), /* keep */
> + DIMENSIONS_MISMATCH_2x2("got {0}x{1} but expected {2}x{3}"), /* keep */
> + DIMENSIONS_MISMATCH_SIMPLE("{0} != {1}"), /* keep */
> + DIMENSIONS_MISMATCH("dimensions mismatch"), /* keep */
> DISCRETE_CUMULATIVE_PROBABILITY_RETURNED_NAN("Discrete cumulative probability function returned NaN for argument {0}"),
> DISTRIBUTION_NOT_LOADED("distribution not loaded"),
> DUPLICATED_ABSCISSA("Abscissa {0} is duplicated at both indices {1} and {2}"),
>
> Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/MessageFactory.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/MessageFactory.java?rev=1001107&r1=1001106&r2=1001107&view=diff
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/MessageFactory.java (original)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/exception/util/MessageFactory.java Fri Sep 24 23:12:34 2010
> @@ -63,13 +63,13 @@ public class MessageFactory {
> Object ... arguments) {
> final StringBuilder sb = new StringBuilder();
> MessageFormat fmt = null;
> + fmt = new MessageFormat(general.getLocalizedString(locale), locale);
> + sb.append(fmt.format(arguments));
> if (specific != null) {
> + sb.append(": ");
> fmt = new MessageFormat(specific.getLocalizedString(locale), locale);
> sb.append(fmt.format(arguments));
> - sb.append(": ");
> }
> - fmt = new MessageFormat(general.getLocalizedString(locale), locale);
> - sb.append(fmt.format(arguments));
>
> return sb.toString();
> }
>
> Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java?rev=1001107&r1=1001106&r2=1001107&view=diff
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java (original)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractFieldMatrix.java Fri Sep 24 23:12:34 2010
> @@ -23,6 +23,7 @@ import java.util.Arrays;
> import org.apache.commons.math.Field;
> import org.apache.commons.math.FieldElement;
> import org.apache.commons.math.MathRuntimeException;
> +import org.apache.commons.math.exception.MatrixDimensionMismatchException;
> import org.apache.commons.math.exception.util.LocalizedFormats;
>
> /**
> @@ -445,16 +446,14 @@ public abstract class AbstractFieldMatri
> }
>
> /** {@inheritDoc} */
> - public void setRowMatrix(final int row, final FieldMatrix<T> matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setRowMatrix(final int row, final FieldMatrix<T> matrix) {
> checkRowIndex(row);
> final int nCols = getColumnDimension();
> if ((matrix.getRowDimension() != 1) ||
> (matrix.getColumnDimension() != nCols)) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - matrix.getRowDimension(), matrix.getColumnDimension(), 1, nCols);
> + throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
> + matrix.getColumnDimension(),
> + 1, nCols);
> }
> for (int i = 0; i< nCols; ++i) {
> setEntry(row, i, matrix.getEntry(0, i));
> @@ -478,16 +477,14 @@ public abstract class AbstractFieldMatri
> }
>
> /** {@inheritDoc} */
> - public void setColumnMatrix(final int column, final FieldMatrix<T> matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setColumnMatrix(final int column, final FieldMatrix<T> matrix) {
> checkColumnIndex(column);
> final int nRows = getRowDimension();
> if ((matrix.getRowDimension() != nRows) ||
> (matrix.getColumnDimension() != 1)) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - matrix.getRowDimension(), matrix.getColumnDimension(), nRows, 1);
> + throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
> + matrix.getColumnDimension(),
> + nRows, 1);
> }
> for (int i = 0; i< nRows; ++i) {
> setEntry(i, column, matrix.getEntry(i, 0));
> @@ -502,15 +499,12 @@ public abstract class AbstractFieldMatri
> }
>
> /** {@inheritDoc} */
> - public void setRowVector(final int row, final FieldVector<T> vector)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setRowVector(final int row, final FieldVector<T> vector) {
> checkRowIndex(row);
> final int nCols = getColumnDimension();
> if (vector.getDimension() != nCols) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - 1, vector.getDimension(), 1, nCols);
> + throw new MatrixDimensionMismatchException(1, vector.getDimension(),
> + 1, nCols);
> }
> for (int i = 0; i< nCols; ++i) {
> setEntry(row, i, vector.getEntry(i));
> @@ -525,15 +519,12 @@ public abstract class AbstractFieldMatri
> }
>
> /** {@inheritDoc} */
> - public void setColumnVector(final int column, final FieldVector<T> vector)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setColumnVector(final int column, final FieldVector<T> vector) {
> checkColumnIndex(column);
> final int nRows = getRowDimension();
> if (vector.getDimension() != nRows) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - vector.getDimension(), 1, nRows, 1);
> + throw new MatrixDimensionMismatchException(vector.getDimension(), 1,
> + nRows, 1);
> }
> for (int i = 0; i< nRows; ++i) {
> setEntry(i, column, vector.getEntry(i));
> @@ -557,15 +548,11 @@ public abstract class AbstractFieldMatri
> }
>
> /** {@inheritDoc} */
> - public void setRow(final int row, final T[] array)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setRow(final int row, final T[] array) {
> checkRowIndex(row);
> final int nCols = getColumnDimension();
> if (array.length != nCols) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - 1, array.length, 1, nCols);
> + throw new MatrixDimensionMismatchException(1, array.length, 1, nCols);
> }
> for (int i = 0; i< nCols; ++i) {
> setEntry(row, i, array[i]);
> @@ -589,20 +576,15 @@ public abstract class AbstractFieldMatri
> }
>
> /** {@inheritDoc} */
> - public void setColumn(final int column, final T[] array)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setColumn(final int column, final T[] array) {
> checkColumnIndex(column);
> final int nRows = getRowDimension();
> if (array.length != nRows) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - array.length, 1, nRows, 1);
> + throw new MatrixDimensionMismatchException(array.length, 1, nRows, 1);
> }
> for (int i = 0; i< nRows; ++i) {
> setEntry(i, column, array[i]);
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -623,22 +605,18 @@ public abstract class AbstractFieldMatri
>
> /** {@inheritDoc} */
> public FieldMatrix<T> transpose() {
> -
> final int nRows = getRowDimension();
> final int nCols = getColumnDimension();
> final FieldMatrix<T> out = createMatrix(nCols, nRows);
> walkInOptimizedOrder(new DefaultFieldMatrixPreservingVisitor<T>(field.getZero()) {
> -
> /** {@inheritDoc} */
> @Override
> public void visit(final int row, final int column, final T value) {
> out.setEntry(column, row, value);
> }
> -
> });
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -689,7 +667,6 @@ public abstract class AbstractFieldMatri
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -741,7 +718,6 @@ public abstract class AbstractFieldMatri
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -769,7 +745,6 @@ public abstract class AbstractFieldMatri
> }
>
> return new ArrayFieldVector<T>(out);
> -
> }
> }
>
> @@ -958,7 +933,6 @@ public abstract class AbstractFieldMatri
>
> res.append("}");
> return res.toString();
> -
> }
>
> /**
> @@ -1063,8 +1037,6 @@ public abstract class AbstractFieldMatri
> throw new MatrixIndexException(LocalizedFormats.INITIAL_COLUMN_AFTER_FINAL_COLUMN,
> startColumn, endColumn);
> }
> -
> -
> }
>
> /**
> @@ -1134,5 +1106,4 @@ public abstract class AbstractFieldMatri
> m.getRowDimension(), m.getColumnDimension());
> }
> }
> -
> }
>
> Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractRealMatrix.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractRealMatrix.java?rev=1001107&r1=1001106&r2=1001107&view=diff
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractRealMatrix.java (original)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/AbstractRealMatrix.java Fri Sep 24 23:12:34 2010
> @@ -17,7 +17,10 @@
>
> package org.apache.commons.math.linear;
>
> -import org.apache.commons.math.MathRuntimeException;
> +import org.apache.commons.math.exception.NoDataException;
> +import org.apache.commons.math.exception.NotStrictlyPositiveException;
> +import org.apache.commons.math.exception.DimensionMismatchException;
> +import org.apache.commons.math.exception.MatrixDimensionMismatchException;
> import org.apache.commons.math.exception.util.LocalizedFormats;
> import org.apache.commons.math.util.MathUtils;
> import org.apache.commons.math.util.FastMath;
> @@ -51,17 +54,14 @@ public abstract class AbstractRealMatrix
> *
> * @param rowDimension the number of rows in the new matrix
> * @param columnDimension the number of columns in the new matrix
> - * @throws IllegalArgumentException if row or column dimension is not positive
> + * @throws NotStrictlyPositiveException if row or column dimension is not positive
> */
> - protected AbstractRealMatrix(final int rowDimension, final int columnDimension)
> - throws IllegalArgumentException {
> - if (rowDimension< 1 ) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.INSUFFICIENT_DIMENSION, rowDimension, 1);
> - }
> - if (columnDimension<= 0) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.INSUFFICIENT_DIMENSION, columnDimension, 1);
> + protected AbstractRealMatrix(final int rowDimension, final int columnDimension) {
> + if (rowDimension< 1) {
> + throw new NotStrictlyPositiveException(rowDimension);
> + }
> + if (columnDimension< 1) {
> + throw new NotStrictlyPositiveException(columnDimension);
> }
> lu = null;
> }
> @@ -89,7 +89,6 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -108,7 +107,6 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -124,7 +122,6 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -140,7 +137,6 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -165,7 +161,6 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -187,7 +182,6 @@ public abstract class AbstractRealMatrix
> }
>
> return data;
> -
> }
>
> /** {@inheritDoc} */
> @@ -225,7 +219,6 @@ public abstract class AbstractRealMatrix
> public double end() {
> return maxColSum;
> }
> -
> });
> }
>
> @@ -252,7 +245,6 @@ public abstract class AbstractRealMatrix
> public double end() {
> return FastMath.sqrt(sum);
> }
> -
> });
> }
>
> @@ -272,7 +264,6 @@ public abstract class AbstractRealMatrix
> }
>
> return subMatrix;
> -
> }
>
> /** {@inheritDoc} */
> @@ -296,7 +287,6 @@ public abstract class AbstractRealMatrix
> });
>
> return subMatrix;
> -
> }
>
> /** {@inheritDoc} */
> @@ -310,10 +300,8 @@ public abstract class AbstractRealMatrix
> final int rowsCount = endRow + 1 - startRow;
> final int columnsCount = endColumn + 1 - startColumn;
> if ((destination.length< rowsCount) || (destination[0].length< columnsCount)) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - destination.length, destination[0].length,
> - rowsCount, columnsCount);
> + throw new MatrixDimensionMismatchException(destination.length, destination[0].length,
> + rowsCount, columnsCount);
> }
>
> // copy entries
> @@ -341,21 +329,17 @@ public abstract class AbstractRealMatrix
> }
>
> }, startRow, endRow, startColumn, endColumn);
> -
> }
>
> /** {@inheritDoc} */
> - public void copySubMatrix(int[] selectedRows, int[] selectedColumns, double[][] destination)
> - throws MatrixIndexException, IllegalArgumentException {
> + public void copySubMatrix(int[] selectedRows, int[] selectedColumns, double[][] destination) {
>
> // safety checks
> MatrixUtils.checkSubMatrixIndex(this, selectedRows, selectedColumns);
> if ((destination.length< selectedRows.length) ||
> (destination[0].length< selectedColumns.length)) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - destination.length, destination[0].length,
> - selectedRows.length, selectedColumns.length);
> + throw new MatrixDimensionMismatchException(destination.length, destination[0].length,
> + selectedRows.length, selectedColumns.length);
> }
>
> // copy entries
> @@ -365,7 +349,6 @@ public abstract class AbstractRealMatrix
> destinationI[j] = getEntry(selectedRows[i], selectedColumns[j]);
> }
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -374,19 +357,17 @@ public abstract class AbstractRealMatrix
>
> final int nRows = subMatrix.length;
> if (nRows == 0) {
> - throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.AT_LEAST_ONE_ROW);
> + throw new NoDataException(LocalizedFormats.AT_LEAST_ONE_ROW);
> }
>
> final int nCols = subMatrix[0].length;
> if (nCols == 0) {
> - throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
> + throw new NoDataException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
> }
>
> for (int r = 1; r< nRows; ++r) {
> if (subMatrix[r].length != nCols) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.DIFFERENT_ROWS_LENGTHS,
> - nCols, subMatrix[r].length);
> + throw new DimensionMismatchException(nCols, subMatrix[r].length);
> }
> }
>
> @@ -402,7 +383,6 @@ public abstract class AbstractRealMatrix
> }
>
> lu = null;
> -
> }
>
> /** {@inheritDoc} */
> @@ -417,25 +397,21 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> - public void setRowMatrix(final int row, final RealMatrix matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setRowMatrix(final int row, final RealMatrix matrix) {
> MatrixUtils.checkRowIndex(this, row);
> final int nCols = getColumnDimension();
> if ((matrix.getRowDimension() != 1) ||
> (matrix.getColumnDimension() != nCols)) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - matrix.getRowDimension(), matrix.getColumnDimension(), 1, nCols);
> + throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
> + matrix.getColumnDimension(),
> + 1, nCols);
> }
> for (int i = 0; i< nCols; ++i) {
> setEntry(row, i, matrix.getEntry(0, i));
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -450,25 +426,21 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> - public void setColumnMatrix(final int column, final RealMatrix matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setColumnMatrix(final int column, final RealMatrix matrix) {
> MatrixUtils.checkColumnIndex(this, column);
> final int nRows = getRowDimension();
> if ((matrix.getRowDimension() != nRows) ||
> (matrix.getColumnDimension() != 1)) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - matrix.getRowDimension(), matrix.getColumnDimension(), nRows, 1);
> + throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
> + matrix.getColumnDimension(),
> + nRows, 1);
> }
> for (int i = 0; i< nRows; ++i) {
> setEntry(i, column, matrix.getEntry(i, 0));
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -478,20 +450,16 @@ public abstract class AbstractRealMatrix
> }
>
> /** {@inheritDoc} */
> - public void setRowVector(final int row, final RealVector vector)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setRowVector(final int row, final RealVector vector) {
> MatrixUtils.checkRowIndex(this, row);
> final int nCols = getColumnDimension();
> if (vector.getDimension() != nCols) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - 1, vector.getDimension(), 1, nCols);
> + throw new MatrixDimensionMismatchException(1, vector.getDimension(),
> + 1, nCols);
> }
> for (int i = 0; i< nCols; ++i) {
> setEntry(row, i, vector.getEntry(i));
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -501,20 +469,16 @@ public abstract class AbstractRealMatrix
> }
>
> /** {@inheritDoc} */
> - public void setColumnVector(final int column, final RealVector vector)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setColumnVector(final int column, final RealVector vector) {
> MatrixUtils.checkColumnIndex(this, column);
> final int nRows = getRowDimension();
> if (vector.getDimension() != nRows) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - vector.getDimension(), 1, nRows, 1);
> + throw new MatrixDimensionMismatchException(vector.getDimension(), 1,
> + nRows, 1);
> }
> for (int i = 0; i< nRows; ++i) {
> setEntry(i, column, vector.getEntry(i));
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -529,24 +493,18 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> - public void setRow(final int row, final double[] array)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setRow(final int row, final double[] array) {
> MatrixUtils.checkRowIndex(this, row);
> final int nCols = getColumnDimension();
> if (array.length != nCols) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - 1, array.length, 1, nCols);
> + throw new MatrixDimensionMismatchException(1, array.length, 1, nCols);
> }
> for (int i = 0; i< nCols; ++i) {
> setEntry(row, i, array[i]);
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -561,24 +519,18 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> - public void setColumn(final int column, final double[] array)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setColumn(final int column, final double[] array) {
> MatrixUtils.checkColumnIndex(this, column);
> final int nRows = getRowDimension();
> if (array.length != nRows) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - array.length, 1, nRows, 1);
> + throw new MatrixDimensionMismatchException(array.length, 1, nRows, 1);
> }
> for (int i = 0; i< nRows; ++i) {
> setEntry(i, column, array[i]);
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -614,7 +566,6 @@ public abstract class AbstractRealMatrix
> });
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -676,9 +627,7 @@ public abstract class AbstractRealMatrix
> final int nRows = getRowDimension();
> final int nCols = getColumnDimension();
> if (v.length != nCols) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.VECTOR_LENGTH_MISMATCH,
> - v.length, nCols);
> + throw new DimensionMismatchException(v.length, nCols);
> }
>
> final double[] out = new double[nRows];
> @@ -691,7 +640,6 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -703,9 +651,7 @@ public abstract class AbstractRealMatrix
> final int nRows = getRowDimension();
> final int nCols = getColumnDimension();
> if (v.getDimension() != nCols) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.VECTOR_LENGTH_MISMATCH,
> - v.getDimension(), nCols);
> + throw new DimensionMismatchException(v.getDimension(), nCols);
> }
>
> final double[] out = new double[nRows];
> @@ -728,9 +674,7 @@ public abstract class AbstractRealMatrix
> final int nRows = getRowDimension();
> final int nCols = getColumnDimension();
> if (v.length != nRows) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.VECTOR_LENGTH_MISMATCH,
> - v.length, nRows);
> + throw new DimensionMismatchException(v.length, nRows);
> }
>
> final double[] out = new double[nCols];
> @@ -743,7 +687,6 @@ public abstract class AbstractRealMatrix
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -756,9 +699,7 @@ public abstract class AbstractRealMatrix
> final int nRows = getRowDimension();
> final int nCols = getColumnDimension();
> if (v.getDimension() != nRows) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.VECTOR_LENGTH_MISMATCH,
> - v.getDimension(), nRows);
> + throw new DimensionMismatchException(v.getDimension(), nRows);
> }
>
> final double[] out = new double[nCols];
> @@ -771,7 +712,6 @@ public abstract class AbstractRealMatrix
> }
>
> return new ArrayRealVector(out);
> -
> }
> }
>
> @@ -1011,7 +951,6 @@ public abstract class AbstractRealMatrix
>
> res.append("}");
> return res.toString();
> -
> }
>
> /**
> @@ -1066,5 +1005,4 @@ public abstract class AbstractRealMatrix
> }
> return ret;
> }
> -
> }
>
> Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockFieldMatrix.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockFieldMatrix.java?rev=1001107&r1=1001106&r2=1001107&view=diff
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockFieldMatrix.java (original)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockFieldMatrix.java Fri Sep 24 23:12:34 2010
> @@ -21,7 +21,9 @@ import java.io.Serializable;
>
> import org.apache.commons.math.Field;
> import org.apache.commons.math.FieldElement;
> -import org.apache.commons.math.MathRuntimeException;
> +import org.apache.commons.math.exception.NoDataException;
> +import org.apache.commons.math.exception.DimensionMismatchException;
> +import org.apache.commons.math.exception.MatrixDimensionMismatchException;
> import org.apache.commons.math.exception.util.LocalizedFormats;
> import org.apache.commons.math.util.FastMath;
>
> @@ -171,9 +173,8 @@ public class BlockFieldMatrix<T extends
> final int iHeight = blockHeight(iBlock);
> for (int jBlock = 0; jBlock< blockColumns; ++jBlock, ++index) {
> if (blockData[index].length != iHeight * blockWidth(jBlock)) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.WRONG_BLOCK_LENGTH,
> - blockData[index].length, iHeight * blockWidth(jBlock));
> + throw new DimensionMismatchException(blockData[index].length,
> + iHeight * blockWidth(jBlock));
> }
> if (copyArray) {
> blocks[index] = blockData[index].clone();
> @@ -219,9 +220,7 @@ public class BlockFieldMatrix<T extends
> for (int i = 0; i< rawData.length; ++i) {
> final int length = rawData[i].length;
> if (length != columns) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.DIFFERENT_ROWS_LENGTHS,
> - columns, length);
> + throw new DimensionMismatchException(columns, length);
> }
> }
>
> @@ -810,17 +809,15 @@ public class BlockFieldMatrix<T extends
>
> // safety checks
> final int refLength = subMatrix[0].length;
> - if (refLength< 1) {
> - throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
> + if (refLength == 0) {
> + throw new NoDataException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
> }
> final int endRow = row + subMatrix.length - 1;
> final int endColumn = column + refLength - 1;
> checkSubMatrixIndex(row, endRow, column, endColumn);
> for (final T[] subRow : subMatrix) {
> if (subRow.length != refLength) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.DIFFERENT_ROWS_LENGTHS,
> - refLength, subRow.length);
> + throw new DimensionMismatchException(refLength, subRow.length);
> }
> }
>
> @@ -891,8 +888,7 @@ public class BlockFieldMatrix<T extends
>
> /** {@inheritDoc} */
> @Override
> - public void setRowMatrix(final int row, final FieldMatrix<T> matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> + public void setRowMatrix(final int row, final FieldMatrix<T> matrix) {
> try {
> setRowMatrix(row, (BlockFieldMatrix<T>) matrix);
> } catch (ClassCastException cce) {
> @@ -908,20 +904,17 @@ public class BlockFieldMatrix<T extends
> * @param matrix row matrix (must have one row and the same number of columns
> * as the instance)
> * @throws MatrixIndexException if the specified row index is invalid
> - * @throws InvalidMatrixException if the matrix dimensions do not match one
> + * @throws MatrixDimensionMismatchException if the matrix dimensions do not match one
> * instance row
> */
> - public void setRowMatrix(final int row, final BlockFieldMatrix<T> matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setRowMatrix(final int row, final BlockFieldMatrix<T> matrix) {
> checkRowIndex(row);
> final int nCols = getColumnDimension();
> if ((matrix.getRowDimension() != 1) ||
> (matrix.getColumnDimension() != nCols)) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - matrix.getRowDimension(), matrix.getColumnDimension(),
> - 1, nCols);
> + throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
> + matrix.getColumnDimension(),
> + 1, nCols);
> }
>
> // perform copy block-wise, to ensure good cache behavior
> @@ -980,8 +973,7 @@ public class BlockFieldMatrix<T extends
>
> /** {@inheritDoc} */
> @Override
> - public void setColumnMatrix(final int column, final FieldMatrix<T> matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> + public void setColumnMatrix(final int column, final FieldMatrix<T> matrix) {
> try {
> setColumnMatrix(column, (BlockFieldMatrix<T>) matrix);
> } catch (ClassCastException cce) {
> @@ -997,20 +989,17 @@ public class BlockFieldMatrix<T extends
> * @param matrix column matrix (must have one column and the same number of rows
> * as the instance)
> * @throws MatrixIndexException if the specified column index is invalid
> - * @throws InvalidMatrixException if the matrix dimensions do not match one
> + * @throws MatrixDimensionMismatchException if the matrix dimensions do not match one
> * instance column
> */
> - void setColumnMatrix(final int column, final BlockFieldMatrix<T> matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + void setColumnMatrix(final int column, final BlockFieldMatrix<T> matrix) {
> checkColumnIndex(column);
> final int nRows = getRowDimension();
> if ((matrix.getRowDimension() != nRows) ||
> (matrix.getColumnDimension() != 1)) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - matrix.getRowDimension(), matrix.getColumnDimension(),
> - nRows, 1);
> + throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
> + matrix.getColumnDimension(),
> + nRows, 1);
> }
>
> // perform copy block-wise, to ensure good cache behavior
> @@ -1031,7 +1020,6 @@ public class BlockFieldMatrix<T extends
> block[i * jWidth + jColumn] = mBlock[mIndex++];
> }
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -1059,8 +1047,7 @@ public class BlockFieldMatrix<T extends
>
> /** {@inheritDoc} */
> @Override
> - public void setRowVector(final int row, final FieldVector<T> vector)
> - throws MatrixIndexException, InvalidMatrixException {
> + public void setRowVector(final int row, final FieldVector<T> vector) {
> try {
> setRow(row, ((ArrayFieldVector<T>) vector).getDataRef());
> } catch (ClassCastException cce) {
> @@ -1095,8 +1082,7 @@ public class BlockFieldMatrix<T extends
>
> /** {@inheritDoc} */
> @Override
> - public void setColumnVector(final int column, final FieldVector<T> vector)
> - throws MatrixIndexException, InvalidMatrixException {
> + public void setColumnVector(final int column, final FieldVector<T> vector) {
> try {
> setColumn(column, ((ArrayFieldVector<T>) vector).getDataRef());
> } catch (ClassCastException cce) {
> @@ -1129,15 +1115,11 @@ public class BlockFieldMatrix<T extends
>
> /** {@inheritDoc} */
> @Override
> - public void setRow(final int row, final T[] array)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setRow(final int row, final T[] array) {
> checkRowIndex(row);
> final int nCols = getColumnDimension();
> if (array.length != nCols) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - 1, array.length, 1, nCols);
> + throw new MatrixDimensionMismatchException(1, array.length, 1, nCols);
> }
>
> // perform copy block-wise, to ensure good cache behavior
> @@ -1150,7 +1132,6 @@ public class BlockFieldMatrix<T extends
> System.arraycopy(array, outIndex, block, iRow * jWidth, jWidth);
> outIndex += jWidth;
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -1175,20 +1156,15 @@ public class BlockFieldMatrix<T extends
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @Override
> - public void setColumn(final int column, final T[] array)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setColumn(final int column, final T[] array) {
> checkColumnIndex(column);
> final int nRows = getRowDimension();
> if (array.length != nRows) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - array.length, 1, nRows, 1);
> + throw new MatrixDimensionMismatchException(array.length, 1, nRows, 1);
> }
>
> // perform copy block-wise, to ensure good cache behavior
> @@ -1203,7 +1179,6 @@ public class BlockFieldMatrix<T extends
> block[i * jWidth + jColumn] = array[outIndex++];
> }
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -1314,7 +1289,6 @@ public class BlockFieldMatrix<T extends
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -1335,9 +1309,7 @@ public class BlockFieldMatrix<T extends
> throws IllegalArgumentException {
>
> if (v.length != columns) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.VECTOR_LENGTH_MISMATCH,
> - v.length, columns);
> + throw new DimensionMismatchException(v.length, columns);
> }
> final T[] out = buildArray(getField(), rows);
> final T zero = getField().getZero();
> @@ -1372,7 +1344,6 @@ public class BlockFieldMatrix<T extends
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -1381,9 +1352,7 @@ public class BlockFieldMatrix<T extends
> throws IllegalArgumentException {
>
> if (v.length != rows) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.VECTOR_LENGTH_MISMATCH,
> - v.length, rows);
> + throw new DimensionMismatchException(v.length, rows);
> }
> final T[] out = buildArray(getField(), columns);
> final T zero = getField().getZero();
> @@ -1423,7 +1392,6 @@ public class BlockFieldMatrix<T extends
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -1665,5 +1633,4 @@ public class BlockFieldMatrix<T extends
> private int blockWidth(final int blockColumn) {
> return (blockColumn == blockColumns - 1) ? columns - blockColumn * BLOCK_SIZE : BLOCK_SIZE;
> }
> -
> }
>
> Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockRealMatrix.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockRealMatrix.java?rev=1001107&r1=1001106&r2=1001107&view=diff
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockRealMatrix.java (original)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/BlockRealMatrix.java Fri Sep 24 23:12:34 2010
> @@ -20,7 +20,9 @@ package org.apache.commons.math.linear;
> import java.io.Serializable;
> import java.util.Arrays;
>
> -import org.apache.commons.math.MathRuntimeException;
> +import org.apache.commons.math.exception.MatrixDimensionMismatchException;
> +import org.apache.commons.math.exception.DimensionMismatchException;
> +import org.apache.commons.math.exception.NoDataException;
> import org.apache.commons.math.exception.util.LocalizedFormats;
> import org.apache.commons.math.util.FastMath;
>
> @@ -168,16 +170,14 @@ public class BlockRealMatrix extends Abs
> final int iHeight = blockHeight(iBlock);
> for (int jBlock = 0; jBlock< blockColumns; ++jBlock, ++index) {
> if (blockData[index].length != iHeight * blockWidth(jBlock)) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.WRONG_BLOCK_LENGTH,
> - blockData[index].length, iHeight * blockWidth(jBlock));
> + throw new DimensionMismatchException(blockData[index].length,
> + iHeight * blockWidth(jBlock));
> }
> if (copyArray) {
> blocks[index] = blockData[index].clone();
> }
> }
> }
> -
> }
>
> /**
> @@ -214,9 +214,7 @@ public class BlockRealMatrix extends Abs
> for (int i = 0; i< rawData.length; ++i) {
> final int length = rawData[i].length;
> if (length != columns) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.DIFFERENT_ROWS_LENGTHS,
> - columns, length);
> + throw new DimensionMismatchException(columns, length);
> }
> }
>
> @@ -249,7 +247,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return blocks;
> -
> }
>
> /**
> @@ -285,7 +282,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return blocks;
> -
> }
>
> /** {@inheritDoc} */
> @@ -308,7 +304,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return copied;
> -
> }
>
> /** {@inheritDoc} */
> @@ -351,7 +346,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
> }
>
> @@ -381,7 +375,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -424,7 +417,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
> }
>
> @@ -454,7 +446,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -474,7 +465,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -494,7 +484,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -554,7 +543,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
> }
>
> @@ -627,7 +615,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -657,7 +644,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return data;
> -
> }
>
> /** {@inheritDoc} */
> @@ -796,7 +782,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /**
> @@ -836,17 +821,15 @@ public class BlockRealMatrix extends Abs
>
> // safety checks
> final int refLength = subMatrix[0].length;
> - if (refLength< 1) {
> - throw MathRuntimeException.createIllegalArgumentException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
> + if (refLength == 0) {
> + throw new NoDataException(LocalizedFormats.AT_LEAST_ONE_COLUMN);
> }
> final int endRow = row + subMatrix.length - 1;
> final int endColumn = column + refLength - 1;
> MatrixUtils.checkSubMatrixIndex(this, row, endRow, column, endColumn);
> for (final double[] subRow : subMatrix) {
> if (subRow.length != refLength) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.DIFFERENT_ROWS_LENGTHS,
> - refLength, subRow.length);
> + throw new DimensionMismatchException(refLength, subRow.length);
> }
> }
>
> @@ -912,13 +895,11 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @Override
> - public void setRowMatrix(final int row, final RealMatrix matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> + public void setRowMatrix(final int row, final RealMatrix matrix) {
> try {
> setRowMatrix(row, (BlockRealMatrix) matrix);
> } catch (ClassCastException cce) {
> @@ -934,20 +915,17 @@ public class BlockRealMatrix extends Abs
> * @param matrix row matrix (must have one row and the same number of columns
> * as the instance)
> * @throws MatrixIndexException if the specified row index is invalid
> - * @throws InvalidMatrixException if the matrix dimensions do not match one
> + * @throws MatrixDimensionMismatchException if the matrix dimensions do not match one
> * instance row
> */
> - public void setRowMatrix(final int row, final BlockRealMatrix matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setRowMatrix(final int row, final BlockRealMatrix matrix) {
> MatrixUtils.checkRowIndex(this, row);
> final int nCols = getColumnDimension();
> if ((matrix.getRowDimension() != 1) ||
> (matrix.getColumnDimension() != nCols)) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - matrix.getRowDimension(), matrix.getColumnDimension(),
> - 1, nCols);
> + throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
> + matrix.getColumnDimension(),
> + 1, nCols);
> }
>
> // perform copy block-wise, to ensure good cache behavior
> @@ -970,7 +948,6 @@ public class BlockRealMatrix extends Abs
> mIndex += jWidth;
> }
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -1001,13 +978,11 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @Override
> - public void setColumnMatrix(final int column, final RealMatrix matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> + public void setColumnMatrix(final int column, final RealMatrix matrix) {
> try {
> setColumnMatrix(column, (BlockRealMatrix) matrix);
> } catch (ClassCastException cce) {
> @@ -1023,20 +998,17 @@ public class BlockRealMatrix extends Abs
> * @param matrix column matrix (must have one column and the same number of rows
> * as the instance)
> * @throws MatrixIndexException if the specified column index is invalid
> - * @throws InvalidMatrixException if the matrix dimensions do not match one
> + * @throws MatrixDimensionMismatchException if the matrix dimensions do not match one
> * instance column
> */
> - void setColumnMatrix(final int column, final BlockRealMatrix matrix)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + void setColumnMatrix(final int column, final BlockRealMatrix matrix) {
> MatrixUtils.checkColumnIndex(this, column);
> final int nRows = getRowDimension();
> if ((matrix.getRowDimension() != nRows) ||
> (matrix.getColumnDimension() != 1)) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - matrix.getRowDimension(), matrix.getColumnDimension(),
> - nRows, 1);
> + throw new MatrixDimensionMismatchException(matrix.getRowDimension(),
> + matrix.getColumnDimension(),
> + nRows, 1);
> }
>
> // perform copy block-wise, to ensure good cache behavior
> @@ -1057,7 +1029,6 @@ public class BlockRealMatrix extends Abs
> block[i * jWidth + jColumn] = mBlock[mIndex++];
> }
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -1080,13 +1051,11 @@ public class BlockRealMatrix extends Abs
> }
>
> return new ArrayRealVector(outData, false);
> -
> }
>
> /** {@inheritDoc} */
> @Override
> - public void setRowVector(final int row, final RealVector vector)
> - throws MatrixIndexException, InvalidMatrixException {
> + public void setRowVector(final int row, final RealVector vector) {
> try {
> setRow(row, ((ArrayRealVector) vector).getDataRef());
> } catch (ClassCastException cce) {
> @@ -1116,13 +1085,11 @@ public class BlockRealMatrix extends Abs
> }
>
> return new ArrayRealVector(outData, false);
> -
> }
>
> /** {@inheritDoc} */
> @Override
> - public void setColumnVector(final int column, final RealVector vector)
> - throws MatrixIndexException, InvalidMatrixException {
> + public void setColumnVector(final int column, final RealVector vector) {
> try {
> setColumn(column, ((ArrayRealVector) vector).getDataRef());
> } catch (ClassCastException cce) {
> @@ -1150,20 +1117,15 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @Override
> - public void setRow(final int row, final double[] array)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setRow(final int row, final double[] array) {
> MatrixUtils.checkRowIndex(this, row);
> final int nCols = getColumnDimension();
> if (array.length != nCols) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - 1, array.length, 1, nCols);
> + throw new MatrixDimensionMismatchException(1, array.length, 1, nCols);
> }
>
> // perform copy block-wise, to ensure good cache behavior
> @@ -1176,7 +1138,6 @@ public class BlockRealMatrix extends Abs
> System.arraycopy(array, outIndex, block, iRow * jWidth, jWidth);
> outIndex += jWidth;
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -1201,20 +1162,15 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @Override
> - public void setColumn(final int column, final double[] array)
> - throws MatrixIndexException, InvalidMatrixException {
> -
> + public void setColumn(final int column, final double[] array) {
> MatrixUtils.checkColumnIndex(this, column);
> final int nRows = getRowDimension();
> if (array.length != nRows) {
> - throw new InvalidMatrixException(
> - LocalizedFormats.DIMENSIONS_MISMATCH_2x2,
> - array.length, 1, nRows, 1);
> + throw new MatrixDimensionMismatchException(array.length, 1, nRows, 1);
> }
>
> // perform copy block-wise, to ensure good cache behavior
> @@ -1229,7 +1185,6 @@ public class BlockRealMatrix extends Abs
> block[i * jWidth + jColumn] = array[outIndex++];
> }
> }
> -
> }
>
> /** {@inheritDoc} */
> @@ -1338,7 +1293,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -1359,9 +1313,7 @@ public class BlockRealMatrix extends Abs
> throws IllegalArgumentException {
>
> if (v.length != columns) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.VECTOR_LENGTH_MISMATCH,
> - v.length, columns);
> + throw new DimensionMismatchException(v.length, columns);
> }
> final double[] out = new double[rows];
>
> @@ -1394,7 +1346,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -1403,9 +1354,7 @@ public class BlockRealMatrix extends Abs
> throws IllegalArgumentException {
>
> if (v.length != rows) {
> - throw MathRuntimeException.createIllegalArgumentException(
> - LocalizedFormats.VECTOR_LENGTH_MISMATCH,
> - v.length, rows);
> + throw new DimensionMismatchException(v.length, rows);
> }
> final double[] out = new double[columns];
>
> @@ -1443,7 +1392,6 @@ public class BlockRealMatrix extends Abs
> }
>
> return out;
> -
> }
>
> /** {@inheritDoc} */
> @@ -1685,5 +1633,4 @@ public class BlockRealMatrix extends Abs
> private int blockWidth(final int blockColumn) {
> return (blockColumn == blockColumns - 1) ? columns - blockColumn * BLOCK_SIZE : BLOCK_SIZE;
> }
> -
> }
>
> Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldMatrix.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldMatrix.java?rev=1001107&r1=1001106&r2=1001107&view=diff
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldMatrix.java (original)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/FieldMatrix.java Fri Sep 24 23:12:34 2010
> @@ -64,7 +64,7 @@ public interface FieldMatrix<T extends F
> * @return this + m
> * @throws IllegalArgumentException if m is not the same size as this
> */
> - FieldMatrix<T> add(FieldMatrix<T> m) throws IllegalArgumentException;
> + FieldMatrix<T> add(FieldMatrix<T> m);
>
> /**
> * Compute this minus m.
> @@ -73,7 +73,7 @@ public interface FieldMatrix<T extends F
> * @return this + m
> * @throws IllegalArgumentException if m is not the same size as this
> */
> - FieldMatrix<T> subtract(FieldMatrix<T> m) throws IllegalArgumentException;
> + FieldMatrix<T> subtract(FieldMatrix<T> m);
>
> /**
> * Returns the result of adding d to each entry of this.
> @@ -99,7 +99,7 @@ public interface FieldMatrix<T extends F
> * @throws IllegalArgumentException
> * if columnDimension(this) != rowDimension(m)
> */
> - FieldMatrix<T> multiply(FieldMatrix<T> m) throws IllegalArgumentException;
> + FieldMatrix<T> multiply(FieldMatrix<T> m);
>
> /**
> * Returns the result premultiplying this by<code>m</code>.
> @@ -108,7 +108,7 @@ public interface FieldMatrix<T extends F
> * @throws IllegalArgumentException
> * if rowDimension(this) != columnDimension(m)
> */
> - FieldMatrix<T> preMultiply(FieldMatrix<T> m) throws IllegalArgumentException;
> + FieldMatrix<T> preMultiply(FieldMatrix<T> m);
>
> /**
> * Returns matrix entries as a two-dimensional array.
> @@ -129,8 +129,7 @@ public interface FieldMatrix<T extends F
> * specified rows and columns
> * @exception MatrixIndexException if the indices are not valid
> */
> - FieldMatrix<T> getSubMatrix(int startRow, int endRow, int startColumn, int endColumn)
> - throws MatrixIndexException;
> + FieldMatrix<T> getSubMatrix(int startRow, int endRow, int startColumn, int endColumn);
>
> /**
> * Gets a submatrix. Rows and columns are indicated
> @@ -142,8 +141,7 @@ public interface FieldMatrix<T extends F
> * specified rows and columns
> * @exception MatrixIndexException if row or column selections are not valid
> */
> - FieldMatrix<T> getSubMatrix(int[] selectedRows, int[] selectedColumns)
> - throws MatrixIndexException;
> + FieldMatrix<T> getSubMatrix(int[] selectedRows, int[] selectedColumns);
>
> /**
> * Copy a submatrix. Rows and columns are indicated
> @@ -159,8 +157,7 @@ public interface FieldMatrix<T extends F
> * @exception IllegalArgumentException if the destination array is too small
> */
> void copySubMatrix(int startRow, int endRow, int startColumn, int endColumn,
> - T[][] destination)
> - throws MatrixIndexException, IllegalArgumentException;
> + T[][] destination);
>
> /**
> * Copy a submatrix. Rows and columns are indicated
> @@ -173,8 +170,7 @@ public interface FieldMatrix<T extends F
> * @exception MatrixIndexException if the indices are not valid
> * @exception IllegalArgumentException if the destination array is too small
> */
> - void copySubMatrix(int[] selectedRows, int[] selectedColumns, T[][] destination)
> - throws MatrixIndexException, IllegalArgumentException;
> + void copySubMatrix(int[] selectedRows, int[] selectedColumns, T[][] destination);
>
> /**
> * Replace the submatrix starting at<code>row, column</code> using data in
> @@ -203,8 +199,7 @@ public interface FieldMatrix<T extends F
> * @throws NullPointerException if<code>subMatrix</code> is null
> * @since 2.0
> */
> - void setSubMatrix(T[][] subMatrix, int row, int column)
> - throws MatrixIndexException;
> + void setSubMatrix(T[][] subMatrix, int row, int column);
>
> /**
> * Returns the entries in row number<code>row</code>
> @@ -214,7 +209,7 @@ public interface FieldMatrix<T extends F
> * @return row matrix
> * @throws MatrixIndexException if the specified row index is invalid
> */
> - FieldMatrix<T> getRowMatrix(int row) throws MatrixIndexException;
> + FieldMatrix<T> getRowMatrix(int row);
>
> /**
> * Sets the entries in row number<code>row</code>
> @@ -224,11 +219,10 @@ public interface FieldMatrix<T extends F
> * @param matrix row matrix (must have one row and the same number of columns
> * as the instance)
> * @throws MatrixIndexException if the specified row index is invalid
> - * @throws InvalidMatrixException if the matrix dimensions do not match one
> - * instance row
> + * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
> + * if the matrix dimensions do not match one instance row.
> */
> - void setRowMatrix(int row, FieldMatrix<T> matrix)
> - throws MatrixIndexException, InvalidMatrixException;
> + void setRowMatrix(int row, FieldMatrix<T> matrix);
>
> /**
> * Returns the entries in column number<code>column</code>
> @@ -238,7 +232,7 @@ public interface FieldMatrix<T extends F
> * @return column matrix
> * @throws MatrixIndexException if the specified column index is invalid
> */
> - FieldMatrix<T> getColumnMatrix(int column) throws MatrixIndexException;
> + FieldMatrix<T> getColumnMatrix(int column);
>
> /**
> * Sets the entries in column number<code>column</code>
> @@ -248,11 +242,10 @@ public interface FieldMatrix<T extends F
> * @param matrix column matrix (must have one column and the same number of rows
> * as the instance)
> * @throws MatrixIndexException if the specified column index is invalid
> - * @throws InvalidMatrixException if the matrix dimensions do not match one
> - * instance column
> + * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
> + * if the matrix dimensions do not match one instance column.
> */
> - void setColumnMatrix(int column, FieldMatrix<T> matrix)
> - throws MatrixIndexException, InvalidMatrixException;
> + void setColumnMatrix(int column, FieldMatrix<T> matrix);
>
> /**
> * Returns the entries in row number<code>row</code>
> @@ -262,7 +255,7 @@ public interface FieldMatrix<T extends F
> * @return row vector
> * @throws MatrixIndexException if the specified row index is invalid
> */
> - FieldVector<T> getRowVector(int row) throws MatrixIndexException;
> + FieldVector<T> getRowVector(int row);
>
> /**
> * Sets the entries in row number<code>row</code>
> @@ -272,11 +265,10 @@ public interface FieldMatrix<T extends F
> * @param vector row vector (must have the same number of columns
> * as the instance)
> * @throws MatrixIndexException if the specified row index is invalid
> - * @throws InvalidMatrixException if the vector dimension does not match one
> - * instance row
> + * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
> + * if the vector dimension does not match one instance row.
> */
> - void setRowVector(int row, FieldVector<T> vector)
> - throws MatrixIndexException, InvalidMatrixException;
> + void setRowVector(int row, FieldVector<T> vector);
>
> /**
> * Returns the entries in column number<code>column</code>
> @@ -286,7 +278,7 @@ public interface FieldMatrix<T extends F
> * @return column vector
> * @throws MatrixIndexException if the specified column index is invalid
> */
> - FieldVector<T> getColumnVector(int column) throws MatrixIndexException;
> + FieldVector<T> getColumnVector(int column);
>
> /**
> * Sets the entries in column number<code>column</code>
> @@ -295,23 +287,22 @@ public interface FieldMatrix<T extends F
> * @param column the column to be set
> * @param vector column vector (must have the same number of rows as the instance)
> * @throws MatrixIndexException if the specified column index is invalid
> - * @throws InvalidMatrixException if the vector dimension does not match one
> - * instance column
> + * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
> + * if the vector dimension does not match one instance column.
> */
> - void setColumnVector(int column, FieldVector<T> vector)
> - throws MatrixIndexException, InvalidMatrixException;
> + void setColumnVector(int column, FieldVector<T> vector);
>
> /**
> * Returns the entries in row number<code>row</code> as an array.
> *<p>
> * Row indices start at 0. A<code>MatrixIndexException</code> is thrown
> - * unless<code>0<= row< rowDimension.</code></p>
> + * unless {@code 0<= row< rowDimension}.</p>
> *
> * @param row the row to be fetched
> * @return array of entries in the row
> * @throws MatrixIndexException if the specified row index is not valid
> */
> - T[] getRow(int row) throws MatrixIndexException;
> + T[] getRow(int row);
>
> /**
> * Sets the entries in row number<code>row</code>
> @@ -320,23 +311,22 @@ public interface FieldMatrix<T extends F
> * @param row the row to be set
> * @param array row matrix (must have the same number of columns as the instance)
> * @throws MatrixIndexException if the specified row index is invalid
> - * @throws InvalidMatrixException if the array size does not match one
> - * instance row
> + * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
> + * if the array size does not match one instance row.
> */
> - void setRow(int row, T[] array)
> - throws MatrixIndexException, InvalidMatrixException;
> + void setRow(int row, T[] array);
>
> /**
> * Returns the entries in column number<code>col</code> as an array.
> *<p>
> * Column indices start at 0. A<code>MatrixIndexException</code> is thrown
> - * unless<code>0<= column< columnDimension.</code></p>
> + * unless {@code 0<= column< columnDimension}.</p>
> *
> * @param column the column to be fetched
> * @return array of entries in the column
> * @throws MatrixIndexException if the specified column index is not valid
> */
> - T[] getColumn(int column) throws MatrixIndexException;
> + T[] getColumn(int column);
>
> /**
> * Sets the entries in column number<code>column</code>
> @@ -345,19 +335,18 @@ public interface FieldMatrix<T extends F
> * @param column the column to be set
> * @param array column array (must have the same number of rows as the instance)
> * @throws MatrixIndexException if the specified column index is invalid
> - * @throws InvalidMatrixException if the array size does not match one
> - * instance column
> + * @throws org.apache.commons.math.exception.MatrixDimensionMismatchException
> + * if the array size does not match one instance column.
> */
> - void setColumn(int column, T[] array)
> - throws MatrixIndexException, InvalidMatrixException;
> + void setColumn(int column, T[] array);
>
> /**
> * Returns the entry in the specified row and column.
> *<p>
> * Row and column indices start at 0 and must satisfy
> *<ul>
> - *<li><code>0<= row< rowDimension</code></li>
> - *<li><code> 0<= column< columnDimension</code></li>
> + *<li>{@code 0<= row< rowDimension}</li>
> + *<li>{@code 0<= column< columnDimension}</li>
> *</ul>
> * otherwise a<code>MatrixIndexException</code> is thrown.</p>
> *
> @@ -366,15 +355,15 @@ public interface FieldMatrix<T extends F
> * @return matrix entry in row,column
> * @throws MatrixIndexException if the row or column index is not valid
> */
> - T getEntry(int row, int column) throws MatrixIndexException;
> + T getEntry(int row, int column);
>
> /**
> * Set the entry in the specified row and column.
> *<p>
> * Row and column indices start at 0 and must satisfy
> *<ul>
> - *<li><code>0<= row< rowDimension</code></li>
> - *<li><code> 0<= column< columnDimension</code></li>
> + *<li>{@code 0<= row< rowDimension}</li>
> + *<li>{@code 0<= column< columnDimension}</li>
> *</ul>
> * otherwise a<code>MatrixIndexException</code> is thrown.</p>
> *
> @@ -384,15 +373,15 @@ public interface FieldMatrix<T extends F
> * @throws MatrixIndexException if the row or column index is not valid
> * @since 2.0
> */
> - void setEntry(int row, int column, T value) throws MatrixIndexException;
> + void setEntry(int row, int column, T value);
>
> /**
> * Change an entry in the specified row and column.
> *<p>
> * Row and column indices start at 0 and must satisfy
> *<ul>
> - *<li><code>0<= row< rowDimension</code></li>
> - *<li><code> 0<= column< columnDimension</code></li>
> + *<li>{@code 0<= row< rowDimension}</li>
> + *<li>{@code 0<= column< columnDimension}</li>
> *</ul>
> * otherwise a<code>MatrixIndexException</code> is thrown.</p>
> *
> @@ -409,8 +398,8 @@ public interface FieldMatrix<T extends F
> *<p>
> * Row and column indices start at 0 and must satisfy
> *<ul>
> - *<li><code>0<= row< rowDimension</code></li>
> - *<li><code> 0<= column< columnDimension</code></li>
> + *<li>{@code 0<= row< rowDimension}</li>
> + *<li>{@code 0<= column< columnDimension}</li>
> *</ul>
> * otherwise a<code>MatrixIndexException</code> is thrown.</p>
> *
> @@ -420,7 +409,7 @@ public interface FieldMatrix<T extends F
> * @throws MatrixIndexException if the row or column index is not valid
> * @since 2.0
> */
> - void multiplyEntry(int row, int column, T factor) throws MatrixIndexException;
> + void multiplyEntry(int row, int column, T factor);
>
> /**
> * Returns the transpose of this matrix.
> @@ -436,7 +425,7 @@ public interface FieldMatrix<T extends F
> * @return trace
> * @throws NonSquareMatrixException if the matrix is not square
> */
> - T getTrace() throws NonSquareMatrixException;
> + T getTrace();
>
> /**
> * Returns the result of multiplying this by the vector<code>v</code>.
> @@ -445,7 +434,7 @@ public interface FieldMatrix<T extends F
> * @return this*v
> * @throws IllegalArgumentException if columnDimension != v.size()
> */
> - T[] operate(T[] v) throws IllegalArgumentException;
> + T[] operate(T[] v);
>
> /**
> * Returns the result of multiplying this by the vector<code>v</code>.
> @@ -454,7 +443,7 @@ public interface FieldMatrix<T extends F
> * @return this*v
> * @throws IllegalArgumentException if columnDimension != v.size()
> */
> - FieldVector<T> operate(FieldVector<T> v) throws IllegalArgumentException;
> + FieldVector<T> operate(FieldVector<T> v);
>
> /**
> * Returns the (row) vector result of premultiplying this by the vector<code>v</code>.
> @@ -463,7 +452,7 @@ public interface FieldMatrix<T extends F
> * @return v*this
> * @throws IllegalArgumentException if rowDimension != v.size()
> */
> - T[] preMultiply(T[] v) throws IllegalArgumentException;
> + T[] preMultiply(T[] v);
>
> /**
> * Returns the (row) vector result of premultiplying this by the vector<code>v</code>.
> @@ -472,7 +461,7 @@ public interface FieldMatrix<T extends F
> * @return v*this
> * @throws IllegalArgumentException if rowDimension != v.size()
> */
> - FieldVector<T> preMultiply(FieldVector<T> v) throws IllegalArgumentException;
> + FieldVector<T> preMultiply(FieldVector<T> v);
>
> /**
> * Visit (and possibly change) all matrix entries in row order.
> @@ -495,8 +484,7 @@ public interface FieldMatrix<T extends F
> * @return the value returned by {@link FieldMatrixChangingVisitor#end()} at the end
> * of the walk
> */
> - T walkInRowOrder(FieldMatrixChangingVisitor<T> visitor)
> - throws MatrixVisitorException;
> + T walkInRowOrder(FieldMatrixChangingVisitor<T> visitor);
>
> /**
> * Visit (but don't change) all matrix entries in row order.
> @@ -519,8 +507,7 @@ public interface FieldMatrix<T extends F
> * @return the value returned by {@link FieldMatrixPreservingVisitor#end()} at the end
> * of the walk
> */
> - T walkInRowOrder(FieldMatrixPreservingVisitor<T> visitor)
> - throws MatrixVisitorException;
> + T walkInRowOrder(FieldMatrixPreservingVisitor<T> visitor);
>
> /**
> * Visit (and possibly change) some matrix entries in row order.
> @@ -549,8 +536,7 @@ public interface FieldMatrix<T extends F
> * of the walk
> */
> T walkInRowOrder(FieldMatrixChangingVisitor<T> visitor,
> - int startRow, int endRow, int startColumn, int endColumn)
> - throws MatrixIndexException, MatrixVisitorException;
> + int startRow, int endRow, int startColumn, int endColumn);
>
> /**
> * Visit (but don't change) some matrix entries in row order.
> @@ -579,8 +565,7 @@ public interface FieldMatrix<T extends F
> * of the walk
> */
> T walkInRowOrder(FieldMatrixPreservingVisitor<T> visitor,
> - int startRow, int endRow, int startColumn, int endColumn)
> - throws MatrixIndexException, MatrixVisitorException;
> + int startRow, int endRow, int startColumn, int endColumn);
>
> /**
> * Visit (and possibly change) all matrix entries in column order.
> @@ -603,8 +588,7 @@ public interface FieldMatrix<T extends F
> * @return the value returned by {@link FieldMatrixChangingVisitor#end()} at the end
> * of the walk
> */
> - T walkInColumnOrder(FieldMatrixChangingVisitor<T> visitor)
> - throws MatrixVisitorException;
> + T walkInColumnOrder(FieldMatrixChangingVisitor<T> visitor);
>
> /**
> * Visit (but don't change) all matrix entries in column order.
> @@ -627,8 +611,7 @@ public interface FieldMatrix<T extends F
> * @return the value returned by {@link FieldMatrixPreservingVisitor#end()} at the end
> * of the walk
> */
> - T walkInColumnOrder(FieldMatrixPreservingVisitor<T> visitor)
> - throws MatrixVisitorException;
> + T walkInColumnOrder(FieldMatrixPreservingVisitor<T> visitor);
>
> /**
> * Visit (and possibly change) some matrix entries in column order.
> @@ -657,8 +640,7 @@ public interface FieldMatrix<T extends F
> * of the walk
> */
> T walkInColumnOrder(FieldMatrixChangingVisitor<T> visitor,
> - int startRow, int endRow, int startColumn, int endColumn)
> - throws MatrixIndexException, MatrixVisitorException;
> + int startRow, int endRow, int startColumn, int endColumn);
>
> /**
> * Visit (but don't change) some matrix entries in column order.
> @@ -687,8 +669,7 @@ public interface FieldMatrix<T extends F
> * of the walk
> */
> T walkInColumnOrder(FieldMatrixPreservingVisitor<T> visitor,
> - int startRow, int endRow, int startColumn, int endColumn)
> - throws MatrixIndexException, MatrixVisitorException;
> + int startRow, int endRow, int startColumn, int endColumn);
>
> /**
> * Visit (and possibly change) all matrix entries using the fastest possible order.
> @@ -710,8 +691,7 @@ public interface FieldMatrix<T extends F
> * @return the value returned by {@link FieldMatrixChangingVisitor#end()} at the end
> * of the walk
> */
> - T walkInOptimizedOrder(FieldMatrixChangingVisitor<T> visitor)
> - throws MatrixVisitorException;
> + T walkInOptimizedOrder(FieldMatrixChangingVisitor<T> visitor);
>
> /**
> * Visit (but don't change) all matrix entries using the fastest possible order.
> @@ -733,8 +713,7 @@ public interface FieldMatrix<T extends F
> * @return the value returned by {@link FieldMatrixPreservingVisitor#end()} at the end
> * of the walk
> */
> - T walkInOptimizedOrder(FieldMatrixPreservingVisitor<T> visitor)
> - throws MatrixVisitorException;
> + T walkInOptimizedOrder(FieldMatrixPreservingVisitor<T> visitor);
>
> /**
> * Visit (and possibly change) some matrix entries using the fastest possible order.
> @@ -762,8 +741,7 @@ public interface FieldMatrix<T extends F
> * of the walk
> */
> T walkInOptimizedOrder(FieldMatrixChangingVisitor<T> visitor,
> - int startRow, int endRow, int startColumn, int endColumn)
> - throws MatrixIndexException, MatrixVisitorException;
> + int startRow, int endRow, int startColumn, int endColumn);
>
> /**
> * Visit (but don't change) some matrix entries using the fastest possible order.
> @@ -791,7 +769,5 @@ public interface FieldMatrix<T extends F
> * of the walk
> */
> T walkInOptimizedOrder(FieldMatrixPreservingVisitor<T> visitor,
> - int startRow, int endRow, int startColumn, int endColumn)
> - throws MatrixIndexException, MatrixVisitorException;
> -
> + int startRow, int endRow, int startColumn, int endColumn);
> }
>
> Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/InvalidMatrixException.java
> URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/InvalidMatrixException.java?rev=1001107&r1=1001106&r2=1001107&view=diff
> ==============================================================================
> --- commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/InvalidMatrixException.java (original)
> +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math/linear/InvalidMatrixException.java Fri Sep 24 23:12:34 2010
> @@ -26,6 +26,8 @@ import org.apache.commons.math.exception
> * that matrix does not satisfy the preconditions for the
> * aforementioned operation.
> * @version $Revision$ $Date$
> + * @deprecated since 2.2. Please use the classes in the
> + * {@link org.apache.commons.math.exception} package.
> */
> public class InvalidMatrixException extends MathRuntimeException {
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@commons.apache.org
For additional commands, e-mail: dev-help@commons.apache.org