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