BLZPACK Copyright (c) 2005, The Regents of the University of California,
through Lawrence Berkeley National Laboratory (subject to receipt of any
required approvals from the U.S. Dept. of Energy). All rights reserved.

If you have questions about your rights to use or distribute this
software, please contact Berkeley Lab's Technology Transfer Department 
at TTD@lbl.gov referring to "BLZPACK (LBNL Ref CR-2181)"

NOTICE. This software was developed under funding from the U.S. 
Department of Energy. As such, the U.S. Government has been granted 
for itself and others acting on its behalf a paid-up, nonexclusive, 
irrevocable, worldwide license in the Software to reproduce, prepare
derivative works, and perform publicly and display publicly. Beginning
five (5) years after the date permission to assert copyright is obtained
from the U.S. Department of Energy, and subject to any subsequent five 
(5) year renewals, the U.S. Government is granted for itself and others 
acting on its behalf a paid-up, nonexclusive, irrevocable, worldwide 
license in the Software to reproduce, prepare derivative works, 
distribute copies to the public, perform publicly and display publicly, 
and to permit others to do so.

## 12/18/2001 ##########################################################
#                                                                      #
#  Contents of the directory blzpack.                                  #
#                                                                      #
########################################################################

   The current directory is organized as follows:

   .d2s    : script file to generate single precision codes.
   README  : this file.
   cleaner : script file to perform cleaning operations.
   creator : script file to generate the library libblzpack.a.
   doc     : documentation about BLZPACK.
   drv     : driver models and small examples.
   etc     : contains BLAS kernels and auxiliary routines.
   lib     : reserved for libblzpack.a.
   src     : BLZPACK subprograms.
   sys     : system dependencies.


Purpose:
-------

   BLZPACK (for Block LancZos PACKage) is a set of subprograms written
   in standard Fortran 77 intended for the computation of eigenvalues
   eig and eigenvectors (x) of the "standard" eigenvalue problem

          (A)*(x) - eig*(x) = (0)

   or of the "generalized" eigenvalue problem

          (A)*(x) - eig*(B)*(x) = (0)

   where (A) and (B) are N x N real, sparse, symmetric matrices, eig an
   eigenvalue, and (x) an eigenvector. It is assumed that there exists 
   a linear combination of (A) and (B) which is positive definite to
   guarantee that all eigenvalues are real.

Conditions of use:
-----------------

   BLZPACK has been developed by Osni Marques as a research tool for
   the scientific community. It comes with no guarantee that it is free
   of errors or suitable for a particular application. Therefore, no
   guarantee is given on the results obtained, whose interpretation
   is left to the user. However, comments or reported problems may 
   be sent to:

          OAMarques@lbl.gov

   For an updated list of modifications see file doc/patches.txt.

Creating libblzpack.a:
---------------------

   The (csh shell) script file `creator' provided in this directory is 
   intended for the generation of the library libblzpack.a, which will 
   be placed in the subdirectory lib. The command

          creator -h 

   displays the options and machines currently supported by the script.
   `creator' should be modified accordingly on machines not listed by
   the script. System dependencies should be defined in the subdirectory
   sys. See the README file in the subdirectory sys for details. Changes
   in the compiler options for the machines currently supported should 
   be also performed there. Alternatively, the user may define his own 
   options and pass that information to `creator' by means of

          creator -m file_containing_macros

   NB: `creator' relies upon the proper definition of paths and the 
   ==  Fortran compiler by the user.

Testing the library:
-------------------

   Test drivers can be generated by means of the Makefile provided in
   the subdirectory drv/data. Alternatively,

          creator -test 

   runs a set of tests after the library has been installed, using
   examples from the subdirectory drv (output files are placed in
   the subdirectory drv/data). 

   NB: The driver models for the generalized eigenvalue problems use
   ==  routines that are not included in this distribution. However,
       those driver models can be easily modified by the user.
   
BLAS Kernels:
------------

   A set of BLAS (basic linear algebra subroutines) kernels is used by 
   libblzpack.a and should be made available when linking the package 
   to a calling program. If no library with such kernels is available, 
   the user can include the required files (which are available in the 
   subdirectory etc) by specifying the option `-f' for the script
   `creator'.

LAPACK:
------

   The O(N**2) symmetric tridiagonal eigensolvers available in the 
   LAPACK library (version 3.0 or later) can be used to solve the
   reduced symmetric eigenproblem generated by BLZPACK. See the
   README file in the subdirectory sys for details.

Releases:
--------

   12/1995: 
          . double precision version
   05/1996:
          . improved scripts
          . single precision version
          . modifications required for the CRAY C90
   06/1997:
          . modifications in the test drivers
          . modifications required for the CRAY T3E
          . modifications in the band reduction of the block tridiagonal
   11/1997:
          . bug fixed in the convergence check routine
   07/1998:
          . MPI and PVM versions
          . buckling transformation mode
   09/1999:
          . modifications in the interface
          . O(N**2) tridiagonal eigensolver option introduced
   01/2002:
          . modifications in the converge criterion and shift strategy

end of README ##########################################################
