Learn R Programming

Matrix (version 1.0-9)

unpack: Representation of Packed and Unpacked (Dense) Matrices

Description

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.

Usage

pack(x, ...)
## S3 method for class 'matrix':
pack(x, symmetric = NA, upperTri = NA, \dots)

unpack(x, ...)

Arguments

x
[object Object],[object Object]
symmetric
logical (including NA) for optionally specifying if x is symmetric (or rather triangular).
upperTri
(for the triangular case only) logical (incl. NA) indicating if x is upper (or lower) triangular.
...
further arguments passed to or from other methods.

Value

  • [object Object],[object Object]

Details

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().

Examples

Run this code
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