Could you check for failure here? Eigen3 migh freak out if the matrix's smallest Eigenvalue is slightly smaller than 0 on a float64 machine