-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Incorrect output from computeMatrixSqrt #52
Comments
@hengli Thanks for the heads up. Can you make a pull-request for that change. I would however prefer solving this via an LLT instead of using the EigenSolver which is terribly slow in Eigen. |
Hi Lionel, In what way are the results incorrect? Always? In a particular case? |
Hi Paul, I was applying the function to the precision matrix for both the odometry data and chessboard data, and the function failed each time, returning a triangular matrix, B where B != A * A^T and A is the precision matrix. Here is an example precision matrix for the odometry data: The function returns the following result: |
Maybe this was right all along:
|
Are you sure you checked it the right way? B != A * A^T is comletely normel (except some special cases), becaue the defining equation is A = BB^T. (for the Cholesky type square root B of A). |
The computeMatrixSqrt function in https://github.com/ethz-asl/Schweizer-Messer/blob/master/sm_eigen/include/sm/eigen/matrix_sqrt.hpp outputs incorrect results.
In contrast, the operatorSqrt function in the SelfAdjointEigenSolver class does the same work, but returns correct results.
The text was updated successfully, but these errors were encountered: