public final class SparseMatrix<F extends Field<F>> extends Matrix<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
| Modifier and Type | Method and Description |
|---|---|
SparseMatrix<F> |
adjoint()
Returns the adjoint of this matrix.
|
F |
cofactor(int i,
int j)
Returns the cofactor of an element in this matrix.
|
SparseMatrix<F> |
copy()
Returns a copy of this matrix
allocated
by the calling thread (possibly on the stack). |
F |
determinant()
Returns the determinant of this matrix.
|
F |
get(int i,
int j)
Returns a single element from this matrix.
|
SparseVector<F> |
getColumn(int j)
Returns the column identified by the specified index in this matrix.
|
SparseVector<F> |
getDiagonal()
Returns the diagonal vector.
|
int |
getNumberOfColumns()
Returns the number of columns
n for this matrix. |
int |
getNumberOfRows()
Returns the number of rows
m for this matrix. |
SparseVector<F> |
getRow(int i)
Returns the row identified by the specified index in this matrix.
|
F |
getZero()
Returns the value of the non-set elements for this sparse matrix.
|
SparseMatrix<F> |
inverse()
Returns the inverse of this matrix (must be square).
|
SparseMatrix<F> |
minus(Matrix<F> that)
Returns the difference between this matrix and the one specified.
|
SparseMatrix<F> |
opposite()
Returns the negation of this matrix.
|
SparseMatrix<F> |
plus(Matrix<F> that)
Returns the sum of this matrix with the one specified.
|
Matrix<F> |
solve(Matrix<F> y)
Solves this matrix for the specified matrix (returns
x
such as this · x = y). |
SparseMatrix<F> |
tensor(Matrix<F> that)
Returns the linear algebraic matrix tensor product of this matrix
and another (Kronecker product).
|
SparseMatrix<F> |
times(F k)
Returns the product of this matrix by the specified factor.
|
SparseMatrix<F> |
times(Matrix<F> that)
Returns the product of this matrix with the one specified.
|
SparseVector<F> |
times(Vector<F> v)
Returns the product of this matrix by the specified vector.
|
SparseMatrix<F> |
transpose()
Returns the transpose of this matrix.
|
static <F extends Field<F>> |
valueOf(List<SparseVector<F>> rows)
Returns a sparse matrix holding the row vectors from the specified
collection (column vectors if
transposed). |
static <F extends Field<F>> |
valueOf(Matrix<F> that,
F zero)
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>> |
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.
|
static <F extends Field<F>> |
valueOf(SparseVector<F>... rows)
Returns a sparse matrix holding the specified row vectors
(column vectors if
transposed). |
static <F extends Field<F>> |
valueOf(Vector<F> diagonal,
F zero)
Returns the sparse square matrix having the specified diagonal
vector.
|
SparseVector<F> |
vectorization()
Returns the vectorization of this matrix.
|
public static <F extends Field<F>> SparseMatrix<F> valueOf(Vector<F> diagonal, F zero)
diagonal - the diagonal vector.zero - value of non-diagonal elements.diagonal on the diagonal and
zero elsewhere.public static <F extends Field<F>> SparseMatrix<F> valueOf(SparseVector<F>... rows)
transposed).rows - the row vectors.DimensionException - if the rows do not have the same dimension.public static <F extends Field<F>> SparseMatrix<F> valueOf(List<SparseVector<F>> rows)
transposed).rows - the list of row vectors.DimensionException - if the rows do not have the same dimension.public static <F extends Field<F>> SparseMatrix<F> valueOf(Matrix<F> that, F zero)
that - the matrix to convert.zero - the zero element for the sparse vector to return.SparseMatrix.valueOf(that, zero, FastComparator.DEFAULT) or a dense matrix holding the same elementspublic static <F extends Field<F>> SparseMatrix<F> valueOf(Matrix<F> that, F zero, javolution.util.FastComparator<? super F> comparator)
that - the matrix to convert.zero - the zero element for the sparse vector to return.comparator - the comparator used to determinate zero equality.that or a dense matrix holding the same elements
as the specified matrix.public F getZero()
public int getNumberOfRows()
Matrixm for this matrix.getNumberOfRows in class Matrix<F extends Field<F>>public int getNumberOfColumns()
Matrixn for this matrix.getNumberOfColumns in class Matrix<F extends Field<F>>public F get(int i, int j)
Matrixpublic SparseVector<F> getRow(int i)
Matrixpublic SparseVector<F> getColumn(int j)
Matrixpublic SparseVector<F> getDiagonal()
MatrixgetDiagonal in class Matrix<F extends Field<F>>public SparseMatrix<F> opposite()
Matrixpublic SparseMatrix<F> plus(Matrix<F> that)
Matrixpublic SparseMatrix<F> minus(Matrix<F> that)
Matrixpublic SparseMatrix<F> times(F k)
Matrixpublic SparseVector<F> times(Vector<F> v)
Matrixpublic SparseMatrix<F> times(Matrix<F> that)
Matrixpublic SparseMatrix<F> inverse()
Matrixpublic F determinant()
Matrixdeterminant in class Matrix<F extends Field<F>>public Matrix<F> solve(Matrix<F> y)
Matrixx
such as this · x = y).public SparseMatrix<F> transpose()
Matrixpublic F cofactor(int i, int j)
Matrixpublic SparseMatrix<F> adjoint()
Matrixpublic SparseMatrix<F> tensor(Matrix<F> that)
MatrixDenseMatrix.public SparseVector<F> vectorization()
MatrixDenseVector.vectorization in class Matrix<F extends Field<F>>public SparseMatrix<F> copy()
Matrixallocated
by the calling thread (possibly on the stack).