;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Andreas Enge <andreas@enge.fr>
;;; Copyright © 2013, 2015, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2016, 2017, 2018, 2019 Nicolas Goaziou <mail@nicolasgoaziou.fr>
+;;; Copyright © 2016, 2017, 2018, 2019, 2020 Nicolas Goaziou <mail@nicolasgoaziou.fr>
;;; Copyright © 2014, 2018 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
-;;; Copyright © 2017, 2018, 2019 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;; Copyright © 2017, 2019 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2020 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;;
;;; This file is part of GNU Guix.
;;;
implemented. On the other hand, these comprise asymptotically fast
multiplication routines such as Toom–Cook and the FFT.")
(license license:lgpl3+)
- (home-page "http://mpfrcx.multiprecision.org/")))
+ (home-page "http://www.multiprecision.org/mpfrcx/")))
(define-public gf2x
(package
that can be called from within a C program and of executable command
line applications.")
(license license:gpl3+)
- (home-page "http://cm.multiprecision.org/")))
+ (home-page "http://www.multiprecision.org/cm/")))
(define-public fplll
(package
- (name "fplll")
- (version "4.0.4")
- (source (origin
- (method url-fetch)
- (uri (string-append
- "http://perso.ens-lyon.fr/damien.stehle/fplll/libfplll-"
- version ".tar.gz"))
- (sha256 (base32
- "1cbiby7ykis4z84swclpysrljmqhfcllpkcbll1m08rzskgb1a6b"))))
- (build-system gnu-build-system)
- (inputs `(("gmp" ,gmp)
- ("mpfr" ,mpfr)))
- (synopsis "Library for LLL-reduction of euclidean lattices")
- (description
- "fplll LLL-reduces euclidean lattices. Since version 3, it can also
-solve the shortest vector problem.")
- (license license:lgpl2.1+)
- (home-page "http://perso.ens-lyon.fr/damien.stehle/fplll/")))
+ (name "fplll")
+ (version "5.2.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fplll/fplll.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "015qmrd7nfaysbv1hbwiprz9g6hnww1y1z1xw8f43ysb7k1b5nbg"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (inputs
+ `(("gmp" ,gmp)
+ ("mpfr" ,mpfr)))
+ (home-page "https://github.com/fplll/fplll")
+ (synopsis "Library for LLL-reduction of euclidean lattices")
+ (description
+ "fplll contains implementations of several lattice algorithms.
+The implementation relies on floating-point orthogonalization, and LLL
+is central to the code, hence the name.
+
+It includes implementations of floating-point LLL reduction
+algorithms, offering different speed/guarantees ratios. It contains
+a @emph{wrapper} choosing the estimated best sequence of variants in
+order to provide a guaranteed output as fast as possible. In the case
+of the wrapper, the succession of variants is oblivious to the user.
+
+It includes an implementation of the BKZ reduction algorithm,
+including the BKZ-2.0 improvements (extreme enumeration
+pruning, pre-processing of blocks, early termination). Additionally,
+Slide reduction and self dual BKZ are supported.
+
+It also includes a floating-point implementation of the
+Kannan-Fincke-Pohst algorithm that finds a shortest non-zero lattice
+vector. For the same task, the GaussSieve algorithm is also available
+in fplll. Finally, it contains a variant of the enumeration algorithm
+that computes a lattice vector closest to a given vector belonging to
+the real span of the lattice.")
+ (license license:lgpl2.1+)))
+
+(define-public python-fpylll
+ (package
+ (name "python-fpylll")
+ (version "0.4.1")
+ (source
+ (origin
+ ;; Pypi contains and older release, so we use a tagged release from
+ ;; Github instead.
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/fplll/fpylll.git")
+ (commit (string-append version "dev"))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "01x2sqdv0sbjj4g4waj0hj4rcn4bq7h17442xaqwbznym9azmn9w"))))
+ (build-system python-build-system)
+ (inputs
+ `(("fplll" ,fplll)
+ ("gmp" ,gmp)
+ ("mpfr" ,mpfr)
+ ("pari-gp" ,pari-gp)))
+ (propagated-inputs
+ `(("cysignals" ,python-cysignals)
+ ("cython" ,python-cython)
+ ("flake8" ,python-flake8)
+ ("numpy" ,python-numpy)
+ ("pytest" ,python-pytest)))
+ (home-page "https://github.com/fplll/fpylll")
+ (synopsis "Python interface for fplll")
+ (description "fpylll is a Python wrapper for fplll.")
+ (license license:gpl2+)))
(define-public pari-gp
(package
(name "pari-gp")
- (version "2.11.1")
+ (version "2.11.2")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "1jfax92jpydjd02fwl30r6b8kfzqqd6sm4yx94gidyz9lqjb7a94"))))
+ "0fck8ssmirl8fy7s4mspgrxjs5sag76xbshqlqzkcl3kqyrk4raa"))))
(build-system gnu-build-system)
(native-inputs
`(("texlive" ,(texlive-union
- (list texlive-fonts-amsfonts
- texlive-latex-amsfonts)))))
+ (list texlive-amsfonts)))))
(inputs `(("gmp" ,gmp)
("libx11" ,libx11)
("perl" ,perl)
(define-public gp2c
(package
(name "gp2c")
- (version "0.0.11pl1")
+ (version "0.0.11pl2")
(source (origin
(method url-fetch)
(uri (string-append
version ".tar.gz"))
(sha256
(base32
- "1c6f6vmncw032kfzrfyr8bynw6yd3faxpy2285r009fmr0zxfs5s"))))
+ "0wqsf05wgkqvmmsx7jinvzdqav6rl56sr8haibgs31nzz4x9xz9g"))))
(build-system gnu-build-system)
(native-inputs `(("perl" ,perl)))
(inputs `(("pari-gp" ,pari-gp)))
(license license:gpl2)
(home-page "https://pari.math.u-bordeaux.fr/")))
+(define fplll-4-cmh
+ (package
+ (inherit fplll)
+ (name "fplll")
+ (version "4.0.4")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://perso.ens-lyon.fr/damien.stehle/fplll/libfplll-"
+ version ".tar.gz"))
+ (sha256
+ (base32 "1cbiby7ykis4z84swclpysrljmqhfcllpkcbll1m08rzskgb1a6b"))))))
+
(define-public cmh
(package
(name "cmh")
("mpfr" ,mpfr)
("mpc" ,mpc)
("mpfrcx" ,mpfrcx)
- ("fplll" ,fplll)
+ ("fplll" ,fplll-4-cmh)
("pari-gp" ,pari-gp)))
(synopsis "Igusa class polynomial computations")
(description
(define-public giac
(package
(name "giac")
- (version "1.5.0-57")
- (source (origin
- (method url-fetch)
- ;; "~parisse/giac" is not used because the maintainer regularly
- ;; overwrites the release tarball there, introducing a checksum
- ;; mismatch every time. See
- ;; <https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/README>
- (uri (string-append "https://www-fourier.ujf-grenoble.fr/"
- "~parisse/debian/dists/stable/main/"
- "source/giac_" version ".tar.gz"))
- (sha256
- (base32
- "08c93knsisbk9dkyyrignw0wvqbr1sa5czlvk5l307ahxbbmqncf"))))
+ (version "1.5.0-87")
+ (source
+ (origin
+ (method url-fetch)
+ ;; "~parisse/giac" is not used because the maintainer regularly
+ ;; overwrites the release tarball there, introducing a checksum
+ ;; mismatch every time. See
+ ;; <https://www-fourier.ujf-grenoble.fr/~parisse/debian/dists/stable/main/source/README>
+ (uri (string-append "https://www-fourier.ujf-grenoble.fr/"
+ "~parisse/debian/dists/stable/main/source/"
+ "giac_" version ".tar.gz"))
+ (sha256
+ (base32 "1d0h1yb7qvh9x7wwv9yrzmcp712f49w1iljkxp4y6g9pzsmg1mmv"))))
(build-system gnu-build-system)
(arguments
`(#:modules ((ice-9 ftw)
(define-public arb
(package
(name "arb")
- (version "2.16.0")
+ (version "2.17.0")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0478671wfwy3gl26sbxh1jq1ih36z4k72waa8y2y2lvn649gb7cd"))))
+ "05lpy3hkl5f8ik19aw40cqydrb932xaf2n8hbq9ib5dnk7f010p1"))))
(build-system gnu-build-system)
(propagated-inputs
`(("flint" ,flint))) ; flint.h is included by arf.h
(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
+ ;; Do not pass "--enable-fast-install", which makes the
+ ;; homebrew configure process fail.
(invoke "./configure"
(string-append "--prefix=" out)
(string-append "--with-flint=" flint)
polynomials, power series, matrices and special functions over the
real and complex numbers, with automatic, rigorous error control.")
(license license:lgpl2.1+)
- (home-page "http://fredrikj.net/arb/")))
+ (home-page "http://arblib.org")))
(define-public python-flint
(package
(version "1.6")
(source (origin
(method url-fetch)
- (uri (string-append "http://search.maven.org/remotecontent?"
- "filepath=pl/edu/icm/JLargeArrays/"
+ (uri (string-append "https://repo1.maven.org/maven2/"
+ "pl/edu/icm/JLargeArrays/"
version "/JLargeArrays-" version
"-sources.jar"))
(file-name (string-append name "-" version ".jar"))
(version "3.1")
(source (origin
(method url-fetch)
- (uri (string-append "http://search.maven.org/remotecontent?"
- "filepath=com/github/wendykierp/JTransforms/"
+ (uri (string-append "https://repo1.maven.org/maven2/"
+ "com/github/wendykierp/JTransforms/"
version "/JTransforms-" version "-sources.jar"))
(sha256
(base32
(define-public eigen
(package
(name "eigen")
- (version "3.3.5")
+ (version "3.3.7")
(source (origin
(method url-fetch)
(uri (string-append "https://bitbucket.org/eigen/eigen/get/"
version ".tar.bz2"))
(sha256
(base32
- "1qh3yrwn78ms5yhwbpl5wvblk4gbz02cacdygxylr7i9xbrvylkk"))
+ "1km3fyfzyqfdvmnl79drps3fjwnz3zbh0c7l34mfbqyvvs8cy4wz"))
(file-name (string-append name "-" version ".tar.bz2"))
+ (patches (search-patches "eigen-stabilise-sparseqr-test.patch"))
(modules '((guix build utils)))
(snippet
;; There are 3 test failures in the "unsupported" directory,
(define-public xtensor
(package
(name "xtensor")
- (version "0.20.5")
+ (version "0.20.10")
(source (origin
(method git-fetch)
(uri (git-reference
(commit version)))
(sha256
(base32
- "0kkc4ar7p2d94jnclmrh46dwv7ldy9lx630vm9gci3pp4hnhbj9f"))
+ "1fmv2hpx610xwhxrndfsfvlbqfyk4l3gi5q5d7pa9m82kblxjj9l"))
(file-name (git-file-name name version))))
(build-system cmake-build-system)
(native-inputs
`(#:configure-flags
'("-DBUILD_TESTS=ON")
#:test-target "xtest"))
- (home-page "http://quantstack.net/xtensor")
+ (home-page "https://quantstack.net/xtensor")
(synopsis "C++ tensors with broadcasting and lazy computing")
(description "xtensor is a C++ library meant for numerical analysis with
multi-dimensional array expressions.
(define-public gap
(package
(name "gap")
- (version "4.10.1")
+ (version "4.10.2")
(source
(origin
(method url-fetch)
version
".tar.bz2"))
(sha256
- (base32
- "136s0zvhcw41fshj5zgsrjcy2kd58cdh2m3ddp5rdizi4rx54f10"))
+ (base32 "0cp6ddk0469zzv1m1vair6gm27ic6c5m77ri8rn0znq3gaps6x94"))
(modules '((guix build utils) (ice-9 ftw) (srfi srfi-1)))
(snippet
'(begin
(license license:gpl2+)
(home-page "https://bitbucket.org/malb/m4ri/")))
-(define-public ratpoints
+(define-public symmetrica
(package
- (name "ratpoints")
- (version "2.1.3")
+ (name "symmetrica")
+ (version "2.0")
(source (origin
- (method url-fetch)
- (uri (string-append
- "http://www.mathe2.uni-bayreuth.de/stoll/programs/"
- "ratpoints-" version ".tar.gz"))
+ (method url-fetch/tarbomb)
+ (uri (let ((v (string-join (string-split version #\.) "_")))
+ (string-append "http://www.algorithm.uni-bayreuth.de/"
+ "en/research/SYMMETRICA/"
+ "SYM" v "_tar.gz")))
(sha256
(base32
- "0zhad84sfds7izyksbqjmwpfw4rvyqk63yzdjd3ysd32zss5bgf4"))
- (patches
- ;; Taken from
- ;; <https://git.sagemath.org/sage.git/plain/build/pkgs/ratpoints/patches/>
- (search-patches "ratpoints-sturm_and_rp_private.patch"))))
+ "1qhfrbd5ybb0sinl9pad64rscr08qvlfzrzmi4p4hk61xn6phlmz"))
+ ;; Taken from <https://git.sagemath.org/sage.git/plain/build/pkgs/symmetrica/patches/>
+ (patches (search-patches "symmetrica-bruch.patch"
+ "symmetrica-int32.patch"
+ "symmetrica-return_values.patch"
+ "symmetrica-sort_sum_rename.patch"))))
(build-system gnu-build-system)
(arguments
- `(#:test-target "test"
- #:make-flags
- (list (string-append "INSTALL_DIR=" (assoc-ref %outputs "out")))
+ `(#:tests? #f ;no test
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'fix-makefile
+ (lambda _
+ (substitute* "makefile"
+ (("cc -c") "gcc -c -fPIC"))
+ #t))
+ (add-after 'fix-makefile 'turn-off-banner
+ (lambda _
+ (substitute* "de.c"
+ (("(INT no_banner = )FALSE" _ pre) (string-append pre "TRUE")))
+ #t))
(delete 'configure) ;no configure script
- (add-before 'install 'create-install-directories
+ (replace 'install ;no install target
(lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (mkdir-p out)
- (with-directory-excursion out
- (for-each (lambda (d) (mkdir-p d))
- '("bin" "include" "lib"))))
+ (let* ((out (assoc-ref outputs "out"))
+ (lib (string-append out "/lib"))
+ (inc (string-append out "/include/symmetrica"))
+ (doc (string-append out "/share/doc/symmetrica-" ,version))
+ (static "libsymmetrica.a"))
+ ;; Build static library.
+ (apply invoke "ar" "crs" static (find-files "." "\\.o$"))
+ (invoke "ranlib" static)
+ ;; Install static library and headers.
+ (for-each (lambda (f) (install-file f inc))
+ (find-files "." "\\.h$"))
+ (install-file "libsymmetrica.a" lib)
+ ;; Install documentation.
+ (for-each (lambda (f) (install-file f doc))
+ (find-files "." "\\.doc$"))
+ #t))))))
+ (home-page "http://www.algorithm.uni-bayreuth.de/en/research/SYMMETRICA/")
+ (synopsis "Combinatoric C Library")
+ (description "Symmetrica is a library for combinatorics. It has support
+for the representation theory of the symmetric group and related groups,
+combinatorics of tableaux, symmetric functions and polynomials, Schubert
+polynomials, and the representation theory of Hecke algebras of type A_n.")
+ (license license:public-domain)))
+
+(define-public m4rie
+ (package
+ (name "m4rie")
+ (version "20150908")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://bitbucket.org/malb/m4rie")
+ (commit (string-append "release-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0r8lv46qx5mkz5kp3ay2jnsp0mbhlqr5z2z220wdk73wdshcznss"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (inputs
+ `(("m4ri" ,m4ri)))
+ (synopsis "Arithmetic of dense matrices over F_{2^e}")
+ (description "M4RI is a library for fast arithmetic with dense matrices
+over finite fields of characteristic 2. So it extends the functionality
+of M4RI from F_2 to F_{2^e}.")
+ (license license:gpl2+)
+ (home-page "https://bitbucket.org/malb/m4rie/")))
+
+(define-public eclib
+ (package
+ (name "eclib")
+ (version "20190909")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/JohnCremona/eclib/")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1gw27lqc3f525n8qdcmr2nyn16y9g10z9f6dnmckyyxcdzvhq35n"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (inputs
+ `(("gmp" ,gmp)
+ ("ntl" ,ntl)
+ ("pari-gp" ,pari-gp)))
+ (synopsis "Ranks of elliptic curves and modular symbols")
+ (description "The eclib package includes mwrank (for 2-descent on
+elliptic curves over Q) and modular symbol code; it has been written by
+John Cremona to compute his elliptic curve database.")
+ (license license:gpl2+)
+ (home-page (string-append "http://homepages.warwick.ac.uk/staff/"
+ "J.E.Cremona/mwrank/index.html"))))
+
+(define-public lrcalc
+ (package
+ (name "lrcalc")
+ (version "1.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://bitbucket.org/asbuch/lrcalc")
+ (commit (string-append "lrcalc-" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1c12d04jdyxkkav4ak8d1aqrv594gzihwhpxvc6p9js0ry1fahss"))
+ (patches (search-patches "lrcalc-includes.patch"))))
+ (build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'build 'fix-permission
+ (lambda _
+ (chmod "lrcalc.maple.src" #o644)
#t)))))
+ (synopsis "Littlewood-Richardson calculator in algebraic combinatorics")
+ (description "The Littlewood-Richardson Calculator (lrcalc) is a
+program designed to compute Littlewood-Richardson coefficients. It computes
+single Littlewood-Richardson coefficients, products of Schur functions, or
+skew Schur functions. In addition it computes products in the small quantum
+cohomology ring of a Grassmann variety. The software package also includes
+a program that performs fast computation of the more general multiplicative
+structure constants of Schubert polynomials.")
+ (license license:gpl2+)
+ (home-page "https://sites.math.rutgers.edu/~asbuch/lrcalc/")))
+
+(define-public iml
+ (package
+ (name "iml")
+ (version "1.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "http://www.cs.uwaterloo.ca/~astorjoh/iml-"
+ version ".tar.bz2"))
+ (sha256
+ (base32
+ "0akwhhz9b40bz6lrfxpamp7r7wkk48p455qbn04mfnl9a1l6db8x"))))
+ (build-system gnu-build-system)
(inputs
- `(("gmp" ,gmp)))
- (home-page "http://www.mathe2.uni-bayreuth.de/stoll/programs/")
- (synopsis "Find rational points on hyperelliptic curves")
- (description "Ratpoints tries to find all rational points within
-a given height bound on a hyperelliptic curve in a very efficient way,
-by using an optimized quadratic sieve algorithm.")
- (license license:gpl2+)))
+ `(("gmp", gmp)
+ ("cblas" ,openblas))) ; or any other BLAS library; the documentation
+ ; mentions ATLAS in particular
+ (arguments
+ `(#:configure-flags
+ (list
+ "--enable-shared"
+ (string-append "--with-gmp-include="
+ (assoc-ref %build-inputs "gmp") "/include")
+ (string-append "--with-gmp-lib="
+ (assoc-ref %build-inputs "gmp") "/lib")
+ "--with-cblas=-lopenblas"
+ (string-append "--with-cblas-include="
+ (assoc-ref %build-inputs "cblas") "/include")
+ (string-append "--with-cblas-lib="
+ (assoc-ref %build-inputs "cblas") "/lib"))))
+ (home-page "https://cs.uwaterloo.ca/~astorjoh/iml.html")
+ (synopsis
+ "Solver for systems of linear equations over the integers")
+ (description
+ "IML is a C library implementing algorithms for computing exact
+solutions to dense systems of linear equations over the integers.
+Currently, IML provides the following functionality:
+
+@itemize
+@item Nonsingular rational system solving:
+compute the unique rational solution X to the system AX=B, where A and B
+are integer matrices, A nonsingular.
+@item Compute the right nullspace or kernel of an integer matrix.
+@item Certified linear system solving:
+compute a minimal denominator solution x to a system Ax=b, where b is an
+integer vector and A is an integer matrix with arbitrary shape and
+rank profile.
+@end itemize
+
+In addition, IML provides some low level routines for a variety of mod p
+matrix operations: computing the row-echelon form, determinant, rank
+profile, and inverse of a mod p matrix. These mod p routines are not
+general purpose; they require that p satisfy some preconditions based on
+the dimension of the input matrix (usually p should be prime and should be
+no more than about 20 bits long).")
+ (license license:bsd-3)))