Skip to content

Commit bb5c24c

Browse files
committed
add support for out keyword
1 parent b543ee9 commit bb5c24c

File tree

9 files changed

+538
-140
lines changed

9 files changed

+538
-140
lines changed

Diff for: CHANGES.rst

+8-3
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,21 @@
22
:code:`mkl_fft` changelog
33
=========================
44

5-
1.3.14 (04/10/2025)
5+
[dev] (MM/DD/YY)
6+
==================
7+
8+
support for :code:`out` kwarg is added to all FFT functions in :code:`mkl_fft` and :code:`mkl_fft.interfaces.numpy_fft`
9+
10+
numpy interface :code:`mkl_fft.interfaces.numpy_fft` is aligned with numpy-2.*
11+
12+
1.3.14 (04/11/2025)
613
===================
714

815
resolves gh-152 by adding an explicit :code:`mkl-service` dependency to :code:`mkl-fft` when building the wheel
916
to ensure the :code:`mkl` Python module is always available at runtime
1017

1118
resolves gh-115, gh-116, gh-119, gh-135
1219

13-
1420
1.3.13 (03/25/2025)
1521
===================
1622

@@ -36,7 +42,6 @@ file :code:`_scipy_fft_backend.py` is renamed to :code:`_scipy_fft.py` since it
3642

3743
Bugfix release, resolving gh-109 and updating installation instructions
3844

39-
4045
1.3.10
4146
======
4247

Diff for: README.md

