BLAS3
Level 3 Basic Linear Algebra Subprograms
BLAS3 is a library of FORTRAN77 routines, using
double precision arithmetic, which implement the Level 3
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 3 BLAS are designed to handle matrix-matrix operations.
Related Data and Programs:
BLAS1
is a FORTRAN77 library which
handles vector-vector operations.
BLAS2
is a FORTRAN77 library which
handles matrix-vector operations.
BLAS3 is also available in
a FORTRAN90 version.
LAPACK
is a FORTRAN77 library which
is a linear algebra library built on top of the BLAS routines.
LINPACK
is a FORTRAN77 library which
is a linear algebra library built on top of the BLAS routines.
Reference:
-
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.
-
Thomas Coleman, Charles Van Loan,
Handbook for Matrix Computations,
Society for Industrial and Applied Mathematics,
3600 University City Science Center,
Philadelphia, PA 19104-2688.
Source Code:
-
blas3.f, the matrix-matrix code;
-
blas3.csh, commands to compile
the source code;
Examples and Tests:
List of Routines:
-
CGEMM C:=alpha*A*B+beta*C, A, B, C
rectangular complex matrices.
-
CSYMM C:=alpha*A*B+beta*C, A symmetric, B and C
rectangular complex matrices.
-
CHEMM C:=alpha*A*B+beta*C, A Hermitian, B and C
rectangular complex matrices.
-
CHERK C:=alpha*A*Hermitian(A)+beta*C, A, B
rectangular, C square complex matrices.
-
CHER2K
C:=alpha*A*Hermitian(B)+conjugate(alpha)*B*Hermitian(A)+beta*C,
A, B rectangular, C square complex matrices.
-
CSYRK C:=alpha*A*TRANSPOSE(A)+beta*C, A general,
C square complex matrices.
-
CSYR2K C:=alpha*A*TRANSPOSE(B)+alpha*B*TRANSPOSE(A)+beta*C,
A, B rectangular, C square complex matrices.
-
CTRMM B:=A*B or B:=B*A, A triangular, B rectangular
complex matrices.
-
CTRSM B:=INVERSE(A)*C or B:=C*INVERSE(A),
A triangular, B and C rectangular complex matrices.
-
DGEMM C:=alpha*A*B+beta*C, A, B, C
rectangular double precision matrices.
-
DSYMM C:=alpha*A*B+beta*C, A symmetric, B and C
rectangular double precision matrices.
-
DSYRK C:=alpha*A*TRANSPOSE(A)+beta*C, A general,
C symmetric double precision matrices.
-
DSYR2K C:=alpha*A*TRANSPOSE(B)+alpha*B*TRANSPOSE(A)+beta*C,
A, B rectangular, C symmetric double precision matrices.
-
DTRMM B:=A*B or B:=B*A, A triangular, B rectangular
double precision matrices.
-
DTRSM B:=INVERSE(A)*C or B:=C*INVERSE(A),
A triangular, B and C rectangular double precision matrices.
-
SGEMM C:=alpha*A*B+beta*C, A, B, C
rectangular real matrices.
-
SSYMM C:=alpha*A*B+beta*C, A symmetric, B and C
rectangular real matrices.
-
SSYRK C:=alpha*A*TRANSPOSE(A)+beta*C, A general,
C symmetric real matrices.
-
SSYR2K C:=alpha*A*TRANSPOSE(B)+alpha*B*TRANSPOSE(A)+beta*C,
A, B rectangular, C symmetric real matrices.
-
STRMM B:=A*B or B:=B*A, A triangular, B rectangular
real matrices.
-
STRSM B:=INVERSE(A)*C or B:=C*INVERSE(A),
A triangular, B and C rectangular real matrices.
-
ZGEMM C:=alpha*A*B+beta*C, A, B, C
rectangular double complex matrices.
-
ZSYMM C:=alpha*A*B+beta*C, A symmetric, B and C
rectangular double complex matrices.
-
ZHEMM C:=alpha*A*B+beta*C, A Hermitian, B and C
rectangular double complex matrices.
-
ZHERK C:=alpha*A*Hermitian(A)+beta*C, A, B
rectangular, C square double complex matrices.
-
ZHER2K
C:=alpha*A*Hermitian(B)+conjugate(alpha)*B*Hermitian(A)+beta*C,
A, B rectangular, C square double complex matrices.
-
ZSYRK C:=alpha*A*TRANSPOSE(A)+beta*C, A general,
C square double complex matrices.
-
ZSYR2K C:=alpha*A*TRANSPOSE(B)+alpha*B*TRANSPOSE(A)+beta*C,
A, B rectangular, C square double complex matrices.
-
ZTRMM B:=A*B or B:=B*A, A triangular, B rectangular
double complex matrices.
-
ZTRSM B:=INVERSE(A)*C or B:=C*INVERSE(A),
A triangular, B and C rectangular double complex matrices.
You can go up one level to
the FORTRAN77 source codes.
Last revised on 15 February 2006.