
These is the implementation of matrix and vector manipulation routines 
which should be helpful in the implementation of the Alpha calculator.

------------------- Contents -------------------------------

The matrix/vector manipulation routines are (alpha_matrix.h):

a_make_vector
a_destroy_vector
a_make_matrix
a_destroy_matrix
a_set_vec		set all elts of a vector to a value
a_neg_vec		negate the elts of a vector
a_saxpy			z = a x + b y, where a, b are scalars
a_copy_vec		guess what this does!
a_swap_vec
a_resize_vec
a_is_zero_vec
a_copy_mx
a_swap_col
a_swap_row
a_set2ident		set matrix to an identity
a_matmult		
a_mvm			matrix-vector multiplication
a_transpose
a_extract		B = A[i1...i2, j1...j2]
a_add_cols
a_trunc_cols

a_lower_echelon		compute the lower echelon form of the matrix: A*U = [ L 0 ]

Also check out the comments for a_fprintf in alpha_io.c to see how vectors
and matrices can be printed out.

alpha_test.c has a program to read in a matrix and print
out its lower echelon form and the matrix U of transformations.  
Please take a look at this file and at the function a_lower_echelon in
alpha_matrix.c for examples of use of the library.

Here is the full index of files:

Makefile
alpha_test.c			example program
alpha_int.c			floor of division and gcd routines
alpha_int.h
alpha_io.c			some useful I/O stuff (includes a printf like routine)
alpha_io.h
alpha_matrix.c			matrix / vector routines
alpha_matrix.h
alpha_matrix-private.h
alpha.h				top level include file
README				this file (Douglas Hoffstaedter,please ...)


------------------- Compiling -------------------------------

I have been able to compile the library on HP-UX, Sun (SunOS and
Solaris), RS6000 (SP-2 that is).  The only caveat is that you need GNU
make.  On CS department machines this means that you should be using
/usr/local/gnu/bin/make. On SP-2 you should use gmake.

I have been mostly compiling the library with gcc (and this is how the
Makefile is set up), but native compilers should work fine, as well (I
have tried HP cc and RS6000 xlc). 

Good luck!
