                        LASPack (version 1.12.x)

                             Tomas Skalicky
		   (skalicky@msmfs1.mw.tu-dresden.de)

                     last revision: Januar 17, 1996

-------------------------------------------------------------------------------

LASPack is a package for solving large sparse systems of linear equations
like those which arise from discretization of partial differential equations.

Main features:

- The primary aim of LASPack is the implementation of efficient iterative
  methods for the solution of systems of linear equations. All routines and
  data structures are optimized for effective usage of resources especially
  with regard to large sparse matrices. The package can be accessed from
  an application through a straightforward interface defined in the form
  of procedure calls.

- Beside the obligatory Jacobi, succesive over-relaxation, Chebyshev, and
  conjugate gradient solvers, LASPack contains selected state-of-the-art
  algorithms which are commonly used for large sparse systems:

  - CG-like methods for non-symmetric systems: CGN, GMRES, BiCG, QMR, CGS, and
    BiCGStab,
  - multilevel methods such as multigrid and conjugate gradient method
    preconditioned by multigrid and BPX preconditioners.

  All above solvers are applicable not only to the positive definite or
  non-symmetric matrices, but are also adopted for singular systems
  (e.g. arising from discretization of Neumann boundary value problems).

- The implementation is based on an object-oriented approach (although it
  has been programmed in C). Vectors and matrices are defined as new data
  types in connection with the corresponding supporting routines.
  The basic operations are implemented so that they allow the programming
  of linear algebra algorithms in a natural way.

- LASPack is extensible in a simple manner. An access to the internal
  representation of vectors and matrices is not necessary and is, as required
  of the object-oriented programming, avoided. This allows an improvement
  of algorithms or a modification of data structures with no adjustment
  of application programs using the package.

- LASPack is written in ANSI C and is thus largely portable.


A complete description of the package (including the installation procedure)
you may find in LASPack Reference Manual in the following postscript files:

    laspack/doc/laspack1.ps
    laspack/doc/laspack2.ps

A HTML version of the manual is also available available at:

    laspack/html/laspack.html

or
    
    http://www.tu-dresden.de/mwism/skalicky/laspack/laspack.html

-------------------------------------------------------------------------------

Installation

In order to simplify the description of the installation procedure, we assume 
that you are working on a UNIX system and have already copied the LASPack 
distribution file laspack-1.12.x.tar.Z. The complete installation consists
of the following five steps:

1. Move the file laspack-1.12.x.tar.Z to the directory that will become
   the top-level directory for the source files.

2. Uncompress and untar the file:

     uncompress laspack-1.12.x.tar.Z
     tar xvf laspack-1.12.x.tar
     
   This should create the entire distribution tree.
   
3. Make sure that you have appropriately set the following variables of your 
   UNIX environment (for compilation of the source files an ANSI C compiler
   is needed):
   
     HOME      home directory
     CC        name of the C compiler
     CFLAGS    compiler options
     LDFLAGS   linker options

4. There are two possibilities for installing the package:

   User's installation: 
   
   This should be carried out if you want to install LASPack in your home 
   directory so that it is available only to you.

   At this stage, you could use the environment variable ARCHEXT in order to
   install the library and the test programs in different subdirectories 
   depending on computer architecture. If you share your home directory across
   a heterogeneous computer network, it may be advantageous for the management
   of several versions of binaries. In this case, set the variable ARCHEXT to
   an appropriate value (e.g. /sunos on Sun workstations, /hp-ux 
   on HP workstations, etc.).

   Make sure that the directory $HOME/bin$ARCHEXT (or $HOME/bin if you don't
   use ARCHEXT) is contained in the environment variable PATH and run 
   the installation script:
   
     ./install

   This will generate the library liblaspack.a (and the library libxc.a which
   is not a part of LASPack but required by some test programs) and install it
   in the directory $HOME/lib$ARCHEXT. Furthermore, it will build the test 
   programs and install them in the directory $HOME/bin$ARCHEXT.

   Local installation: 
   
   This will install the LASPack library and corresponding header files in the
   directory /usr/local/lib and the test programs in the directory 
   /usr/local/bin which are usually used for such a kind of software. To do
   this you need permission to write in these directories. Futhermore you 
   should set the environment vatiable PATH to /usr/local/bin.

   The installation script should be started with an additional parameter:
   
     ./install local
     
5. Finally, running the installation script, the LASPack library created is
   automatically checked. By means of the program mlstest described in section
   5.4 of the reference manual, all combinations of multilevel solvers, plain
   iterative procedures, and preconditioners available in LASPack are tested
   on a two-dimensional Poisson problem. If all goes well, you get the message:

     LASPack tested successfully.
     
   Therewith the LASPack installation is completed.
   
   In order to run test programs in a C shell, do not forget to renew the hash
   tables by the command:
   
     rehash
     
   LASPack as well as the installation script were successfully tested 
   on several machines: Sun Sparc5, HP 9000/735, IBM RS/6000 550, 
   DEC 3000/800 M, SGI IRIS Indigo and PC 486 (running Linux). Nevertheless,
   if the installation fails, please contact the author.
