Re: [eigen] eigen3 SelfAdjointEigenSolver<Matrix3f> still "buggy"

[ Thread Index | Date Index | More Archives ]

Do you have anything against us copying these two methods in PCL until Eigen3 beta2 comes out? This is a hefty speed-up, and our 3D feature estimation will be happier. :)

| Radu Bogdan Rusu |

On 08/31/2010 11:24 AM, Benoit Jacob wrote:
2010/8/31 Radu Bogdan Rusu<rusu@xxxxxxxxxxxxxxxx>:
Wow, not bad at all:

0.196087 seconds
0.06826 seconds
Eigenvalue/eigenvector diffs:
  1.15484e-07 -2.38419e-07  3.57628e-07
-5.96046e-08  6.55651e-07  2.98023e-08
-2.98023e-08 -8.34465e-07  4.17233e-07
-5.96046e-08  4.17233e-07 -3.57628e-07

This might be good enough for us :) I wonder what numerical issues were you
referring to. All in all, this would be a great addition to Eigen3! If you
add it as a template specialization it might be difficult for someone else
to avoid using it. I vote for a special class.

I agree, a special class makes the most sense.



On 08/31/2010 01:14 AM, Gael Guennebaud wrote:

If you want an even faster 3x3 eigen decomposition, you can have a
look at the file bench/eig33.cpp (in the hg repo), which compares
current Eigen's 3x3 eigensolver against a direct method solving the
underlying degree 3 polynomial. To test it:

g++ -I .. -O2 -lrt eig33.cpp -DNDEBUG&&    ./a.out

Here it is about 4 times faster though the speed of the default method
is not constant since this is an iterative method. I'm still unsure
about how to integrate it into Eigen because I don't want to make it
the default. Indeed, it might suffers from some numerical issues if
the matrix is not well conditioned. It also involves some
trigonometric functions that is not very nice. So I guess we could add
a template option to SelfAdjointEigenSolver or add a special class...
well there are many possibilities!

| Radu Bogdan Rusu |

Mail converted by MHonArc 2.6.19+