5903 Intro Scientific Prog:
MatrixB: Specification

  1. Basic Matrix Algebra for Sparse and Full matrices. Procedures need to be provided to
    1. Read sparse matrices in the ".5903SparseMatrix" format from a file.
    2. Read full matrices using the spec from the earlier assignment. 
    3. Write matrices in both sparse and full formats.  Two seperate procedures is good.
    4. Check that the sparse matrix file is ordered.
    5. Order a file for writing to the sparse matrix format.
    6. Convert from Sparse representation to Full representation.
    7. Compute matrix matrix (with vector as a special case of a single rowed matrix) products in all combinations
      1. Full.Full
      2. Full.Sparse
      3. Sparse.Full
      4. Sparse.Sparse
  2. Test your code on small samples.  I will provide them on request but it should be simple enough to make your own. 
  3. You should organize your code into seperate files and make the "makefile" reasonably compact.  Provide some estimate of the operation count in the header for the factorization algorithm.
  4. 5903SparseMatrix storage format: As we decided the format for an mxn sparse matrix is an array of m pointers to m rows.  Each row is a strcuture composed of: an integer-giving the length of the row; an integer giving the number of non-zero entries in the row; and two arrays (one of j and one of f values) containing the non-zero values. 
    or:  skip the full row length in the row spec and just pass it in the sparsematrix structure!
  1. 5903SparseMatrix file format: As we decided the format (with m and n integers) is where is and js give the position of the float values f.
            5903SparseMatrix \n
            m \t n \t float \n
            i1 \t j1 \t f1 \n
            i2 \t j2 \t f2 \n
            i3 \t j3 \t f3 \n
            i4 \t j4 \t f4 \n
            ...