PSOPT (ADOL-C and ColPack)

  • Open
  • quality assurance status badge
Details
4 participants
  • Eric Brown
  • Eric Brown
  • Maxime Devos
  • Victor Becerra
Owner
unassigned
Submitted by
Eric Brown
Severity
normal
E
E
Eric Brown wrote on 25 May 2021 07:01
(address . guix-patches@gnu.org)
827e0402-9d81-4510-aef4-39999a96d30b@www.fastmail.com
Hello All,

This email introduces a set of patches for PSOPT, a libre Optimal Control Solver.

Also included in this set are dependencies:
* ADOL-C, which is part of COIN.
* ColPack.

Best regards,
Eric
E
E
Eric Brown wrote on 25 May 2021 07:04
(address . 48638@debbugs.gnu.org)
40c0b92a-945a-491f-aef2-51a1c0d2711d@www.fastmail.com
Patches attached.
From 78854d28465341b68dfd94dba1aa78b48734785a Mon Sep 17 00:00:00 2001
From: Eric Brown <ecbrown@ericcbrown.com>
Date: Mon, 24 May 2021 21:58:49 -0500
Subject: [PATCH 1/3] gnu: colpack: Add colpack.

* gnu/packages/maths.scm (colpack): New variable.
---
gnu/packages/maths.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index ee0a69bbd7..74890fd933 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1827,6 +1827,35 @@ linear and quadratic objectives. There are limited facilities for nonlinear
and quadratic objectives using the Simplex algorithm.")
(license license:epl1.0)))
+(define-public colpack
+ ;; The latest tagged release is 3 years old and there have been
+ ;; unreleased fixes, so we take the last commit.
+ (let ((commit "f328cad4141c4c6e3e30a58efcbcdacf8849124e")
+ (revision "1"))
+ (package
+ (name "colpack")
+ (version (git-version "1.0.10" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://salsa.debian.org/science-team/colpack.git")
+ (commit "f328cad4141c4c6e3e30a58efcbcdacf8849124e")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c7i2gm28hjpgv3qjavmbd488q3zdxfnx10w193v3xxhincfcxl6"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags '("-DENABLE_OPENMP=ON")))
+ (home-page "http://cscapes.cs.purdue.edu/coloringpage/")
+ (synopsis "Graph Coloring Algorithm package")
+ (description
+ "The overall aim of this project is to exploit the sparsity available in
+large-scale Jacobian and Hessian matrices the best possible way in order to
+make their computation using automatic differentiation (AD) (or finite
+differences) efficient.")
+ (license license:bsd-3))))
+
(define-public libflame
(package
(name "libflame")
--
2.31.1
From d0263c2d40b4633a40a5675df3432424d0ba7fe2 Mon Sep 17 00:00:00 2001
From: Eric Brown <ecbrown@ericcbrown.com>
Date: Mon, 24 May 2021 22:29:23 -0500
Subject: [PATCH 2/3] gnu: adol-c: Add adol-c.

* gnu/packages/maths.scm (adol-c): New variable.
---
gnu/packages/maths.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 74890fd933..6d1d3dc0ca 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1856,6 +1856,34 @@ make their computation using automatic differentiation (AD) (or finite
differences) efficient.")
(license license:bsd-3))))
+(define-public adol-c
+ (package
+ (name "adol-c")
+ (version "2.7.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.coin-or.org/download/source/ADOL-C/ADOL-C-"
+ version".tgz"))
+ (sha256
+ (base32
+ "1hw2ayv91rk8s24dnx70i70vg66rwnvyb8pa7pmv4i6wkzirhawh"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags `("--enable-sparse")))
+ (native-inputs
+ `(("gfortran" ,gfortran)))
+ (inputs
+ `(("colpack" ,colpack)
+ ("lapack" ,openblas)))
+ (home-page "https://www.coin-or.org")
+ (synopsis "Automatic Differentiation of Algorithms")
+ (description
+ "The ADOLC system automatically calculates exact derivatives of a C/C++
+function. It uses C++ overloading to record arithmetic operations, which it
+plays back later in various ways to calculate the requested values.")
+ (license license:epl1.0)))
+
(define-public libflame
(package
(name "libflame")
--
2.31.1
From 8c5ad02f0bedb41f86ef05d533f2ff0917d8361f Mon Sep 17 00:00:00 2001
From: Eric Brown <ecbrown@ericcbrown.com>
Date: Mon, 24 May 2021 23:40:05 -0500
Subject: [PATCH 3/3] gnu: psopt: Add psopt.

* gnu/packages/maths.scm (psopt): New variable.
---
gnu/packages/maths.scm | 39 +++++++++++++++++++++++++++++++++++++++
1 file changed, 39 insertions(+)

Toggle diff (52 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 6d1d3dc0ca..d772d6b046 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1884,6 +1884,45 @@ function. It uses C++ overloading to record arithmetic operations, which it
plays back later in various ways to calculate the requested values.")
(license license:epl1.0)))
+(define-public psopt
+ (package
+ (name "psopt")
+ (version "5.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PSOPT/psopt")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0y56lag51xdmpcak0wydzrkghypfn884nw8rd62gwgzgxgz0ls9f"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; no test suite
+ #:configure-flags
+ `(,(string-append "-Dadolc_INCLUDE_DIR="
+ (assoc-ref %build-inputs "adol-c") "/include")
+ ,(string-append "-Dadolc_LIBRARY="
+ (assoc-ref %build-inputs "adol-c") "/lib"))))
+ (native-inputs
+ `(("python-2" ,python-2)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("adol-c" ,adol-c)
+ ("colpack" ,colpack)
+ ("eigen" ,eigen)
+ ("ipopt" ,ipopt)
+ ("lapack" ,openblas)))
+ (home-page "https://psopt.org")
+ (synopsis "Optimal Control Software")
+ (description
+ "PSOPT is an open source optimal control package written in C++ that uses
+direct collocation methods. These methods solve optimal control problems by
+approximating the time-dependent variables using global or local
+polynomials.")
+ (license license:lgpl2.1)))
+
(define-public libflame
(package
(name "libflame")
--
2.31.1
M
M
Maxime Devos wrote on 26 May 2021 19:24
c85a17a881daf3dd5e0a54f4aef752d76f268ac8.camel@telenet.be
Eric Brown schreef op di 25-05-2021 om 00:04 [-0500]:
Toggle quote (3 lines)
> Patches attached.

> + (home-page "https://psopt.org")
psopt.org is dead. It states:

‘This Domain Name Has Expired - Renewal Instructions’

Greetings,
Maxime.
-----BEGIN PGP SIGNATURE-----

iI0EABYKADUWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYK6EZRccbWF4aW1lZGV2
b3NAdGVsZW5ldC5iZQAKCRBJ4+4iGRcl7uibAP9MqRM5hDVywFKLnawpOX0LVs7s
TK+cOg/zGrs6ryQdVgD/ZoLl4QHGhe35CybruYCBnHnJWbY4Tn4hjX5BjkHgywA=
=JHvd
-----END PGP SIGNATURE-----


E
E
Eric Brown wrote on 26 May 2021 19:37
(address . v.m.becerra@ieee.org)
2db30fa2-eff4-4c03-b0c3-434e13d5ddc7@www.fastmail.com
Hello Maxime,

Thanks for your feedback. Indeed this has only happened recently, as I had been accessing it to learn it.

I am Cc:'ing the author and see if he knows anything about it. I think also maybe the GitHub page would work:


Thanks,
Eric

On Wed, May 26, 2021, at 12:24 PM, Maxime Devos wrote:
Toggle quote (13 lines)
> Eric Brown schreef op di 25-05-2021 om 00:04 [-0500]:
> > Patches attached.
>
> > + (home-page "https://psopt.org")
> psopt.org is dead. It states:
>
> ‘This Domain Name Has Expired - Renewal Instructions’
>
> Greetings,
> Maxime.
>
> Attachments:
> * signature.asc
V
V
Victor Becerra wrote on 30 May 2021 07:18
(name . Eric Brown)(address . ecbrown@ericcbrown.com)
CAAq=9YaO++-s_wRk7AvES6uDqWz1g7n9qTDqfhDpMbhRmfW+eQ@mail.gmail.com
Hello

Many thanks for your email.

Yes, I saw there is a problem with the website. Thank you for pointing it
out.

Upon investigation, I realized that the credit card I was using for
automated payments of the domain expired and I did not see the reminders in
time, so that the domain lapsed.

I will ask Google to see if they can reinstate it, as there appears to be
no easy way to do it myself. If that does not work I may have to get a new
domain.

As you correctly indicate PSOPT and its documentation can be accessed from
the GitHub page.

Best wishes,

Victor Becerra



On Wed, 26 May 2021 at 18:37, Eric Brown <ecbrown@ericcbrown.com> wrote:

Toggle quote (30 lines)
> Hello Maxime,
>
> Thanks for your feedback. Indeed this has only happened recently, as I had
> been accessing it to learn it.
>
> I am Cc:'ing the author and see if he knows anything about it. I think
> also maybe the GitHub page would work:
>
> https://github.com/PSOPT/psopt
>
> Thanks,
> Eric
>
> On Wed, May 26, 2021, at 12:24 PM, Maxime Devos wrote:
> > Eric Brown schreef op di 25-05-2021 om 00:04 [-0500]:
> > > Patches attached.
> >
> > > + (home-page "https://psopt.org")
> > psopt.org is dead. It states:
> >
> > ‘This Domain Name Has Expired - Renewal Instructions’
> >
> > Greetings,
> > Maxime.
> >
> > Attachments:
> > * signature.asc
>


--
Prof. Victor M Becerra, BSc MSc PhD SMIEEE CEng FIET SMAIAA
Attachment: file
E
E
Eric Brown wrote on 30 May 2021 22:02
(name . Victor Becerra)(address . vmbecerra99@gmail.com)
86h7ikj8hz.fsf@hurd.ericcbrown.com
(updated patch set attached)

Hello Prof. Becerra,

Thanks for your response! I forgot to mention the context of this
message: I am trying to get PSOPT (and ADOL-C, and ColPack) packaged
for GNU Guix.

Please note that I have updated:
* The homepage URL
* Added gnuplot (not required, but awfully nice :-)

Warm regards,
Eric Brown
From 78854d28465341b68dfd94dba1aa78b48734785a Mon Sep 17 00:00:00 2001
From: Eric Brown <ecbrown@ericcbrown.com>
Date: Mon, 24 May 2021 21:58:49 -0500
Subject: [PATCH 1/3] gnu: colpack: Add colpack.

* gnu/packages/maths.scm (colpack): New variable.
---
gnu/packages/maths.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index ee0a69bbd7..74890fd933 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1827,6 +1827,35 @@ linear and quadratic objectives. There are limited facilities for nonlinear
and quadratic objectives using the Simplex algorithm.")
(license license:epl1.0)))
+(define-public colpack
+ ;; The latest tagged release is 3 years old and there have been
+ ;; unreleased fixes, so we take the last commit.
+ (let ((commit "f328cad4141c4c6e3e30a58efcbcdacf8849124e")
+ (revision "1"))
+ (package
+ (name "colpack")
+ (version (git-version "1.0.10" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://salsa.debian.org/science-team/colpack.git")
+ (commit "f328cad4141c4c6e3e30a58efcbcdacf8849124e")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c7i2gm28hjpgv3qjavmbd488q3zdxfnx10w193v3xxhincfcxl6"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags '("-DENABLE_OPENMP=ON")))
+ (home-page "http://cscapes.cs.purdue.edu/coloringpage/")
+ (synopsis "Graph Coloring Algorithm package")
+ (description
+ "The overall aim of this project is to exploit the sparsity available in
+large-scale Jacobian and Hessian matrices the best possible way in order to
+make their computation using automatic differentiation (AD) (or finite
+differences) efficient.")
+ (license license:bsd-3))))
+
(define-public libflame
(package
(name "libflame")
--
2.32.0.rc0
From d0263c2d40b4633a40a5675df3432424d0ba7fe2 Mon Sep 17 00:00:00 2001
From: Eric Brown <ecbrown@ericcbrown.com>
Date: Mon, 24 May 2021 22:29:23 -0500
Subject: [PATCH 2/3] gnu: adol-c: Add adol-c.

* gnu/packages/maths.scm (adol-c): New variable.
---
gnu/packages/maths.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 74890fd933..6d1d3dc0ca 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1856,6 +1856,34 @@ make their computation using automatic differentiation (AD) (or finite
differences) efficient.")
(license license:bsd-3))))
+(define-public adol-c
+ (package
+ (name "adol-c")
+ (version "2.7.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.coin-or.org/download/source/ADOL-C/ADOL-C-"
+ version".tgz"))
+ (sha256
+ (base32
+ "1hw2ayv91rk8s24dnx70i70vg66rwnvyb8pa7pmv4i6wkzirhawh"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags `("--enable-sparse")))
+ (native-inputs
+ `(("gfortran" ,gfortran)))
+ (inputs
+ `(("colpack" ,colpack)
+ ("lapack" ,openblas)))
+ (home-page "https://www.coin-or.org")
+ (synopsis "Automatic Differentiation of Algorithms")
+ (description
+ "The ADOLC system automatically calculates exact derivatives of a C/C++
+function. It uses C++ overloading to record arithmetic operations, which it
+plays back later in various ways to calculate the requested values.")
+ (license license:epl1.0)))
+
(define-public libflame
(package
(name "libflame")
--
2.32.0.rc0
From 51982dbb910a688d3faa574a68149902b16a7709 Mon Sep 17 00:00:00 2001
From: Eric Brown <ecbrown@ericcbrown.com>
Date: Mon, 24 May 2021 23:40:05 -0500
Subject: [PATCH 3/3] gnu: psopt: Add psopt.

* gnu/packages/maths.scm (psopt): New variable.
---
gnu/packages/maths.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 6d1d3dc0ca..bca9c086b5 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1884,6 +1884,46 @@ function. It uses C++ overloading to record arithmetic operations, which it
plays back later in various ways to calculate the requested values.")
(license license:epl1.0)))
+(define-public psopt
+ (package
+ (name "psopt")
+ (version "5.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PSOPT/psopt")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0y56lag51xdmpcak0wydzrkghypfn884nw8rd62gwgzgxgz0ls9f"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; no test suite
+ #:configure-flags
+ `(,(string-append "-Dadolc_INCLUDE_DIR="
+ (assoc-ref %build-inputs "adol-c") "/include")
+ ,(string-append "-Dadolc_LIBRARY="
+ (assoc-ref %build-inputs "adol-c") "/lib"))))
+ (native-inputs
+ `(("python-2" ,python-2)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("adol-c" ,adol-c)
+ ("colpack" ,colpack)
+ ("eigen" ,eigen)
+ ("gnuplot" ,gnuplot)
+ ("ipopt" ,ipopt)
+ ("lapack" ,openblas)))
+ (home-page "https://github.com/PSOPT/psopt")
+ (synopsis "Optimal Control Software")
+ (description
+ "PSOPT is an optimal control package written in C++ that uses direct
+collocation methods. These methods solve optimal control problems by
+approximating the time-dependent variables using global or local
+polynomials.")
+ (license license:lgpl2.1)))
+
(define-public libflame
(package
(name "libflame")
--
2.32.0.rc0
Victor Becerra <vmbecerra99@gmail.com> writes:

Toggle quote (47 lines)
> Hello
>
> Many thanks for your email.
>
> Yes, I saw there is a problem with the website. Thank you for pointing it out.
>
> Upon investigation, I realized that the credit card I was using for automated payments of the domain
> expired and I did not see the reminders in time, so that the domain lapsed.
>
> I will ask Google to see if they can reinstate it, as there appears to be no easy way to do it
> myself. If that does not work I may have to get a new domain.
>
> As you correctly indicate PSOPT and its documentation can be accessed from the GitHub page.
>
> Best wishes,
>
> Victor Becerra
>
> On Wed, 26 May 2021 at 18:37, Eric Brown <ecbrown@ericcbrown.com> wrote:
>
> Hello Maxime,
>
> Thanks for your feedback. Indeed this has only happened recently, as I had been accessing it to
> learn it.
>
> I am Cc:'ing the author and see if he knows anything about it. I think also maybe the GitHub
> page would work:
>
> https://github.com/PSOPT/psopt
>
> Thanks,
> Eric
>
> On Wed, May 26, 2021, at 12:24 PM, Maxime Devos wrote:
> > Eric Brown schreef op di 25-05-2021 om 00:04 [-0500]:
> > > Patches attached.
> >
> > > + (home-page "https://psopt.org")
> > psopt.org is dead. It states:
> >
> > ‘This Domain Name Has Expired - Renewal Instructions’
> >
> > Greetings,
> > Maxime.
> >
> > Attachments:
> > * signature.asc
E
E
Eric Brown wrote on 30 May 2021 22:44
Re: bug#48638: Acknowledgement (PSOPT (ADOL-C and ColPack))
(name . GNU bug Tracking System)(address . help-debbugs@gnu.org)
86pmx8uf2y.fsf@hurd.ericcbrown.com
help-debbugs@gnu.org (GNU bug Tracking System) writes:

Toggle quote (17 lines)
> Thank you for filing a new bug report with debbugs.gnu.org.
>
> This is an automatically generated reply to let you know your message
> has been received.
>
> Your message is being forwarded to the package maintainers and other
> interested parties for their attention; they will reply in due course.
>
> Your message has been sent to the package maintainer(s):
> guix-patches@gnu.org
>
> If you wish to submit further information on this problem, please
> send it to 48638@debbugs.gnu.org.
>
> Please do not send mail to help-debbugs@gnu.org unless you wish
> to report a problem with the Bug-tracking system.

(Wondering if the patches should be sent as attachments instead of inline)
From 78854d28465341b68dfd94dba1aa78b48734785a Mon Sep 17 00:00:00 2001
From: Eric Brown <ecbrown@ericcbrown.com>
Date: Mon, 24 May 2021 21:58:49 -0500
Subject: [PATCH 1/3] gnu: colpack: Add colpack.

* gnu/packages/maths.scm (colpack): New variable.
---
gnu/packages/maths.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index ee0a69bbd7..74890fd933 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1827,6 +1827,35 @@ linear and quadratic objectives. There are limited facilities for nonlinear
and quadratic objectives using the Simplex algorithm.")
(license license:epl1.0)))
+(define-public colpack
+ ;; The latest tagged release is 3 years old and there have been
+ ;; unreleased fixes, so we take the last commit.
+ (let ((commit "f328cad4141c4c6e3e30a58efcbcdacf8849124e")
+ (revision "1"))
+ (package
+ (name "colpack")
+ (version (git-version "1.0.10" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://salsa.debian.org/science-team/colpack.git")
+ (commit "f328cad4141c4c6e3e30a58efcbcdacf8849124e")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c7i2gm28hjpgv3qjavmbd488q3zdxfnx10w193v3xxhincfcxl6"))))
+ (build-system cmake-build-system)
+ (arguments
+ '(#:configure-flags '("-DENABLE_OPENMP=ON")))
+ (home-page "http://cscapes.cs.purdue.edu/coloringpage/")
+ (synopsis "Graph Coloring Algorithm package")
+ (description
+ "The overall aim of this project is to exploit the sparsity available in
+large-scale Jacobian and Hessian matrices the best possible way in order to
+make their computation using automatic differentiation (AD) (or finite
+differences) efficient.")
+ (license license:bsd-3))))
+
(define-public libflame
(package
(name "libflame")
--
2.32.0.rc0
From d0263c2d40b4633a40a5675df3432424d0ba7fe2 Mon Sep 17 00:00:00 2001
From: Eric Brown <ecbrown@ericcbrown.com>
Date: Mon, 24 May 2021 22:29:23 -0500
Subject: [PATCH 2/3] gnu: adol-c: Add adol-c.

* gnu/packages/maths.scm (adol-c): New variable.
---
gnu/packages/maths.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 74890fd933..6d1d3dc0ca 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1856,6 +1856,34 @@ make their computation using automatic differentiation (AD) (or finite
differences) efficient.")
(license license:bsd-3))))
+(define-public adol-c
+ (package
+ (name "adol-c")
+ (version "2.7.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.coin-or.org/download/source/ADOL-C/ADOL-C-"
+ version".tgz"))
+ (sha256
+ (base32
+ "1hw2ayv91rk8s24dnx70i70vg66rwnvyb8pa7pmv4i6wkzirhawh"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:configure-flags `("--enable-sparse")))
+ (native-inputs
+ `(("gfortran" ,gfortran)))
+ (inputs
+ `(("colpack" ,colpack)
+ ("lapack" ,openblas)))
+ (home-page "https://www.coin-or.org")
+ (synopsis "Automatic Differentiation of Algorithms")
+ (description
+ "The ADOLC system automatically calculates exact derivatives of a C/C++
+function. It uses C++ overloading to record arithmetic operations, which it
+plays back later in various ways to calculate the requested values.")
+ (license license:epl1.0)))
+
(define-public libflame
(package
(name "libflame")
--
2.32.0.rc0
From 51982dbb910a688d3faa574a68149902b16a7709 Mon Sep 17 00:00:00 2001
From: Eric Brown <ecbrown@ericcbrown.com>
Date: Mon, 24 May 2021 23:40:05 -0500
Subject: [PATCH 3/3] gnu: psopt: Add psopt.

* gnu/packages/maths.scm (psopt): New variable.
---
gnu/packages/maths.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 6d1d3dc0ca..bca9c086b5 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1884,6 +1884,46 @@ function. It uses C++ overloading to record arithmetic operations, which it
plays back later in various ways to calculate the requested values.")
(license license:epl1.0)))
+(define-public psopt
+ (package
+ (name "psopt")
+ (version "5.0.0")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/PSOPT/psopt")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0y56lag51xdmpcak0wydzrkghypfn884nw8rd62gwgzgxgz0ls9f"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:tests? #f ; no test suite
+ #:configure-flags
+ `(,(string-append "-Dadolc_INCLUDE_DIR="
+ (assoc-ref %build-inputs "adol-c") "/include")
+ ,(string-append "-Dadolc_LIBRARY="
+ (assoc-ref %build-inputs "adol-c") "/lib"))))
+ (native-inputs
+ `(("python-2" ,python-2)
+ ("pkg-config" ,pkg-config)))
+ (inputs
+ `(("adol-c" ,adol-c)
+ ("colpack" ,colpack)
+ ("eigen" ,eigen)
+ ("gnuplot" ,gnuplot)
+ ("ipopt" ,ipopt)
+ ("lapack" ,openblas)))
+ (home-page "https://github.com/PSOPT/psopt")
+ (synopsis "Optimal Control Software")
+ (description
+ "PSOPT is an optimal control package written in C++ that uses direct
+collocation methods. These methods solve optimal control problems by
+approximating the time-dependent variables using global or local
+polynomials.")
+ (license license:lgpl2.1)))
+
(define-public libflame
(package
(name "libflame")
--
2.32.0.rc0
?
Your comment

Commenting via the web interface is currently disabled.

To comment on this conversation send an email to 48638@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 48638
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch