# is.pd: Test Positive Definiteness of a List of Square Matrices In metaSEM: Meta-Analysis using Structural Equation Modeling

## Description

It tests the positive definiteness of a square matrix or a list of square matrices. It returns `TRUE` if the matrix is positive definite. It returns `FALSE` if the matrix is either non-positive definite or not symmetric. Variables with `NA` in the diagonals will be removed before testing. It returns `NA` when there are missing correlations even after deleting the missing variables.

## Usage

 `1` ```is.pd(x, check.aCov=FALSE, cor.analysis=TRUE, tol=1e-06) ```

## Arguments

 `x` A square matrix or a list of square matrices `check.aCov` If it is `TRUE`, it mirrors the checking in `asyCov`. `cor.analysis` Whether the input matrix is a correlation or a covariance matrix. It is ignored when `check.aCov=FALSE`. `tol` Tolerance (relative to largest variance) for numerical lack of positive-definiteness in `x`. It is adopted from `mvrnorm`.

## Value

If the input is a matrix, it returns `TRUE`, `FALSE` or `NA`. If the input is a list of matrices, it returns a list of `TRUE`, `FALSE` or `NA`.

## Author(s)

Mike W.-L. Cheung <[email protected]>

## Examples

 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15``` ```A <- diag(1,3) is.pd(A) # TRUE B <- matrix(c(1,2,2,1), ncol=2) is.pd(B) # FALSE is.pd(list(A, B)) # TRUE FALSE C <- A C[2,1] <- C[1,2] <- NA is.pd(C) # NA ```

### Example output

```Loading required package: OpenMx
To take full advantage of multiple cores, use: