|Re: [eigen] Optimization for special complex operations|
[ Thread Index |
| More lists.tuxfamily.org/eigen Archives
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] Optimization for special complex operations
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Mon, 16 Aug 2010 11:43:32 -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; bh=muWhibLse+V2irNb6sn6zO/+uPyB2HLrKyITmRqioMg=; b=pvfxGb3Au6MnrkkawWK6XYguE0LJvbc5gI8gZua8KWHuyqCgACnDeaBKIo8Ybg6BA1 kVJAojtK9U5+7DvTzaDSlSNXsiWLqal7Xjk0jMWLu+qh+RXnnjwlLOk9zXAMp/E0yu/A T64+QoB5NeVR2wBCUnpFKIju7hQN0nmEMVLI0=
- 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; b=Q0I+BATdGeS/aGSU9FyZdUdGb1fPrsG+oUdNnACdJntPviDg46jscB1H0x8pOKwVdG Kn6F2DvjHgZHWQe+EkW+4RQVIuErjoJ+A2180lsb/BeKa4hZ4Vcw5dCgTCLp2YgJ/HM1 bb3vdL2Bp/62jetk0V7tlqAqeKc3ihCDNAPxw=
2010/8/16 Carlos Becker <carlosbecker@xxxxxxxxx>:
> On Mon, Aug 16, 2010 at 2:34 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
>> 2010/8/16 Carlos Becker <carlosbecker@xxxxxxxxx>:
>> > Hi everyone again. Lately I've been using Eigen with complex numbers to
>> > calculate things such as calculating the maximum of the real part or
>> > imaginary part of a certain vector. I suppose that trying to take the
>> > real
>> > part and then use maxCoeff() or minCoeff() would create a possible
>> > unnecessary temporary.
>> No, it wouldn't :-)
> Ok good, maybe 'temporary' is not exactly what I wanted to say. I mean that
> maybe there are vectorized ways to do certain stuff and special
> implementations could be provided for such operations.
>> > Another thing is to be able to do something like:
>> > MatrixXf nn,xx;
>> > xx = nn.colwise().normalized();
>> Hm. If we start going that route, won't we end up offering every
>> possible vector operation as colwise() operation?
>> The biggest reason not to do it now is that it really isn't necessary
>> to release Eigen 3.0 .... ;-)
> Yes I understand. I think vector-wise operations could be very important,
> but they would probably require a bit of discussion before implementing them
> (ie: should we keep .colwise(), should we use .vectorwise(), in the case
> some names for the reductions and vector-wise operations are the same). I
> believe these kind of operations would be very useful since many times a set
> of vectors is stored in a matrix, so this way the user could benefit from
> extra performance.
But the thing is, for this kind of use case, the much better approach
is to use a matrix-of-arrays:
Matrix<ArrayXf, 3, 1>
then all operations are automatically supported and vectorized.
The problem is that right now there is an inefficiency problem as we
create useless temporaries with Scalar=Array. This is the problem that
is the most worth fixing.
> I could try some prototypes to see if I can make it work. I designing
> something like .vectorwise() could be fine.