Info-Mac Archive Downloads: dev/lib/

Back to dev/lib/

LinAlg - a Linear Algebra classlib (lin-alg-cpp.hqx)

Download lin-alg-cpp.hqx (215,340 KB)


From: oleg@ponder.csci.unt.edu (Kiselyov Oleg)
Subject: LinAlg - a Linear Algebra classlib

Keywords: BLAS, Linear Algebra, optimization, interpolation, SVD,
lazy image, vector promise, pseudoinverse, regularization,
C++, class library
Hot points:
- _efficient_ and _fool-proof_ implementations of level 1 and
2 "BLAS" (element-wise operations + various multiplications)
- transpositions and determinant evaluation/inversion
- operations on a single row/col/diagonal of a matrix
- Lazy vector and Matrices (promises) , and ElementAction
iterators for fast sweeping actions
- Hooks-Jeevse multidimensional optimization
- Aitken-Lagrange interpolation over a grid of uniform or
arbitrary mesh
- *Singular Value Decomposition* of a rectangular matrix, with
an application to solve Ax=b, where A does not have to be square, and
b does not have to be a vector. In a case of a rectangular matrix A,
this effectively solves a least-squares problem.
- Brent's efficient univariate optimization and root finding
(with a guaranteed conversion)
- with a validation code to verify everything
- with a rather commented source and CW8 projects
Contents:
README - not just a plain README file
libla.pi - CW8 project to make a library, libla.a
libla.a - compiled library for a PowerMac
v*.pi - projects to run a validation code
v*.dat - output produced by the validation code
(for verification and asserting accuracy)
NumMath.dr - tells what the other files are for
*.h, *.cc - source code files
Language: C++, CodeWarrior 7/8
System: System 7.5
Note: the code is equivalent to that submitted to netlib:
this is because exactly the same code compiles both on a Mac and
under UNIX (Solaris 2.4). However, the present submission has the
code neatly arranged into CW projects. It also includes the
compiled PowerMac library.
Comments-to: oleg@ponder.csci.unt.edu, oleg@unt.edu

I'll really appreciate any comment/question etc if any.

Thank you for your consideration indeed,
Oleg