Populated throws clause of OpenMapRealMatrix (MATH-854).
git-svn-id: https://svn.apache.org/repos/asf/commons/proper/math/trunk@1390842 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
8708ef28f2
commit
2a32964f25
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 AbstractRealMatrix
|
|||
*
|
||||
* @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 AbstractRealMatrix
|
|||
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 AbstractRealMatrix
|
|||
*
|
||||
* @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 AbstractRealMatrix
|
|||
|
||||
/** {@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 AbstractRealMatrix
|
|||
*
|
||||
* @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 AbstractRealMatrix
|
|||
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 AbstractRealMatrix
|
|||
*
|
||||
* @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 AbstractRealMatrix
|
|||
|
||||
/** {@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 AbstractRealMatrix
|
|||
|
||||
/** {@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 AbstractRealMatrix
|
|||
|
||||
/** {@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 AbstractRealMatrix
|
|||
|
||||
/** {@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);
|
||||
|
|
Loading…
Reference in New Issue