hydra: Fix typo in core package list.
[jackhill/guix/guix.git] / gnu / packages / multiprecision.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2012, 2013 Ludovic Courtès <ludo@gnu.org>
3 ;;;
4 ;;; This file is part of GNU Guix.
5 ;;;
6 ;;; GNU Guix is free software; you can redistribute it and/or modify it
7 ;;; under the terms of the GNU General Public License as published by
8 ;;; the Free Software Foundation; either version 3 of the License, or (at
9 ;;; your option) any later version.
10 ;;;
11 ;;; GNU Guix is distributed in the hope that it will be useful, but
12 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
13 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 ;;; GNU General Public License for more details.
15 ;;;
16 ;;; You should have received a copy of the GNU General Public License
17 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
18
19 (define-module (gnu packages multiprecision)
20 #:use-module (guix licenses)
21 #:use-module (gnu packages)
22 #:use-module (gnu packages m4)
23 #:use-module (guix packages)
24 #:use-module (guix download)
25 #:use-module (guix build-system gnu))
26
27 (define-public gmp
28 (package
29 (name "gmp")
30 (version "5.1.3")
31 (source (origin
32 (method url-fetch)
33 (uri
34 (string-append "mirror://gnu/gmp/gmp-"
35 version ".tar.xz"))
36 (sha256
37 (base32
38 "0wbhn3wih61vjcs94q531fipfvvzqfq2v4qr03rl3xaggyiyvqny"))))
39 (build-system gnu-build-system)
40 (native-inputs `(("m4" ,m4)))
41 (outputs '("out" "debug"))
42 (arguments `(#:configure-flags
43 '(;; Build a "fat binary", with routines for several
44 ;; sub-architectures.
45 "--enable-fat"
46 "--enable-cxx")))
47 (synopsis "Multiple-precision arithmetic library")
48 (description
49 "GMP is a library for arbitrary precision arithmetic, operating on
50 signed integers, rational numbers and floating point numbers. The precision
51 is only limited by the available memory. The library is highly optimized,
52 with a design focus on execution speed. It is aimed at use in, for example,
53 cryptography and computational algebra.")
54 (license lgpl3+)
55 (home-page "http://gmplib.org/")))
56
57 (define-public mpfr
58 (package
59 (name "mpfr")
60 (version "3.1.2")
61 (source (origin
62 (method url-fetch)
63 (uri (string-append "mirror://gnu/mpfr/mpfr-" version
64 ".tar.xz"))
65 (sha256 (base32
66 "0fs501qi8l523gs3cpy4jjcnvwxggyfbklcys80wq236xx3hz79r"))))
67 (build-system gnu-build-system)
68 (outputs '("out" "debug"))
69 (propagated-inputs `(("gmp" ,gmp))) ; <mpfr.h> refers to <gmp.h>
70 (synopsis "C library for arbitrary precision floating-point arithmetic")
71 (description
72 "GNU MPFR is a C library for performing multiple-precision,
73 floating-point computations with correct rounding.")
74 (license lgpl3+)
75 (home-page "http://www.mpfr.org/")))
76
77 (define-public mpc
78 (package
79 (name "mpc")
80 (version "1.0.2")
81 (source (origin
82 (method url-fetch)
83 (uri (string-append
84 "mirror://gnu/mpc/mpc-" version ".tar.gz"))
85 (sha256 (base32
86 "1264h3ivldw5idph63x35dqqdzqqbxrm5vlir0xyx727i96zaqdm"))))
87 (build-system gnu-build-system)
88 (outputs '("out" "debug"))
89 (propagated-inputs `(("gmp" ,gmp) ; <mpc.h> refers to both
90 ("mpfr" ,mpfr)))
91 (synopsis "C library for arbitrary precision complex arithmetic")
92 (description
93 "GNU MPC is a C library for performing arithmetic on complex numbers.
94 It supports arbitrarily high precision and it correctly rounds the results.")
95 (license lgpl3+)
96 (home-page "http://mpc.multiprecision.org/")))