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

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


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.

Cheers,
Radu.

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 | http://rbrusu.com/



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/