Version 1.0 was released last March. I have used it throughout
the year to write a little language and several other matrix
programs. It has been very stable and run for several hundred
hours on the machines I use. I thought about a few things during
the year that seemed reasonable to add.
This upgrade of YAMP provides several new functions, and
an improvement or two:
- an in ram version that works for all but the tiny memory
model.
- User code for the in-ram and virtual memory model is identical.
- Important: I removed the initialization to 0 of virtual matrices, so
programs written in YAMP 1.0 must be adapted if they use
the assumption that a matrix starts as a zero matrix. This
increases the speed considerably.
- A copy constructor that allows statements like
"VMatrix V = Inv(Tran(X)*X);" to work as expected. Version 1.0
had a problem with this because it did not have a copy
constructor.
- Many new functions: determinant, cholesky
decomposition, QR decomposition, singular valued
decomposition, generalized inverse, a nearly fast
fourier transform (and inverse), vec, vecdiag,
diag, shape, sum, sum of squares, cumulative
summation, max, min, and elemetary row and column
operations.
- A make file for constructing a library from YAMP.
- SGREP has been removed, since the functions above have
been provided.
- The header virt.h has been documented so that it can be
used as a quick reference.
About the only other thing I can think of needing in a matrix package
is a graphics object. I'm still working on it and hope to finish
it by this Spring or Summer. This is still one of my after hours
hobby type projects, so I can't promise much.