-*- text -*-
Software License for MTL
Copyright (c) 2001-2005 The Trustees of Indiana University. All rights reserved. Copyright (c) 1998-2001 University of Notre Dame. All rights reserved. Authors: Andrew Lumsdaine, Jeremy G. Siek, Lie-Quan Lee
This file is part of the Matrix Template Library
See also license.mtl.txt in the distribution.
The Matrix Template Library
Version 2.1
I. Introduction
The Matrix Template Library is a C++ class library for basic linear algebra. The MTL is designed for high-performance while at the same time taking advantage of the generic programming paradigm (ala the STL) to allow much greater flexibility and breadth of functionality. Many new and advanced programming techniques were used in the construction of this library.
The MTL is a low level library in the sense that the user must be conscious of the matrix type being used, and that all computationally expensive operations are explicit. The MTL is not a C++ Matlab. Nevertheless, the interface is designed to be simple and easy to use.
The matrix types provided include compressed sparse row/column, banded, packed, diagonal (and tridiagonal), envelope, array of pointers, and of course dense matrices. All matrix types share a common and easy to use interface.
The algorithms consist of the traditional basic linear algebra routines (from the BLAS level-1 to 3) which includes matrix and vector arithmetic as well as operations such as backward substitution and norm calculations.
II. Compilers
The Matrix Template Library has been tested (and passed) with the following compilers and architectures:
Silicon Graphics
MIPSpro Compilers: Version 7.30
KAI C++ 3.3f
Solaris
KAI C++ 3.4g
g++ 2.95.2
Linux
KAI C++ 4.0
g++ 2.96
g++ 3.0.1
Macintosh
Metrowerks CW Pro 5.0
Windoze
Visual C++ 6.0
Metrowerks CW Pro 5.0
The MTL will NOT compile yet with the following compilers, and the degree of difficulty of the port has been noted.
Compiler Difficulty of porting MTL -------------- ------------------------ Intel C++ 4.0 Easy (perhaps already there)
Solaris C++ 5.0 Impossible
Even though I was able to port MTL to Visual C++ 6.0, it was still really difficult, so please complain to Microsoft about their lack of standards compliance, particularly with partial specialization.
Compilers that are not noted above have not yet be investigated.
III. Documentation
The documentation resides in the /doc directory and is in html. You can also view the documentation at our web site: www.lsc.nd.edu/research/mtl
There are also a large number of examples in the /contrib/examples directory.
IV. Installation Procedure
See the file INSTALL in this directory.
V. Contact Information
The Matrix Template Library is available at the main distribution site:
http://www.lsc.nd.edu/research/mtl
This distribution includes:
- Source code for the MTL (all header files /mtl)
- A test suite (/test)
- Some example code (/contrib/examples)
- The doubledouble extended precision class (contrib/doubledouble)
Bug reports should be sent to mtl@lsc.nd.edu.
Questions, comments, suggestions, and requests for additional information should also be directed to mtl@lsc.nd.edu.
Send mail to majordomo@lsc.nd.edu and include a body of:
subscribe mtl-announce
