-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Summary of FFT APIs #159
Comments
Thank you for the detailed research @steff456! I haven't read this very carefully, just leaving a note. From the perspective of scientific computing, image and signal processing, etc., I'd like to make this appear asap (i.e., in the v1 draft) following the guideline for complex numbers (#153) so that participating libraries can start working on it if they already have support for complex numbers (like NumPy/CuPy/PyTorch), but maybe we need a discussion. |
This looks great, thanks @steff456! A couple of thoughts:
|
I think |
To add to Ralf's point, I think there is an MPI FFT library. Not sure if we want to look at that as well Also PyFFTW provides a Dask-based API. Though the API is the same as Dask's API |
Based on the conversation in the meeting last week, we discussed:
It's easier to talk about the transform kinds, as "inverse" could be confusing. In short, the complex number support is a must for FFT, as they are used either as input (C2R), output (R2C), or both (C2C). |
AFAIK mpi4py-fft provides both a FFTW-like interface and a parallel interface on top of that. Most arguments are identical, with additional things due to the parallelism like MPI communicators and backends (fftw, numpy, scipy, ...). If there's strong interest we can move the discussion to the mpi4py-fft repo. |
Some corrections for the table:
|
I checked in a few libraries (SciPy, cuCIM, scikit-image, scikit-learn, matplotlib) that 2D transforms ( |
That's probably correct.
Thanks for investigating @leofang. Your reasoning sounds good. And there's no issue with introduction or backwards compat here - the existing |
Hello'all, I just came up with a wild question while reviewing #189. I am curious if we can remove |
It is of course possible to express 1-D transforms in terms of n-D, but I suspect that if we make everyone write |
This is an old issue - the |
This issue gathers all the information of the current APIs in NumPy, CuPy, Dask, JAX, MXNet, pytorch and tensorflow in the FFT module. The main outcome of this issue is to open the discussion of the potential APIs that are going to be included in the spec.
The current APIs involved in this issue are:
Individual APIs
fft/ifft
fft2/ifft2
These functions are not implemented in MXNet.
fftn/ifftn
These functions are not implemented in MXNet and TF.
rfft/irfft
These functions are not implemented in MXNet.
rfft2/irfft2
These functions are not implemented in MXNet.
rfftn/irfftn
These functions are not implemented in MXNet and TF.
hfft/ihfft
These functions are not implemented in MXNet and TF.
fftfreq/rfftfreq
These functions are not implemented in MXNet and TF.
fftshift/ifftshift
These functions are not implemented in MXNet and TF.
Summary
n
,axis
,norm
, with the exception of TF and MXNet.axis
keyword in NumPy, CuPy, Dask and Jax isdim
in Pytorch.fft2
can have the same implementation offftn
if called with the correct arguments.fft3D
is only implemented in TF .axis
,axes
even among functions in the same library.The text was updated successfully, but these errors were encountered: