ARPACK++ version 1.2. Feb 20, 2000.

ARPACK++ is a c++ interface to the ARPACK package.
ARPACK is a FORTRAN library which implements the implicit restarted
Arnoldi method for solving sparse eigenvalue problems.

This is ARPACK++ main directory.

1) Files included in this directory:

   a) readme:

      This file.

   b) Makefile.inc:

      An include file used to compile arpack++ examples. You must change
      some directories and machine-dependent directives contained into
      this file prior to compiling the examples. See the description of
      the "makefiles" directory below.


2) ARPACK++ subdirectories:

   a) makefiles

      This directory contains example Makefile.inc include files 
      for some platforms. Choose one and copy it onto the 
      ~/arpack++/Makefile.inc file.

   b) include:

      The directory that contains arpack++ library, i.e., all header
      files that define arpack++ class templates.

   c) examples:

      The directory where all arpack++ examples can be found.
      These examples are intended to illustrate how to use and compile
      arpack++ classes and are divided according to the type of problem
      being solved and also the kind of information that the user is
      supposed to supply. Look at the examples/README file for further
      information.

   d) doc:

      The directory that contains a PostScript version of Arpack++
      user's manual and some instructions on how to install the
      libraries required by ARPACK++.

3) Libraries required by ARPACK++:

   a) ARPACK (fortran version):

   ARPACK++ is a c++ interface to ARPACK fortran code, so the original
   ARPACK library must be installed prior to using the c++ version.
   ARPACK may be obtained from Netlib or directly from the URL
   ftp://ftp.caam.rice.edu/pub/software/ARPACK.

   b) BLAS and LAPACK (fortran versions):

   BLAS and LAPACK routines required by ARPACK fortran code are 
   distributed along with the software. However, some arpack++
   examples require routines from these libraries that are not 
   included in the ARPACK distribution, so it would be better to 
   install BLAS and LAPACK before compiling the examples. Besides, 
   you should use vendor-optimized versions of these libraries if
   they are available.

   c) SUPERLU:

   Some ARPACK++ classes call SUPERLU library functions to solve
   eigenvalue problems that require complex or real nonsymmetric matrix
   decompositions. Thus, SUPERLU must also be installed if you intend
   to use one of these classes. SUPERLU is available at the URL:
   http://www.netlib.org/scalapack/prototype.

   d) UMFPACK:

   UMFPACK package can also be used to solve eigenvalue problems that
   require real or complex nonsymmetric/non-Hermitian matrix
   decompositions. However, UMFPACK may be used SOLELY for educational,
   research, and benchmarking purposes by non-profit organizations and
   the U.S. government.  Commercial and other organizations may make use
   of UMFPACK SOLELY for benchmarking purposes. UMFPACK can be obtained
   from ftp://ftp.cis.ufl.edu/pub/umfpack. The MA38 Package in the
   Harwell Subroutine Library (HSL) has equivalent functionality (and
   identical calling interface) as UMFPACK and is available for
   commercial use. Technical reports and information on HSL can be found
   at http://www.cis.rl.ac.uk/struct/ARCD/NUM.html. However, neither MA38
   nor older versions of UMFPACK are able to handle complex matrices.

4) ARPACK++ documentation:

   ARPACK++ user's manual is available in the doc directory. It contains
   all information needed to declare and solve eigenvalue problems using
   arpack++ classes and functions. Arpack++ computational modes and data
   types are also described in the manual.
   Instructions on how to install the above mentioned libraries are
   given in the doc/install.txt file.
   Moreover, README files were include in many Arpack++ directories
   to give aditional information about arpack++ files and examples.

5) Using Arpack++:

   As a collection of class templates, arpack++ need not to be compiled.
   Because templates are defined in header (.h) files, no object (.o)
   or library (.a) files have to be built, except those corresponding to
   other libraries required by arpack++ (arpack, lapack, blas, superlu
   and umfpack). Arpack++ header files are included in the "include"
   directory and can be moved to another directory if desired. An option
   in the form

                         -I$(ARPACKPP_INC)

   should be added to the command line when compiling programs that
   use arpack++. Here, ARPACKPP_INC is the name of the directory that
   contains all arpack++ header files.

6) Compiler-dependent instructions.

   Some compiler-dependent functions and data types used by arpack++ were
   grouped in the file include/arch.h. Thus, this file should be changed
   to reflect the characteristics of your system. Because at the present
   time the library was only compiled with the GNU g++ compiler and
   tested in a SUN SparcStation, further work must be done in order to
   allow the use of ARPACK++ in other environments.

   Moreover, arpack++ also includes a file, include/arcomp,h, that contains
   the definition of a class template called arcomplex, created to emulate
   the g++ complex class when other compilers are being used. arcomplex is
   the only complex type referenced by other ARPACK++ files, so you must
   change the definition of this class in order to work with complex
   numbers if g++ (or CC) is not being used.

7) Compiling and running ARPACK++ examples:

   Arpack++ example directories contain Makefiles that should be used
   to compile the examples. For example, to compile example "symsimp"
   (that can be found in the examples/product/simple directory, you
   just need to write

                             make symsimp

   File symsimp.cc will be compiled and linked to arpack libraries,
   and an executable file named symsimp will be created.

8) Reporting bugs and questions:

   To report bugs and also to obtain more information about obscure parts
   of the ARPACK++ user's manual, send an e-mail to chico@ime.unicamp.br.

9) ARPACK (fortran) authors:

   Danny Sorensen   (sorensen@caam.rice.edu)
   Richard Lehoucq  (lehoucq@mcs.anl.gov)
   Chao Yang        (chao@caam.rice.edu)
   Kristi Maschhoff (kristyn@caam.rice.edu)

