Differences between revisions 2 and 3
Revision 2 as of 2008-11-14 13:41:59
Size: 1448
Editor: anonymous
Comment: converted to 1.6 markup
Revision 3 as of 2017-03-22 00:36:25
Size: 0
Editor: mrennekamp
Comment: is an spkg
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
= LinBox =

== About ==
From the website: "LinBox is a C++ template library for exact, high-performance linear algebra computation with dense, sparse, and structured matrices over the integers and over finite fields." (http://www.linalg.org)


== URL ==
http://www.linalg.org

== Documentation ==
Note: Credibility of this information: Clement Pernet from the LinBox team. However, any possible mistakes are due to the respective authors (e.g. [[MartinAlbrecht|Martin Albrecht]])

=== Design Description ===
There are two types of dense matrices in LinBox. The first type is in {{{blas-matrix.h}}}. You will find a DenseMatrix and a BlasMatrix class in there. Use the BlasMatrix class. Those classes are templated with a field as template parameter. You can plug in e.g. {{{Modular<double>}}}, {{{Integer}}}, and even {{{GivaroGfq}}}.

The other type are black box matrices. These are templated with an Element as template parameter as it is supposed not to rely on ony field implementation.

== Tips and Tricks ==

 * If you are looking for a solution, search the solution subdirectory. You don't have to worry about matrix domains there. If you cannot find what you are looking for look in the algorithms subdirectory.
 * If you are in the algorithms subdirectory use BlasMatrixDomain for everything dense. (Btw. never ever use the MatrixDomain)
 * Always use DenseMatrix for dense operations.


== Random Benchmarks ==