From 1eee03a68efc9891e48777f67e5147fd967b10d9 Mon Sep 17 00:00:00 2001 From: Andreas Enge Date: Sun, 13 Jan 2013 14:27:16 +0100 Subject: [PATCH] distro: Add PARI/GP * distro/packages/algebra.scm (pari-gp): New variable. --- distro/packages/algebra.scm | 53 +++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 51 insertions(+), 2 deletions(-) diff --git a/distro/packages/algebra.scm b/distro/packages/algebra.scm index 0cbc5c4..dd89ec4 100644 --- a/distro/packages/algebra.scm +++ b/distro/packages/algebra.scm @@ -1,5 +1,5 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2012 Andreas Enge +;;; Copyright © 2012, 2013 Andreas Enge ;;; Copyright © 2013 Ludovic Courtès ;;; ;;; This file is part of GNU Guix. @@ -20,6 +20,8 @@ (define-module (distro packages algebra) #:use-module (distro) #:use-module (distro packages multiprecision) + #:use-module (distro packages perl) + #:use-module (distro packages readline) #:use-module (guix licenses) #:use-module (guix packages) #:use-module (guix download) @@ -54,7 +56,6 @@ multiplication routines such as Toom–Cook and the FFT. ") (license lgpl2.1+) (home-page "http://mpfrcx.multiprecision.org/"))) - (define-public fplll (package (name "fplll") @@ -101,3 +102,51 @@ as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite.") (license gpl3+))) + +(define-public pari-gp + (package + (name "pari-gp") + (version "2.5.3") + (source (origin + (method url-fetch) + (uri (string-append + "http://pari.math.u-bordeaux.fr/pub/pari/unix/pari-" + version ".tar.gz")) + (sha256 (base32 + "0zsjccnnv00kwj2gk3ww2v530kjin1rgj8p8hbl4pwcnwc7m68gl")))) + (build-system gnu-build-system) + (inputs `(("gmp" ,gmp) + ("perl" ,perl) + ("readline" ,readline))) + (arguments + (lambda (system) + `(#:make-flags '("gp") +;; FIXME: building the documentation requires tex; once this is available, +;; replace "gp" by "all" + #:test-target "dobench" + #:phases + (alist-replace + 'configure + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (readline (assoc-ref inputs "readline")) + (gmp (assoc-ref inputs "gmp"))) + (zero? + (system* "./Configure" + (string-append "--prefix=" out) + (string-append "--with-readline=" readline) + (string-append "--with-gmp=" gmp))))) +;; FIXME: readline and gmp will be detected automatically in the next +;; stable release + %standard-phases)))) + (synopsis "PARI/GP, a computer algebra system for number theory") + (description + "PARI/GP is a widely used computer algebra system designed for fast +computations in number theory (factorisations, algebraic number theory, +elliptic curves...), but it also contains a large number of other useful +functions to compute with mathematical entities such as matrices, +polynomials, power series, algebraic numbers, etc., and a lot of +transcendental functions. +PARI is also available as a C library to allow for faster computations.") + (license gpl2+) + (home-page "http://pari.math.u-bordeaux.fr/"))) -- 1.7.10.4