To build the Diag library, enter

./configure
make
make install

If you want to build also the Mathematica frontend, say

./configure
make all
make install

The files are installed in

<prefix>/lib      -- the Diag library,
<prefix>/bin      -- the Diag executables and tools,
<prefix>/include  -- the Diag include file,

where <prefix> is by default the same as the HOSTTYPE
environment variable (e.g. i586-linux).  To override this,
add --prefix=<prefix> to the configure command line.
See ./configure --help for a complete list of options.


The library libdiag.a provides the following routines:

HEigensystem  -- eigenvalue decomposition of an Hermitian matrix,
SEigensystem  -- eigenvalue decomposition of a symmetric matrix,
CEigensystem  -- eigenvalue decomposition of an arbitrary matrix,
TakagiFactor  -- Takagi factorization of a symmetric matrix,
SVD           -- Singular Value Decomposition of a matrix.

Please see manual.pdf for a detailed description.


Some demonstration programs are included in src/demo.
They firstly provide examples of how the library is used
and secondly act as a sanity check for the compilation.
To compile the demo programs and perform the check, type

make check

There should be no output of the diff statements, except
perhaps for very trivial things, like "+0" vs. "-0" which
are to some extent compiler-dependent.


Finally, some auxiliary routines are located in
src/ancillary (Fortran) or src/ancillary.h (C).
These perform rather trivial duties, such as multiplying
out the matrix products U A U^+ (Apply* functions) and
U^+ diag(d) U (Reverse* functions), and were used for
testing the Diag package.  They are included in the
distribution in the hope that somebody might find them
useful.  Please consult the commented source code for
details on what each routine does and its declaration.


Bug reports, suggestions for improvement, and fan mail
should be addressed to Thomas Hahn <hahn@feynarts.de>.


Enjoy!

