Closed mrava87 closed 1 month ago
@cako thanks! I replied to some of your comments, and I am going to act immediately on others.
I am a bit confused about two things:
Unfortunately I'm having an error with the numba engine (if I remove the @jit it works) though.
: you think this is problem with your machine? And you refer to numba.jit
or cuda.jit
or both? I tried to re-run those examples on my MacBook pro, Linux workstation, and Colab and I am able to run both numba and cuda codes :see_no_evil: @mrava87 Sorry, you can revert the order of imports back to the original. My stupid ruff reorders the imports automatically and I didnt catch it in the commit. My bad!
I'm not sure what the issue is, I tried different versions of Numba as well. All CPU. If it works on yours, I'm not keen on holding back the PR unless I know what the problem is. I can file a bug if it still doesn't work later.
This PR introduces 2 new operators, namely
FourierRadon2D
andFourierRadon3D
that perform linear/parabolic Radon transform in the frequency domain.Both of them have 3 backends:
numpy
: can run with both numpy and cupy arrays, suboptimal performancenumba
: optimal performance for numpy arrayscuda
: optimal performance for cupy arrays (uses a numba-cuda custom kernel for part of the operations in matvec/rmatvecTo test the parabolic transform in 3D, a new utility function
pylops.utils.seismicevents.parabolic3d
is also added.The new operators are showcased in
plot_fourierradon.py
. Moreover, two notebook have been added at https://github.com/PyLops/pylops_notebooks/blob/master/developement/Radon-Fourier.ipynb and https://github.com/PyLops/pylops_notebooks/blob/master/developement-cupy/Radon-Fourier.ipynb