
         SparseLib++ v. 1.5c:  Numerical Sparse Matrix Classes in C++

SparseLib++ is a C++ class library for efficient sparse matrix computations
across various computational platforms.  The software package consists of 
matrix objects representing several sparse storage formats currently in use 
(in this release: compressed row, compressed column and coordinate formats), 
providing basic functionality for managing sparse matrices, together with 
efficient kernel mathematical operations (e.g. sparse matrix-vector multiply).
Routines based on the Sparse BLAS are used to enhance portability and 
performance. Included in the package are various preconditioners commonly 
used in iterative solvers for linear systems of equations.  The focus is on 
computational support for iterative methods, but the sparse matrix objects 
presented here can be used on their own.

0) What's new in v. 1.5
-----------------------

    o) supports ANSI C++ templated complex classes (e.g. complex<double>)
        for GNU g++ 2.7.0

    o) uses new MV++ vector/matrix 1.3 classes 

    o) several bug fixes for reading Harwell-Boeing files and converting 
            between matrix storage types

    o) supports 'P' format specifier in Harwell-Boeing files


    o) Bug fixes in v. 1.5c
            i) Added check for end-of row/column in elimination loop of
                           ilupre.cc and ilupre_double.cc
            ii) fixed "nz_ = nz_" bug in coord_double::newsize()



1) More About SparseLib++
------------------------
i) User's Guide and man-style pages are available via

       WWW:     http://gams.cam.nist.gov/acmd/Staff/RPozo/sparselib++.html
       ftp:     gams.nist.gov:~ftp/pub/pozo/docs/sparselib++.ps.Z

ii) Code examples are in ./testing/*.cc



2) Installing SparseLib++ library 
----------------------------------

You'll need to build the following three libraries

    ./lib/libmv.a              MV++ basic matrix/vector library
    ./lib/libsparselib.a          sparse matrix library
    ./lib/libspblas.a             sparse BLAS library

i)   cd to root directory where SparseLib++ will be installed
ii)  edit makefile.def to specify your specify your particular C++ compiler
iii) type "make sp". ("make" by itself will provide a list of options.)



3) Testing SparseLib++
----------------------

i)  cd to SparseLib++ root dir
ii) "make test" will run a test suites and leave their output in 
                ./testing/sp_test.out.  


4) Package components
---------------------

i)   SparseLib++ and Sparse BLAS include files are in ./include
ii)  SparseLib++ and Sparse BLAS libraries are in ./lib
iii) Lower-level Fortran-compatible Matrix/Vector library (MV++)is in 
         ./lib/libmv.a



5) Help!
--------

Questions, comments, suggestions, etc. can be sent to pozo@cam.nist.gov.


6) #include <std/disclaimer.h>
------------------------------

Be aware that SparseLib++ has been tested with GNU g++ 2.6.3, and 2.7.0
together with Sun C++ (CC) v. 4.0.1. and may not necessarily work with earlier
versions of these compilers.  To find out the version of your compiler
use "g++ -v" or "CC -V foo".

