summaryrefslogtreecommitdiff
path: root/gnu/packages/algebra.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/algebra.scm')
-rw-r--r--gnu/packages/algebra.scm228
1 files changed, 149 insertions, 79 deletions
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index e093056e0d..42384ecd82 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -34,6 +34,7 @@
(define-module (gnu packages algebra)
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages boost)
#:use-module (gnu packages check)
@@ -58,6 +59,7 @@
#:use-module (gnu packages python)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages readline)
+ #:use-module (gnu packages ruby)
#:use-module (gnu packages shells)
#:use-module (gnu packages tex)
#:use-module (gnu packages texinfo)
@@ -103,7 +105,7 @@ implement the floating point approach to complex multiplication are
implemented. On the other hand, these comprise asymptotically fast
multiplication routines such as Toom–Cook and the FFT.")
(license license:lgpl3+)
- (home-page "http://www.multiprecision.org/mpfrcx/")))
+ (home-page "https://www.multiprecision.org/mpfrcx/")))
(define-public gf2x
(package
@@ -131,7 +133,7 @@ greatest common divisor operations.")
(define-public cm
(package
(name "cm")
- (version "0.4.0")
+ (version "0.4.1")
(source (origin
(method url-fetch)
(uri (string-append
@@ -139,7 +141,7 @@ greatest common divisor operations.")
version ".tar.gz"))
(sha256
(base32
- "04l3inafql40n0r5rq8rmp21zplgdrzblil2kgkpx5s0jbs9i8rr"))))
+ "1avaw6a7lyc2833gr9b7zpk4blvrrrkz8r62sv1grh9xc9i4zg07"))))
(build-system gnu-build-system)
(propagated-inputs
(list mpfrcx zlib)) ; Header files included from cm_common.h.
@@ -153,7 +155,7 @@ multiplication via floating point approximations. It consists of libraries
that can be called from within a C program and of executable command
line applications.")
(license license:gpl3+)
- (home-page "http://www.multiprecision.org/cm/")))
+ (home-page "https://www.multiprecision.org/cm/")))
(define-public fplll
(package
@@ -464,7 +466,7 @@ GCDs, factoring, solving linear systems, and evaluating special
functions. In addition, FLINT provides various low-level routines for
fast arithmetic.")
(license license:lgpl2.1+)
- (home-page "http://flintlib.org/")
+ (home-page "https://flintlib.org/")
(properties
'((release-monitoring-url . "http://flintlib.org/downloads.html")))))
@@ -768,7 +770,7 @@ a C program.")
;; different machine.
"ax_cv_c_flags__mtune_native=no")))
(native-inputs (list perl))
- (home-page "http://fftw.org")
+ (home-page "https://fftw.org")
(synopsis "Computing the discrete Fourier transform")
(description
"FFTW is a C subroutine library for computing the discrete Fourier
@@ -1257,7 +1259,7 @@ xtensor provides:
(define-public gap
(package
(name "gap")
- (version "4.11.1")
+ (version "4.12.2")
(source
(origin
(method url-fetch)
@@ -1267,14 +1269,13 @@ xtensor provides:
version
".tar.gz"))
(sha256
- (base32 "01535s81h254zcs84zi95xqmhvvn6fn9qss8761myxc2gpdcadb6"))
+ (base32 "1a47slldnjq6mib69k3g8lqw6nyxdrwdd3gfjhj252mpbrs0h8v7"))
(modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
(snippet
'(begin
- ;; Delete the external gmp and zlib libraries
- ;; and a subdirectory not needed for our build.
+ ;; Delete bundled external libraries.
(for-each delete-file-recursively
- '("extern" "hpcgap"))
+ '("extern" "hpcgap/extern"))
;; Delete a failing test.
;; FIXME: This might be fixed in the next release, see
;; https://github.com/gap-system/gap/issues/3292
@@ -1288,47 +1289,69 @@ xtensor provides:
(scandir ".")
'("." ".."
;; Necessary packages.
- "GAPDoc-"
- "primgrp-"
- "SmallGrp-" ; artistic2.0
- "transgrp" ; artistic2.0 for data,
- ; gpl2 or gpl3 for code
+ "gapdoc"
+ "primgrp"
+ "smallgrp" ; artistic2.0
+ "transgrp" ; artistic2.0 for data,
+ ; gpl2 or gpl3 for code
;; Optional packages.
- "alnuth-"
- "AutoDoc-"
- "automata-"
- "autpgrp-"
- "crime-"
- "crisp-" ; bsd-2
- "ctbllib" ; gpl3+
+ "4ti2interface"
+ "alnuth"
+ "autodoc"
+ "automata"
+ "autpgrp"
+ "cap"
+ "crime"
+ "crisp" ; bsd-2
+ "ctbllib" ; gpl3+
"datastructures"
- "FactInt-"
+ "examplesforhomalg"
+ "factint"
"fga"
"format"
- "groupoids-"
+ "gauss"
+ "gaussforhomalg"
+ "generalizedmorphismsforcap"
+ "gradedmodules"
+ "gradedringforhomalg"
+ "groupoids"
"guarana"
- "idrel-"
- "images-" ; mpl2.0
- "IntPic-"
- "io-" ; gpl3+
- "irredsol-" ; bsd-2
- "laguna-"
- "liering-"
- "MapClass-"
- "nilmat-"
- "NumericalSgps-"
- "OpenMath-"
- "orb-" ; gpl3+
- "polenta-"
- "polycyclic-"
- "radiroot-"
- "repsn-"
- "resclasses-"
+ "homalg"
+ "homalgtocas"
+ "idrel"
+ "images" ; mpl2.0
+ "intpic"
+ "io" ; gpl3+
+ "ioforhomalg"
+ "irredsol" ; bsd-2
+ "laguna"
+ "liering"
+ "linearalgebraforcap"
+ "localizeringforhomalg"
+ "mapclass"
+ "matricesforhomalg"
+ "modulepresentationsforcap"
+ "modules"
+ "monoidalcategories"
+ "nconvex"
+ "nilmat"
+ "numericalsgps"
+ "openmath"
+ "orb" ; gpl3+
+ "polenta"
+ "polycyclic"
+ "radiroot"
+ "recog" ; gpl3+
+ "repsn"
+ "resclasses"
+ "ringsforhomalg"
+ "sco"
"simpcomp"
- "sophus-"
- "tomlib-"
- "unipot-"
- "utils-"))))))))
+ "sophus"
+ "tomlib"
+ "toolsforhomalg"
+ "unipot"
+ "utils"))))))))
(build-system gnu-build-system)
(inputs
(list gmp readline zlib))
@@ -1351,41 +1374,10 @@ xtensor provides:
(lambda _
(with-directory-excursion "doc"
(invoke "./make_doc"))))
- (replace 'install
+ (add-after 'install 'install-packages
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
- (bin (string-append out "/bin"))
- (prog (string-append bin "/gap"))
- (prog-real (string-append bin "/.gap-real"))
(share (string-append out "/share/gap")))
- ;; Install only the gap binary; the gac compiler is left
- ;; for maybe later. "Wrap" it in a shell script that calls
- ;; the binary with the correct parameter.
- ;; The make target install-bin is supposed to do that, but
- ;; is not currently working.
- (mkdir-p bin)
- (copy-file "gap" prog-real)
- (call-with-output-file prog
- (lambda (port)
- (format port
- "#!~a~%exec ~a -l ~a \"$@\"~%"
- (which "bash")
- prog-real
- share)))
- (chmod prog #o755)
- ;; Install the headers and library, which are needed by Sage.
- (invoke "make" "install-headers")
- (install-file "gen/config.h"
- (string-append out "/include/gap"))
- (invoke "make" "install-libgap")
- ;; Remove information on the build directory from sysinfo.gap.
- (substitute* "sysinfo.gap"
- (("GAP_BIN_DIR=\".*\"") "GAP_BIN_DIR=\"\"")
- (("GAP_LIB_DIR=\".*\"") "GAP_LIB_DIR=\"\"")
- (("GAP_CPPFLAGS=\".*\"") "GAP_CPPFLAGS=\"\""))
- (invoke "make" "install-gaproot")
- ;; Copy the directory of compiled packages; the make target
- ;; install-pkg is currently empty.
(copy-recursively "pkg" (string-append share "/pkg"))))))))
(home-page "https://www.gap-system.org/")
(synopsis
@@ -1776,7 +1768,7 @@ no more than about 20 bits long).")
"0n8gj5iylfagdbaqirpykb01a9difsy4zl6qq55f0ghvazxqdvmn"))))
(properties `((upstream-name . "dtt")))
(build-system r-build-system)
- (home-page "http://www.r-project.org")
+ (home-page "https://www.r-project.org")
(synopsis "Discrete Trigonometric Transforms")
(description
"This package provides functions for 1D and 2D Discrete Cosine Transform
@@ -1828,3 +1820,81 @@ mathematical floating-point libraries (libm). Amongst other features,
it offers a certified infinity norm, an automatic polynomial
implementer, and a fast Remez algorithm.")
(license license:cecill-c)))
+
+(define-public form
+ ;; using this commit as it removes some invalid/ambiguous license info
+ (let ((commit "e7c52d3b07abe21f21718f5e70ee138e856f15ac")
+ (revision "0"))
+ (package
+ (name "form")
+ (version (git-version "4.3.0" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/vermaseren/form")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "15pjpn5s8d3sva18syhyymh5v1dijchk0xkf6d0m7cl2sj3qxxxq"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:configure-flags #~'("--enable-native=no")
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-src
+ (lambda _
+ (substitute* "check/examples.frm"
+ ;; skip test that causes memory leak and fails
+ (("#pend_if valgrind\\?")
+ "#pend_if 0"))
+ (substitute* "sources/extcmd.c"
+ (("/bin/sh")
+ (string-append
+ #$(this-package-input "bash-minimal")
+ "/bin/sh")))))
+ (add-after 'build 'build-doxygen
+ (lambda _
+ (with-directory-excursion "doc/doxygen"
+ (invoke "make" "html"))))
+ (add-after 'install 'install-docs
+ (lambda _
+ (let ((doc (string-append
+ #$output "/share/doc/" #$name "-"
+ #$version "/html")))
+ (mkdir-p doc)
+ (copy-recursively "doc/doxygen/html" doc)))))))
+ (native-inputs (list autoconf automake doxygen ruby))
+ (inputs (list bash-minimal))
+ (home-page "https://www.nikhef.nl/~form/")
+ (synopsis "Symbolic manipulation system for very big expressions")
+ (description
+ "FORM is a symbolic manipulation system. It reads symbolic expressions
+from files and executes symbolic/algebraic transformations upon them. The
+answers are returned in a textual mathematical representation. The size of
+the considered expressions in FORM is only limited by the available disk space
+and not by the available RAM.")
+ ;; XXX: Ignore this CVE to work around a name clash with the unrelated
+ ;; "neos/forms" package.
+ (properties '((lint-hidden-cve . ("CVE-2021-32697"))))
+ ;; x86_64 only due to test failures on other platforms.
+ ;; Developers say other platforms are not "tier 1" supported:
+ ;; https://github.com/vermaseren/form/issues/426
+ (supported-systems '("x86_64-linux"))
+ (license license:gpl3+))))
+
+(define-public parform
+ (package
+ (inherit form)
+ (name "parform")
+ (arguments
+ (substitute-keyword-arguments (package-arguments form)
+ ((#:configure-flags flags)
+ #~(cons* "--enable-parform=yes" #$flags))
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-before 'check 'mpi-setup
+ #$%openmpi-setup)))))
+ (inputs (list bash-minimal openmpi))
+ (description (string-append (package-description form)
+ " This package also includes
+@code{parform}, a version of FORM parallelized using OpenMPI."))))