>From d6f9934721b818ce61e17ae60feb638ff57fbc9d Mon Sep 17 00:00:00 2001 From: Eric Bavier Date: Wed, 31 Jan 2018 13:55:37 -0600 Subject: [PATCH 1/2] gnu: Add QD. * gnu/packages/multiprecision.scm (qd): New variable. --- gnu/packages/multiprecision.scm | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/gnu/packages/multiprecision.scm b/gnu/packages/multiprecision.scm index b6d2d7f4a..e137fe388 100644 --- a/gnu/packages/multiprecision.scm +++ b/gnu/packages/multiprecision.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2015 Andreas Enge ;;; Copyright © 2016 Nicolas Goaziou ;;; Copyright © 2016 Jan Nieuwenhuizen +;;; Copyright © 2018 Eric Bavier ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ #:use-module (guix licenses) #:use-module (gnu packages) #:use-module (gnu packages m4) + #:use-module (gnu packages gcc) #:use-module (guix packages) #:use-module (guix download) #:use-module (guix utils) @@ -150,3 +152,41 @@ the other hand to obtain accurate results, thanks to multiple precision arithmetic.") (license lgpl2.1+) (home-page "https://perso.ens-lyon.fr/nathalie.revol/software.html"))) + +(define-public qd + (package + (name "qd") + (version "2.3.18") + (source (origin + (method url-fetch) + (uri (string-append "http://crd.lbl.gov/~dhbailey/mpdist/qd-" + version ".tar.gz")) + (sha256 + (base32 + "0vkihcj9fyv2cycq8515713gbs3yskhmivy8bznvx72i6ddnn2c1")))) + (build-system gnu-build-system) + (native-inputs + `(("gfortran" ,gfortran))) + (arguments + `(#:configure-flags `("--disable-enable_fma" ;weird :/ + "--enable-shared" + ,,@(if (string-prefix? "aarch64" + (or (%current-target-system) + (%current-system))) + ;; XXX: The qd_test test fails numerical + ;; accuracy checks for 'dd_real::exp()' on + ;; aarch64 with GCC 5.4 at -O2. Disabling + ;; expensive optimizations lets it pass. + '("CXXFLAGS=-O3 -fno-expensive-optimizations") + '("CXXFLAGS=-O3"))))) + (home-page "http://crd-legacy.lbl.gov/~dhbailey/mpdist/") + (synopsis "Double-double and quad-double library") + (description "This package supports both a double-double +datatype (approx. 32 decimal digits) and a quad-double datatype (approx. 64 +decimal digits). The computational library is written in C++. Both C++ and +Fortran-90 high-level language interfaces are provided to permit one to +convert an existing C++ or Fortran-90 program to use the library with only +minor changes to the source code. In most cases only a few type statements +and (for Fortran-90 programs) read/write statements need to be changed. PSLQ +and numerical quadrature programs are included.") + (license bsd-3))) -- 2.15.1