What is Project LinBox?
Project LinBox is a C++ template library for highperformance exact
computational linear algebra. What does all this mean?

Computational linear algebra. LinBox provides tools for linear
algebra computations over the integers, the rational numbers, and finite fields
and rings. It can solve linear
systems, and
compute several matrix invariants, such
as minimal and characteristic polynomials, rank, determinant, Smith normal form.
It can find leastnorm, leastsquares solutions to singular and
inconsistent systems. There is capability for positive definiteness determination
and signature (inertia) of symmetric integer matrices.

Sparse and Dense Matrices. LinBox was originallly designed primarily to work with sparse
and structured
matrices, which are defined in this context as those matrices
where the computational cost of application of an m by
n matrix to a vector is significantly less than O(mn),
the cost for a dense matrix. Now, increasingly, LinBox also has
codes for dense matrix computations using floating point
BLAS routines for speed while not sacrificing exactness.

Exact. All of LinBox's computational results are exact,
unlike the case with numerical systems such as Matlab. LinBox
can be used to provide the computational infrastructure needed for
rigorous theoremproving in addition to numbercrunching.

Highperformance. LinBox implements iterative
systemsolving methods such as those of Wiedemann and Lanczos to operate on
very large, sparse linear systems. This avoids the potential
fillin associated with eliminationbased methods and keeps memory
use relatively constant through the computation. These methods
allow LinBox to be used to solve systems with hundreds of
thousands of equations and hundreds of thousands of variables.

C++ template library. C++ templates are used to provide
both high performance and genericity. In particular, LinBox
algorithms are generic with respect to the field or ring over
which they
operate and with respect to the internal organization of the
black box matrix.
Project goals
LinBox aims to provide worldclass high performance implementations
of the most advanced algorithms for exact linear algebra.
Functionality:

System solutions:
 Problem variant:
 Nonsingular systems
 Random solutions for consistent singular systems
 Nullspace basis and random sample of nullspace
 Leastnorm, leastsquares solutions
 Certificate of inconsistency
 Domain of computation:
 Over a finite field
 Integer solutions (i.e., Diophantine systems)
 Rational solutions, using rational reconstruction

Linear operator invariants:
 Determinant
 Trace
 Rank [1]
 Minimal polynomial
 Characteristic polynomial
 Eigenvalues/eigenvectors
 Similarity testing

Matrix canonical forms:
 Smith normal form
 Frobenius (rational) normal form
