Changes between NTL 5.3 and 5.3.1
* Fixed a bug affecting the BuildIrred routines for ZZ_pEX and
zz_pEX.
Changes between NTL 5.2 and 5.3
* Minimized and isolated constructs that do not adhere to C/C++
standards, and added flags NTL_CLEAN_INT and NTL_CLEAN_PTR which
force stricter compliance with these standards.
* Added functions IsWhiteSpace, CharToIntVal, and IntValToChar to
the tools module.
* Added methods allocated, position1 to generic vector classes.
* Added method allocated to the class vec_GF2.
* Added conversion routines from unsigned int/long to int, long,
float, and double.
* Added routines AddPrec, SubPrec, etc., to the RR module, and
declared the practice of directly assigning to the variable
RR::prec obsolete.
* Fixed a number of minor bugs.
Changes between NTL 5.1a and 5.2
* Implemented Mark van Hoeij's new algorithm for factorining
polynomials with rational coefficients. This new algorithm is much
more efficient than the previous algorithm used by NTL, and is the
default (one can switch back to the old algorithm with a run-time
switch).
* Added routines LLL_plus that are just like the all-integer LLL
routines, except that they return the exact values of the squared
lengths of the Gramm-Schmidt basis vectors. This is useful in
implementing van Hoeij's algorithm.
* Made a small change to quad_float.c to make it compile under gcc
version 3.0 without errors. This is the one place in NTL where I
resort to just a little assmebly code (but only on x86/Linux
platforms), and wouldn't you know it, this is the one place where
gcc 3.0 had problems.
* Made a small change to the procedure for generating a
distribution, so that now all files in the "tar" file comprising
the distribution come without any annoyingly excessive access
control restrictions.
* Changed the version numbering scheme so that it is now closer to
"standard practice". This is version "5.2". Any small bug fixes to
this version will be named "5.2.1", "5.2.2", etc. Also, macros are
now defined so that the numerical components of the version number
are available to the programmer.
shared libraries.
Changes between NTL 5.0c and 5.1a
Some minor fixes and additions.
Completely backward compatible.
* Added a routine LatticeSolve() for finding integer solutions to
linear systems of integer equations.
* Modified the stragey used by the LLL() and image() routines in the
LLL package to deal with linear dependencies. The new strategy
guarantees better worst-case bounds on the sizes of intermediate
values. I'm not sure if it will have any serious practical impact,
though.
* Added some "partial ISO modes" so that one can use some of the
features of Standard C++, even if ones compiler does not yet
support all of the features.
* Bug fix: routine determnant() in mat_GF2.h was not visible to the
linker because of a typo in mat_GF2.c.
* Made a "smarter" script for selecting the GetTime() function. This
fixes an installation problem on Cygwin/Windows 95 platforms. I
hope it doesn't create more problems than it solves, though.
* Added some extra documentation for installation under Windows/MS
Visual C++.
* Changed some names like c_lip.c to c_lip_impl.h. This should avoid
some potential installation problems.
* Throw away first 256-bytes of arc4 streams to improve quality of
the pseudo-random number generator. This may change the precise
behavior of some programs.
* Other minor, internal modifications.
C++ library for doing number theory
NTL is a high-performance, portable C++ library providing data
structures and algorithms for arbitrary length integers; for vectors,
matrices, and polynomials over the integers and over finite fields;
and for arbitrary precision floating point arithmetic.
NTL provides high quality implementations of state-of-the-art algorithms for:
o arbitrary length integer arithmetic and arbitrary precision
floating point arithmetic;
o polynomial arithmetic over the integers and finite fields
including basic arithmetic, polynomial factorization,
irreducibility testing, computation of minimal polynomials,
traces, norms, and more;
o lattice basis reduction, including very robust and fast
implementations of Schnorr-Euchner, block Korkin-Zolotarev
reduction, and the new Schnorr-Horner pruning heuristic for block
Korkin-Zolotarev;
o basic linear algebra over the integers, finite fields, and
arbitrary precision floating point numbers.
NTL is free software, and may be used according to the terms of the
GNU General Public License.