I compiled the latest version of the Eigen codebase for x64 with SSE3 enabled. ./umeyama_5 s1392390306 fails as follow:
Initializing random number generator with seed 1392390306
Repeating each test 10 times
Test (run_fixed_size_test<float, 4>(num_elements)) failed in /usr/local/google/home/bsteiner/EigenLatest/eigen/test/umeyama.cpp (154)
error < Scalar(10)*std::numeric_limits<Scalar>::epsilon()
- (run_fixed_size_test<float, 4>(num_elements))
- Seed: 1392390306
Aborted (core dumped)
I just tried this on Visual Studio 2013 and cannot reproduce the issue. Which compiler did you use?
I used gcc4.8 running on Ubuntu.
I can confirm this on Ubuntu with gcc4.6.3. Moreover, with 10000 repetitions it fails almost every time -- with 1000 repetitions ca 1 out of 5 times.
I assume these are merely false negatives and we should just slightly reduce the precision (maybe 16*eps instead of 10*eps).
Another problem was that the problem got ill-posed if the scaling factor was very small compared to the translation part.
I relaxed the test-case here: