LinAlg is a C++ Linear Algebra and Optimization classlib. The library:

  • defines 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 implements Singular Value Decomposition (SVD), and its application to solving Ax=b, where matrix A does not have to be square, and b does not have to be a thin vector.
  • The package also implements Brent's univariate optimization and root finding, Hooke-Jeeves multidimensional optimization of functors, and Aitken-Lagrange interpolation.
  • Every feature is extensively tested in the validation code (included).

Current Version:   4.3, December 25, 1998.

License Type:   Public Domain

Home Site:

Source Code Availability:


Available Binary Packages:

  • Debian Package:   No
  • RedHat RPM Package:   No
  • Other Packages:   No

Targeted Platforms:

gcc Linux 2.0.33 i586; egcs-1.1.1 (optimization off, no '-freg-struct-return' gcc flag), Linux i686; gcc 2.8.1 (optimization off) on HP-PA, Solaris/Sparc; SGI's native compiler (optimization off); Visual C++ 5.0 WinNT 4.0; Metrowerk's CodeWarrior C++, BeOS Release 4. Software/Hardware Requirements:
C++ compiler

Other Links:

Mailing Lists/USENET News Groups:


User Comments:

  • None

See A Screen Shot? (Not Yet)

  SAL Home   |   Numerical Analysis   |   Misc

Comments? SAL@KachinaTech.COM
Copyright © 1995-2001 by Herng-Jeng Jou
Copyright © 1997-2001 by Kachina Technologies, Inc.
All rights reserved.