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.scm62
1 files changed, 44 insertions, 18 deletions
diff --git a/gnu/packages/algebra.scm b/gnu/packages/algebra.scm
index eeaee61755..8d7c9709d1 100644
--- a/gnu/packages/algebra.scm
+++ b/gnu/packages/algebra.scm
@@ -144,24 +144,50 @@ line applications.")
 
 (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 pari-gp
   (package