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

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


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.

Benoit

>
> 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/