FFTW allows specifying "regions", for multidimensional FFTs:
julia> X = randn(5,5,5);
julia> F = fft(X,(1,3));
julia> F[:,1,:] ≈ fft(X[:,1,:]) # 2D FFT acting on 1st and 3rd dimension
true
It turns out I need this feature for Legendre transforms.... at the moment it just does 1D transforms:
julia> X = randn(5,5);
julia> cheb2leg(X)[:,1] == cheb2leg(X[:,1])
true
I can add it to FastTransforms.jl, e.g., if I need a 2D Legendre I can do
but I'm curious if this could be SIMD-optimised (or multithreaded) in C to make it faster?
FFTW allows specifying "regions", for multidimensional FFTs:
It turns out I need this feature for Legendre transforms.... at the moment it just does 1D transforms:
I can add it to FastTransforms.jl, e.g., if I need a 2D Legendre I can do
but I'm curious if this could be SIMD-optimised (or multithreaded) in C to make it faster?