symmetricMatrix-class {Matrix} | R Documentation |
The 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")