NFFT.jl icon indicating copy to clipboard operation
NFFT.jl copied to clipboard

`dims` argument for multidimensional NFFT

Open roflmaostc opened this issue 2 years ago • 4 comments

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

roflmaostc avatar Apr 12 '23 08:04 roflmaostc

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.

tknopp avatar Apr 12 '23 08:04 tknopp

Can be dims=(1,2)?

roflmaostc avatar Apr 12 '23 08:04 roflmaostc

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)

roflmaostc avatar Apr 12 '23 08:04 roflmaostc

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.

tknopp avatar Apr 12 '23 08:04 tknopp