During principal curvature estimation (via the shape operator), I am having some trouble getting real values.
The EigenSolver for eigendecomposition finds complex values / vectors, but from the argument in the ReadMe, the shape operator is diagonalizable with real values, since curvature is real and extremal.
I'm wondering if there's a way to encourage the solver to find the closest real valued decomposition (I haven't had a chance to read up on the fundamental forms to verify whether they are indeed always decomposable this way, but I guess it should be the case for the quadratic form).
Looks like Eigen::SelfAdjointEigenSolver PCA_2D could be promising,
but it assumes our operator is self adjoint. This is fine since the product of two symmetric matrices (L * R) is symmetric, and the inverse of a symmetric matrix (L) is symmetric. I think this will work.
During principal curvature estimation (via the shape operator), I am having some trouble getting real values.
The EigenSolver for eigendecomposition finds complex values / vectors, but from the argument in the ReadMe, the shape operator is diagonalizable with real values, since curvature is real and extremal.
I'm wondering if there's a way to encourage the solver to find the closest real valued decomposition (I haven't had a chance to read up on the fundamental forms to verify whether they are indeed always decomposable this way, but I guess it should be the case for the quadratic form).