dsyMatrix-class {Matrix} | R Documentation |
Symmetric Dense (Packed or Unpacked) Numeric Matrices
Description
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, seepack()
. Only the upper triangle or the lower triangle is stored.
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 (orNULL
), see theMatrix
.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")
, orx = "dsyMatrix"
ortype = "missing"
: Computes the matrix norm of the desired type, see,norm
.- rcond
signature(x = "dspMatrix", type = "character")
, orx = "dsyMatrix"
ortype = "missing"
: Computes the reciprocal condition number,rcond()
.- solve
signature(a = "dspMatrix", b = "....")
, and- solve
signature(a = "dsyMatrix", b = "....")
:x <- solve(a,b)
solvesA x = b
forx
; seesolve-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 example
m <- 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