Re: [eigen] get scaling out of transform? |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] get scaling out of transform?
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Thu, 22 Jan 2009 19:23:53 +0100
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=qTE907VYhcawvxPOsBFBqw5xYvwP+JtyO8jod2cfvLg=; b=n81pH7NAZEgeHVMXcXH+ZBOP9XGGZBNDi8O0MgDxabLDrLBYPS4C+9ssKcUfgtnWwY UroijAcq4QBl7nO9r9IRhLF6jXlnDbx1bUM6R+0jXxhCbr9yQ9cIrqCdpZ4hPXZnjkbw UVZ8F6BdVruzkjKECMqcjWwGE6m0pT7uP5U3I=
- 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=BD3GPAyGfWKX4d5uDBYJsOAcuv8WylkK2MOU8/cIP7Vu/kgP0tOgjaG+NUwwidwULA oOVx3L9KWcGm/zCVgp+RqOkmWRwVzxNvbLO3Gt2Oyb3vqsSrVIRO32fThN5cimLiguIQ 9TwjuzqSa5VtNAzcaH5yWtypfJLW2dogvInQE=
2009/1/22 Jitse Niesen <jitse@xxxxxxxxxxxxxxxxx>:
> On Wed, 21 Jan 2009, Benoit Jacob wrote:
>
>> There's another way that you can go, suffering again performance-wise
>> from the current lack of fixed-size specializations: use the
>> SelfAdjointEigenSolver.
>>
>> Transform3d t;
>> Matrix3d m = t.linear();
>> SelfAdjointEigenSolver s(m*m.adjoint());
>> Matrix3d scaling = s.operatorSqrt();
>
> This is numerically a bit dangerous. You lose information when computing the
> product m*m.adjoint(). This may not be that important in this case though,
> because the matrices are small and (I'd guess) the accuracy requirement is
> lax.
I agree. Indeed it wouldn't be a problem here because the matrices are small.
Anyway, the solution that i've used to implement
computeRotationScaling today is using the SVD, not the
SelfAdjointEigenSolver, so I don't need to form this matrix product.
Cheers,
Benoit
>
>
> Jitse
>
>
>