From: Rory Y. <ror...@gm...> - 2020-05-31 06:51:40
|
Hi, Slycot 0.4.0 has been released. Source can be obtained directly from Github [1], or via pip from PyPI. Binaries for GNU/Linux, Windows, macOS are available on conda-forge. Note that binaries are only available for 64-bit systems. Release notes below. Thanks to everyone who contributed! Regards, Rory [1] https://github.com/python-control/Slycot/releases/tag/v0.4.0 Slycot 0.4.0 release notes (also at [1]) # 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-control#367. ## 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-control#347 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 |