Re: [eigen] Inconsistency in multiplication of complex with real

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


no good reason: Array vs Matrix shouldn't make any difference here.

2010/6/19 Manoj Rajagopalan <rmanoj@xxxxxxxxx>:
>
> Is there any reason why this type-promotion should work with Array but not
> Matrix? The short program below doesn't compile till I explicitly cast the
> MatrixXd to complex:
>
> int main(void)
> {
>        int const N = 5;
>        Eigen::MatrixXcd A(N,N);
>        Eigen::MatrixXd B(N,N);
>        Eigen::MatrixXcd C(N,N);
>        A.setRandom();
>        B.setRandom();
>        C = A*B.cast<complex<double> >(); // compile fail without cast
>        return 0;
> }
>
>
>
> Thanks,
> Manoj
>
>
>
> On Saturday 19 June 2010 01:06:59 pm Benoit Jacob wrote:
>> right, this is  a bug, needs to be fixed.
>>
>> 2010/6/19 Johan Pauwels <johan.pauwels@xxxxxxxxxxxxx>:
>> > Hello all,
>> >
>> > I think I found a little inconsistency when multiplying a complex with a
>> > real array. See the snippet below
>> >
>> > #include <iostream>
>> > #include <Eigen/Core>
>> >
>> > int main()
>> > {
>> >        Eigen::ArrayXcd complexArray = Eigen::ArrayXcd::Random(5);
>> >        Eigen::ArrayXd realArray = Eigen::ArrayXd::Random(5);
>> >        complexArray = complexArray * realArray;
>> >        std::cout << complexArray << std::endl;
>> >        complexArray *= realArray;
>> >        std::cout << complexArray << std::endl;
>> > }
>> >
>> > The first multiplication just works, but the second causes
>> > 'YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MA
>> >TRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY' at compilation (Mac OS 10.6.3 -
>> > gcc 4.2.1, Eigen head). You would expect them to do the same, no?
>> >
>> > Regards,
>> > Johan
>
>
>
>



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