1% Generated by roxygen2: do not edit by hand
2% Please edit documentation in R/ldl.R
3\name{ldl}
4\alias{ldl}
5\title{LDL Decomposition of a Matrix}
6\usage{
7ldl(x, tol)
8}
9\arguments{
10\item{x}{Symmetrix matrix.}
11
12\item{tol}{Tolerance parameter for LDL decomposition, determines which
13diagonal values are counted as zero. Same value is used in isSymmetric function.
14Default is \code{max(100, max(abs(diag(as.matrix(x))))) * .Machine$double.eps}.}
15}
16\value{
17Transformed matrix with D in diagonal, L in strictly lower diagonal
18and zeros on upper diagonal.
19}
20\description{
21Function \code{ldl} computes the LDL decomposition of a positive semidefinite matrix.
22}
23\examples{
24# Positive semidefinite matrix, example matrix taken from ?chol
25x <- matrix(c(1:5, (1:5)^2), 5, 2)
26x <- cbind(x, x[, 1] + 3*x[, 2])
27m <- crossprod(x)
28l <- ldl(m, tol = 1e-8) # arm64 Mac setup in CRAN fails with default tolerance
29d <- diag(diag(l))
30diag(l) <- 1
31all.equal(l \%*\% d \%*\% t(l), m, tol = 1e-15)
32}
33