Symmetric Dense (Packed or Unpacked) Numeric Matrices
Symmetric Dense (Packed or Unpacked) Numeric Matrices
The "dsyMatrix" class is the class of symmetric, dense matrices in non-packed storage and
"dspMatrix" is the class of symmetric dense matrices in packed storage, see pack(). Only the upper triangle or the lower triangle is stored.
class
Objects from the Class
Objects can be created by calls of the form new("dsyMatrix", ...) or new("dspMatrix", ...), respectively.
Slots
uplo:: Object of class "character". Must be either "U", for upper triangular, and "L", for lower triangular.
x:: Object of class "numeric". The numeric values that constitute the matrix, stored in column-major order.
Dim,Dimnames:: The dimension (a length-2 "integer") and corresponding names (or NULL), see the Matrix.
factors:: Object of class "list". A named list of factorizations that have been computed for the matrix.
Extends
"dsyMatrix" extends class "dgeMatrix", directly, whereas
"dspMatrix" extends class "ddenseMatrix", directly.
Both extend class "symmetricMatrix", directly, and class "Matrix" and others, indirectly, use showClass("dsyMatrix"), e.g., for details.
Methods
norm: signature(x = "dspMatrix", type = "character"), or x = "dsyMatrix" or type = "missing": Computes the matrix norm of the desired type, see, norm.
rcond: signature(x = "dspMatrix", type = "character"), or x = "dsyMatrix" or type = "missing": Computes the reciprocal condition number, rcond().
solve: signature(a = "dspMatrix", b = "...."), and
solve: signature(a = "dsyMatrix", b = "...."): x <- solve(a,b) solves Ax=b for x; see solve-methods.
t: signature(x = "dsyMatrix"): Transpose; swaps from upper triangular to lower triangular storage, i.e., the uplo slot from "U" to "L" or vice versa, the same as for all symmetric matrices.
See Also
The positive (Semi-)definite dense (packed or non-packed numeric matrix classes dpoMatrix, dppMatrix and corMatrix,
Classes dgeMatrix and Matrix; solve, norm, rcond, t
Examples
## Only upper triangular part matters (when uplo == "U" as per default)(sy2 <- new("dsyMatrix", Dim = as.integer(c(2,2)), x = c(14,NA,32,77)))str(t(sy2))# uplo = "L", and the lower tri. (i.e. NA is replaced).chol(sy2)#-> "Cholesky" matrix(sp2 <- pack(sy2))# a "dspMatrix"## Coercing to dpoMatrix gives invalid object:sy3 <- new("dsyMatrix", Dim = as.integer(c(2,2)), x = c(14,-1,2,-7))try(as(sy3,"dpoMatrix"))# -> error: not positive definite## 4x4 examplem <- matrix(0,4,4); m[upper.tri(m)]<-1:6(sym <- m+t(m)+diag(11:14,4))(S1 <- pack(sym))(S2 <- t(S1))stopifnot(all(S1 == S2))# equal "seen as matrix", but differ internally :str(S1)S2@x