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

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


On Tue, Aug 31, 2010 at 8:28 PM, Radu Bogdan Rusu <rusu@xxxxxxxxxxxxxxxx> wrote:
> 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. :)

no problem, but please use the latest version that I've just committed
which includes the respective copyrights (part of the code comes form
Geometric Tools).

Note that currently it assumes all eigenvalues are different....

gael

>
> Thanks,
> Radu.
> --
> | Radu Bogdan Rusu | http://rbrusu.com/
>
> 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.
>>
>> 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/