New user self-registration is currently disabled. Please email eigen-core-team @ lists.tuxfamily.org if you need an account.
Bug 774 - umeyama sometimes returns a reflection
 Summary: umeyama sometimes returns a reflection
 Status: RESOLVED FIXED Eigen Unclassified Geometry 3.2 All All Normal Unknown Nobody Show dependency tree / graph

 Reported: 2014-03-27 20:34 UTC by Charles Karney 2016-02-11 14:34 UTC (History) 4 users (show) gael.guennebaud hauke.heibel injx032 jacob.benoit.1

Attachments
Patch to umeyama to address reflection bug (1.07 KB, patch)
2014-03-27 20:34 UTC, Charles Karney
no flags Details | Diff

 Charles Karney 2014-03-27 20:34:40 UTC ```Created attachment 445 [details] Patch to umeyama to address reflection bug The following code const int m = 3; const int n = 3; Matrix x, y; x << 0, 1,-1, 0, 0, 0, 0, 0, 0; y << 0,-1, 1, 0, 0, 0, 0, 0, 0; Matrix ta = umeyama(x, y, false); returns a matrix with a determinant of -1. Umeyama's paper doesn't properly explain how to deal with this case. Basically everywhere he says rank(AB^T) = m - 1, he means to say rank(AB^T) < m. The attached patch (against version 3.2.1) fixes this bug. Note that I don't look at the sign of determinant of sigma at all. This is too subject to errors.``` totto 2016-02-09 14:27:17 UTC `I had the same problem of an unexpected reflection. Searching for the cause I found this bug report with the attached patch which fixed the issue.` Charles Karney 2016-02-09 16:51:47 UTC `You might be interested in bug 771 where I tried to do this fitting problem in a cleaner and more flexible manner.` Gael Guennebaud 2016-02-11 14:27:01 UTC ```hm the original code is indeed very odd, and I agree with the proposed patch. (sorry for looking at it so lately). Since we are at it, I don't see the point of this vector S full of ones... I'll remove it too.``` Gael Guennebaud 2016-02-11 14:34:36 UTC ```https://bitbucket.org/eigen/eigen/commits/1a74ed5ce5aa/ Summary: Bug 774: fix a numerical issue producing unwanted reflections.```

 Note You need to log in before you can comment on or make changes to this bug.