Author: celestin Date: Thu Sep 27 05:04:10 2012 New Revision: 1390842 URL: http://svn.apache.org/viewvc?rev=1390842&view=rev Log: Populated throws clause of OpenMapRealMatrix (MATH-854).
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/AbstractRealMatrix.java commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/OpenMapRealMatrix.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/AbstractRealMatrix.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/AbstractRealMatrix.java?rev=1390842&r1=1390841&r2=1390842&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/AbstractRealMatrix.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/AbstractRealMatrix.java Thu Sep 27 05:04:10 2012 @@ -976,5 +976,6 @@ public abstract class AbstractRealMatrix throws OutOfRangeException; /** {@inheritDoc} */ - public abstract void setEntry(int row, int column, double value); + public abstract void setEntry(int row, int column, double value) + throws OutOfRangeException; } Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/OpenMapRealMatrix.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/OpenMapRealMatrix.java?rev=1390842&r1=1390841&r2=1390842&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/OpenMapRealMatrix.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/OpenMapRealMatrix.java Thu Sep 27 05:04:10 2012 @@ -19,7 +19,10 @@ package org.apache.commons.math3.linear; import java.io.Serializable; +import org.apache.commons.math3.exception.DimensionMismatchException; +import org.apache.commons.math3.exception.NotStrictlyPositiveException; import org.apache.commons.math3.exception.NumberIsTooLargeException; +import org.apache.commons.math3.exception.OutOfRangeException; import org.apache.commons.math3.util.OpenIntToDoubleHashMap; /** @@ -50,8 +53,13 @@ public class OpenMapRealMatrix extends A * * @param rowDimension Number of rows of the matrix. * @param columnDimension Number of columns of the matrix. + * @throws NotStrictlyPositiveException if row or column dimension is not + * positive. + * @throws NumberIsTooLargeException if the total number of entries of the + * matrix is larger than {@code Integer.MAX_VALUE}. */ - public OpenMapRealMatrix(int rowDimension, int columnDimension) { + public OpenMapRealMatrix(int rowDimension, int columnDimension) + throws NotStrictlyPositiveException, NumberIsTooLargeException { super(rowDimension, columnDimension); long lRow = rowDimension; long lCol = columnDimension; @@ -80,9 +88,15 @@ public class OpenMapRealMatrix extends A return new OpenMapRealMatrix(this); } - /** {@inheritDoc} */ + /** + * {@inheritDoc} + * + * @throws NumberIsTooLargeException if the total number of entries of the + * matrix is larger than {@code Integer.MAX_VALUE}. + */ @Override - public OpenMapRealMatrix createMatrix(int rowDimension, int columnDimension) { + public OpenMapRealMatrix createMatrix(int rowDimension, int columnDimension) + throws NotStrictlyPositiveException, NumberIsTooLargeException { return new OpenMapRealMatrix(rowDimension, columnDimension); } @@ -97,12 +111,12 @@ public class OpenMapRealMatrix extends A * * @param m Matrix to be added. * @return {@code this} + {@code m}. - * @throws org.apache.commons.math3.exception.DimensionMismatchException - * if {@code m} is not the same size as this matrix. + * @throws MatrixDimensionMismatchException if {@code m} is not the same + * size as {@code this}. */ - public OpenMapRealMatrix add(OpenMapRealMatrix m) { + public OpenMapRealMatrix add(OpenMapRealMatrix m) + throws MatrixDimensionMismatchException { - // safety check MatrixUtils.checkAdditionCompatible(this, m); final OpenMapRealMatrix out = new OpenMapRealMatrix(this); @@ -119,7 +133,8 @@ public class OpenMapRealMatrix extends A /** {@inheritDoc} */ @Override - public OpenMapRealMatrix subtract(final RealMatrix m) { + public OpenMapRealMatrix subtract(final RealMatrix m) + throws MatrixDimensionMismatchException { try { return subtract((OpenMapRealMatrix) m); } catch (ClassCastException cce) { @@ -132,11 +147,11 @@ public class OpenMapRealMatrix extends A * * @param m Matrix to be subtracted. * @return {@code this} - {@code m}. - * @throws org.apache.commons.math3.exception.DimensionMismatchException - * if {@code m} is not the same size as this matrix. + * @throws MatrixDimensionMismatchException if {@code m} is not the same + * size as {@code this}. */ - public OpenMapRealMatrix subtract(OpenMapRealMatrix m) { - // Safety check. + public OpenMapRealMatrix subtract(OpenMapRealMatrix m) + throws MatrixDimensionMismatchException { MatrixUtils.checkAdditionCompatible(this, m); final OpenMapRealMatrix out = new OpenMapRealMatrix(this); @@ -150,14 +165,20 @@ public class OpenMapRealMatrix extends A return out; } - /** {@inheritDoc} */ + /** + * {@inheritDoc} + * + * @throws NumberIsTooLargeException if {@code m} is an + * {@code OpenMapRealMatrix}, and the total number of entries of the product + * is larger than {@code Integer.MAX_VALUE}. + */ @Override - public RealMatrix multiply(final RealMatrix m) { + public RealMatrix multiply(final RealMatrix m) + throws DimensionMismatchException, NumberIsTooLargeException { try { return multiply((OpenMapRealMatrix) m); } catch (ClassCastException cce) { - // safety check MatrixUtils.checkMultiplicationCompatible(this, m); final int outCols = m.getColumnDimension(); @@ -182,11 +203,13 @@ public class OpenMapRealMatrix extends A * * @param m Matrix to postmultiply by. * @return {@code this} * {@code m}. - * @throws MatrixDimensionMismatchException - * if the number of rows of {@code m} differ from the number of columns - * of this matrix. + * @throws DimensionMismatchException if the number of rows of {@code m} + * differ from the number of columns of {@code this} matrix. + * @throws NumberIsTooLargeException if the total number of entries of the + * product is larger than {@code Integer.MAX_VALUE}. */ - public OpenMapRealMatrix multiply(OpenMapRealMatrix m) { + public OpenMapRealMatrix multiply(OpenMapRealMatrix m) + throws DimensionMismatchException, NumberIsTooLargeException { // Safety check. MatrixUtils.checkMultiplicationCompatible(this, m); @@ -218,7 +241,7 @@ public class OpenMapRealMatrix extends A /** {@inheritDoc} */ @Override - public double getEntry(int row, int column) { + public double getEntry(int row, int column) throws OutOfRangeException { MatrixUtils.checkRowIndex(this, row); MatrixUtils.checkColumnIndex(this, column); return entries.get(computeKey(row, column)); @@ -232,7 +255,8 @@ public class OpenMapRealMatrix extends A /** {@inheritDoc} */ @Override - public void setEntry(int row, int column, double value) { + public void setEntry(int row, int column, double value) + throws OutOfRangeException { MatrixUtils.checkRowIndex(this, row); MatrixUtils.checkColumnIndex(this, column); if (value == 0.0) { @@ -244,7 +268,8 @@ public class OpenMapRealMatrix extends A /** {@inheritDoc} */ @Override - public void addToEntry(int row, int column, double increment) { + public void addToEntry(int row, int column, double increment) + throws OutOfRangeException { MatrixUtils.checkRowIndex(this, row); MatrixUtils.checkColumnIndex(this, column); final int key = computeKey(row, column); @@ -258,7 +283,8 @@ public class OpenMapRealMatrix extends A /** {@inheritDoc} */ @Override - public void multiplyEntry(int row, int column, double factor) { + public void multiplyEntry(int row, int column, double factor) + throws OutOfRangeException { MatrixUtils.checkRowIndex(this, row); MatrixUtils.checkColumnIndex(this, column); final int key = computeKey(row, column);