Overview - Project LinBox


GAP homology package
Maple-LinBox package

Online computing servers

What is Project LinBox?

Project LinBox is a C++ template library for high-performance 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 least-norm, least-squares 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 theorem-proving in addition to number-crunching.
  • High-performance. LinBox implements iterative system-solving methods such as those of Wiedemann and Lanczos to operate on very large, sparse linear systems. This avoids the potential fill-in associated with elimination-based 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 world-class high performance implementations of the most advanced algorithms for exact linear algebra.


  • System solutions:
    • Problem variant:
      • Nonsingular systems
      • Random solutions for consistent singular systems
      • Nullspace basis and random sample of nullspace
      • Least-norm, least-squares 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

[1] These methods are probabilistic for a finite field, though for rank there exists a certification when the field is of characteristic zero.

Valid HTML 4.0! Valid CSS! Comments? Bug reports? Please contact us at linbox-use@googlegroups.com
This page's URL: http://www.linalg.org/overview.html
Page created: 4 August 2002
Page last updated: April 2008