Re: Compile Fourier
- To: mathgroup at smc.vnet.net
- Subject: [mg64899] Re: Compile Fourier
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Tue, 7 Mar 2006 06:11:49 -0500 (EST)
- Organization: The University of Western Australia
- References: <duh209$5kq$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <duh209$5kq$1 at smc.vnet.net>,
Alberto Verga <Alberto.Verga at laposte.net> wrote:
> The following piece of code gives an error message 'Compiled expression
> should be a rank 1 tensor of machine-size complex numbers'
>
> Compile[{{m, _Real, 2}}, Fourier[m]][Table[N[i - j], {i, 4}, {j, 4}]]
>
> Does this mean that Fourier[] cannot be compiled with rank 2 arrays?
The error message is avoided by specifying the type for Fourier[m]:
cf = Compile[{{m, _Real, 2}}, Fourier[m],
{{Fourier[_], _Complex, 2}}][Table[N[i - j], {i, 4}, {j, 4}]]
However, timing shows no speed-up compared to direct use of Fourier. And
an examination of the compiled function shows that Fourier is _not_
compiled:
cf[[-3]]
> My goal is to write a pseudospectral code to solve 2D PDE: compiling the
> time loop seems unavoidable if one wants reasonable performance.
Rob Knapp gave a talk on the Split Step Fourier Method. See the gzipped
file NLS.tgz in
http://members.wri.com/rknapp/Talks/IMS/
This has the code to do this using arbitrary time order.
Cheers,
Paul
_______________________________________________________________________
Paul Abbott Phone: 61 8 6488 2734
School of Physics, M013 Fax: +61 8 6488 1014
The University of Western Australia (CRICOS Provider No 00126G)
AUSTRALIA http://physics.uwa.edu.au/~paul