Skip to content

Commit d1b16e1

Browse files
authored
update CHANGE.rst (#150)
1 parent 1154d24 commit d1b16e1

File tree

2 files changed

+68
-44
lines changed

2 files changed

+68
-44
lines changed

CHANGES.rst

Lines changed: 57 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,27 @@
11
=================
2-
mkl_fft changelog
2+
:code:`mkl_fft` changelog
33
=================
44

5+
1.3.13 (03/25/2025)
6+
===================
7+
8+
Supported python versions are 3.9, 3.10, 3.11, 3.12
9+
10+
migrate from :code:`setup.py` to :code:`pyproject.toml`
11+
12+
includes support in virtual environment out of the box
13+
14+
the original :code:`mkl_fft.rfft` and :code:`mkl_fft.irfft` are renamed to :code:`mkl_fft.rfftpack` and :code:`mkl_fft.irfftpack`,
15+
since they replicate the behavior from the deprecated :code:`scipy.fftpack` module.
16+
17+
:code:`mkl_fft.rfft_numpy`, :code:`mkl_fft.irfft_numpy`, :code:`mkl_fft.rfft2_numpy`, :code:`mkl_fft.irfft2_numpy`,
18+
:code:`mkl_fft.rfftn_numpy`, and :code:`mkl_fft.irfftn_numpy` are renamed to :code:`mkl_fft.rfft`, :code:`mkl_fft.irfft`,
19+
:code:`mkl_fft.rfft2`, :code:`mkl_fft.irfft2`, `mkl_fft.rfftn`, and :code:`mkl_fft.irfftn`, respectively.
20+
(consistent with :code:`numpy.fft` and :code:`scipy.fft` modules)
21+
22+
file :code:`_scipy_fft_backend.py` is renamed to :code:`_scipy_fft.py` since it replicates :code:`scipy.fft` module
23+
(similar to file :code:`_numpy_fft.py` which replicates :code:`numpy.fft` module)
24+
525
1.3.11
626
======
727

@@ -22,7 +42,7 @@ Updated code and build system to support NumPy 2.0
2242
1.3.8
2343
=====
2444

25-
Added vendored `conv_template.py` from NumPy's distutils submodule to enable building of `mkl_fft` with
45+
Added vendored :code:`conv_template.py` from NumPy's distutils submodule to enable building of :code:`mkl_fft` with
2646
NumPy >=1.25 and Python 3.12
2747

2848
1.3.7
@@ -37,7 +57,7 @@ Transitioned to Cython 3.0.
3757
=====
3858

3959
Updated numpy interface to support new in NumPy 1.20 supported values of norm keyword, such as "forward" and "backward".
40-
To enable this, `mkl_fft` functions now support `forward_scale` parameter that defaults to 1.
60+
To enable this, :code:`mkl_fft` functions now support `forward_scale` parameter that defaults to 1.
4161

4262
Fixed issue #48.
4363

@@ -49,52 +69,54 @@ Includes bug fix #54
4969
1.2.0
5070
=====
5171

52-
Due to removal of deprecated real-to-real FFT with `DFTI_CONJUGATE_EVEN_STORAGE=DFTI_COMPLEX_REAL` and `DFTI_PACKED_FORMAT=DFTI_PACK`
53-
from Intel(R) Math Kernel Library, reimplemented `mkl_fft.rfft` and `mkl_fft.irfft` to use real-to-complex functionality with subsequent
54-
copying to rearange the transform as expected of `mkl_fft.rfft`, with the associated performance penalty. The use of the real-to-complex
72+
Due to removal of deprecated real-to-real FFT with :code:`DFTI_CONJUGATE_EVEN_STORAGE=DFTI_COMPLEX_REAL` and
73+
:code:`DFTI_PACKED_FORMAT=DFTI_PACK` from Intel(R) Math Kernel Library, reimplemented :code:`mkl_fft.rfft` and
74+
:code:`mkl_fft.irfft` to use real-to-complex functionality with subsequent copying to rearange the transform as expected
75+
of :code:`mkl_fft.rfft`, with the associated performance penalty. The use of the real-to-complex
5576
transform improves multi-core utilization which may offset the performance loss incurred due to copying.
5677

5778

5879
1.1.0
5980
=====
6081

61-
Added `scipy.fft` backend, see #42. Fixed #46.
82+
Added :code:`scipy.fft` backend, see #42. Fixed #46.
83+
84+
85+
.. code-block:: python
6286
63-
```
64-
Python 3.7.5 (default, Nov 23 2019, 04:02:01)
65-
Type 'copyright', 'credits' or 'license' for more information
66-
IPython 7.11.1 -- An enhanced Interactive Python. Type '?' for help.
87+
Python 3.7.5 (default, Nov 23 2019, 04:02:01)
88+
Type 'copyright', 'credits' or 'license' for more information
89+
IPython 7.11.1 -- An enhanced Interactive Python. Type '?' for help.
6790
68-
In [1]: import numpy as np, mkl_fft, mkl_fft._scipy_fft_backend as mkl_be, scipy, scipy.fft, mkl
91+
In [1]: import numpy as np, mkl_fft, mkl_fft._scipy_fft as mkl_be, scipy, scipy.fft, mkl
6992
70-
In [2]: mkl.verbose(1)
71-
Out[2]: True
93+
In [2]: mkl.verbose(1)
94+
Out[2]: True
7295
73-
In [3]: x = np.random.randn(8*7).reshape((7, 8))
74-
...: with scipy.fft.set_backend(mkl_be, only=True):
75-
...: ff = scipy.fft.fft2(x, workers=4)
76-
...: ff2 = scipy.fft.fft2(x)
77-
MKL_VERBOSE Intel(R) MKL 2020.0 Product build 20191102 for Intel(R) 64 architecture Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors, Lnx 2.40GHz intel_thread
78-
MKL_VERBOSE FFT(drfo7:8:8x8:1:1,bScale:0.0178571,tLim:1,desc:0x5629ad31b800) 24.85ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:16,FFT:4
96+
In [3]: x = np.random.randn(8*7).reshape((7, 8))
97+
...: with scipy.fft.set_backend(mkl_be, only=True):
98+
...: ff = scipy.fft.fft2(x, workers=4)
99+
...: ff2 = scipy.fft.fft2(x)
100+
MKL_VERBOSE Intel(R) MKL 2020.0 Product build 20191102 for Intel(R) 64 architecture Intel(R) Advanced Vector Extensions 2 (Intel(R) AVX2) enabled processors, Lnx 2.40GHz intel_thread
101+
MKL_VERBOSE FFT(drfo7:8:8x8:1:1,bScale:0.0178571,tLim:1,desc:0x5629ad31b800) 24.85ms CNR:OFF Dyn:1 FastMM:1 TID:0 NThr:16,FFT:4
79102
80-
In [4]: np.allclose(ff, ff2)
81-
Out[4]: True
82-
```
103+
In [4]: np.allclose(ff, ff2)
104+
Out[4]: True
83105
84106
85107
1.0.15
86108
======
87109
88-
Changed tests to not compare against numpy fft, as this broke due to renaming of `np.fft.pocketfft` to
89-
`np.fft._pocketfft`. Instead compare against naive realization of 1D FFT as a sum.
110+
Changed tests to not compare against numpy fft, as this broke due to renaming of :code:`np.fft.pocketfft` to
111+
:code:`np.fft._pocketfft`. Instead compare against naive realization of 1D FFT as a sum.
90112
91-
Setup script is now aware of `MKLROOT` environment variable. If unset, NumPy's mkl_info will be queried.
113+
Setup script is now aware of :code:`MKLROOT` environment variable. If unset, NumPy's mkl_info will be queried.
92114
93115
94116
1.0.14
95117
======
96118
97-
Fixed unreferenced bug in `irfftn_numpy`, and adjusted NumPy interfaces to change to pocketfft in NumPy 1.17
119+
Fixed unreferenced bug in :code:`irfftn_numpy`, and adjusted NumPy interfaces to change to pocketfft in NumPy 1.17
98120
99121
100122
1.0.13
@@ -107,8 +129,8 @@ Issue #39 fixed (memory leak with complex FFT on real arrays)
107129
======
108130
Issue #37 fixed.
109131
110-
Inhibited vectorization of short loops computing pointer to memory referenced by a multi-iterator by Intel (R) C Compiler, improving
111-
performance of ND `fft` and `ifft` on real input arrays.
132+
Inhibited vectorization of short loops computing pointer to memory referenced by a multi-iterator by Intel (R) C Compiler,
133+
improving performance of ND :code:`fft` and :code:`ifft` on real input arrays.
112134
113135
114136
1.0.11
@@ -138,7 +160,7 @@ Fixed issues #21, and addressed NumPy 1.15 deprecation warnings from using lists
138160
=====
139161
140162
Fixed issues #7, #17, #18.
141-
Consolidated version specification into a single file `mkl_fft/_version.py`.
163+
Consolidated version specification into a single file :code:`mkl_fft/_version.py`.
142164
143165
1.0.4
144166
=====
@@ -152,13 +174,15 @@ This is a bug fix release.
152174
153175
It fixes issues #9, and #13.
154176
155-
As part of fixing issue #13, out-of-place 1D FFT calls such as `fft`, `ifft`, `rfft_numpy` and `irfftn_numpy` will allocate Fortran layout array for the output is the input is a Fotran array.
177+
As part of fixing issue #13, out-of-place 1D FFT calls such as :code:`fft`, :code:`ifft`, :code:`rfft_numpy`
178+
and :code:`irfftn_numpy` will allocate Fortran layout array for the output is the input is a Fotran array.
156179
157180
158181
1.0.2
159182
=====
160183
161-
Minor update of `mkl_fft`, reflecting renaming of `numpy.core.multiarray_tests` module to `numpy.core._multiarray_tests` as well as fixing #4.
184+
Minor update of :code:`mkl_fft`, reflecting renaming of :code:`numpy.core.multiarray_tests` module to
185+
:code:`numpy.core._multiarray_tests` as well as fixing #4.
162186
163187
164188
1.0.1
@@ -169,4 +193,4 @@ Bug fix release.
169193
1.0.0
170194
=====
171195
172-
Initial release of `mkl_fft`.
196+
Initial release of :code:`mkl_fft`.

README.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## ``mkl_fft`` -- a NumPy-based Python interface to Intel (R) MKL FFT functionality
1+
## `mkl_fft` -- a NumPy-based Python interface to Intel (R) MKL 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)
@@ -47,9 +47,9 @@ More details can be found in SciPy 2017 conference proceedings:
4747

4848
---
4949

50-
It implements the following functions:
50+
`mkl_fft` implements the following functions:
5151

52-
### Complex transforms, similar to those in `scipy.fftpack`:
52+
### Complex transforms, similar to those in `scipy.fft`:
5353

5454
`fft(x, n=None, axis=-1, overwrite_x=False)`
5555

@@ -65,22 +65,22 @@ It implements the following functions:
6565

6666
### Real transforms
6767

68-
`rfft(x, n=None, axis=-1, overwrite_x=False)` - real 1D Fourier transform, like `scipy.fftpack.rfft`
68+
`rfftpack(x, n=None, axis=-1, overwrite_x=False)` - real 1D Fourier transform, like `scipy.fftpack.rfft`
6969

70-
`rfft_numpy(x, n=None, axis=-1)` - real 1D Fourier transform, like `numpy.fft.rfft`
70+
`rfft(x, n=None, axis=-1)` - real 1D Fourier transform, like `numpy.fft.rfft`
7171

72-
`rfft2_numpy(x, s=None, axes=(-2,-1))` - real 2D Fourier transform, like `numpy.fft.rfft2`
72+
`rfft2(x, s=None, axes=(-2,-1))` - real 2D Fourier transform, like `numpy.fft.rfft2`
7373

74-
`rfftn_numpy(x, s=None, axes=None)` - real ND Fourier transform, like `numpy.fft.rfftn`
74+
`rfftn(x, s=None, axes=None)` - real ND Fourier transform, like `numpy.fft.rfftn`
7575

7676
... and similar `irfft*` functions.
7777

7878

79-
The package also provides `mkl_fft._numpy_fft` and `mkl_fft._scipy_fft` interfaces which provide drop-in replacements for equivalent functions in NumPy and SciPy respectively.
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.
8080

8181
---
8282

83-
To build ``mkl_fft`` from sources on Linux:
83+
To build `mkl_fft` from sources on Linux:
8484
- install a recent version of MKL, if necessary;
85-
- execute ``source /path_to_oneapi/mkl/latest/env/vars.sh``;
86-
- execute ``python -m pip install .``
85+
- execute `source /path_to_oneapi/mkl/latest/env/vars.sh`;
86+
- execute `python -m pip install .`

0 commit comments

Comments
 (0)