## Basic Linear AlgebrauBLAS is a C++ template class library that provides BLAS level 1, 2, 3 functionality for dense, packed and sparse matrices. The design and implementation unify mathematical notation via operator overloading and efficient code generation via expression templates. ## FunctionalityuBLAS provides templated C++ classes for dense, unit and sparse vectors, dense, identity, triangular, banded, symmetric, hermitian and sparse matrices. Views into vectors and matrices can be constructed via ranges or slices and adaptor classes. The library covers the usual basic linear algebra operations on vectors and matrices: reductions like different norms, addition and subtraction of vectors and matrices and multiplication with a scalar, inner and outer products of vectors, matrix vector and matrix matrix products and triangular solver. The glue between containers, views and expression templated operations is a mostly STL conforming iterator interface. ## Documentation- Overview
- Vector
- Sparse Vector
- Vector Proxies
- Vector Expressions
- Matrix
- Triangular Matrix
- Symmetric Matrix
- Hermitian Matrix
- Banded Matrix
- Sparse Matrix
- Matrix Proxies
- Matrix Expressions
- Storage and special containers
- Sparse Storage
- Operations & Functions
- uBLAS Concept definitions
## Supported PlatformsThe current version of uBLAS expects a modern (ISO standard compliant) compiler. Compilers targeted and tested with this release are: - GCC 3.2.3, 3.3.x, 3.4.x, 4.0.x
- MSVC 7.1, 8.0
- ICC 8.0, 8.1
- Visual age 6
- Codewarrior 9.4, 9.5
The version of uBLAS in Boost 1.32.0 (and earlier) support many older compilers. If you are using such a compiler please use this version of uBLAS. Compilers known to accept this older library are: - MSVC 6.0 with STLPort-4.5.3, 7.0, 7.1
- GCC 2.95.x, 3.0.x, 3.1.x, 3.2.x, 3.3.x, 3.4.x
- ICC 7.0, 7.1 8.0
- Comeau 4.2.x
- Codewarrior 8.3
For possible problems please consider to consult the Boost regression tests. ## Known limitations:- The implementation assumes a linear memory address model.
- Tuning was focussed on dense matrices.
## Further Information## Project Location and DownloadThe latest stable release of uBLAS is part of the Boost libraries. ## Documentation and DiscussionVisit the Effective uBLAS wiki for up to date information and contributions. There is also an active uBLAS mailing list where uBLAS specific user and development questions are answered. ## uBLAS and Boost ProjectThere is also an active uBLAS mailing list where uBLAS specific from the latest uBLAS project code. You can view the Boost CVS archive directly. You will find the library here. Documentation and test programs reside here. ## Authors and CreditsuBLAS initially was written by Joerg Walter and Mathias Koch. We would like to thank all, which supported and contributed to the development of this library: David Abrahams, Ed Brey, Fernando Cacciola, Juan Jose Gomez Cadenas, Beman Dawes, Matt Davies, Bob Fletcher, Kresimir Fresl, Joachim Kessel, Patrick Kowalzick, Toon Knapen, Hendrik Kueck, John Maddock, Jens Maurer, Alexei Novakov, Gary Powell, Joachim Pyras, Peter Schmitteckert, Jeremy Siek, Markus Steffl, Michael Stevens, Benedikt Weber, Martin Weiser, Gunter Winkler, Marc Zimmermann and the members of Boost ## Frequently Asked QuestionsQ: I'm running the uBLAS dense vector and matrix benchmarks. Why
do I see a significant performance difference between the native C
and library implementations? Q: I've written some uBLAS tests, which try to incorrectly
assign different matrix types or overrun vector and matrix
dimensions. Why don't I get a compile time or runtime
diagnostic? Q: I've written some uBLAS benchmarks to measure the performance
of matrix chain multiplications like Copyright (©) 2000-2002 Joerg Walter, Mathias Koch |