Re: [eigen] FFT for Eigen

[ Thread Index | Date Index | More Archives ]

2009/5/18 Mark Borgerding <mark@xxxxxxxxxxxxxx>:
>> 2- The complex type matrices in Eigen are still somewhat basic.  I
>> think they are just a Matrix with data type std::complex (real and
>> imaginary components are interleaved).  Which for some use cases is
>> not great.  For example if I am going to do a lot of vector operations
>> with the real and imaginary part separately, these operations cannot
>> be easily vectorized (correct me if I'm wrong).  On the other hand it
>> is true that this storage might be the one used by most external
>> libraries.
>> It has been already a long time since I told Benoit I would write a
>> wiki page for this discussion, but still haven't.  Sorry for that.
> This seems like a worthwhile discussion, but one that is orthogonal (no pun
> intended) to the subject of FFTs. I will say that most (all?) modern FFT
> routines work with interleaved real,imag  components. I agree it would be
> easier to vectorize some operations if real, imag were stored separately.

I concur: I don't think that it would be very useful to have complex
matrices with the real and imaginary parts stored separately. Most
operations -- and the more costly ones -- would run slower in such a
scheme. The basic issue here is memory locality.

That said, as already discussed, there is room for improvement in our
complex matrices, but indeed the discussion is orthogonal to FFT.
These improvements would include enabling vectorization and improving
the way one can address separately the real and imaginary parts. I
admit this kind of fell off my TODO as there was so much to do, but if
someone is very interested i could detail what needs to be done (and
yes i should write that on the todo...)


Mail converted by MHonArc 2.6.19+