* [bug#72320] [PATCH 0/2] Add python-slycot and python-control
@ 2024-07-27 12:18 Vinicius Monego
2024-07-27 12:21 ` [bug#72320] [PATCH 1/2] gnu: Add python-slycot Vinicius Monego
0 siblings, 1 reply; 3+ messages in thread
From: Vinicius Monego @ 2024-07-27 12:18 UTC (permalink / raw)
To: 72320; +Cc: Vinicius Monego
SLICOT is a Fortran 77 library for control computations. It was free software prior to version ~5.1 after which it became non-commercial, but seems to have been relicensed to bsd-3 in version ~5.8. It's in Debian main repo now and is the base for most Octave packages.
The build system for the fortran library is a little weird and the package would need some work. But I'm sending a package for Slycot (a Python wrapper) which forks it for a seamless integration, and then for python-control which is the main consumer of that wrapper.
Vinicius Monego (2):
gnu: Add python-slycot.
gnu: Add python-control.
gnu/packages/engineering.scm | 66 ++++++++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+)
base-commit: 81904c16aed72bb8ea1449587418d2a218d0b103
--
2.39.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* [bug#72320] [PATCH 1/2] gnu: Add python-slycot.
2024-07-27 12:18 [bug#72320] [PATCH 0/2] Add python-slycot and python-control Vinicius Monego
@ 2024-07-27 12:21 ` Vinicius Monego
2024-07-27 12:21 ` [bug#72320] [PATCH 2/2] gnu: Add python-control Vinicius Monego
0 siblings, 1 reply; 3+ messages in thread
From: Vinicius Monego @ 2024-07-27 12:21 UTC (permalink / raw)
To: 72320; +Cc: Vinicius Monego
* gnu/packages/engineering.scm (python-slycot): New variable.
Change-Id: If2fa334e2f9c73001570aa7eefd2e683313f1a54
---
gnu/packages/engineering.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 4e465ddb7d..688465b233 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -912,6 +912,32 @@ (define-public translate2geda
fonts to gEDA.")
(license license:gpl2+))))
+(define-public python-slycot
+ (package
+ (name "python-slycot")
+ (version "0.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "slycot" version))
+ (sha256
+ (base32 "08rwvawrcnyal66lljn2b8l9my0lzjg1d5fvykbf0v0cmnfg3v4q"))))
+ (build-system pyproject-build-system)
+ ;; Slycot uses a custom fork of slicot and does not allow to use a system
+ ;; package. We add gfortran, lapack and openblas to build it.
+ (native-inputs (list gfortran
+ python-pytest
+ python-scikit-build
+ python-scipy ; for tests
+ python-setuptools-scm))
+ (inputs (list lapack openblas))
+ (propagated-inputs (list python-numpy))
+ (home-page "https://github.com/python-control/Slycot")
+ (synopsis "Wrapper for the SLICOT control and systems library")
+ (description "This package provides a Python wrapper for the SLICOT
+control and systems library.")
+ (license license:gpl2+)))
+
(define-public libfive
(let ((commit "b1ea998d8adb3884ab52798f7388f4354145f452")
(revision "5"))
base-commit: 81904c16aed72bb8ea1449587418d2a218d0b103
--
2.39.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [bug#72320] [PATCH 2/2] gnu: Add python-control.
2024-07-27 12:21 ` [bug#72320] [PATCH 1/2] gnu: Add python-slycot Vinicius Monego
@ 2024-07-27 12:21 ` Vinicius Monego
0 siblings, 0 replies; 3+ messages in thread
From: Vinicius Monego @ 2024-07-27 12:21 UTC (permalink / raw)
To: 72320; +Cc: Vinicius Monego
* gnu/packages/engineering.scm (python-control): New variable.
Change-Id: Idc73713360c28b5e5570baedbaf4d3cde4b59b87
---
gnu/packages/engineering.scm | 40 ++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/gnu/packages/engineering.scm b/gnu/packages/engineering.scm
index 688465b233..b082af532f 100644
--- a/gnu/packages/engineering.scm
+++ b/gnu/packages/engineering.scm
@@ -938,6 +938,46 @@ (define-public python-slycot
control and systems library.")
(license license:gpl2+)))
+(define-public python-control
+ (package
+ (name "python-control")
+ (version "0.10.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "control" version))
+ (sha256
+ (base32 "0lxb1dbdidgdi3w54pwv94cl15p5zglazr5j0zywfibzadkvf61c"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-matplotlib
+ python-numpy
+ python-scipy
+ python-slycot))
+ (native-inputs (list python-pytest python-pytest-timeout))
+ (home-page "https://github.com/python-control/python-control")
+ (synopsis "Python Control Systems Library")
+ (description "The Python Control Systems Library is a Python module that
+implements basic operations for analysis and design of feedback control
+systems.
+
+Features:
+
+@itemize
+@item Linear input/output systems in state-space and frequency domain
+@item Block diagram algebra: serial, parallel, feedback, and other
+interconnections
+@item Time response: initial, step, impulse
+@item Frequency response: Bode, Nyquist, and Nichols plots
+@item Control analysis: stability, reachability, observability, stability
+margins, root locus
+@item Control design: eigenvalue placement, linear quadratic regulator,
+sisotool, hinfsyn, rootlocus_pid_designer
+@item Estimator design: linear quadratic estimator (Kalman filter)
+@item Nonlinear systems: optimization-based control, describing functions,
+differential flatness
+@end itemize")
+ (license license:bsd-3)))
+
(define-public libfive
(let ((commit "b1ea998d8adb3884ab52798f7388f4354145f452")
(revision "5"))
--
2.39.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-07-27 12:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-27 12:18 [bug#72320] [PATCH 0/2] Add python-slycot and python-control Vinicius Monego
2024-07-27 12:21 ` [bug#72320] [PATCH 1/2] gnu: Add python-slycot Vinicius Monego
2024-07-27 12:21 ` [bug#72320] [PATCH 2/2] gnu: Add python-control Vinicius Monego
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).