[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
02/03: gnu: Add Elemental.
From: |
Eric Bavier |
Subject: |
02/03: gnu: Add Elemental. |
Date: |
Fri, 2 Feb 2018 09:38:49 -0500 (EST) |
bavier pushed a commit to branch master
in repository guix.
commit e01397b489dc1ec76fcbe33a26333ddcb92e20f8
Author: Eric Bavier <address@hidden>
Date: Wed Jan 31 16:56:10 2018 -0600
gnu: Add Elemental.
* gnu/packages/maths.scm (elemental): New variable.
---
gnu/packages/maths.scm | 55 +++++++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 54 insertions(+), 1 deletion(-)
diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index eaf385d..30a03a0 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -2,7 +2,7 @@
;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <address@hidden>
;;; Copyright © 2013 Nikita Karetnikov <address@hidden>
;;; Copyright © 2014, 2016, 2017 John Darrington <address@hidden>
-;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier <address@hidden>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018 Eric Bavier <address@hidden>
;;; Copyright © 2014 Federico Beffa <address@hidden>
;;; Copyright © 2014 Mathieu Lirzin <address@hidden>
;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <address@hidden>
@@ -3652,3 +3652,56 @@ parametrized transition systems with states represented
as arrays indexed by
an arbitrary number of processes. Cache coherence protocols and mutual
exclusion algorithms are typical examples of such systems.")
(license license:asl2.0)))
+
+(define-public elemental
+ (package
+ (name "elemental")
+ (version "0.87.7")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/elemental/Elemental/"
+ "archive/v" version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1nfp82w22pi8x8fg9sc37z8kf84dqi1dhxp8bbk7571y4aygvv3v"))))
+ (build-system cmake-build-system)
+ (home-page "http://libelemental.org")
+ (native-inputs
+ `(("gfortran" ,gfortran)))
+ (inputs
+ `(("blas" ,openblas)
+ ("gfortran:lib" ,gfortran "lib")
+ ("gmp" ,gmp)
+ ("lapack" ,lapack)
+ ("metis" ,metis)
+ ("mpc" ,mpc)
+ ("mpfr" ,mpfr)
+ ("mpi" ,openmpi)
+ ("qd" ,qd)))
+ (arguments
+ `(#:build-type "Release" ;default RelWithDebInfo not supported
+ #:configure-flags `("-DEL_DISABLE_PARMETIS:BOOL=YES"
+ "-DEL_AVOID_COMPLEX_MPI:BOOL=NO"
+ "-DEL_CACHE_WARNINGS:BOOL=YES"
+ "-DEL_TESTS:BOOL=YES"
+ "-DCMAKE_INSTALL_LIBDIR=lib"
+ "-DGFORTRAN_LIB=gfortran")
+ #:phases (modify-phases %standard-phases
+ (add-before 'check 'setup-tests
+ (lambda _
+ ;; Parallelism is done at the MPI layer.
+ (setenv "OMP_NUM_THREADS" "1")
+ #t))
+ (add-after 'install 'remove-tests
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Tests are installed, with no easy configuration
+ ;; switch to prevent this, so delete them.
+ (delete-file-recursively
+ (string-append (assoc-ref outputs "out") "/bin"))
+ #t)))))
+ (synopsis "Dense and sparse-direct linear algebra and optimization")
+ (description "Elemental is a modern C++ library for distributed-memory
+dense and sparse-direct linear algebra, conic optimization, and lattice
+reduction.")
+ (license license:bsd-2)))