Skip to content

Releases: jamestjsp/ctrlsys

v1.0.19

15 Feb 20:04

Choose a tag to compare

Package renamed: slicotctrlsys

Changed

  • PyPI package name changed from slicot to ctrlsys
  • GitHub repo moved from jamestjsp/slicot to jamestjsp/ctrlsys
  • pip install slicot now installs a shim that depends on ctrlsys and emits a deprecation warning
  • All import slicotimport ctrlsys in 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 ctrlsys

v1.0.18

08 Feb 18:27

Choose a tag to compare

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

08 Feb 15:28

Choose a tag to compare

  • 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

07 Feb 23:38

Choose a tag to compare

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

07 Feb 14:49

Choose a tag to compare

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

06 Feb 05:33

Choose a tag to compare

Added

  • sb02rd: condition estimation via SB02QD/SB02SD
  • C11 vs Fortran77 benchmark infrastructure
  • scripts/bump_version.py for 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 build broken by absolute numpy include path
  • CI gaps after build system migration to uv
  • test_mb03rd: replaced scipy.linalg.solve with numpy
  • Publish CI: scipy-openblas32 symbol prefix detection, OpenBLAS bundled LAPACK, sdist permissions

v1.0.12

01 Feb 14:50

Choose a tag to compare

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.

v1.0.11

31 Jan 14:58

Choose a tag to compare

Fixed

  • ab13dd: segfault for n=1 single-state systems (Fixes #9)
    • mb03xd requires T workspace even when JOB='E' (eigenvalues only)
    • Affects python-control's linfnorm() and system_norm() for first-order systems

v1.0.9

28 Jan 02:57

Choose a tag to compare

Changes

  • Upgrade cibuildwheel v2.22 → v3.3.1 to enable Python 3.14 wheel builds
  • Upgrade manylinux image from manylinux2014 (EOL) to manylinux_2_28
  • Skip free-threaded builds (no Py_mod_gil support yet)

v1.0.8

28 Jan 02:57

Choose a tag to compare

Changes

  • Add Python 3.14 wheel configuration
  • Add scipy-openblas32 source build fallback for all platforms