I have written a wrapper around ND4J’s eigen decomp method symmetricGeneralizedEgenvalues
. In this wrapper I check for symmetry and return null
for non symmetric matrices, rather than incorrect results.
Now, I have a matrix that is symmetric except fro round-off error. I want to use something like this as my check for symmetry:
if (matrix.equalsWithEps(matrix.transpose(), epsilon) {
INDArray vals = Eigen.symmetricGeneralizedEigenvalues(matrix, true);
}
My question is what epsilon refers to here.
This method checks 2 INDArrays equality with given eps
Is this epsilon cumulative error of the entire matrix? Average error? Maximum error of any single element of the matrix?
I have to make this epsilon quite large for it to pass a matrix where the largest error is at the fourth decimal place.
Thanks!