v1.0.0 (15 April 2026)
First release under modern Python and modern packaging.
Python 2.7 and 3.4 are no longer supported.
New
- Python 3.11 – 3.14 supported.
- Pre-built wheels on PyPI for Linux, macOS, and Windows, with OpenMP
parallelism enabled in every wheel.
- Pre-built wheels on PyPI for Linux, macOS, and Windows, with OpenMP
Fixed
-
Data race in
fit_1D_many_parallel, pre-existing from 2016.- Every OpenMP worker clobbered thread-0's work buffer, producing silently
wrong fits whenever the parallel 1D many-case path ran withntasks > 1. The
2D/3D branch, the iterative parallel variant, and the serial variant were
always correct.
- Every OpenMP worker clobbered thread-0's work buffer, producing silently
-
rescale_dgeequno longer silently accepts singular matrices.- It now checks LAPACK's
inforeturn and raisesnumpy.linalg.LinAlgError
when a row or column is exactly zero.
- It now checks LAPACK's
Changed
-
Installation is now
pip install wlsqm.- The old
python setup.py installpath is gone;setup.pyhas been removed. - The build system is meson-python,
and dev environments are managed with PDM.
- The old
-
Language change on "Taylor series."
- The storage layout still uses the same slots a Taylor expansion would (e.g.
in 2D,f,∂f/∂x,∂f/∂y,∂²f/∂x²,∂²f/∂x∂y,∂²f/∂y², …), but the
comments and docstrings no longer call the polynomial model a "Taylor series." - In the WLSQM method, the coefficients actually come from a least-squares
fit, not from analytic differentiation. The error behavior is much better than
the truncation of a Taylor series would predict. - The internal C-API function names
taylor_1D/2D/3Dare kept for backwards
compatibility of downstreamcimports — see
wlsqm/fitter/polyeval.pyx.
- The storage layout still uses the same slots a Taylor expansion would (e.g.
Internal
-
Port from Cython 0.29 to Cython 3.x.
-
Comprehensive pytest suite. 57 tests, covering:
- polynomial recovery across dimensions and orders,
ExpertSolverprepare/solve round-trips,- interpolation accuracy at interior points,
- parallel ≡ serial implementation equivalence,
- finite-difference stencil reproduction,
- first-derivative robustness to Gaussian noise,
- edge cases,
- the LAPACK driver layer, and
.pxdinstallability for downstreamcimportusers.
-
ScalingAlgois now a properenum.IntEnum, replacing the old bare-class
Python 2 workaround. -
GitHub Actions CI: lint (ruff + cython-lint), test matrix
(3 OSes × 4 Python versions), cibuildwheel for Linux/macOS/Windows
wheels, meson-python sdist, and auto-publishing of releases on PyPI.