-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathtour-intro.html
130 lines (103 loc) · 3.52 KB
/
tour-intro.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<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,
as well as PCs running Windows 95, 98, or NT, and Macintoshes.
NTL achieves this portability by avoiding esoteric C++ features,
and by avoiding assembly code; it should therefore remain usable
for years to come with little or no maintenance, even as
processors and operating systems continue to change and evolve.
However, NTL can be used in conjunction with
<a href="tour-gmp.html">GMP (the GNU Multi-Precision library)</a>
for enhanced performance.
NTL can also be used 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>
Legalistic Nonsense
</p>
</h2>
<p>
NTL is <i>free software</i>, and may be used according to
the terms of the GNU General Public License.
<p>
<a href="copying.txt">[the precise licensing information of NTL]</a>
<p>
<a href="http://www.gnu.org">[more information
about the GNU General Public License]</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>