summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorVinicius Monego <monego@posteo.net>2023-07-30 11:18:23 -0300
committerVinicius Monego <monego@posteo.net>2023-09-30 10:37:47 -0300
commit35a00cf3dc040513ee8314f3ea3b98ff10256785 (patch)
tree8bb79927dc32982240489e3bacffc87b1e8cd37d /gnu
parent39eb0d8a9454b96dbdbc5d098c95d9da4fb071ae (diff)
downloadguix-35a00cf3dc040513ee8314f3ea3b98ff10256785.tar.gz
gnu: Add pagmo.
* gnu/packages/maths.scm (pagmo): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/maths.scm33
1 files changed, 33 insertions, 0 deletions
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 9e34da7ad0..24fcd95493 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1390,6 +1390,39 @@ Extern C linkage permits the package routines to be called from C++.")
 NonLinear Programming) problems.  It builds on top of Cbc and Ipopt.")
     (license license:epl1.0)))
 
+(define-public pagmo
+  (package
+    (name "pagmo")
+    (version "2.19.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/esa/pagmo2")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0g0j0k0cwp8kyyggj80s5cd24bl6gqmf6f5g7j2axswr2bdj16fg"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list #:configure-flags #~(list "-DPAGMO_BUILD_TESTS=ON"
+                                     "-DPAGMO_WITH_EIGEN3=ON")))
+    ;; Eigen is optional, enables some extra features.
+    (inputs (list boost eigen tbb))
+    (home-page "https://esa.github.io/pagmo2/")
+    (synopsis
+     "Platform to perform parallel computations of optimisation tasks")
+    (description "@code{pagmo} is a C++ scientific library for massively
+parallel optimization.  It is built around the idea of providing a unified
+interface to optimization algorithms and to optimization problems and to make
+their deployment in massively parallel environments easy.")
+    ;; Pagmo only supports 64-bit x86, ARM and PowerPC:
+    ;; https://esa.github.io/pagmo2/install.html
+    (supported-systems '("x86_64-linux" "aarch64-linux" "armhf-linux"
+                         "powerpc64le-linux"))
+    ;; Dual licensed, user choice.
+    (license (list license:lgpl3+ license:gpl3+))))
+
 (define-public gctp
   (package
     (name "gctp")