The module sage.libs.ntl defines the following classes:
Routines are provided for all of the basic arithmetic operations, as well as for some more advanced operations such as primality testing. Space is automatically managed by the constructors and destructors.
This module also provides routines for generating small primes, and fast routines for performing modular arithmetic on single-precision numbers.
Polynomial multiplication is very fast, and is implemented using one of 4 different algorithms:
The choice of algorithm is somewhat heuristic, and may not always be perfect.
Many thanks to Juergen Gerhard <jngerhar@plato.uni-paderborn.de> for pointing out the deficiency in the NTL-1.0 ZZX arithmetic, and for contributing the Schoenhage/Strassen code.
Extensive use is made of modular algorithms to enhance performance (e.g., the GCD algorithm and many others).