Slycot

Latest version: v0.6.0

Safety actively analyzes 629723 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 2

0.4.0

New features

Added periodic Schur decomposition functions `mb03vd`, `mb03vy`, and `mb03wd`

Contributed by bnavigator via pull request 88.

Added `ab08nz`, allowing one to find zeros of complex-valued state-space models

Contributed by lytex and bnavigator via pull request 96.

Added `mb03rd`, Schur to block-diagonal transform

Contributed by bnavigator and repagh via pull request 116.

Added `sb01fd` H-infinity solver

Contributed by repagh via 118. Already present `sb10ad` searches for a minimum gamma value for a given H-infinity problem; sb10fd, by contrast, only attempts to solve for a given gamma value. This can be used to test for admissible gamma values, which could be useful for problems like python-control/python-control367.

New Slycot exception hierarchy

bnavigator, with support from repagh, greatly improved Slycot error handling.
Slycot routines now raise `SlycotValueError` where they would previously have raised `ValueError`, and `SlycotArithmeticError` where they would have raised `ArithmeticError`.
These changes are backwardly compatible: `SlycotValueError` is a subclasss of `ValueError`, and `SlycotArithmeticError` is a subclass of `ArithmeticError`.
As part of this, many of the Slycot function docstrings were changed to conform to numpydoc conventions.

This supersedes an earlier fix for python-control347 made during 0.4.0 development.

Override XERBLA

In 128, with extra testing in 130, bnavigator overrode the BLAS error function `XERBLA` that SLICOT routines use to report errors; the BLAS-provided `XERBLA` can terminate the whole Python process.

Fixes

Correct application of DGEBAL in TB01TD and TB05AD

repagh fixed long-standing 11 with PR 122.

Fixed ab01nd for jobz='N' case

bnavigator contributed this fix in 129.

Build

Contributed by bnavigator, repagh, and rabraker:

- conda build recipes no longer use pip
- added conda recipes for MKL and Apple
- removed conda recipes for Windows; no developer is using them, and they weren't working
- general simplifications and improvements of build
- the signature files (`.pyf` files) are now a dependency of wrapper generation

Testing

Contributed by bnavigator and lytex:

- Tests added for `mb05nd`, `mc01td`, `ab08nd`, `ab08nz`, `mb03vd`, `mb03vy`, `mb03wd`.
- Tests fixed or expanded for `mb05md`, `sg03ad`, `td04ad`.
- Switched to pytest; Slycot CI now uses pytest for both the Slycot and python-control test suites.
- CI now builds and tests for Linux and macOS. The Linux builds include OpenBLAS and MKL variants.
- Examples are run as part of tests. Outputs are not checked, but errors and warnings are.
- CI coveralls.io integration fixed.
- General test clean-up.
- Test files are no longer executable.

Other changes

bnavigator contributed many other code improvements:

- Fix for `mb05nd`.
- Lots of clean-up: removal of unused mathematical.pyf, many docstring fixes, and some PEP 8 conformance changes to Python code.
- Fix for Fortran-compiler dependence on machine value used to represent logical values `.TRUE.` and `.FALSE.`

repagh fired up his time machine and ensured punch-card compatibility of the SLICOT Fortran code by limiting line lengths to 72 characters.

Pull requests and issues associated with the release

PRs merged: 71, 72, 75, 78, 91, 93, 79, 82, 83, 84, 87, 88, 96, 97, 101 , 103, 104, 105, 110, 114, 115, 116, 117, 118, 120, 121, 122, 124, 125, 128, 129, 130, 132, 133
Issues fixed: 11, 76, 86, 44, 102, 106, 119, 126
Issues closed ("wont-fix"): 46, 94, 99, 111

0.3.5

This is a build bug-fix release: v0.3.4 was not installable from pip, but v0.3.5 should be.

Build

Jason K. Moore, Joris Geysens, and Jake Vanderplas all made various fixes to the build, from setup.py the CMake config files.

Pull requests and issues associated with the release

PRs merged: 58, 60, 62, 64, 66, 67
Issues fixed: 59, 61, 63, 65, 68

0.3.4

New features

Support for four SLICOT routines was added by Marcus Liljedahl.

ag08bd Process system pencil to find multivariable zeros

ag08bd takes a system pencil (E,A,B,C,D) and returns a matrix pair (Af, Ef) which can be used to find the finite multivariable ("Smith") zeros. The orders of infinite zeros, right and left Kronecker indices, and multiplicities of infinite eigenvalues are also returned.

sb10jd Convert descriptor to non-descriptor form

sb10jd converts a descriptor state-space system (E,A,B,C,D) to a regular state-space system (Ad, Bd, Cd, Dd).

tg01ad Balance system pencil

tg01ad balances system pencils (E,A,B,C,D), with D=0, such that the rows and columns of the resulting pencil are as close in norm as possible.

tg01fd SVD-like coordinate form of system pencil

tg01fd finds the orthogonal transformation matrices for a system pencil (E,A,B,C,D), with D=0, such that the result is in SVD-like coordinate form.

Build

Rene van Paassen switched the build over to scikit-build, which allows for flang to be used to build SLICOT on Windows, and improves the build output for developers.

Testing

Python 3.7 was added to the Travis CI build set.

The tests no longer use the deprecated np.matrix type.

Added a regression test for 6, for td04ad.

Pull requests and issues associated with the release

PRs merged: 32, 34, 36, 38, 43, 45, 51, 52, 53, 56, 57
Issues fixed: 35, 37, 47, 55
Issues closed ("wont-fix"): 40, 41, 48

0.3.3

This release of the Slycot library contains a working conda build process plus fixes to the `TD04AD` function (including fixes issues with edge cases). The `README.rst` file has also been updated to reflect the current build process. See PR 26, PR 27 (based on PR 25), and PR 28 for details.

Note: the current Travis CI build process intermittently fails due to issues in `python-control` (to be corrected in the next release of that package).

Page 2 of 2

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.