<html>
<head>
<title>
A Tour of NTL: Introduction </title>
</head>
<center>
<img src="arrow1.gif" alt="[Previous]" align=bottom>
<a href="tour.html"><img src="arrow2.gif" alt="[Up]" align=bottom></a>
<a href="tour-examples.html"> <img src="arrow3.gif" alt="[Next]" align=bottom></a>
</center>
<h1>
<p align=center>
A Tour of NTL: Introduction
</p>
</h1>
<p> <hr> <p>
<p>
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.
<p>
NTL provides high quality implementations of state-of-the-art
algorithms for:
<ul>
<li>
arbitrary length integer arithmetic and arbitrary precision
floating point arithmetic;
<li>
polynomial arithmetic over the integers and finite fields
including basic arithmetic, polynomial factorization,
irreducibility testing,
computation
of minimal polynomials, traces, norms, and more;
<li>
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;
<li>
basic linear algebra over the integers,
finite fields, and arbitrary precision
floating point numbers.
</ul>
<p>
NTL's polynomial arithmetic is one of the fastest available anywhere,
and has been used to set "world records" for polynomial factorization
and determining orders of elliptic curves.
<p>
NTL's lattice reduction code is also one of the best available anywhere,
in terms of both speed and robustness, and one of the few
implementations of
block Korkin-Zolotarev reduction with the Schnorr-Horner pruning heuristic.
It has been used to "crack" several cryptosystems.
<p>
NTL can be easily installed in a matter of minutes
on just about any platform,
including virtually any 32- or 64-bit machine running
any flavor of Unix,
Mac OS,
or Windows.
NTL can be built in conjunction with
<a href="tour-gmp.html">GMP (the GNU Multi-Precision library)</a>
for enhanced performance (this is the default on Unix and Mac OS).
NTL can also be built in conjunction with the
<a href="tour-gf2x.html"><tt>gf2x</tt></a> library for faster
arithmetic of large degree polynomials over <i>GF(2)</i>.
<p>
NTL provides a clean and consistent interface to
a large variety of classes representing mathematical objects.
It provides a good environment for easily
and quickly implementing new
number-theoretic algorithms, <em>without sacrificing performance</em>.
<p>
NTL is written and maintained by
<a href="http://www.shoup.net">Victor Shoup</a>
with some contributions made by others
(see <a href="tour-ack.html">Acknowledgements</a>).
<p>
<h2>
Lincensing: LGPLv2.1+
</p>
</h2>
<p>
NTL is <i>free software</i>,
and may be used according to
the terms of the GNU Lesser General Public License version 2.1 or later.
<p>
<a href="copying.txt">[the precise licensing information of NTL]</a>
<p>
<a href="https://www.gnu.org/licenses/licenses.html">[more information
about GNU Licenses]</a>
<p>
<center>
<img src="arrow1.gif" alt="[Previous]" align=bottom>
<a href="tour.html"><img src="arrow2.gif" alt="[Up]" align=bottom></a>
<a href="tour-examples.html"> <img src="arrow3.gif" alt="[Next]" align=bottom></a>
</center>
</body>
</html>