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.