symmetricMatrix-class
Virtual Class of Symmetric Matrices in Package MatrixThe virtual class of symmetric matrices, "symmetricMatrix"
, from the package Matrix contains numeric and logical, dense and sparse matrices, e.g., see the examples with the “actual” subclasses.
The main use is in methods (and C functions) that can deal with all symmetric matrices, and in as(*, "symmetricMatrix")
.
uplo
:Object of class "character"
. Must be either "U", for upper triangular, and "L", for lower triangular.
Dim, Dimnames
:The dimension (a length-2 "integer"
) and corresponding names (or NULL
), inherited from the Matrix
, see there. See below, about storing only one of the two Dimnames
components.
factors
:a list of matrix factorizations, also from the Matrix
class.
Class "Matrix"
, directly.
signature(from = "ddiMatrix", to =
"symmetricMatrix")
: and many other coercion methods, some of which are particularly optimized.
signature(object = "symmetricMatrix")
: returns symmetric dimnames
, even when the Dimnames
slot only has row or column names. This allows to save storage for large (typically sparse) symmetric matrices.
signature(object = "symmetricMatrix")
: returns TRUE
trivially.
There's a C function symmetricMatrix_validate()
called by the internal validity checking functions, and also from getValidity(getClass("symmetricMatrix"))
.
dimnames
The validity checks do not require a symmetric Dimnames
slot, so it can be list(NULL, <character>)
, e.g., for efficiency. However, dimnames()
and other functions and methods should behave as if the dimnames were symmetric, i.e., with both list components identical.
isSymmetric
which has efficient methods (isSymmetric-methods) for the Matrix classes. Classes triangularMatrix
, and, e.g., dsyMatrix
for numeric dense matrices, or lsCMatrix
for a logical sparse matrix class.
## An example about the symmetric Dimnames: sy <- sparseMatrix(i= c(2,4,3:5), j= c(4,7:5,5), x = 1:5, dims = c(7,7), symmetric=TRUE, dimnames = list(NULL, letters[1:7])) sy # shows symmetrical dimnames sy@Dimnames # internally only one part is stored dimnames(sy) # both parts - as sy *is* symmetrical showClass("symmetricMatrix") ## The names of direct subclasses: scl <- getClass("symmetricMatrix")@subclasses directly <- sapply(lapply(scl, slot, "by"), length) == 0 names(scl)[directly] ## Methods -- applicaple to all subclasses above: showMethods(classes = "symmetricMatrix")
Copyright (©) 1999–2012 R Foundation for Statistical Computing.
Licensed under the GNU General Public License.