You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ce...@apache.org on 2012/09/27 20:42:45 UTC
svn commit: r1391160 -
/commons/proper/math/trunk/src/main/java/org/apache/commons/math3/linear/BlockRealMatrix.java
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) {