A fast and easy to use class library for linear algebra
This project is hosted on:
SourceForge Logo


[Tue Dec 3 2002]
After some time of improvements, LinAl-4.2.4 is ready. The development of this version has been driven by Chris Drexler who has really improved things a lot. Here is a quick rundown of the changes:

The matrix classes have been rewritten to have the element type as a template parameter. Besides the interface to blas/lapack, new support for arpack/arpack++ (eigen value related problems) and superLU (sparse and non-symmentric matrices) has been added. In addition, a new package, called "LinAl-pak", is available in parallel to the LinAl package. It contains the mentioned libraries (arpack, arpack++, superlu) in addition to LinAl together with several patches for either fixing some bugs or ensuring a smooth integration into LinAl.

[Sun Nov 19 20:02:49 CST 2000]
Issued a press release to announce the LinAl project and hopefully get some more people interested.

[Fri Oct 20 14:47:32 2000]
Well, I guess it's time to come out of the closet with this little pet project of mine. Maybe some more people will find it useful so here it goes. We have a Website, CVS repository, a mailing list, the whole mantissa... Go check things out here, then drop me a line with whatever you think about it.

[Thu Oct 19 21:45:59 2000]
Started the page today!


LinAl is "yet another" linear algebra library, well yes and no. Let me briefly describe what LinAl's features are.

LinAl is a simple, easy to use yet fast library for linear algebra in C++. The library was designed to be compatible with the one and only true language for numerical computations, which is FORTRAN. Unfortunately FORTRAN is good for nothing else but number crunching, that's why a C++ interface makes perfect sense.

At the same time LinAl is supposed to be easy to use, fast and, to a certain extent, type save. While certain compromises were made in the class layout and design, strong emphasis was put on simplicity and speed.

The library is based on STL techniques and uses STL containers for the storage of matrix data furthermore STL algorithms are used where feasible. Low level, algebraic operators as well as linear solvers and eigenvalue solvers are implemented, based on calls to BLAS, LAPACK and CGSOLX and LANCZOS. These packages can be found on netlib.

Interested? Fantastic, download the package, get them compiler hummin' and see what's this all about. Problems? That's what the mailing list is for. So what are you waiting for?

Project information

LinAl is maintained and developed with the help of the sourceforge open source infrastructure. There is currently one mailing list and a download area as well as anonymous ftp access and cvs access. Please refer to the LinAl project page for detailed information.


LinAl was written by Roland Krause. It is now maintained jointly by Christopher Drexler and Roland Krause. Note that Chris has done the majority of the work lately. LinAl was initially developed for use in the Finite Element code AdhoC. For all questions, concerning LinAl please use the mailing list. If you need to contact me directly, simply drop me or Chris an email.


LinAl is Copyright by Roland Krause and released to the public under the provision of the LGPL (the Lesser General Public License). You can find information about the LGPL here. If you consider using LinAl commercially and the LGPL license is not an option for you, and if you are not planning to make any changes to the library, you need to drop me a line and I will grant you an exception from the LGPL license.


Some links that I find very useful:

  • Netlib - the mother of all numerics on the net
  • Object oriented numerics - a site that deals with object oriented aspects of programming for numerical problems
  • STLport - a platform independent implementation of the Standard Template Library
  • Doxygen - for documentation of your source code

Your interest in these pages is highly appreciated. All information on this page is Copyright 2000 by rokrau 2000.
$Revision: 1.10 $, $Author: rokrau $, $Date: 2002/12/03 18:00:38 $