Re: [eigen] eigen3 SelfAdjointEigenSolver<Matrix3f> still "buggy" |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] eigen3 SelfAdjointEigenSolver<Matrix3f> still "buggy"
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Tue, 31 Aug 2010 14:24:06 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=ea33RzWJ2dA5R04Kp9t5lCBA15r+ktjhKDoH1veq2AI=; b=WmTbPAx+fLdZVOex6lctQEHuU6gyPBdD2hPF4VB/cpCkzyKrISnhdRqukDHKblVDl3 hO7GOrfuylJMeZlX4CDdXorUEB46EUMHVPLLa6oNKCphU0j0G7nB/3dthXMNXcWt36nC iyoHp/w6bbj+Wj5B5w/smss9NuyBrJJC3LaMg=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=RwTYh+Kh4J8YHzYH2wJ6UkXB/MvjfNQtr/Wdlm2dyJow+STtu6TgCuRyy9u5Gmqocp DPmT5uSSbV4mg4aaLo7hN2amIR6NymO+IOqufvH+LjWOt1pP4j5Px981k5d87V5ao+Cf KTCsJv2fnsbtPqil5PfxodQmZmVd3g0QGXfsg=
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/
>
>
>