Re: [eigen] Inconsistency in multiplication of complex with real |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Inconsistency in multiplication of complex with real
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Sat, 19 Jun 2010 16:26:23 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=K4rvyPfarAdfaprHi2zEltQeCaihqnJMp4LZbwI5GC4=; b=mjz6sRHhaj5tfJaBDf1GnQp9ybxALHlT7iD3NviVCr/dRA/gYks3dDqjU2iGjEYNFT pfJXwhHXH7oABPxDzGqIVq0Rrn9BZXX9uGPozds8MNwX+5i5KMuZa30TaWkvO16mPtgi xfyvkRsl+GjxxW8Rb1sVzjvcFAYfEL1K1Fn2w=
- 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=v+RhWPfjozJArthhiWRGvcaQCGwOeS/6G6+ximu7PP7ETCUCikDmoAXOmoPdzhIoHU d3YAcFFA4cZBfL3WPf3/+utuWdMpjocwXHCfBVdMAhOYHzp1K1rNrvZAqYAX+w9+NL+p ZE3R49/Q4zTs9if3afFz1/Gijw0Kky+ZZCPeI=
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
>
>
>
>