Re: [eigen] FFT update

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


Hauke Heibel wrote:
Hi Mark,

that sounds like great news. I just started working with the FFT
module. I don't have many suggestions since almost everything worked
out of the box.
Glad to hear it. Thanks.
One slight change that will be pushed soon is that the destination argument for fwd, inv functions is now a pointer. Benoit suggested this and I think it helps make it more obvious which is which.


First, you might want to consider taking DenseBase<Derived> as your
input parameter(s) as opposed to MatrixBase<Derived>. This allows us
to use the FFT module out of the box with the Array class.
I will look into this. I need to familiarize myself more with the Matrix inheritence tree anyway. I feel a bit "Dense" :)

Second, it would be a nice addition when we could adapt the
ReturnByValue class and thus making inv(...) and fwd(...) returning
their results.
I think this would be a great addition. I don't think this would be confusing: stdVecDst = fft.fwd( stdVecSrc ); <=> fft.fwd( &stdVecDst, stdVecSrc ); eigMatDst = fft.fwd( eigMatSrc); <=> fft.fwd(&eigMatSrc, eigMatDst ); I think the intent of the versions on the left and on the right are both obvious, with the left being a little more readable.



Well, that's it so far. Oh, one last thing. In your dox you write
under 1) that the Eigen/FFT does

IFFT( FFT(x) ) = x

and you claim that this is different from Matlab. Over here, this is
not the case. Actually, I just ported a discrete cosine transform from
Matlab and the FFT/IFFT results in Eigen and Matlab are identical.
Looking over my comments I understand the confusion.  Let me clarify.

As you mentioned, in Matlab/octave , IFFT( FFT(x) ) = x.

It is the OTHER libraries (kissfft,fftw,imkl) that differ from Matlab.
Eigen::FFT hides this difference from the user so the answers agree with Matlab, at least in the default usage.


-- Mark




Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/