Skip to content
Library for exact linear algebra, a C++ template-library based originally on LinBox intended for F4-like implementations
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
lela
macros
tests
util
.gitignore
AUTHORS
COPYING
ChangeLog
INSTALL
Makefile.am
NEWS
PROJECTS
README
TODO
autogen.sh
configure.in
install-sh
lela-config.in

README

Library for Exact Linear Algebra (LELA)
=======================================

LELA is a C++ template-library for computations in (normally) exact
linear algebra. It is flexible in two respects:
  - the choice of ring over which to compute
  - the choice of vector- and matrix-representation, i.e. dense vs. sparse

LELA uses C++ templates to provide the best feasible performance for
each of the above choices. It also includes wrappers for some other
libraries, such as M4RI (see http://m4ri.sagemath.org/) and CBLAS to
make use of highly specialised implementations available in certain
cases. All of these dependencies are optional; if the libraries are
not present, LELA will fall back to its own routines at a cost of some
performance.

An introductory tutorial on the use of LELA may be found in the file
doc/tutorial.html

For questions, please make use of our mailing-list at
lela-users@googlegroups.com

LELA was originally derived from LinBox (see http://www.linalg.org/).

Some key differences between LELA and LinBox are the following:

 - LELA does not have any built-in facilities for black-box linear
   algebra.

 - LELA uses a completely new system for vector- and
   matrix-arithmetic. There is a single BLAS-like interface which
   handles all cases and the underlying mechanism is designed to be
   versatile and extensible. LinBox in contrast has two separate
   interfaces (MatrixDomain and VectorDomain vs. fflas) for matrix-
   and vector-arithmetic, each one with its own advantages and
   limitations.

 - LELA currently does not implement many of the high-level algorithms
   which are present in LinBox, particularly for calculations over the
   integers.

 - LELA has far fewer vector-representation-types over general rings
   than LinBox: only one for sparse vectors vs. three.

 - LELA has far better support for GF2 than LinBox, including fast
   word-based operations, a wrapper for M4RI, and a new "hybrid"
   vector-representation-type which is well suited to elimination
   problems with sparse matrices over GF(2).

 - LELA defines an interface for rings while LinBox defines an
   interface for fields. LELA-rings do not assume that all non-zero
   entries are invertible or that all nonzero elements divide all
   others. Instead the ring-interface reports whether inversion
   respectively division was successful.

 - Unlike fflas, LELA does not currently automatically convert
   matrices with an integral representation to a floating point
   representation before multiplying them. To take advantage of fast
   floating-point operations, the user must use such a representation
   throughout.

You can’t perform that action at this time.