summary refs log tree commit diff
path: root/gnu/packages/algebra.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/algebra.scm')
-rw-r--r--gnu/packages/algebra.scm58
1 files changed, 48 insertions, 10 deletions
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index 11fb460df5..a7455feb88 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -20,6 +20,7 @@
 
 (define-module (gnu packages algebra)
   #:use-module (gnu packages)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages mpi)
@@ -133,17 +134,14 @@ solve the shortest vector problem.")
              ("readline" ,readline)))
    (arguments
     '(#:make-flags '("all")
-      ;; FIXME: building the documentation requires tex; once this is
-      ;; available, replace "gp" by "all"
       #:test-target "dobench"
-      #:phases
-      (alist-replace
-       'configure
-       (lambda* (#:key outputs #:allow-other-keys)
-         (let ((out (assoc-ref outputs "out")))
-           (zero?
-            (system* "./Configure" (string-append "--prefix=" out)))))
-       %standard-phases)))
+      #:phases (modify-phases %standard-phases
+                 (replace 'configure
+                          (lambda* (#:key outputs #:allow-other-keys)
+                           (let ((out (assoc-ref outputs "out")))
+                            (zero?
+                             (system* "./Configure"
+                                      (string-append "--prefix=" out)))))))))
    (synopsis "PARI/GP, a computer algebra system for number theory")
    (description
     "PARI/GP is a widely used computer algebra system designed for fast
@@ -284,6 +282,46 @@ real and complex numbers, with automatic, rigorous error control.")
    (license license:gpl2+)
    (home-page "http://fredrikj.net/arb/")))
 
+(define-public ntl
+  (package
+   (name "ntl")
+   (version "9.7.0")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "http://shoup.net/ntl/ntl-"
+                                version ".tar.gz"))
+            (sha256 (base32
+                     "115frp5flyvw9wghz4zph1b3llmr5nbxk1skgsggckr81fh3gmxq"))))
+   (build-system gnu-build-system)
+   (native-inputs
+    `(("libtool" ,libtool)
+      ("perl" ,perl))) ; for configuration
+   ;; FIXME: Add optional input gf2x once available; then also add
+   ;; configure flag "NTL_GF2X_LIB=on".
+   (inputs
+    `(("gmp" ,gmp)))
+   (arguments
+    `(#:phases
+      (modify-phases %standard-phases
+        (replace 'configure
+         (lambda* (#:key outputs #:allow-other-keys)
+           (chdir "src")
+           (system* "./configure"
+                    (string-append "PREFIX=" (assoc-ref outputs "out"))
+                    ;; Do not build especially for the build machine.
+                    "NATIVE=off"
+                    ;; Also do not tune to the build machine.
+                    "WIZARD=off"
+                    "SHARED=on")
+           #t)))))
+   (synopsis "C++ library for number theory")
+   (description
+    "NTL is a C++ library providing data structures and algorithms
+for manipulating signed, arbitrary length integers, and for vectors,
+matrices, and polynomials over the integers and over finite fields.")
+   (license license:gpl2+)
+   (home-page "http://shoup.net/ntl/")))
+
 (define-public bc
   (package
     (name "bc")