diff options
Diffstat (limited to 'silx/math/fft/fft.py')
-rw-r--r-- | silx/math/fft/fft.py | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/silx/math/fft/fft.py b/silx/math/fft/fft.py deleted file mode 100644 index eb0d73b..0000000 --- a/silx/math/fft/fft.py +++ /dev/null @@ -1,96 +0,0 @@ -#!/usr/bin/env python -# coding: utf-8 -# /*########################################################################## -# -# Copyright (c) 2018-2019 European Synchrotron Radiation Facility -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -# -# ###########################################################################*/ -from .fftw import FFTW -from .clfft import CLFFT -from .npfft import NPFFT -from .cufft import CUFFT - - -def FFT( - shape=None, - dtype=None, - template=None, - shape_out=None, - axes=None, - normalize="rescale", - backend="numpy", - **kwargs -): - """ - Initialize a FFT plan. - - :param List[int] shape: - Shape of the input data. - :param numpy.dtype dtype: - Data type of the input data. - :param numpy.ndarray template: - Optional data, replacement for "shape" and "dtype". - If provided, the arguments "shape" and "dtype" are ignored, - and are instead inferred from it. - :param List[int] shape_out: - Optional shape of output data. - By default, the data has the same shape as the input - data (in case of C2C transform), or a shape with the last dimension halved - (in case of R2C transform). If shape_out is provided, it must be greater - or equal than the shape of input data. In this case, FFT is performed - with zero-padding. - :param List[int] axes: - Axes along which FFT is computed. - * For 2D transform: axes=(1,0) - * For batched 1D transform of 2D image: axes=(0,) - :param str normalize: - Whether to normalize FFT and IFFT. Possible values are: - * "rescale": in this case, Fourier data is divided by "N" - before IFFT, so that (FFT(data)) = data - * "ortho": in this case, FFT and IFFT are adjoint of eachother, - the transform is unitary. Both FFT and IFFT are scaled with 1/sqrt(N). - * "none": no normalizatio is done : IFFT(FFT(data)) = data*N - :param str backend: - FFT Backend to use. Value can be "numpy", "fftw", "opencl", "cuda". - """ - backends = { - "numpy": NPFFT, - "np": NPFFT, - "fftw": FFTW, - "opencl": CLFFT, - "clfft": CLFFT, - "cuda": CUFFT, - "cufft": CUFFT, - } - - backend = backend.lower() - if backend not in backends: - raise ValueError("Unknown backend %s, available are %s" % (backend, backends)) - F = backends[backend]( - shape=shape, - dtype=dtype, - template=template, - shape_out=shape_out, - axes=axes, - normalize=normalize, - **kwargs - ) - return F |