Fourier: Execution time for real and complex arguments
- To: mathgroup at smc.vnet.net
- Subject: [mg31824] Fourier: Execution time for real and complex arguments
- From: Silvia Raffaelli <silviar at elmagn.chalmers.se>
- Date: Wed, 5 Dec 2001 06:51:48 -0500 (EST)
- Organization: Chalmers University of Technology
- Sender: owner-wri-mathgroup at wolfram.com
Hi, I am little curious about the behavior of the DFT-routine Fourier. Two quesions: 1. Why does Fourier take much more than twice the time to calculate the DFT of a list of imaginary/complex numbers compared to a equal-length list of real numbers (floating-point)? 2. Why does the way I generate a list affect the time it takes to run Fourier? Sample session: n = 2^20; xRe = Table[Random[],{i,n}]; x1 = xRe+I 1.; x2 = xRe+I Table[1.,{i,n}]; Timing[ y=Fourier[xRe]; ] (* Real argument *) Timing[ y=Fourier[x1]; ] (* Complex argument *) Timing[ y=Fourier[x2]; ] (* Complex argument *) Max[ Abs[x1 - x2] ] FullForm[x1] - FullForm[x2] Max[ Abs[ Fourier[x1] - Fourier[x2] ] ] Out[1]= {1.86 Second,Null} Out[2]= {4.24 Second,Null} Out[3]= {10.03 Second,Null} Out[4]= 0. Out[5]= 0 Out[6]= 0. I can understand the difference between Out[1] and Out[2], but what about Out[3]? Any ideas? (Where's my mistake? ;-) ) TIA, -- Martin Johansson Ericsson Microwave Systems m.johansson at ericsson.com