BLAS2
Level 2 Basic Linear Algebra Subprograms
BLAS2
is a FORTRAN77 library which
implements the Level 2
BLAS, or Basic Linear Algebra Subprograms.
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 2 BLAS are designed to handle a variety of matrix-vector
operations.
Languages:
BLAS2 is available in
a FORTRAN90 version and
a FORTRAN77 version.
Related Data and Programs:
BLAS1,
a FORTRAN77 library which
handles vector-vector operations.
BLAS3,
a FORTRAN77 library which
handles matrix-matrix operations.
LAPACK_EXAMPLES,
a FORTRAN77 program which
demonstrates the use of the LAPACK linear algebra library.
LINPACK,
a FORTRAN77 library which
is a linear algebra package built on top of the BLAS.
Reference:
-
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.
-
Thomas Coleman, Charles vanLoan,
Handbook for Matrix Computations,
SIAM, 1988,
ISBN13: 978-0-898712-27-8,
LC: QA188.C65.
-
Jack Dongarra, Jim Bunch, Cleve Moler, Pete Stewart,
LINPACK User's Guide,
SIAM, 1979,
ISBN13: 978-0-898711-72-1,
LC: QA214.L56.
-
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.
Source Code:
Examples and Tests:
List of Routines:
-
CGBMV SY:=alpha*A*SX+beta*SY, A a complex band matrix.
-
CGEMV SY:=alpha*A*SX+beta*SY, A a complex
rectangular matrix.
-
CGERC A:=A+alpha*SX*CONJUGATE-TRANSPOSE(SY), rank 1 update,
A a complex general matrix.
-
CGERU A:=A+alpha*SX*TRANSPOSE(SY), rank 1 update, A a
complex general matrix.
-
CHBMV SY:=alpha*A*SX+beta*SY, A a complex
Hermitian band matrix.
-
CHEMV SY:=alpha*A*SX+beta*SY, A a complex
Hermitian matrix.
-
CHER A:=A+alpha*SX*TRANSPOSE(SX), A a complex
Hermitian matrix.
-
CHER2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A a complex Hermitian matrix.
-
CHPMV SY:=alpha*A*SX+beta*SY, A a complex
Hermitian packed matrix.
-
CHPR A:=A+alpha*SX*TRANSPOSE(SX), A a complex
Hermitian packed matrix.
-
CHPR2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A complex Hermitian packed matrix.
-
CSBMV SY:=alpha*A*SX+beta*SY, A a complex
symmetric band matrix.
-
CSPMV SY:=alpha*A*SX+beta*SY, A a packed
complex symmetric matrix.
-
CSPR A:=A+alpha*SX*TRANSPOSE(SX), A a complex
symmetric packed matrix.
-
CSPR2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A packed complex symmetric matrix.
-
CSYMV SY:=alpha*A*SX+beta*SY, A a complex
symmetric matrix.
-
CSYR A:=A+alpha*SX*TRANSPOSE(SX), A a complex
symmetric matrix.
-
CSYR2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A complex symmetric matrix.
-
CTBMV SX:=A*SX, A a complex triangular band matrix.
-
CTBSV SX:=INVERSE(A)*SX, A a complex triangular
band matrix.
-
CTPMV SX:=A*SX, A a packed complex symmetric matrix.
-
CTPSV SX:=INVERSE(A)*SX, A a packed complex
symmetric matrix.
-
CTRMV SX:=A*SX, A a complex triangular matrix.
-
CTRSV SX:=INVERSE(A)*SX, A a complex triangular matrix.
-
DGBMV SY:=alpha*A*SX+beta*SY, A a double precision band matrix.
-
DGEMV SY:=alpha*A*SX+beta*SY, A a double precision
rectangular matrix.
-
DGER A:=A+alpha*SX*TRANSPOSE(SY), rank 1 update, A a
double precision general matrix.
-
DSBMV SY:=alpha*A*SX+beta*SY, A a double precision
symmetric band matrix.
-
DSPMV SY:=alpha*A*SX+beta*SY, A a packed
double precision symmetric matrix.
-
DSPR A:=A+alpha*SX*TRANSPOSE(SX), A a packed
double precision symmetric matrix.
-
DSPR2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A packed double precision symmetric matrix.
-
DSYMV SY:=alpha*A*SX+beta*SY, A a double precision
symmetric matrix.
-
DSYR A:=A+alpha*SX*TRANSPOSE(SX), A a double precision
symmetric matrix.
-
DSYR2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A a double precision symmetric matrix.
-
DTBMV SX:=A*SX, A a double precision triangular band matrix.
-
DTBSV SX:=INVERSE(A)*SX, A a double precision triangular
band matrix.
-
DTPMV SX:=A*SX, A a packed double precision symmetric matrix.
-
DTPSV SX:=INVERSE(A)*SX, A a packed double precision
symmetric matrix.
-
DTRMV SX:=A*SX, A a double precision triangular matrix.
-
DTRSV SX:=INVERSE(A)*SX, A a double precision triangular matrix.
-
SGBMV SY:=alpha*A*SX+beta*SY, A a real band matrix.
-
SGEMV SY:=alpha*A*SX+beta*SY, A a real
rectangular matrix.
-
SGER A:=A+alpha*SX*TRANSPOSE(SY), rank 1 update, A a
real general matrix.
-
SSBMV SY:=alpha*A*SX+beta*SY, A a real
symmetric band matrix.
-
SSPMV SY:=alpha*A*SX+beta*SY, A a packed
realn symmetric matrix.
-
SSPR A:=A+alpha*SX*TRANSPOSE(SX), A a packed
real symmetric matrix.
-
SSPR2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A packed real symmetric matrix.
-
SSYMV SY:=alpha*A*SX+beta*SY, A a real
symmetric matrix.
-
SSYR A:=A+alpha*SX*TRANSPOSE(SX), A a real
symmetric matrix.
-
SSYR2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A a real symmetric matrix.
-
STBMV SX:=A*SX, A a real triangular band matrix.
-
STBSV SX:=INVERSE(A)*SX, A a real triangular
band matrix.
-
STPMV SX:=A*SX, A a packed real symmetric matrix.
-
STPSV SX:=INVERSE(A)*SX, A a packed real
symmetric matrix.
-
STRMV SX:=A*SX, A a real triangular matrix.
-
STRSV SX:=INVERSE(A)*SX, A a real triangular matrix.
-
ZGBMV SY:=alpha*A*SX+beta*SY, A a double complex band matrix.
-
ZGEMV SY:=alpha*A*SX+beta*SY, A a double complex
rectangular matrix.
-
ZGERC A:=A+alpha*SX*CONJUGATE-TRANSPOSE(SY), rank 1 update,
A a double complex general matrix.
-
ZGERU A:=A+alpha*SX*TRANSPOSE(SY), rank 1 update, A a
double complex general matrix.
-
ZHBMV SY:=alpha*A*SX+beta*SY, A a double complex
Hermitian band matrix.
-
ZHEMV SY:=alpha*A*SX+beta*SY, A a double complex
Hermitian matrix.
-
ZHER A:=A+alpha*SX*TRANSPOSE(SX), A a double complex
Hermitian matrix.
-
ZHER2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A a double complex Hermitian matrix.
-
ZHPMV SY:=alpha*A*SX+beta*SY, A a double complex
Hermitian packed matrix.
-
ZHPR A:=A+alpha*SX*TRANSPOSE(SX), A a double complex
Hermitian packed matrix.
-
ZHPR2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A double complex Hermitian packed matrix.
-
ZSBMV SY:=alpha*A*SX+beta*SY, A a double complex
symmetric band matrix.
-
ZSPMV SY:=alpha*A*SX+beta*SY, A a packed
double complex symmetric matrix.
-
ZSPR A:=A+alpha*SX*TRANSPOSE(SX), A a double complex
symmetric packed matrix.
-
ZSPR2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A packed double complex symmetric matrix.
-
ZSYMV SY:=alpha*A*SX+beta*SY, A a double complex
symmetric matrix.
-
ZSYR A:=A+alpha*SX*TRANSPOSE(SX), A a double complex
symmetric matrix.
-
ZSYR2 A:=A+alpha*SX*TRANSPOSE(SY)+alpha*SY*TRANSPOSE(SX),
A double complex symmetric matrix.
-
ZTBMV SX:=A*SX, A a double complex triangular band matrix.
-
ZTBSV SX:=INVERSE(A)*SX, A a double complex triangular
band matrix.
-
ZTPMV SX:=A*SX, A a packed double complex symmetric matrix.
-
ZTPSV SX:=INVERSE(A)*SX, A a packed double complex
symmetric matrix.
-
ZTRMV SX:=A*SX, A a double complex triangular matrix.
-
ZTRSV SX:=INVERSE(A)*SX, A a double complex triangular matrix.
You can go up one level to
the FORTRAN77 source codes.
Last revised on 15 February 2006.