
Last chance! 50% off unlimited learning
Sale ends in
“Packed” matrix storage here applies to dense matrices
('>denseMatrix
) only, and there is available only
for symmetric ('>symmetricMatrix
)
or triangular ('>triangularMatrix
) matrices,
where only one triangle of the matrix needs to be stored.
unpack()
unpacks “packed” matrices, where
pack()
produces “packed” matrices.
pack(x, …)
# S4 method for matrix
pack(x, symmetric = NA, upperTri = NA, …)unpack(x, …)
unpack()
:a matrix stored in packed form, e.g.,
of class "d?pMatrix"
where "?" is "t" for triangular or
"s" for symmetric.
pack()
:a (symmetric or triangular) matrix stored in full storage.
logical (including NA
) for optionally
specifying if x
is symmetric (or rather triangular).
(for the triangular case only) logical
(incl. NA
) indicating if x
is upper (or lower) triangular.
further arguments passed to or from other methods.
These are generic functions with special methods for different types
of packed (or non-packed) symmetric or triangular dense
matrices. Use showMethods("unpack")
to list
the methods for unpack()
, and similarly for pack()
.
# NOT RUN {
showMethods("unpack")
(cp4 <- chol(Hilbert(4))) # is triangular
tp4 <- as(cp4,"dtpMatrix")# [t]riangular [p]acked
str(tp4)
(unpack(tp4))
stopifnot(identical(tp4, pack(unpack(tp4))))
(s <- crossprod(matrix(sample(15), 5,3))) # traditional symmetric matrix
(sp <- pack(s))
mt <- as.matrix(tt <- tril(s))
(pt <- pack(mt))
stopifnot(identical(pt, pack(tt)),
dim(s ) == dim(sp), all(s == sp),
dim(mt) == dim(pt), all(mt == pt), all(mt == tt))
showMethods("pack")
# }
Run the code above in your browser using DataLab