JuliaMath / NFFT.jl

Julia implementation of the Non-equidistant Fast Fourier Transform (NFFT)
Other
153 stars 28 forks source link

`dims` argument for multidimensional NFFT #116

Open roflmaostc opened 1 year ago

roflmaostc commented 1 year ago

Hi!

I didn't find a dims kwarg to perform an NFFT along first and second dimension of a 3D array.

Is there any? Especially on GPUs that's usually faster than doing the for loop manually.

Best,

Felix

tknopp commented 1 year ago

https://juliamath.github.io/NFFT.jl/dev/overview/#Directional

It might be that the high level interface has no interface to that though. Right now just available for the CPU.

roflmaostc commented 1 year ago

Can be dims=(1,2)?

roflmaostc commented 1 year ago

I'm thinking about the parallel beam CT with a 3D array. For that the radon could be realized with nfft along dims=(1,2)

tknopp commented 1 year ago

yes, just something like dims=(1,3) will not work I think. The mathematics can be found here: https://juliamath.github.io/NFFT.jl/dev/background/#Directional-NFFT

Note, however, that the directional code path is independent of the regular one. It therefore misses some performance optimizations. In case this is of interest for you we might want to polish it a bit. See also https://github.com/JuliaMath/NFFT.jl/discussions/66 for a related discussion where I asked myself if there is an application, where its needed.