BLAS1 The Basic Linear Algebra Subprograms Level 1

BLAS1 is a C++ library which implements the Level 1 Basic Linear Algebra Subprograms (BLAS).

The BLAS are a small core library of linear algebra utilities, which can be highly optimized for various architectures. Software that relies on the BLAS is thus highly portable, and will typically run very efficiently.

The Level 1 BLAS are primarily for use in vector operations, such as vector norms, dot products, vector scaling, and the addition of a scalar multiple of one vector to another.

While the entries of a typical vector are stored continguously in memory, many BLAS1 routines allow the user to specify a vector by locating its first element, and giving an increment to be used to locate the successive elements. An increment of +1 corresponds to the typical vector; however, by specifying other increments, a "logical" vector can be selected that is actually a row, column, or even a diagonal of a two-dimensional array.

The Level 1 BLAS are available in both real and complex arithmetic versions, and using single precision or double precision. In most cases, a given BLAS function has a root name, such as AXPY, and prefix is used to identify the arithmetic and precision. Thus,

• CAXPY is the single precision complex version of AXPY;
• DAXPY is the double precision real version of AXPY;
• SAXPY is the single precision real version of AXPY;
• ZAXPY is the double precision complex version of AXPY;

Languages:

BLAS1 is available in a C version and a C++ version and a FORTRAN77 version and a FORTRAN90 version and a MATLAB version.

Related Data and Programs:

BLAS0, a C++ library which contains auxilliary functions for the Basic Linear Algebra Subprograms (BLAS).

BLAS1_C, a C++ library which contains basic linear algebra routines for vector-vector operations, using single precision complex arithmetic;

BLAS1_D, a C++ library which contains basic linear algebra routines for vector-vector operations, using double precision real arithmetic;

BLAS1_S, a C++ library which contains basic linear algebra routines for vector-vector operations, using single precision real arithmetic;

BLAS1_Z, a C++ library which contains basic linear algebra routines for vector-vector operations, using double precision complex arithmetic;

BLAS2, a C++ library which contains basic linear algebra subprograms (BLAS) for matrix-vector operations;

BLAS3, a C++ library which contains basic linear algebra subprograms (BLAS) for matrix-matrix operations;

LINPACK, a C++ library which is a linear algebra package that uses the BLAS1 routines.

Author:

Original FORTRAN77 version by Charles Lawson, Richard Hanson, David Kincaid, Fred Krogh. C++ version by John Burkardt.

Reference:

1. Edward Anderson, Zhaojun Bai, Christian Bischof, Susan Blackford, James Demmel, Jack Dongarra, Jeremy Du Croz, Anne Greenbaum, Sven Hammarling, Alan McKenney, Danny Sorensen,
LAPACK User's Guide,
Third Edition,
SIAM, 1999,
ISBN: 0898714478,
LC: QA76.73.F25L36.
2. Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
LINPACK User's Guide,
SIAM, 1979,
ISBN13: 978-0-898711-72-1,
LC: QA214.L56.
3. Charles Lawson, Richard Hanson, David Kincaid, Fred Krogh,
Algorithm 539: Basic Linear Algebra Subprograms for Fortran Usage,
ACM Transactions on Mathematical Software,
Volume 5, Number 3, September 1979, pages 308-323.

You can go up one level to the C++ source codes.

Last revised on 29 April 2012.