Learn R Programming

BigDataStatMeth (version 2.0.3)

chol.HDF5Matrix: Cholesky decomposition of a symmetric positive-definite HDF5Matrix

Description

Computes the Cholesky factor and returns it as an upper-triangular matrix U such that t(U) %*% U == A, consistent with base::chol(). The internal C++ algorithm computes the lower-triangular factor L (A = L L'); the R/HDF5 transposition convention means the user receives L' = U. The input matrix must be square and symmetric positive-definite.

Usage

# S3 method for HDF5Matrix
chol(
  x,
  full_matrix = FALSE,
  overwrite = FALSE,
  threads = -1L,
  block_size = NULL,
  compression = NULL,
  ...
)

Value

HDF5Matrix containing the upper-triangular Cholesky factor U such that t(U) %*% U == A (consistent with base::chol()).

Arguments

x

An HDF5Matrix.

full_matrix

Logical. Return full symmetric matrix (L + L'). Default FALSE.

overwrite

Logical. Overwrite existing result. Default FALSE.

threads

Integer. OpenMP threads (-1 = auto).

block_size

Integer or NULL. Elements per block. NULL = auto.

compression

Integer (0-9) or NULL. gzip compression level for the result dataset. NULL uses the global option set by hdf5matrix_options (default 6). Use 0 to disable compression (faster for benchmarks).

...

Ignored (for S3 compatibility).

Examples

Run this code
# \donttest{

tmp <- tempfile(fileext = ".h5")

X  <- hdf5_create_matrix(tmp, "data/X", data = matrix(rnorm(10000), 100, 100))

# Create a symmetric positive-definite matrix: A = t(X) %*% X
X  <- hdf5_matrix(tmp, "data/X")
AtA <- crossprod(X)              # HDF5Matrix, square SPD
L   <- chol(AtA)

hdf5_close_all()
unlink(tmp)

# }

Run the code above in your browser using DataLab