[SciPy-Dev] Yes, we don't want any scipy modules BUT

Ilhan Polat ilhanpolat at gmail.com
Tue Feb 2 17:59:46 EST 2021


Hi everyone,

This is an odd ball of an subject so bear with me for a paragraph.
Currently we have lots of control related functions on scipy.signal with
varying production grade some are there almost just as a placeholder some
are pretty good. However, many things don't come with the box such as MIMO
support, internal delay representations, time and bode plotting (properly
spaced and considerably dense) and so on. Now of course we have
python-control and (shameless plug) harold packages that can do some and
fail to do others. Frankly in my particular case scipy is eating all my OSS
time. And python-control has their own roadmap. I provide lots of MIMO
stuff but lacking the academic catalogue functions like root-locus and
other academic torture tools and python-control is mostly lacking MIMO
support and a bit short of advanced stuff.

In the mean time, there is a very nice Fortran library SLICOT which also
powers some matlab functions in production however it is not open source.
But they moved to GitHub recently and released its earlier version 5.7
under BSD3. Previously 5.0 was released under GPL and that was the one
python-control vendored but 5.7 is already pretty capable and actually
caused me to write this up. This library is quite diverse and written by
very very high caliber researchers. The reason why I always avoided was
obviously GPL but apparently they changed their mind which is personally
fantastic news for me.

So coming back to the meat of this discussion: I have looked at the LTI
parts and very very closely and I don't see any way to overhaul them
without extremely painful deprecation cycles and breakage. But I sincerely
believe that together with PocketFFT scipy can serve a better quality LTI
tools. In its current state it's a bit academic-ish and not production
ready. So this brings us to three concrete options

1- Status quo : I don't like touching that many funcs and waking the
sleeping dogs
2- Whatever we do we do it on the current functions: It doesn't matter if
it takes 4 years, we don't want any adventures
3- Make a new module and lighten up the signal module which was probably
not exactly the right place.

Please make it as blunt as possible, no hard feelings but I think this
discussion has to be done at least once and maybe for all. A tiny bit of it
has already happened last year in https://github.com/scipy/scipy/pull/4515
but it barely grazed.

Cheers,
ilhan

Current catalogue
https://docs.scipy.org/doc/scipy/reference/signal.html

python-control vendored version
https://github.com/python-control/Slycot

New BSD3 version
https://github.com/SLICOT/SLICOT-Reference
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.python.org/pipermail/scipy-dev/attachments/20210202/52475806/attachment.html>


More information about the SciPy-Dev mailing list