isSymmetric
From base v3.3
by Rcore Rcore@Rproject.org
Test if a Matrix or other Object is Symmetric (Hermitian)
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
isSymmetric(object, ...)
"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.
See Also
eigen
which calls isSymmetric
when its
symmetric
argument is missing.
Examples
library(base)
isSymmetric(D3 < diag(3)) # > TRUE
D3[2, 1] < 1e100
D3
isSymmetric(D3) # TRUE
isSymmetric(D3, tol = 0) # FALSE for zerotolerance
## 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
Community examples
Looks like there are no examples yet.