File: BLinAlg-FFT.tar.gz Author: Oleg Kiselyov (oleg@pobox.com) Release: 4.3 (Dec 25, 1998) Compatibility: R4 Location: contrib/development Description: Basic Linear Algebra, Optimization, FFT classlib Notes: cross-platform source code plus compiled BeOS R4 PPC library This classlib declares Matrix, Vector, subMatrices, and LAStreams over real domain; contains efficient and fool-proof implementations of level 1 and 2 BLAS (element-wise operations and various multiplications), transposition, determinant evaluation and matrix inverse. There are operations on a single row/col/diagonal of a matrix. Distinct features of the package are Matrix views, various Matrix streams, and LazyMatrices. Lazy construction allows one to write matrix expressions in a natural way while imposing no hidden temporaries, no deep copying, and no reference counting. LinAlg stresses Matrix streams, which provide a sequential view/access to a matrix or its parts. LABlockStreams may span over an arbitrary rectangular block of a matrix, including the whole matrix, a single matrix element, and all other block sizes in between. Matrix streams are seek- able and subrange-able. A stream or a substream are always created in-line; they do not allocate any heap storage, and are safe. The package proves that many of Linear Algebra algorithms indeed require only sequential access to a matrix or its subblocks, which is simpler and faster than a random access. Notable examples of such "serial algorithms" are matrix inverse and Householder bidiagonalizations. Every feature of the package is extensively tested by validation code (included). Major attractions of the current complete release (v4.3) are - Hooke-Jeeves multidimensional optimization of functors - Aitken-Lagrange interpolation - Singular Value Decomposition and its application to solving Ax=b, where matrix A does not have to be square, and b does not have to be a vector. - More support for Matrix and Vector promises: Matrix A = inverse(D); C = A*B; do what they say, as efficiently as possible. - A great variety of matrix streams, e.g.: assert(    of_every(ConstMatrixRow(m,i)).max_abs(of_every(vect))    == 2.0 ); A README file tells much more about the features and how to use them. It contains many commented code snippets. NumMath.dr file tells what the other files are for. In addition, the archive contains an already built library -- libla.a, BeOS PPC R4b4. But the source code is cross-platform compatible and compiles as it is on various flavors of UNIX, Linux, and WinNT. See the README file for more details.