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

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


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/