# isSymmetric: Test if a Matrix or other Object is Symmetric (Hermitian)

### Description

Generic function to test if `object` is symmetric or not. Currently only a matrix method is implemented, where a `complex` matrix `Z` must be “Hermitian” for `isSymmetric(Z)` to be true.

### Usage

 ```1 2 3``` ```isSymmetric(object, ...) ## S3 method for class 'matrix' isSymmetric(object, tol = 100 * .Machine\$double.eps, ...) ```

### Arguments

 `object` any R object; a `matrix` for the matrix method. `tol` numeric scalar >= 0. Smaller differences are not considered, see `all.equal.numeric`. `...` further arguments passed to methods; the matrix method passes these to `all.equal`.

### Details

The `matrix` method is used inside `eigen` by default to test symmetry of matrices up to rounding error, using `all.equal`. It might not be appropriate in all situations.

Note that a matrix `m` is only symmetric if its `rownames` and `colnames` are identical. Consider using `unname(m)`.

### Value

logical indicating if `object` is symmetric or not.

`eigen` which calls `isSymmetric` when its `symmetric` argument is missing.
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13``` ```isSymmetric(D3 <- diag(3)) # -> TRUE D3[2, 1] <- 1e-100 D3 isSymmetric(D3) # TRUE isSymmetric(D3, tol = 0) # FALSE for zero-tolerance ## Complex Matrizes - Hermitian or not Z <- sqrt(matrix(-1:2 + 0i, 2)); Z <- t(Conj(Z)) %*% Z Z isSymmetric(Z) # TRUE isSymmetric(Z + 1) # TRUE isSymmetric(Z + 1i) # FALSE -- a Hermitian matrix has a *real* diagonal ```