diff options
author | Andreas Enge <andreas@enge.fr> | 2019-06-20 17:36:39 +0200 |
---|---|---|
committer | Andreas Enge <andreas@enge.fr> | 2019-06-20 17:36:39 +0200 |
commit | eacf29835dac41240fc63e080572998cd5982775 (patch) | |
tree | bd0ba3cd16100130ab59cea0d2ee0d3cd31e1d01 /gnu/packages/algebra.scm | |
parent | 264334716f0ecc41d022a72cdaa7e737106d546f (diff) | |
download | guix-eacf29835dac41240fc63e080572998cd5982775.tar guix-eacf29835dac41240fc63e080572998cd5982775.tar.gz |
gnu: Add iml.
* gnu/packages/algebra.scm (iml): New variable.
Diffstat (limited to 'gnu/packages/algebra.scm')
-rw-r--r-- | gnu/packages/algebra.scm | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm index 1b401f8e5b..561347ad98 100644 --- a/gnu/packages/algebra.scm +++ b/gnu/packages/algebra.scm @@ -1526,3 +1526,59 @@ a program that performs fast computation of the more general multiplicative structure constants of Schubert polynomials.") (license license:gpl2+) (home-page "http://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) + ("cblas" ,openblas))) ; or any other BLAS library; the documentation + ; mentions ATLAS in particular + (arguments + `(#:configure-flags + (list + (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))) |