Fetching contributors…
Cannot retrieve contributors at this time
118 lines (92 sloc) 4.35 KB
Changes in fplll-5.0:
- switched to C++11
- switched to more open development model on GitHub, cf.
- support for computing optimal pruning parameters for a given lattice
- BKZ 2.0: recursive BKZ preprocessing, extreme pruning, gaussian
heuristic bound
- precomputed BKZ (2.0) reduction strategies up to block size 90, cf.
- Self-Dual BKZ and Slide reduction
- faster, recursive enumeration implementation
- Gaussian lattice sieving
- Python interface at
- optional dumping Gram-Schmidt vectors during execution of algorithm
- q-ary lattice generator
- instructions on how to cite
- optional support for doubledouble and quaddouble
- pkg-config support
- API documentation at
- revised build system supporting parallel build
- copyright headers
- dropped fplllv3 compatibility layer
- greatly increased test coverage, tests are run on every commit or
pull request
- coding/naming convention
- FP API improved to allow for more readable/natural code
Changes in fplll-4.0.4:
- compatibility for packages that still expect to build against
libfplll version 3.
- updates of config.sub and config.guess
- better check that MPFR and GMP are installed
- compilation issue with NaN's
Changes in fplll-4.0.3:
- Compiler issues with Cygwin
Changes in fplll-4.0.2:
- Changed formulation for the license, in README.html
Main changes in fplll-4.0.1:
- Compiler warnings about unused parameters fixed
Main changes in fplll-4.0.0:
- BKZ reduction, available with 'fplll -a bkz -b block_size'
Changes in fplll-3.1.3:
- Fixed build process when DESTDIR is defined
Changes in fplll-3.1.2:
- Memory leak fixed in the wrapper.
Main changes in fplll-3.1.1:
- Some code is no longer included in the header files but is compiled in
libfplll instead. The -lfplll option will now be required for apps which could
be compiled without it.
- 'make install' puts all header files but fplll.h in a subdirectory named fplll
- New programming interface for the library (documented in README.html).
- 'generate' renamed to 'latticegen'.
- Removal of fplll_verbose. Use the '-v' option instead.
- Minor bugs fixed in all versions of LLL.
- More important bugs fixed in the SVP solver.
- Optimization of the SVP solver.
- By default, 'fplll -a svp' now gives the coordinates of a shortest vector in
the _standard_ basis.
The main differences between fplll-2.1 and fplll-3.0 are the following:
- short lattice vector enumeration algorithm (by Xavier Pujol).
- GPL -> LGPLv2
- no more need to specify the number of rows and columns in the input
of the fplll binary.
- new version of dpe.h [Patrick Pelissier and Paul Zimmermann]
The main differences between fplll-2.1 and fplll-2.0 are the following:
- "configure/make/make install" packaging (thanks to Martin Albrecht)
- few minor changes to make fplll portable to SAGE (thanks to Martin
- conversion scripts between MAGMA and fplll formats.
- a bug fixed in fast_early (discovered by Martin Albrecht)
fplll-2.0 is an improved version of fplll-1.3. Parts of it resemble
Magma's LLL (Allan Steel, Damien Stehle) and/or NTL's LLL (Victor
The improvements from fplll-1.3 to fplll-2.0 were mostly performed
by David Cade. Here is a brief summary of the changes:
- the major algorithmic improvement is the so-called wrapper, which
chooses for the user a guess of the right sequence of heuristic/proved
variants to use, in order to finish as quick as possible, but in a
reliable way.
- the early-reduction strategy of Allan Steel has been integrated. It
consists in size-reducing vectors earlier than what would have been
done in the standard LLL. This is not integrated into the wrapper yet.
- we switched from C to C++, to simplify our lives with the wrapper.
It is extremely convenient for the use of the underlying arrithmetics
(integers and floating-point numbers).
- we translated the matrix indices by 1: the first matrix entry is
B[0][0] instead of B[1][1].
- automatised triangular option: the code looks at the matrix and
decides how close to upper-triangular it is.