
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 
Albrecht) 
- 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
Shoup).

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.
