>From d30c6a00a2c23d8e51b09ac7d3db4e6135d68286 Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 31 Jan 2018 16:56:10 -0600 Subject: [PATCH 2/2] 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 bce662737..dfd48aee4 100644 --- a/gnu/packages/maths.scm +++ b/gnu/packages/maths.scm @@ -2,7 +2,7 @@ ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge ;;; Copyright © 2013 Nikita Karetnikov ;;; Copyright © 2014, 2016, 2017 John Darrington -;;; Copyright © 2014, 2015, 2016, 2017 Eric Bavier +;;; Copyright © 2014, 2015, 2016, 2017, 2018 Eric Bavier ;;; Copyright © 2014 Federico Beffa ;;; Copyright © 2014 Mathieu Lirzin ;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus @@ -3651,3 +3651,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))) -- 2.15.1