Releases: jamestjsp/ctrlsys
Releases · jamestjsp/ctrlsys
v1.0.19
Package renamed: slicot → ctrlsys
Changed
- PyPI package name changed from
slicottoctrlsys - GitHub repo moved from
jamestjsp/slicottojamestjsp/ctrlsys pip install slicotnow installs a shim that depends onctrlsysand emits a deprecation warning- All
import slicot→import ctrlsysin user-facing code
Unchanged
- C internals (headers, guards, extension module name) unchanged
- All 600+ routines work identically
Migration
uv add ctrlsys# Old
import slicot
# New
import ctrlsysv1.0.18
Changed
- CI: consolidated 5 workflow files into 3 — eliminated redundant test runs on push
- CI: split publish pipeline into fast/slow phases — x86_64/macOS/Windows wheels on PyPI in ~12min, aarch64 follows ~90min later
- CI: CodeQL moved to weekly schedule only (was per-push)
Added
- Documentation badge and link in README and PyPI metadata
v1.0.17
- Fix Windows wheel build (scipy-openblas32 symbol prefix, pkgconfiglite checksums)
- Fix benchmark linker errors in cibuildwheel
- Fix ilaenv_ Fortran string length args (sporadic crash)
- Fix ab13hd bool-to-int for dtgsen LOGICAL parameter
- Remove unused variable warnings
- Restore PyPI README
- 11 completed C translations (+5.5k lines)
- Compiler warning cleanup (964 to 0)
v1.0.15
What's New
Added
- Complete 11 C translations from stubs: ab09iy, ab13dd, ab13hd, mb01uy, mb01vd, mb02pd, mb03bd, mb03xp, mb03yd, mb04pb, mb04rb, mb04tb (+5.5k lines)
- mb04pb test with expanded coverage
- LSP configs (.clangd, pyrightconfig.json)
Fixed
- Compiler warnings eliminated across 141 files (964 → 0)
- ab13hd workspace query in Python wrapper
Full Changelog: v1.0.14...v1.0.15
v1.0.14
Fixed
- sg03bx: E-standardization bugs — AS(2,2) typo and missing B rotation (upstream SLICOT-Reference#39)
- sg03bu/bv/bw: Lyapunov solver indexing and DSCAL pointer fixes
- mb04hd: restore (bool *) cast for GCC compatibility
- py_mb04: calloc→PyMem_Calloc for ASAN compatibility
- mb04rd: Linux OpenBLAS crash resolved — skip marker removed (#5)
- sb10kd: revert factor=1.0 to 1.1 for Linux/OpenBLAS compatibility
Added
- Expanded test coverage across 70 files (AB/AG/IB/MB/MC/MD/SB/SG/TB families)
- Residual verification tests for sg03bx
- User guide restructured around python-control workflows, added llms.txt
v1.0.13
Added
- sb02rd: condition estimation via SB02QD/SB02SD
- C11 vs Fortran77 benchmark infrastructure
scripts/bump_version.pyfor atomic version updates with drift detection
Changed
- Migrated build system to uv
- Single source of truth for package version
- Python version requirement updated to 3.11+
Fixed
- Buffer overflows in 7 routines causing parallel test crashes
- Standalone
meson setup buildbroken by absolute numpy include path - CI gaps after build system migration to uv
- test_mb03rd: replaced
scipy.linalg.solvewith numpy - Publish CI: scipy-openblas32 symbol prefix detection, OpenBLAS bundled LAPACK, sdist permissions
v1.0.12
Fixed
- ab13dd: L-infinity norm algorithm bugs causing 8.8% error for MIMO systems
- Tolerance formula for imaginary-axis eigenvalue detection
- Iteration loop count (off-by-one)
- Algorithm structure: frequency collection, sorting, midpoint computation
- MB03XD BALANC parameter ('B' not 'N')
- Hamiltonian scaling (divide by gamma not gamma²)
- MB03XD SCALE array buffer overflow (crash on Linux)
See CHANGELOG.md for details.