Re: [eigen] Convert 1x1 matrix to internal type?

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


Personally, I'd greatly prefer not to have any implicit conversion
from matrices to doubles, with the possible exception of when it's
known at compile time to be a 1x1 matrix.  It sounds otherwise like a
recipe for bugs.

David

On Thu, Sep 16, 2010 at 9:48 PM, Li Wei <lwthucs@xxxxxxxxx> wrote:
> How about converts to any matrix double type to its first element(top-left
> corner) in release mode by default, but with dimensionality check in debug
> mode.
>
> On Thu, Sep 16, 2010 at 3:33 AM, <lfrfly@xxxxxxxxxxx> wrote:
>>
>> It seems to me that a 1x1 matrix ought to be convertible to its internal
>> type. Maybe it is, but if so, there's some kind of problem. Consider the
>> computation for Mahalanobis distance:
>>
>> Matrix2d covariance, covInverse;
>> Vector2d data;
>>
>> covariance.computeInverse(&covInverse);
>> double mdist = data.transpose()*covInverse*data;
>>
>> You would think this would work fine, since the result ix 1x1. However, it
>> gives an error that an Eigen::Multiply cannot be converted to a double.
>>
>> I can get around this by doing
>>
>> double mdist = (data.transpose()*covInverse*data)[0];
>>
>> but that's a bit awkward. What is the "correct" solution to this issue?
>>
>>
>
>
>
> --
> ——
> Best Wishes From
> Wei Li
> Moblie:86-13810480212
> Dep. of Computer Science and Technology, Tshinghua Univ.
>



-- 
David Roundy



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