1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
5 ;;; This file is part of GNU Guix.
7 ;;; GNU Guix is free software; you can redistribute it and/or modify it
8 ;;; under the terms of the GNU General Public License as published by
9 ;;; the Free Software Foundation; either version 3 of the License, or (at
10 ;;; your option) any later version.
12 ;;; GNU Guix is distributed in the hope that it will be useful, but
13 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
14 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 ;;; GNU General Public License for more details.
17 ;;; You should have received a copy of the GNU General Public License
18 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
20 (define-module (gnu packages multiprecision)
21 #:use-module (guix licenses)
22 #:use-module (gnu packages)
23 #:use-module (gnu packages m4)
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix utils)
27 #:use-module (guix build-system gnu))
36 (string-append "mirror://gnu/gmp/gmp-"
40 "0r5pp27cy7ch3dg5v0rsny8bib1zfvrza6027g2mp5f6v8pd6mli"))
41 (patches (list (search-patch "gmp-arm-asm-nothumb.patch")))))
42 (build-system gnu-build-system)
43 (native-inputs `(("m4" ,m4)))
44 (outputs '("out" "debug"))
45 (arguments `(#:configure-flags
46 '(;; Build a "fat binary", with routines for several
51 ;; FIXME: gmp-6.0.0a's config.guess fails on
52 ;; multi-core armhf systems.
53 ,@(if (%current-target-system)
56 (nix-system->gnu-triplet (%current-system))))
57 (list (string-append "--build=" triplet)))))))
58 (synopsis "Multiple-precision arithmetic library")
60 "GMP is a library for arbitrary precision arithmetic, operating on
61 signed integers, rational numbers and floating point numbers. The precision
62 is only limited by the available memory. The library is highly optimized,
63 with a design focus on execution speed. It is aimed at use in, for example,
64 cryptography and computational algebra.")
66 (home-page "http://gmplib.org/")))
74 (uri (string-append "mirror://gnu/mpfr/mpfr-" version
77 "0fs501qi8l523gs3cpy4jjcnvwxggyfbklcys80wq236xx3hz79r"))))
78 (build-system gnu-build-system)
79 (outputs '("out" "debug"))
80 (propagated-inputs `(("gmp" ,gmp))) ; <mpfr.h> refers to <gmp.h>
81 (synopsis "C library for arbitrary precision floating-point arithmetic")
83 "GNU MPFR is a C library for performing multiple-precision,
84 floating-point computations with correct rounding.")
86 (home-page "http://www.mpfr.org/")))
95 "mirror://gnu/mpc/mpc-" version ".tar.gz"))
97 "1264h3ivldw5idph63x35dqqdzqqbxrm5vlir0xyx727i96zaqdm"))))
98 (build-system gnu-build-system)
99 (outputs '("out" "debug"))
100 (propagated-inputs `(("gmp" ,gmp) ; <mpc.h> refers to both
102 (synopsis "C library for arbitrary precision complex arithmetic")
104 "GNU MPC is a C library for performing arithmetic on complex numbers.
105 It supports arbitrarily high precision and it correctly rounds the results.")
107 (home-page "http://mpc.multiprecision.org/")))