% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/S3_factorizations.R
\name{chol.HDF5Matrix}
\alias{chol.HDF5Matrix}
\title{Cholesky decomposition of a symmetric positive-definite HDF5Matrix}
\usage{
\method{chol}{HDF5Matrix}(
  x,
  full_matrix = FALSE,
  overwrite = FALSE,
  threads = -1L,
  block_size = NULL,
  compression = NULL,
  ...
)
}
\arguments{
\item{x}{An \code{HDF5Matrix}.}

\item{full_matrix}{Logical. Return full symmetric matrix (L + L').
Default \code{FALSE}.}

\item{overwrite}{Logical. Overwrite existing result.  Default \code{FALSE}.}

\item{threads}{Integer. OpenMP threads (-1 = auto).}

\item{block_size}{Integer or NULL. Elements per block.  NULL = auto.}

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

\item{...}{Ignored (for S3 compatibility).}
}
\value{
\code{HDF5Matrix} containing the upper-triangular Cholesky factor U
such that \code{t(U) \%*\% U == A} (consistent with \code{base::chol()}).
}
\description{
Computes the Cholesky factor and returns it as an upper-triangular matrix U
such that \code{t(U) \%*\% U == A}, consistent with \code{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.
}
\examples{
\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)

}

}
