(Leaf package, so ok during freeze.)
Upstream changelog:
2009.08.14: Changes between NTL 5.5.1 and 5.5.2
New routines MulAddTo and MulSubFrom for computing x += a*b and x
-= a*b, where x and a are ZZ's and b is a ZZ or a long. In the case
where b is a long, this may be much faster than writing mul(t, a, b);
add(x, x, t). See ZZ.txt for details. These new routines are used in a
number of places in NTL to get faster algorithms (for example, the LLL
routine).
Fixed a relatively benign indexing bug in GF2EX discovered by
Berend-Benjamin Tams using the valgrind tool.
2009.05.05: Changes between NTL 5.5 and 5.5.1
If using GMP (via either NTL_GMP_LIP or NTL_GMP_HACK), then the
new version (4.3.0) of GMP implements the XGCD functionality
differently, so that the coefficients do not always agree with those
returned by the classical extended Euclidean algorithm. This version
of NTL corrects the coefficients, so that the "classical" coefficients
are always produced, regardless of GMP's implementation. This version
of NTL also works around a bug in GMP 4.3.0's XGCD code (although that
bug should be fixed in GMP 4.3.1).
The configure script has been slightly modified: there is a new
configuration variable DEF_PREFIX, whose value can be used to set
PREFIX, GMP_PREFIX, and GF2X_PREFIX in one stroke. Also, the (somewhat
esoteric) configure variables GMP_LIBDIR, GMP_INCDIR, GF2X_LIBDIR, and
GF2X_INCDIR have slightly different meanings now.
2009.04.08: Changes between NTL 5.4.2 and 5.5
Added the ability to generate a shared library (with help from Tim
Abbott). Details.
Fixed some standardization issues (with help from Tim Abbot):
default location of installed documentation files now conforms to
standards; use of EOF now conforms to standards.
Added a callback mechanism to NTL's error reporting function. See
ErrorCallback in tools.txt.
Added support for the gf2x library for speeding up arithmetic in
GF2X (with help from Emmanuel Thom?). Details.
In conjuction with the above, I also changed the GF2X so that it
works better with very large polynomials: large blocks of memory are
released, recursive HalfGCD algorithms are used for large polynomials.
Fixed a bug in void TraceMod(zz_p& x, const zz_pX& a, const
zz_pXModulus& F) (reported by Luca De Feo).
Fixed a performance issue in various versions of SetCoeff
(reported by Luca De Feo).
Fixed the declaration of mat_zz_p transpose(const mat_zz_p& a)
(reported by Benoit Lacelle).
2008.03.05: Changes between NTL 5.4.1 and 5.4.2
Fixed a bug in the sub(ZZ_pEX, ZZ_pE, ZZ_pEX) and sub(zz_pEX,
zz_pE, zz_pEX) routines (reported by Charanjit Jutla). Under certain
circumstances, these could outout wrong answers.
2007.05.09: Changes between NTL 5.4 and 5.4.1
Fixed rounding bug in expm1 (reported by Paul Zimmermann).
Fixed memory leak in several LLL routines (reported by Friedrich Bahr).
Fixed infinite loop in several LLL routines (this only occurred on
machines, like x86, with double rounding).
Improved GF2X timing tests (suggested by Paul Zimmermann).
2005.03.24: Changes between NTL 5.3.2 and 5.4
By default, NTL now compiles in ISO mode (using namespaces,
etc.). You can always revert to traditional mode by unsetting the flag
NTL_STD_CXX (either pass NTL_STD_CXX=off to the configure script, or
manually edit the config.h file).
Some bug fixes:
The sqrt and log1p routines for the RR class would produce
incorrectly rounded results in certain circumstances (although this
only affected the relative error of the result very marginally).
The SqrRootPrec routine for the RR class could not be called,
because it was defined incorrectly.
Thanks to Paul Zimmermann for finding (and fixing) these bugs!
Paul has also validated NTL's RR class by cross-checking it with the
MPFR library.
Some performance enhancements:
Added a new MulModPrecon inline function for computing (a * b)
% n for single precision numbers, when b and n are fixed for several
computations. On some platforms this can be twice as fast or more than
the old MulMod2 routine. This indirectly affects a lot of computations
that are done via homomorphic imaging (polynomial multiplication over
zz_p, ZZ_p, and ZZ, matrix computations over zz_p and ZZ).
Rewrote the small prime FFT to take advantage of the new
MulModPrecon, and to be more cache friendly.
Improved the performance of the GF2X multiplication
routine. On some platforms, it can be twice as fast as the old
one. Thanks (again) to Paul Zimmermann for suggesting some of these
improvements and supplying some of the code.
Miscellany:
Rewrote several of the installation scripts in Perl (the old
shell scripts were getting too messy to maintain). However, the syntax
for all of the command-line interfaces remains identical.
2004.05.21: Changes between NTL 5.3.1 and 5.3.2
Some bug fixes.
Re-wrote SqrRootMod to make it run faster.