Class SparseMatrix<F extends Field<F>>
- All Implemented Interfaces:
javolution.lang.Immutable
,javolution.lang.Realtime
,javolution.lang.ValueType
,GroupAdditive<Matrix<F>>
,Ring<Matrix<F>>
,Structure<Matrix<F>>
,VectorSpace<Matrix<F>,
F>
This class represents a matrix made of sparse
vectors
(as rows). To create a sparse matrix made of column vectors the
transpose()
method can be used.
For example:[code]
SparseVector
As for any concrete structure
, this class is declared final
(otherwise most
operations would have to be overridden to return the appropriate type).
Specialized dense matrix should sub-class Matrix
directly.
For example:[code]
// Extension through composition.
final class BandMatrix <F extends Field
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionadjoint()
Returns the adjoint of this matrix.cofactor
(int i, int j) Returns the cofactor of an element in this matrix.copy()
Returns a copy of this matrixallocated
by the calling thread (possibly on the stack).Returns the determinant of this matrix.get
(int i, int j) Returns a single element from this matrix.getColumn
(int j) Returns the column identified by the specified index in this matrix.Returns the diagonal vector.int
Returns the number of columnsn
for this matrix.int
Returns the number of rowsm
for this matrix.getRow
(int i) Returns the row identified by the specified index in this matrix.getZero()
Returns the value of the non-set elements for this sparse matrix.inverse()
Returns the inverse of this matrix (must be square).Returns the difference between this matrix and the one specified.opposite()
Returns the negation of this matrix.Returns the sum of this matrix with the one specified.Solves this matrix for the specified matrix (returnsx
such asthis · x = y
).Returns the linear algebraic matrix tensor product of this matrix and another (Kronecker product).Returns the product of this matrix by the specified factor.Returns the product of this matrix with the one specified.Returns the product of this matrix by the specified vector.Returns the transpose of this matrix.static <F extends Field<F>>
SparseMatrix<F>valueOf
(List<SparseVector<F>> rows) Returns a sparse matrix holding the row vectors from the specified collection (column vectors iftransposed
).static <F extends Field<F>>
SparseMatrix<F>Returns a sparse matrix equivalent to the specified matrix but with the zero elements removed using the default object equality comparator.static <F extends Field<F>>
SparseMatrix<F>Returns a sparse matrix equivalent to the specified matrix but with the zero elements removed using the specified object equality comparator.static <F extends Field<F>>
SparseMatrix<F>valueOf
(SparseVector<F>... rows) Returns a sparse matrix holding the specified row vectors (column vectors iftransposed
).static <F extends Field<F>>
SparseMatrix<F>Returns the sparse square matrix having the specified diagonal vector.Returns the vectorization of this matrix.
-
Method Details
-
valueOf
Returns the sparse square matrix having the specified diagonal vector. This method is typically used to create an identity matrix. For example:[code] SparseMatrixIDENTITY = Matrix.valueOf( DenseVector.valueOf({Real.ONE, Real.ONE, Real.ONE}), Real.ZERO); [/code] - Parameters:
diagonal
- the diagonal vector.zero
- value of non-diagonal elements.- Returns:
- a square matrix with
diagonal
on the diagonal andzero
elsewhere.
-
valueOf
Returns a sparse matrix holding the specified row vectors (column vectors iftransposed
).- Parameters:
rows
- the row vectors.- Returns:
- the matrix having the specified rows.
- Throws:
DimensionException
- if the rows do not have the same dimension.
-
valueOf
Returns a sparse matrix holding the row vectors from the specified collection (column vectors iftransposed
).- Parameters:
rows
- the list of row vectors.- Returns:
- the matrix having the specified rows.
- Throws:
DimensionException
- if the rows do not have the same dimension.
-
valueOf
Returns a sparse matrix equivalent to the specified matrix but with the zero elements removed using the default object equality comparator.- Parameters:
that
- the matrix to convert.zero
- the zero element for the sparse vector to return.- Returns:
SparseMatrix.valueOf(that, zero, FastComparator.DEFAULT)
or a dense matrix holding the same elements
-
valueOf
public static <F extends Field<F>> SparseMatrix<F> valueOf(Matrix<F> that, F zero, javolution.util.FastComparator<? super F> comparator) Returns a sparse matrix equivalent to the specified matrix but with the zero elements removed using the specified object equality comparator.- Parameters:
that
- the matrix to convert.zero
- the zero element for the sparse vector to return.comparator
- the comparator used to determinate zero equality.- Returns:
that
or a dense matrix holding the same elements as the specified matrix.
-
getZero
Returns the value of the non-set elements for this sparse matrix.- Returns:
- the element corresponding to zero.
-
getNumberOfRows
public int getNumberOfRows()Description copied from class:Matrix
Returns the number of rowsm
for this matrix.- Specified by:
getNumberOfRows
in classMatrix<F extends Field<F>>
- Returns:
- m, the number of rows.
-
getNumberOfColumns
public int getNumberOfColumns()Description copied from class:Matrix
Returns the number of columnsn
for this matrix.- Specified by:
getNumberOfColumns
in classMatrix<F extends Field<F>>
- Returns:
- n, the number of columns.
-
get
Description copied from class:Matrix
Returns a single element from this matrix. -
getRow
Description copied from class:Matrix
Returns the row identified by the specified index in this matrix. -
getColumn
Description copied from class:Matrix
Returns the column identified by the specified index in this matrix. -
getDiagonal
Description copied from class:Matrix
Returns the diagonal vector.- Specified by:
getDiagonal
in classMatrix<F extends Field<F>>
- Returns:
- the vector holding the diagonal elements.
-
opposite
Description copied from class:Matrix
Returns the negation of this matrix. -
plus
Description copied from class:Matrix
Returns the sum of this matrix with the one specified. -
minus
Description copied from class:Matrix
Returns the difference between this matrix and the one specified. -
times
Description copied from class:Matrix
Returns the product of this matrix by the specified factor. -
times
Description copied from class:Matrix
Returns the product of this matrix by the specified vector. -
times
Description copied from class:Matrix
Returns the product of this matrix with the one specified. -
inverse
Description copied from class:Matrix
Returns the inverse of this matrix (must be square). -
determinant
Description copied from class:Matrix
Returns the determinant of this matrix.- Specified by:
determinant
in classMatrix<F extends Field<F>>
- Returns:
- this matrix determinant.
-
solve
Description copied from class:Matrix
Solves this matrix for the specified matrix (returnsx
such asthis · x = y
). -
transpose
Description copied from class:Matrix
Returns the transpose of this matrix. -
cofactor
Description copied from class:Matrix
Returns the cofactor of an element in this matrix. It is the value obtained by evaluating the determinant formed by the elements not in that particular row or column. -
adjoint
Description copied from class:Matrix
Returns the adjoint of this matrix. It is obtained by replacing each element in this matrix with its cofactor and applying a + or - sign according (-1)**(i+j), and then finding the transpose of the resulting matrix. -
tensor
Description copied from class:Matrix
Returns the linear algebraic matrix tensor product of this matrix and another (Kronecker product). The default implementation returns aDenseMatrix
. -
vectorization
Description copied from class:Matrix
Returns the vectorization of this matrix. The vectorization of a matrix is the column vector obtain by stacking the columns of the matrix on top of one another. The default implementation returns aDenseVector
.- Specified by:
vectorization
in classMatrix<F extends Field<F>>
- Returns:
- the vectorization of this matrix.
- See Also:
-
copy
Description copied from class:Matrix
Returns a copy of this matrixallocated
by the calling thread (possibly on the stack).
-