-*- 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
