Package org.apache.commons.math.linear
Class SparseFieldMatrix<T extends FieldElement<T>>
- java.lang.Object
-
- org.apache.commons.math.linear.AbstractFieldMatrix<T>
-
- org.apache.commons.math.linear.SparseFieldMatrix<T>
-
- Type Parameters:
T
- the type of the field elements
- All Implemented Interfaces:
AnyMatrix
,FieldMatrix<T>
public class SparseFieldMatrix<T extends FieldElement<T>> extends AbstractFieldMatrix<T>
Sparse matrix implementation based on an open addressed map.- Since:
- 2.0
-
-
Constructor Summary
Constructors Constructor Description SparseFieldMatrix(Field<T> field)
Creates a matrix with no data.SparseFieldMatrix(Field<T> field, int rowDimension, int columnDimension)
Create a new SparseFieldMatrixwith the supplied row and column dimensions. SparseFieldMatrix(FieldMatrix<T> other)
Generic copy constructor.SparseFieldMatrix(SparseFieldMatrix<T> other)
Copy constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addToEntry(int row, int column, T increment)
Change an entry in the specified row and column.FieldMatrix<T>
copy()
Returns a (deep) copy of this.FieldMatrix<T>
createMatrix(int rowDimension, int columnDimension)
Create a new FieldMatrixof the same type as the instance with the supplied row and column dimensions. int
getColumnDimension()
Returns the number of columns in the matrix.T
getEntry(int row, int column)
Returns the entry in the specified row and column.int
getRowDimension()
Returns the number of rows in the matrix.void
multiplyEntry(int row, int column, T factor)
Change an entry in the specified row and column.void
setEntry(int row, int column, T value)
Set the entry in the specified row and column.-
Methods inherited from class org.apache.commons.math.linear.AbstractFieldMatrix
add, copySubMatrix, copySubMatrix, equals, getColumn, getColumnMatrix, getColumnVector, getData, getField, getRow, getRowMatrix, getRowVector, getSubMatrix, getSubMatrix, getTrace, hashCode, isSquare, multiply, operate, operate, preMultiply, preMultiply, preMultiply, scalarAdd, scalarMultiply, setColumn, setColumnMatrix, setColumnVector, setRow, setRowMatrix, setRowVector, setSubMatrix, subtract, toString, transpose, walkInColumnOrder, walkInColumnOrder, walkInColumnOrder, walkInColumnOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInOptimizedOrder, walkInRowOrder, walkInRowOrder, walkInRowOrder, walkInRowOrder
-
-
-
-
Constructor Detail
-
SparseFieldMatrix
public SparseFieldMatrix(Field<T> field)
Creates a matrix with no data.- Parameters:
field
- field to which the elements belong
-
SparseFieldMatrix
public SparseFieldMatrix(Field<T> field, int rowDimension, int columnDimension) throws java.lang.IllegalArgumentException
Create a new SparseFieldMatrixwith the supplied row and column dimensions. - Parameters:
field
- field to which the elements belongrowDimension
- the number of rows in the new matrixcolumnDimension
- the number of columns in the new matrix- Throws:
java.lang.IllegalArgumentException
- if row or column dimension is not positive
-
SparseFieldMatrix
public SparseFieldMatrix(SparseFieldMatrix<T> other)
Copy constructor.- Parameters:
other
- The instance to copy
-
SparseFieldMatrix
public SparseFieldMatrix(FieldMatrix<T> other)
Generic copy constructor.- Parameters:
other
- The instance to copy
-
-
Method Detail
-
addToEntry
public void addToEntry(int row, int column, T increment) throws MatrixIndexException
Change an entry in the specified row and column.Row and column indices start at 0 and must satisfy
0 <= row < rowDimension
0 <= column < columnDimension
MatrixIndexException
is thrown.- Specified by:
addToEntry
in interfaceFieldMatrix<T extends FieldElement<T>>
- Specified by:
addToEntry
in classAbstractFieldMatrix<T extends FieldElement<T>>
- Parameters:
row
- row location of entry to be setcolumn
- column location of entry to be setincrement
- value to add to the current matrix entry in row,column- Throws:
MatrixIndexException
- if the row or column index is not valid
-
copy
public FieldMatrix<T> copy()
Returns a (deep) copy of this.- Specified by:
copy
in interfaceFieldMatrix<T extends FieldElement<T>>
- Specified by:
copy
in classAbstractFieldMatrix<T extends FieldElement<T>>
- Returns:
- matrix copy
-
createMatrix
public FieldMatrix<T> createMatrix(int rowDimension, int columnDimension) throws java.lang.IllegalArgumentException
Create a new FieldMatrixof the same type as the instance with the supplied row and column dimensions. - Specified by:
createMatrix
in interfaceFieldMatrix<T extends FieldElement<T>>
- Specified by:
createMatrix
in classAbstractFieldMatrix<T extends FieldElement<T>>
- Parameters:
rowDimension
- the number of rows in the new matrixcolumnDimension
- the number of columns in the new matrix- Returns:
- a new matrix of the same type as the instance
- Throws:
java.lang.IllegalArgumentException
- if row or column dimension is not positive
-
getColumnDimension
public int getColumnDimension()
Returns the number of columns in the matrix.- Specified by:
getColumnDimension
in interfaceAnyMatrix
- Specified by:
getColumnDimension
in classAbstractFieldMatrix<T extends FieldElement<T>>
- Returns:
- columnDimension
-
getEntry
public T getEntry(int row, int column) throws MatrixIndexException
Returns the entry in the specified row and column.Row and column indices start at 0 and must satisfy
0 <= row < rowDimension
0 <= column < columnDimension
MatrixIndexException
is thrown.- Specified by:
getEntry
in interfaceFieldMatrix<T extends FieldElement<T>>
- Specified by:
getEntry
in classAbstractFieldMatrix<T extends FieldElement<T>>
- Parameters:
row
- row location of entry to be fetchedcolumn
- column location of entry to be fetched- Returns:
- matrix entry in row,column
- Throws:
MatrixIndexException
- if the row or column index is not valid
-
getRowDimension
public int getRowDimension()
Returns the number of rows in the matrix.- Specified by:
getRowDimension
in interfaceAnyMatrix
- Specified by:
getRowDimension
in classAbstractFieldMatrix<T extends FieldElement<T>>
- Returns:
- rowDimension
-
multiplyEntry
public void multiplyEntry(int row, int column, T factor) throws MatrixIndexException
Change an entry in the specified row and column.Row and column indices start at 0 and must satisfy
0 <= row < rowDimension
0 <= column < columnDimension
MatrixIndexException
is thrown.- Specified by:
multiplyEntry
in interfaceFieldMatrix<T extends FieldElement<T>>
- Specified by:
multiplyEntry
in classAbstractFieldMatrix<T extends FieldElement<T>>
- Parameters:
row
- row location of entry to be setcolumn
- column location of entry to be setfactor
- multiplication factor for the current matrix entry in row,column- Throws:
MatrixIndexException
- if the row or column index is not valid
-
setEntry
public void setEntry(int row, int column, T value) throws MatrixIndexException
Set the entry in the specified row and column.Row and column indices start at 0 and must satisfy
0 <= row < rowDimension
0 <= column < columnDimension
MatrixIndexException
is thrown.- Specified by:
setEntry
in interfaceFieldMatrix<T extends FieldElement<T>>
- Specified by:
setEntry
in classAbstractFieldMatrix<T extends FieldElement<T>>
- Parameters:
row
- row location of entry to be setcolumn
- column location of entry to be setvalue
- matrix entry to be set in row,column- Throws:
MatrixIndexException
- if the row or column index is not valid
-
-