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

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


oh, right!

2010/6/19 Gael Guennebaud <gael.guennebaud@xxxxxxxxx>:
> well, there is a difference, for arrays operator * means coefficient
> wise product, while for matrices its the matrix product. Of course
> matrix product between real and complex should also be allowed, but
> implementation-wise this much more tricky....
>
> gael
>
> On Sat, Jun 19, 2010 at 10:26 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
>> 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/