Skip to content

Commit 0e85a5d

Browse files
committed
Merge branch 'master' into add-out-kwarg
2 parents bf137e5 + 49949a0 commit 0e85a5d

File tree

9 files changed

+214
-222
lines changed

9 files changed

+214
-222
lines changed

.github/workflows/conda-package-cf.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,8 +301,8 @@ jobs:
301301
- name: Report content of test environment
302302
shell: cmd /C CALL {0}
303303
run: |
304-
echo "Value of CONDA enviroment variable was: " %CONDA%
305-
echo "Value of CONDA_PREFIX enviroment variable was: " %CONDA_PREFIX%
304+
echo "Value of CONDA environment variable was: " %CONDA%
305+
echo "Value of CONDA_PREFIX environment variable was: " %CONDA_PREFIX%
306306
conda info && conda list -n ${{ env.TEST_ENV_NAME }}
307307
308308
- name: Run tests

.github/workflows/conda-package.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -301,8 +301,8 @@ jobs:
301301
- name: Report content of test environment
302302
shell: cmd /C CALL {0}
303303
run: |
304-
echo "Value of CONDA enviroment variable was: " %CONDA%
305-
echo "Value of CONDA_PREFIX enviroment variable was: " %CONDA_PREFIX%
304+
echo "Value of CONDA environment variable was: " %CONDA%
305+
echo "Value of CONDA_PREFIX environment variable was: " %CONDA_PREFIX%
306306
conda info && conda list -n ${{ env.TEST_ENV_NAME }}
307307
- name: Run tests
308308
shell: cmd /C CALL {0}

.github/workflows/pre-commit.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,13 +20,18 @@ jobs:
2020
with:
2121
python-version: '3.12'
2222

23-
- uses: BSFishy/pip-action@v1
23+
- name: Set up pip packages
24+
uses: BSFishy/pip-action@v1
2425
with:
2526
packages: |
27+
codespell
2628
pylint
2729
28-
- name: Version of clang-format
30+
- name: Set up clang-format
2931
run: |
32+
sudo apt-get install -y clang-format-14
33+
sudo unlink /usr/bin/clang-format
34+
sudo ln -s /usr/bin/clang-format-14 /usr/bin/clang-format
3035
clang-format --version
3136
3237
- name: Run pre-commit checks

.pre-commit-config.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,28 @@ repos:
1515
- id: mixed-line-ending
1616
- id: trailing-whitespace
1717

18+
- repo: https://github.com/pre-commit/pygrep-hooks
19+
rev: v1.10.0
20+
hooks:
21+
- id: python-check-blanket-noqa
22+
- id: python-check-blanket-type-ignore
23+
- id: python-check-mock-methods
24+
- id: python-no-eval
25+
- id: python-no-log-warn
26+
- id: python-use-type-annotations
27+
- id: rst-backticks
28+
- id: rst-directive-colons
29+
- id: rst-inline-touching-normal
30+
- id: text-unicode-replacement-char
31+
32+
- repo: https://github.com/codespell-project/codespell
33+
rev: v2.4.1
34+
hooks:
35+
- id: codespell
36+
args: ["-L", "nd"] # ignore "nd" used for n-dimensional
37+
additional_dependencies:
38+
- tomli
39+
1840
- repo: https://github.com/psf/black
1941
rev: 25.1.0
2042
hooks:

CHANGELOG.md

