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.scm156
1 files changed, 69 insertions, 87 deletions
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index f319e260e9..9335cd6e18 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -1,7 +1,7 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2022, 2023, 2024 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015, 2017, 2018, 2021 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016-2023 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016-2024 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019, 2021, 2023 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017, 2020-2022 Efraim Flashner <efraim@flashner.co.il>
@@ -12,9 +12,10 @@
;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2020 Jakub Kądziołka <kuba@kadziolka.net>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
-;;; Copyright © 2020, 2021, 2023 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021, 2023, 2024 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2021 Lars-Dominik Braun <ldb@leibniz-psychology.org>
;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2023 Mehmet Tekman <mtekman89@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -133,25 +134,26 @@ greatest common divisor operations.")
(define-public cm
(package
(name "cm")
- (version "0.4.2")
+ (version "0.4.3")
(source (origin
(method url-fetch)
(uri (string-append
- "http://www.multiprecision.org/downloads/cm-"
+ "https://www.multiprecision.org/downloads/cm-"
version ".tar.gz"))
(sha256
(base32
- "1c6m00wiw3rs5f0lq6c80rdr3dzklsvh69l8w3s7bj2r6yha6qbw"))))
+ "01dha0hl0daappjiydpk4ngl9nxkxli6a48jp6d7v85yjjykac5j"))))
(build-system gnu-build-system)
(propagated-inputs
- (list mpfrcx zlib)) ; Header files included from cm_common.h.
+ (list mpfrcx zlib)) ; Header files included from lib/cm.h.
(inputs
- (list pari-gp))
+ (list flint pari-gp))
(synopsis "CM constructions for elliptic curves")
(description
"The CM software implements the construction of ring class fields of
imaginary quadratic number fields and of elliptic curves with complex
-multiplication via floating point approximations. It consists of libraries
+multiplication via floating point approximations, and the elliptic curve
+primality proving algorithm (ECPP). It consists of libraries
that can be called from within a C program and of executable command
line applications.")
(license license:gpl3+)
@@ -295,6 +297,34 @@ GP2C, the GP to C compiler, translates GP scripts to PARI programs.")
(license license:gpl2)
(home-page "https://pari.math.u-bordeaux.fr/")))
+(define-public paritwine
+ (package
+ (name "paritwine")
+ (version "0.2.0")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://www.multiprecision.org/downloads/" name
+ "-" version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "15m5jxmhx5zivk1k9wxpmzs8kqva3kvgxizdrkrmmp1qycn85n23"))))
+ (build-system gnu-build-system)
+ (propagated-inputs (list pari-gp
+ gmp
+ mpfr
+ mpc
+ cmh
+ flint)) ; referenced in src/paritwine.h
+ (synopsis "Glue library between PARI/GP and other mathematics libraries")
+ (description
+ "PariTwine is a glue library between the system for computer algebra
+and number theory PARI/GP and a number of other mathematics libraries,
+currently GMP, GNU MPFR, GNU MPC, FLINT and CMH.")
+ (license license:gpl2+)
+ (home-page "https://www.multiprecision.org/paritwine/index.html")))
+
(define-public cmh
(package
(name "cmh")
@@ -328,7 +358,7 @@ precision.")
(define-public giac
(package
(name "giac")
- (version "1.9.0-45")
+ (version "1.9.0-93")
(source
(origin
(method url-fetch)
@@ -340,7 +370,7 @@ precision.")
"~parisse/debian/dists/stable/main/source/"
"giac_" version ".tar.gz"))
(sha256
- (base32 "0yxsl1vvwcbpwcmzp9v9rfm9djmapab0nhb3gs7zmjv5yvzbgj4d"))))
+ (base32 "11acbgd264vi9r3gzx8js8x2piavhybr97iyrh027qvxlbsdsgqm"))))
(build-system gnu-build-system)
(arguments
(list
@@ -417,41 +447,20 @@ or text interfaces) or as a C++ library.")
(define-public flint
(package
(name "flint")
- (version "2.9.0")
+ (version "3.0.1")
(source
(origin
(method url-fetch)
- (uri (string-append "http://flintlib.org/flint-" version ".tar.gz"))
+ (uri (string-append "https://flintlib.org/flint-" version ".tar.gz"))
(sha256
- (base32 "0sp79ixaawjzna79afrlwlx9hg55jxil03f1wq435j9k23ar1h1g"))))
+ (base32 "1d4lawfvmjd4n7rp4z9xkwwjjbrjhkmxnxw1xf0ki1isa001lcbv"))))
(build-system gnu-build-system)
(inputs
(list ntl))
(propagated-inputs
(list gmp mpfr)) ; header files from both are included by flint/arith.h
(arguments
- `(#:parallel-tests? #f ; seems to be necessary on arm
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'newer-c++
- (lambda _
- (substitute* "configure"
- (("-ansi") ""))
- #t))
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (gmp (assoc-ref inputs "gmp"))
- (mpfr (assoc-ref inputs "mpfr"))
- (ntl (assoc-ref inputs "ntl")))
- ;; Do not pass "--enable-fast-install", which makes the
- ;; homebrew configure process fail.
- (invoke "./configure"
- (string-append "--prefix=" out)
- (string-append "--with-gmp=" gmp)
- (string-append "--with-mpfr=" mpfr)
- (string-append "--with-ntl=" ntl))
- #t))))))
+ `(#:parallel-tests? #f)) ; seems to be necessary on arm
(synopsis "Fast library for number theory")
(description
"FLINT is a C library for number theory. It supports arithmetic
@@ -470,52 +479,12 @@ fast arithmetic.")
'((release-monitoring-url . "http://flintlib.org/downloads.html")))))
(define-public arb
- (package
- (name "arb")
- (version "2.23.0")
- (source (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/fredrik-johansson/arb")
- (commit version)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "1m9vskyf857gbm0cbh3z8c8m6cqkqa765wb9hqmsv7yzfmklzpvn"))))
- (build-system gnu-build-system)
- (propagated-inputs
- (list flint)) ; flint.h is included by arf.h
- (inputs
- (list gmp mpfr))
- (arguments
- `(#:phases
- (modify-phases %standard-phases
- (replace 'configure
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (flint (assoc-ref inputs "flint"))
- (gmp (assoc-ref inputs "gmp"))
- (mpfr (assoc-ref inputs "mpfr")))
- ;; Do not pass "--enable-fast-install", which makes the
- ;; homebrew configure process fail.
- (invoke "./configure"
- (string-append "--prefix=" out)
- (string-append "--with-flint=" flint)
- (string-append "--with-gmp=" gmp)
- (string-append "--with-mpfr=" mpfr))))))))
- (home-page "https://arblib.org")
- (synopsis "Arbitrary precision floating-point ball arithmetic")
- (description
- "Arb is a C library for arbitrary-precision floating-point ball
-arithmetic. It supports efficient high-precision computation with
-polynomials, power series, matrices and special functions over the
-real and complex numbers, with automatic, rigorous error control.")
- (license license:lgpl2.1+)))
+ (deprecated-package "arb" flint))
(define-public python-flint
(package
(name "python-flint")
- (version "0.3.0")
+ (version "0.5.0")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -524,15 +493,14 @@ real and complex numbers, with automatic, rigorous error control.")
(file-name (git-file-name name version))
(sha256
(base32
- "1v0anazbj1cfi68nl2j6dbd31kgkc1563xmr0zk5xk3xj78569pw"))
- (patches (search-patches "python-flint-includes.patch"))))
+ "10370kqik6q6vdqrqv3gbznsyaxbgqb3rbrff4alpw0sqr5s07c7"))))
(build-system python-build-system)
(native-inputs
- (list python-cython))
+ (list python-cython-3))
(propagated-inputs
(list python-numpy))
(inputs
- (list arb flint))
+ (list flint))
(synopsis "Python module wrapping ARB and FLINT")
(description
"Python-flint is a Python extension module wrapping FLINT
@@ -592,12 +560,12 @@ matrices, and polynomials over the integers and over finite fields.")
(define-public singular
(package
(name "singular")
- (version "4.2.1")
+ (version "4.3.2p10")
(source
(origin
(method url-fetch)
(uri
- (string-append "http://www.mathematik.uni-kl.de/ftp/pub/Math/"
+ (string-append "https://www.singular.uni-kl.de/ftp/pub/Math/"
"Singular/SOURCES/"
(string-join
(string-split
@@ -607,7 +575,7 @@ matrices, and polynomials over the integers and over finite fields.")
#\.) "-")
"/singular-" version ".tar.gz"))
(sha256 (base32
- "13gy1gdng8zijwlr1fn5sixw53z0zf9czzlg0vh1dcc59zw6v998"))))
+ "1a2j2pkp73rb1xdd5623gkk1snwd85yimssnz86y0m79zvyckhi8"))))
(build-system gnu-build-system)
(native-inputs
(list doxygen graphviz perl))
@@ -778,6 +746,20 @@ both real and complex data (as well as of even/odd data---i.e. the discrete
cosine/ sine transforms or DCT/DST).")
(license license:gpl2+)))
+(define-public fftw-cmake
+ (package/inherit fftw
+ ;; Cmake compiling is experimental since 2017, and it is not clear if this
+ ;; build has the same target-specific optimizations as the fftw gnu build.
+ ;; See: https://fftw.org/release-notes.html
+ (name "fftw-cmake")
+ (build-system cmake-build-system)
+ (arguments (default-keyword-arguments '()
+ '()))
+ (description (string-append (package-description fftw)
+ " This CMake build offers the file
+FFTW3LibraryDepends.cmake required by some dependent packages, absent in the
+gnu build version."))))
+
(define-public fftwf
(package/inherit fftw
(name "fftwf")
@@ -936,7 +918,7 @@ algorithms from the FORTRAN library MINPACK.")
(define-public symengine
(package
(name "symengine")
- (version "0.11.1")
+ (version "0.11.2")
(source
(origin
(method git-fetch)
@@ -945,7 +927,7 @@ algorithms from the FORTRAN library MINPACK.")
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "105rnnf33vx2n03wwv4962az7bfzgsn1gx6a6wyakmyrfdkb07jc"))))
+ (base32 "0j6vd72hjj9fnsw5iiykmkrw8vyjcyyycgib2zxlmlzi6sj4618b"))))
(build-system cmake-build-system)
(arguments
'(#:configure-flags