PROPACK Version 1.0

  This directory contains a Fortran version of the PROPACK software
for computing the singular values and singular vectors of a large and
sparse or structured matrix using implicitly restarted Lanczos
bidiagonalization with partial reorthogonalization. The main driver
routine is found in "dlansvd_irl.f", which also contains a description
of the input parameters. The library also contains a version of the
algorithm without implicit restarting, which can be found in the file
"dlansvd.f".


INSTALLATION

  To install the software, follow the steps below:

1. Uncompress and untar the files using 

% gunzip PROPACK77.tar.gz
% tar xvf PROPACK77.tar

2. Edit the make.<plat> file in the PROPACK/Make directory where
<plat> corresponds to your platform. Currently makefiles for <plat> =
{ linux | sgi | sun } are available.  In particular you need to set
the variables LINKFLAGS, LAPACK and BLAS such that the LAPACK and BLAS
libraries installed on your machine are linked correctly.  You can
also set various flags passed to the compiler and linker. After you
have done this, type

% make <plat>

in the PROPACK directory. If you wish to add a new platform, 'ibm'
say, write a new make.ibm file in PROPACK/Make and make the necessary
addition to PROPACK/Makefile.

3. Build the libraries by typing

% make lib

This will build a library libpro_<PLAT>.a, where PLAT is the platform
name specified in make.inc. To use the PROPACK routines, link your
program with libpro_<PLAT>.a and the LAPACK and BLAS libraries on your
machine. Since PROPACK uses the Divide-and-Conquer bidiagonal SVD
routine DBDSDC from LAPACK 3.0 and some systems might still have
LAPACK 2.0 installed, the LAPACK routines needed for DBDSDC are
provided in the directory DC. The command "make lib" also creates the
library libDC_<PLAT>.a, which should be used on systems with older
LAPACK (2.0) libraries.


EXAMPLE PROGRAMS

  Two example program "example.f" and "example_irl.f" are provided in
the directory Examples.  Build and run them by typing

% cd Examples
% make 
% example.x < example.in
% example_irl.x < example.in

The example programs read in a matrix stored in Harwell-Boeing format
from a file and computes a number of singular values as specified in
the input file. A test matrix from the Harwell-Boeing collection is
provided in the file "illc1850.rra". For more test matrices see, e.g.,
the Matrix Market website, http://math.nist.gov/MatrixMarket. The
output produced by the example programs on an PC with a Pentium III
processor running Linux is provided in the files "example.out" and
"example_irl.out".


OBTAINING LAPACK AND BLAS LIBRARIES
  If your machine does not have these libraries installed they are
freely available from the Netlib software repository at
http://www.netlib.org/lapack and http://www.netlib.org/blas
respectively. A set of fast BLAS routines optimized for various
platforms are available from the website of the ATLAS project, see
http://www.netlib.org/atlas/.


CONTACT INFORMATION 
  Questions and comments about PROPACK are welcome and should be
directed to

Rasmus Munk Larsen      
W.W. Experimental Physics Laboratory, Annex A206
Stanford University,  Stanford, CA 94305-4085
E-mail: rmunk@solen.stanford.edu 