+24-24
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
## `mkl_fft` -- a NumPy-based Python interface to Intel (R) MKL FFT functionality
1+
## `mkl_fft` -- a NumPy-based Python interface to Intel® oneAPI Math Kernel Library (OneMKL) FFT functionality
22
[![Conda package](https://github.com/IntelPython/mkl_fft/actions/workflows/conda-package.yml/badge.svg)](https://github.com/IntelPython/mkl_fft/actions/workflows/conda-package.yml)
33
[![Editable build using pip and pre-release NumPy](https://github.com/IntelPython/mkl_fft/actions/workflows/build_pip.yaml/badge.svg)](https://github.com/IntelPython/mkl_fft/actions/workflows/build_pip.yaml)
44
[![Conda package with conda-forge channel only](https://github.com/IntelPython/mkl_fft/actions/workflows/conda-package-cf.yml/badge.svg)](https://github.com/IntelPython/mkl_fft/actions/workflows/conda-package-cf.yml)
55

6-
`mkl_fft` started as a part of Intel (R) Distribution for Python* optimizations to NumPy, and is now being released
7-
as a stand-alone package. It can be installed into conda environment using
6+
`mkl_fft` started as a part of Intel® Distribution for Python* optimizations to NumPy, and is now being released
7+
as a stand-alone package. It can be installed into conda environment from Intel's channel using:
88

99
```
1010
conda install -c https://software.repos.intel.com/python/conda mkl_fft
@@ -18,13 +18,13 @@ or from conda-forge channel:
1818

1919
---
2020

21-
To install mkl_fft Pypi package please use following command:
21+
To install `mkl_fft` PyPI package please use following command:
2222

2323
```
2424
python -m pip install --index-url https://software.repos.intel.com/python/pypi --extra-index-url https://pypi.org/simple mkl_fft
2525
```
2626

27-
If command above installs NumPy package from the Pypi, please use following command to install Intel optimized NumPy wheel package from Intel Pypi Cloud:
27+
If command above installs NumPy package from the PyPI, please use following command to install Intel optimized NumPy wheel package from Intel PyPI Cloud:
2828

2929
```
3030
python -m pip install --index-url https://software.repos.intel.com/python/pypi --extra-index-url https://pypi.org/simple mkl_fft numpy==<numpy_version>
@@ -34,7 +34,7 @@ Where `<numpy_version>` should be the latest version from https://software.repos
3434

3535
---
3636

37-
Since MKL FFT supports performing discrete Fourier transforms over non-contiguously laid out arrays, MKL can be directly
37+
Since MKL FFT supports performing discrete Fourier transforms over non-contiguously laid out arrays, OneMKL can be directly
3838
used on any well-behaved floating point array with no internal overlaps for both in-place and not in-place transforms of
3939
arrays in single and double floating point precision.
4040

@@ -49,38 +49,38 @@ More details can be found in SciPy 2017 conference proceedings:
4949

5050
`mkl_fft` implements the following functions:
5151

52-
### Complex transforms, similar to those in `scipy.fft`:
52+
### complex-to-complex (c2c) transforms:
5353

54-
`fft(x, n=None, axis=-1, overwrite_x=False)`
54+
`fft(x, n=None, axis=-1, overwrite_x=False, fwd_scale=1.0, out=out)` - 1D FFT, similar to `scipy.fft.fft`
5555

56-
`ifft(x, n=None, axis=-1, overwrite_x=False)`
56+
`fft2(x, s=None, axes=(-2, -1), overwrite_x=False, fwd_scale=1.0, out=out)` - 2D FFT, similar to `scipy.fft.fft2`
5757

58-
`fft2(x, shape=None, axes=(-2,-1), overwrite_x=False)`
58+
`fftn(x, s=None, axes=None, overwrite_x=False, fwd_scale=1.0, out=out)` - ND FFT, similar to `scipy.fft.fftn`
5959

60-
`ifft2(x, shape=None, axes=(-2,-1), overwrite_x=False)`
60+
and similar inverse FFT (`ifft*`) functions.
6161

62-
`fftn(x, n=None, axes=None, overwrite_x=False)`
62+
### real-to-complex (r2c) and complex-to-real (c2r) transforms:
6363

64-
`ifftn(x, n=None, axes=None, overwrite_x=False)`
64+
`rfft(x, n=None, axis=-1, fwd_scale=1.0, out=out)` - r2c 1D FFT, similar to `numpy.fft.rfft`
6565

66-
### Real transforms
66+
`rfft2(x, s=None, axes=(-2, -1), fwd_scale=1.0, out=out)` - r2c 2D FFT, similar to `numpy.fft.rfft2`
6767

68-
`rfftpack(x, n=None, axis=-1, overwrite_x=False)` - real 1D Fourier transform, like `scipy.fftpack.rfft`
68+
`rfftn(x, s=None, axes=None, fwd_scale=1.0, out=out)` - r2c ND FFT, similar to `numpy.fft.rfftn`
6969

70-
`rfft(x, n=None, axis=-1)` - real 1D Fourier transform, like `numpy.fft.rfft`
70+
`rfftpack(x, n=None, axis=-1, overwrite_x=False, fwd_scale=1.0)` - r2c 1D FFT, similar to `scipy.fftpack.rfft`
7171

72-
`rfft2(x, s=None, axes=(-2,-1))` - real 2D Fourier transform, like `numpy.fft.rfft2`
72+
and similar inverse c2r FFT (`irfft*`) functions.
7373

74-
`rfftn(x, s=None, axes=None)` - real ND Fourier transform, like `numpy.fft.rfftn`
75-
76-
... and similar `irfft*` functions.
77-
78-
79-
The package also provides `mkl_fft.interfaces.numpy_fft` and `mkl_fft.interfaces.scipy_fft` interfaces which provide drop-in replacements for equivalent functions in NumPy and SciPy respectively.
74+
The package also provides `mkl_fft.interfaces.numpy_fft` and `mkl_fft.interfaces.scipy_fft` interfaces which provide drop-in replacements for equivalent functions in NumPy and SciPy, respectively.
8075

8176
---
8277

83-
To build `mkl_fft` from sources on Linux:
78+
To build `mkl_fft` from sources on Linux with Intel® OneMKL:
8479
- install a recent version of MKL, if necessary;
8580
- execute `source /path_to_oneapi/mkl/latest/env/vars.sh`;
8681
- execute `python -m pip install .`
82+
83+
To build `mkl_fft` from sources on Linux with conda:
84+
- install `python` and `mkl-devel` in a conda environment;
85+
- execute `export MKLROOT=$CONDA_PREFIX`
86+
- execute `python -m pip install .`

0 commit comments

Comments
 (0)