Author: celestin Date: Thu Sep 27 18:42:45 2012 New Revision: 1391160 URL: http://svn.apache.org/viewvc?rev=1391160&view=rev Log: MATH-854: filled the "throws" clause of BlockRealMatrix.
Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/BlockRealMatrix.java Modified: commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/BlockRealMatrix.java URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/BlockRealMatrix.java?rev=1391160&r1=1391159&r2=1391160&view=diff ============================================================================== --- commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/BlockRealMatrix.java (original) +++ commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/BlockRealMatrix.java Thu Sep 27 18:42:45 2012 @@ -22,7 +22,10 @@ import java.util.Arrays; import org.apache.commons.math3.exception.DimensionMismatchException; import org.apache.commons.math3.exception.NoDataException; +import org.apache.commons.math3.exception.NotStrictlyPositiveException; import org.apache.commons.math3.exception.NullArgumentException; +import org.apache.commons.math3.exception.NumberIsTooSmallException; +import org.apache.commons.math3.exception.OutOfRangeException; import org.apache.commons.math3.exception.util.LocalizedFormats; import org.apache.commons.math3.util.FastMath; import org.apache.commons.math3.util.MathUtils; @@ -87,10 +90,11 @@ public class BlockRealMatrix extends Abs * * @param rows the number of rows in the new matrix * @param columns the number of columns in the new matrix - * @throws org.apache.commons.math3.exception.NotStrictlyPositiveException - * if row or column dimension is not positive. + * @throws NotStrictlyPositiveException if row or column dimension is not + * positive. */ - public BlockRealMatrix(final int rows, final int columns) { + public BlockRealMatrix(final int rows, final int columns) + throws NotStrictlyPositiveException { super(rows, columns); this.rows = rows; this.columns = columns; @@ -114,9 +118,12 @@ public class BlockRealMatrix extends Abs * @param rawData data for new matrix, in raw layout * @throws DimensionMismatchException if the shape of {@code blockData} is * inconsistent with block layout. + * @throws NotStrictlyPositiveException if row or column dimension is not + * positive. * @see #BlockRealMatrix(int, int, double[][], boolean) */ - public BlockRealMatrix(final double[][] rawData) { + public BlockRealMatrix(final double[][] rawData) + throws DimensionMismatchException, NotStrictlyPositiveException { this(rawData.length, rawData[0].length, toBlocksLayout(rawData), false); } @@ -130,12 +137,15 @@ public class BlockRealMatrix extends Abs * @param copyArray Whether the input array will be copied or referenced. * @throws DimensionMismatchException if the shape of {@code blockData} is * inconsistent with block layout. + * @throws NotStrictlyPositiveException if row or column dimension is not + * positive. * @see #createBlocksLayout(int, int) * @see #toBlocksLayout(double[][]) * @see #BlockRealMatrix(double[][]) */ public BlockRealMatrix(final int rows, final int columns, - final double[][] blockData, final boolean copyArray) { + final double[][] blockData, final boolean copyArray) + throws DimensionMismatchException, NotStrictlyPositiveException { super(rows, columns); this.rows = rows; this.columns = columns; @@ -188,7 +198,8 @@ public class BlockRealMatrix extends Abs * @see #createBlocksLayout(int, int) * @see #BlockRealMatrix(int, int, double[][], boolean) */ - public static double[][] toBlocksLayout(final double[][] rawData) { + public static double[][] toBlocksLayout(final double[][] rawData) + throws DimensionMismatchException { final int rows = rawData.length; final int columns = rawData[0].length; final int blockRows = (rows + BLOCK_SIZE - 1) / BLOCK_SIZE; @@ -267,7 +278,9 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public BlockRealMatrix createMatrix(final int rowDimension, final int columnDimension) { + public BlockRealMatrix createMatrix(final int rowDimension, + final int columnDimension) + throws NotStrictlyPositiveException { return new BlockRealMatrix(rowDimension, columnDimension); } @@ -287,7 +300,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public BlockRealMatrix add(final RealMatrix m) { + public BlockRealMatrix add(final RealMatrix m) + throws MatrixDimensionMismatchException { try { return add((BlockRealMatrix) m); } catch (ClassCastException cce) { @@ -332,7 +346,8 @@ public class BlockRealMatrix extends Abs * @throws MatrixDimensionMismatchException if {@code m} is not the same * size as this matrix. */ - public BlockRealMatrix add(final BlockRealMatrix m) { + public BlockRealMatrix add(final BlockRealMatrix m) + throws MatrixDimensionMismatchException { // safety check MatrixUtils.checkAdditionCompatible(this, m); @@ -353,7 +368,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public BlockRealMatrix subtract(final RealMatrix m) { + public BlockRealMatrix subtract(final RealMatrix m) + throws MatrixDimensionMismatchException { try { return subtract((BlockRealMatrix) m); } catch (ClassCastException cce) { @@ -398,7 +414,8 @@ public class BlockRealMatrix extends Abs * @throws MatrixDimensionMismatchException if {@code m} is not the * same size as this matrix. */ - public BlockRealMatrix subtract(final BlockRealMatrix m) { + public BlockRealMatrix subtract(final BlockRealMatrix m) + throws MatrixDimensionMismatchException { // safety check MatrixUtils.checkSubtractionCompatible(this, m); @@ -454,7 +471,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public BlockRealMatrix multiply(final RealMatrix m) { + public BlockRealMatrix multiply(final RealMatrix m) + throws DimensionMismatchException { try { return multiply((BlockRealMatrix) m); } catch (ClassCastException cce) { @@ -511,10 +529,10 @@ public class BlockRealMatrix extends Abs * * @param m Matrix to postmultiply by. * @return {@code this} * m. - * @throws MatrixDimensionMismatchException if the matrices are not - * compatible. + * @throws DimensionMismatchException if the matrices are not compatible. */ - public BlockRealMatrix multiply(BlockRealMatrix m) { + public BlockRealMatrix multiply(BlockRealMatrix m) + throws DimensionMismatchException { // safety check MatrixUtils.checkMultiplicationCompatible(this, m); @@ -643,7 +661,9 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override public BlockRealMatrix getSubMatrix(final int startRow, final int endRow, - final int startColumn, final int endColumn) { + final int startColumn, + final int endColumn) + throws OutOfRangeException, NumberIsTooSmallException { // safety checks MatrixUtils.checkSubMatrixIndex(this, startRow, endRow, startColumn, endColumn); @@ -766,8 +786,10 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public void setSubMatrix(final double[][] subMatrix, final int row, final int column) - throws NoDataException, NullArgumentException { + public void setSubMatrix(final double[][] subMatrix, final int row, + final int column) + throws OutOfRangeException, NoDataException, NullArgumentException, + DimensionMismatchException { // safety checks MathUtils.checkNotNull(subMatrix); final int refLength = subMatrix[0].length; @@ -817,7 +839,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public BlockRealMatrix getRowMatrix(final int row) { + public BlockRealMatrix getRowMatrix(final int row) + throws OutOfRangeException { MatrixUtils.checkRowIndex(this, row); final BlockRealMatrix out = new BlockRealMatrix(1, columns); @@ -847,7 +870,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public void setRowMatrix(final int row, final RealMatrix matrix) { + public void setRowMatrix(final int row, final RealMatrix matrix) + throws OutOfRangeException, MatrixDimensionMismatchException { try { setRowMatrix(row, (BlockRealMatrix) matrix); } catch (ClassCastException cce) { @@ -862,12 +886,12 @@ public class BlockRealMatrix extends Abs * @param row the row to be set * @param matrix row matrix (must have one row and the same number of columns * as the instance) - * @throws org.apache.commons.math3.exception.OutOfRangeException - * if the specified row index is invalid. + * @throws OutOfRangeException if the specified row index is invalid. * @throws MatrixDimensionMismatchException if the matrix dimensions do * not match one instance row. */ - public void setRowMatrix(final int row, final BlockRealMatrix matrix) { + public void setRowMatrix(final int row, final BlockRealMatrix matrix) + throws OutOfRangeException, MatrixDimensionMismatchException { MatrixUtils.checkRowIndex(this, row); final int nCols = getColumnDimension(); if ((matrix.getRowDimension() != 1) || @@ -901,7 +925,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public BlockRealMatrix getColumnMatrix(final int column) { + public BlockRealMatrix getColumnMatrix(final int column) + throws OutOfRangeException { MatrixUtils.checkColumnIndex(this, column); final BlockRealMatrix out = new BlockRealMatrix(rows, 1); @@ -929,7 +954,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public void setColumnMatrix(final int column, final RealMatrix matrix) { + public void setColumnMatrix(final int column, final RealMatrix matrix) + throws OutOfRangeException, MatrixDimensionMismatchException { try { setColumnMatrix(column, (BlockRealMatrix) matrix); } catch (ClassCastException cce) { @@ -944,12 +970,12 @@ public class BlockRealMatrix extends Abs * @param column the column to be set * @param matrix column matrix (must have one column and the same number of rows * as the instance) - * @throws org.apache.commons.math3.exception.OutOfRangeException - * if the specified column index is invalid. + * @throws OutOfRangeException if the specified column index is invalid. * @throws MatrixDimensionMismatchException if the matrix dimensions do * not match one instance column. */ - void setColumnMatrix(final int column, final BlockRealMatrix matrix) { + void setColumnMatrix(final int column, final BlockRealMatrix matrix) + throws OutOfRangeException, MatrixDimensionMismatchException { MatrixUtils.checkColumnIndex(this, column); final int nRows = getRowDimension(); if ((matrix.getRowDimension() != nRows) || @@ -981,7 +1007,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public RealVector getRowVector(final int row) { + public RealVector getRowVector(final int row) + throws OutOfRangeException { MatrixUtils.checkRowIndex(this, row); final double[] outData = new double[columns]; @@ -1001,7 +1028,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public void setRowVector(final int row, final RealVector vector) { + public void setRowVector(final int row, final RealVector vector) + throws OutOfRangeException, MatrixDimensionMismatchException { try { setRow(row, ((ArrayRealVector) vector).getDataRef()); } catch (ClassCastException cce) { @@ -1011,7 +1039,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public RealVector getColumnVector(final int column) { + public RealVector getColumnVector(final int column) + throws OutOfRangeException { MatrixUtils.checkColumnIndex(this, column); final double[] outData = new double[rows]; @@ -1033,7 +1062,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public void setColumnVector(final int column, final RealVector vector) { + public void setColumnVector(final int column, final RealVector vector) + throws OutOfRangeException, MatrixDimensionMismatchException { try { setColumn(column, ((ArrayRealVector) vector).getDataRef()); } catch (ClassCastException cce) { @@ -1043,7 +1073,7 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public double[] getRow(final int row) { + public double[] getRow(final int row) throws OutOfRangeException { MatrixUtils.checkRowIndex(this, row); final double[] out = new double[columns]; @@ -1063,7 +1093,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public void setRow(final int row, final double[] array) { + public void setRow(final int row, final double[] array) + throws OutOfRangeException, MatrixDimensionMismatchException { MatrixUtils.checkRowIndex(this, row); final int nCols = getColumnDimension(); if (array.length != nCols) { @@ -1084,7 +1115,7 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public double[] getColumn(final int column) { + public double[] getColumn(final int column) throws OutOfRangeException { MatrixUtils.checkColumnIndex(this, column); final double[] out = new double[rows]; @@ -1106,7 +1137,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public void setColumn(final int column, final double[] array) { + public void setColumn(final int column, final double[] array) + throws OutOfRangeException, MatrixDimensionMismatchException { MatrixUtils.checkColumnIndex(this, column); final int nRows = getRowDimension(); if (array.length != nRows) { @@ -1129,7 +1161,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public double getEntry(final int row, final int column) { + public double getEntry(final int row, final int column) + throws OutOfRangeException { MatrixUtils.checkMatrixIndex(this, row, column); final int iBlock = row / BLOCK_SIZE; final int jBlock = column / BLOCK_SIZE; @@ -1140,7 +1173,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public void setEntry(final int row, final int column, final double value) { + public void setEntry(final int row, final int column, final double value) + throws OutOfRangeException { MatrixUtils.checkMatrixIndex(this, row, column); final int iBlock = row / BLOCK_SIZE; final int jBlock = column / BLOCK_SIZE; @@ -1151,7 +1185,9 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public void addToEntry(final int row, final int column, final double increment) { + public void addToEntry(final int row, final int column, + final double increment) + throws OutOfRangeException { MatrixUtils.checkMatrixIndex(this, row, column); final int iBlock = row / BLOCK_SIZE; final int jBlock = column / BLOCK_SIZE; @@ -1162,7 +1198,9 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public void multiplyEntry(final int row, final int column, final double factor) { + public void multiplyEntry(final int row, final int column, + final double factor) + throws OutOfRangeException { MatrixUtils.checkMatrixIndex(this, row, column); final int iBlock = row / BLOCK_SIZE; final int jBlock = column / BLOCK_SIZE; @@ -1221,7 +1259,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public double[] operate(final double[] v) { + public double[] operate(final double[] v) + throws DimensionMismatchException { if (v.length != columns) { throw new DimensionMismatchException(v.length, columns); } @@ -1260,7 +1299,8 @@ public class BlockRealMatrix extends Abs /** {@inheritDoc} */ @Override - public double[] preMultiply(final double[] v) { + public double[] preMultiply(final double[] v) + throws DimensionMismatchException { if (v.length != rows) { throw new DimensionMismatchException(v.length, rows); } @@ -1354,7 +1394,8 @@ public class BlockRealMatrix extends Abs @Override public double walkInRowOrder(final RealMatrixChangingVisitor visitor, final int startRow, final int endRow, - final int startColumn, final int endColumn) { + final int startColumn, final int endColumn) + throws OutOfRangeException, NumberIsTooSmallException { MatrixUtils.checkSubMatrixIndex(this, startRow, endRow, startColumn, endColumn); visitor.start(rows, columns, startRow, endRow, startColumn, endColumn); for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) { @@ -1383,7 +1424,8 @@ public class BlockRealMatrix extends Abs @Override public double walkInRowOrder(final RealMatrixPreservingVisitor visitor, final int startRow, final int endRow, - final int startColumn, final int endColumn) { + final int startColumn, final int endColumn) + throws OutOfRangeException, NumberIsTooSmallException { MatrixUtils.checkSubMatrixIndex(this, startRow, endRow, startColumn, endColumn); visitor.start(rows, columns, startRow, endRow, startColumn, endColumn); for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) { @@ -1462,7 +1504,9 @@ public class BlockRealMatrix extends Abs @Override public double walkInOptimizedOrder(final RealMatrixChangingVisitor visitor, final int startRow, final int endRow, - final int startColumn, final int endColumn) { + final int startColumn, + final int endColumn) + throws OutOfRangeException, NumberIsTooSmallException { MatrixUtils.checkSubMatrixIndex(this, startRow, endRow, startColumn, endColumn); visitor.start(rows, columns, startRow, endRow, startColumn, endColumn); for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) { @@ -1491,7 +1535,9 @@ public class BlockRealMatrix extends Abs @Override public double walkInOptimizedOrder(final RealMatrixPreservingVisitor visitor, final int startRow, final int endRow, - final int startColumn, final int endColumn) { + final int startColumn, + final int endColumn) + throws OutOfRangeException, NumberIsTooSmallException { MatrixUtils.checkSubMatrixIndex(this, startRow, endRow, startColumn, endColumn); visitor.start(rows, columns, startRow, endRow, startColumn, endColumn); for (int iBlock = startRow / BLOCK_SIZE; iBlock < 1 + endRow / BLOCK_SIZE; ++iBlock) {