Template Numerical Toolkit
An interface for scientific computing in C++

Roldan Pozo
Mathematical and Computational Sciences Division
National Institute of Standards and Technology


The Template Numerical Toolkit (TNT) is a collection of interfaces and reference implementations of numerical objects useful for scientific computing in C++. The toolkit defines interfaces for basic data structures, such as multidimensional arrays and sparse matrices, commonly used in numerical applications. The goal of this package is to provide reusable software components that address many of the portability and maintennace problems with C++ codes.

TNT provides a distinction between interfaces and implementations of TNT components. For example, there is a TNT interface for two-dimensional arrays which describes how individual elements are accessed and how certain information, such as the array dimensions, can be used in algorithms; however, there can be several implementations of such an interface: one that uses expression templates, or one that uses BLAS kernels, or another that is instrumented to provide debugging information. By specifying only the interface, applications codes may utilize such algorithms, while giving library developers the greatest flexibility in employing optimization or portability strategies.

What next?

  • take a quick look at the examples to see how arrays are used in TNT.
  • browse the Overview section to see what TNT offers.
  • consult the on-line Documentation for a detailed description of data structures and algorithms.
  • Download the source code and documentation.

TNT Home Page
Development Status: Active Maintenance
Privacy Policy
Last Modified: 03/31/2004

Roldan Pozo