Lines changed: 178 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,178 @@
1+
# changelog
2+
All notable changes to this project will be documented in this file.
3+
4+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
5+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6+
7+
## [dev] (MM/DD/YY)
8+
9+
### Added
10+
* Added Hermitian FFT functions to SciPy interface `mkl_fft.interfaces.scipy_fft`: `hfft`, `ihfft`, `hfftn`, `ihfftn`, `hfft2`, and `ihfft2` [gh-161](https://github.com/IntelPython/mkl_fft/pull/161)
11+
* Added support for `out` kwarg to all FFT functions in `mkl_fft` and `mkl_fft.interfaces.numpy_fft` [gh-157](https://github.com/IntelPython/mkl_fft/pull/157)
12+
13+
### Changed
14+
* NumPy interface `mkl_fft.interfaces.numpy_fft` is aligned with numpy-2.* [gh-139](https://github.com/IntelPython/mkl_fft/pull/139), [gh-157](https://github.com/IntelPython/mkl_fft/pull/157)
15+
16+
## [1.3.14] (04/10/2025)
17+
18+
resolves gh-152 by adding an explicit `mkl-service` dependency to `mkl-fft` when building the wheel
19+
to ensure the `mkl` Python module is always available at runtime
20+
21+
resolves gh-115, gh-116, gh-119, gh-135
22+
23+
## [1.3.13] (03/25/2025)
24+
25+
Supported python versions are 3.9, 3.10, 3.11, 3.12
26+
27+
migrate from `setup.py` to `pyproject.toml`
28+
29+
includes support in virtual environment out of the box
30+
31+
the original `mkl_fft.rfft` and `mkl_fft.irfft` are renamed to `mkl_fft.rfftpack` and `mkl_fft.irfftpack`,
32+
since they replicate the behavior from the deprecated `scipy.fftpack` module.
33+
34+
`mkl_fft.rfft_numpy`, `mkl_fft.irfft_numpy`, `mkl_fft.rfft2_numpy`, `mkl_fft.irfft2_numpy`,
35+
`mkl_fft.rfftn_numpy`, and `mkl_fft.irfftn_numpy` are renamed to `mkl_fft.rfft`, `mkl_fft.irfft`,
36+
`mkl_fft.rfft2`, `mkl_fft.irfft2`, `mkl_fft.rfftn`, and `mkl_fft.irfftn`, respectively.
37+
(consistent with `numpy.fft` and `scipy.fft` modules)
38+
39+
file `_scipy_fft_backend.py` is renamed to `_scipy_fft.py` since it replicates `scipy.fft` module
40+
(similar to file `_numpy_fft.py` which replicates `numpy.fft` module)
41+
42+
## [1.3.11]
43+
44+
Bugfix release, resolving gh-109 and updating installation instructions
45+
46+
## [1.3.10]
47+
48+
Bugfix release, resolving leftover uses of NumPy attributes removed in NumPy 2.0 that break
49+
test suite run on Windows.
50+
51+
## [1.3.9]
52+
53+
Updated code and build system to support NumPy 2.0
54+
55+
## [1.3.8]
56+
57+
Added vendored `conv_template.py` from NumPy's distutils submodule to enable building of `mkl_fft` with
58+
NumPy >=1.25 and Python 3.12
59+
60+
## [1.3.7]
61+
62+
Updated build system away from removed in NumPy 1.25 numpy.distutils module.
63+
64+
Transitioned to Cython 3.0.
65+
66+
## [1.3.0]
67+
68+
Updated numpy interface to support new in NumPy 1.20 supported values of norm keyword, such as "forward" and "backward".
69+
To enable this, `mkl_fft` functions now support `forward_scale` parameter that defaults to 1.
70+
71+
Fixed issue #48.
72+
73+
## [1.2.1]
74+
75+
Includes bug fix #54
76+
77+
## [1.2.0]
78+
79+
Due to removal of deprecated real-to-real FFT with `DFTI_CONJUGATE_EVEN_STORAGE=DFTI_COMPLEX_REAL` and
80+
`DFTI_PACKED_FORMAT=DFTI_PACK` from Intel(R) Math Kernel Library, reimplemented `mkl_fft.rfft` and
81+
`mkl_fft.irfft` to use real-to-complex functionality with subsequent copying to rearange the transform as expected
82+
of `mkl_fft.rfft`, with the associated performance penalty. The use of the real-to-complex
83+
transform improves multi-core utilization which may offset the performance loss incurred due to copying.
84+
85+
## [1.1.0]
86+
87+
Added `scipy.fft` backend, see #42. Fixed #46.
88+
89+
90+
```python
91+
>>> import numpy as np, mkl_fft, mkl_fft._scipy_fft as mkl_be, scipy, scipy.fft, mkl
92+
93+
>>> mkl.verbose(1)
94+
# True
95+
96+
>>> 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
102+
103+
>>> np.allclose(ff, ff2)
104+
# True
105+
```
106+
107+
## [1.0.15]
108+
109+
Changed tests to not compare against numpy fft, as this broke due to renaming of `np.fft.pocketfft` to
110+
`np.fft._pocketfft`. Instead compare against naive realization of 1D FFT as a sum.
111+
112+
Setup script is now aware of `MKLROOT` environment variable. If unset, NumPy's mkl_info will be queried.
113+
114+
## [1.0.14]
115+
116+
Fixed unreferenced bug in `irfftn_numpy`, and adjusted NumPy interfaces to change to pocketfft in NumPy 1.17
117+
118+
## [1.0.13]
119+
120+
Issue #39 fixed (memory leak with complex FFT on real arrays)
121+
122+
## [1.0.12]
123+
124+
Issue #37 fixed.
125+
126+
Inhibited vectorization of short loops computing pointer to memory referenced by a multi-iterator by Intel (R) C Compiler,
127+
improving performance of ND `fft` and `ifft` on real input arrays.
128+
129+
## [1.0.11]
130+
131+
Improvement for performance of ND `fft` on real input arrays by inlining multi-iterators.
132+
This particularly benefits performance of mkl_fft built with Intel (R) C Compiler.
133+
134+
## [1.0.10]
135+
136+
Fix for issue #29.
137+
138+
## [1.0.7]
139+
140+
Improved exception message raised if MKL is signalling an error. The message now includes MKL's own description of the exception.
141+
This partially improves #24.
142+
143+
Improved argument validation for ND transforms aligning with scipy 1.2.0
144+
145+
## [1.0.6]
146+
147+
Fixed issues #21, and addressed NumPy 1.15 deprecation warnings from using lists instead of tuples to specify multiple slices.
148+
149+
## [1.0.5]
150+
151+
Fixed issues #7, #17, #18.
152+
Consolidated version specification into a single file `mkl_fft/_version.py`.
153+
154+
## [1.0.4]
155+
156+
Added CHANGES.rst. Fixed issue #11 by using lock around calls to 1D FFT routines.
157+
158+
## [1.0.3]
159+
160+
This is a bug fix release.
161+
162+
It fixes issues #9, and #13.
163+
164+
As part of fixing issue #13, out-of-place 1D FFT calls such as `fft`, `ifft`, `rfft_numpy`
165+
and `irfftn_numpy` will allocate Fortran layout array for the output is the input is a Fotran array.
166+
167+
## [1.0.2]
168+
169+
Minor update of `mkl_fft`, reflecting renaming of `numpy.core.multiarray_tests` module to
170+
`numpy.core._multiarray_tests` as well as fixing #4.
171+
172+
## [1.0.1]
173+
174+
Bug fix release.
175+
176+
## [1.0.0]
177+
178+
Initial release of `mkl_fft`.

0 commit comments

Comments
 (0)