You are on page 1of 3

1

xROTG (
xROTMG(
xROT (
xROTM (
xSWAP (
xSCAL (
xCOPY (
xAXPY (
xDOT (
xDOTU (
xDOTC (
xxDOT (
xNRM2 (
xASUM (
IxAMAX(

Level 1 BLAS
SUBROUTINE
SUBROUTINE
SUBROUTINE
SUBROUTINE
SUBROUTINE
SUBROUTINE
SUBROUTINE
SUBROUTINE
FUNCTION
FUNCTION
FUNCTION
FUNCTION
FUNCTION
FUNCTION
FUNCTION

xGEMV
xGBMV
xHEMV
xHBMV
xHPMV
xSYMV
xSBMV
xSPMV
xTRMV
xTBMV
xTPMV
xTRSV
xTBSV
xTPSV
(
(
(
(
(
(
(
(
(
(
(

(
(
(
(
(
(
(
(
(
(
(
(
(
(

UPLO,
UPLO,
UPLO,
UPLO,
UPLO,
UPLO,
UPLO,
UPLO,

dim
M, N,
M, N,
N,
N,
N,
N,
N,
N,
N,
N,
N,
N,
N,
N,
dim
M, N,
M, N,
M, N,
N,
N,
N,
N,
N,
N,
N,
N,

X,
X,
X,
ALPHA, X,
X,
ALPHA, X,
X,
X,
X,
X,
X,
X,
X,
)
)
)
)
)
)

matrix
A, LDA,
A, LDA,
A, LDA,
A, LDA,
A, LDA,
A, LDA,
A, LDA,
A, LDA,
A, LDA,

matrix scalar
B, LDB, BETA,
B, LDB, BETA,
B, LDB, BETA,
BETA,
BETA,
LDB, BETA,
LDB, BETA,
LDB )
LDB )
B,
B,
B,
B,

matrix vector
scalar
A, LDA, X, INCX, BETA,
A, LDA, X, INCX, BETA,
A, LDA, X, INCX, BETA,
A, LDA, X, INCX, BETA,
AP,
X, INCX, BETA,
A, LDA, X, INCX, BETA,
A, LDA, X, INCX, BETA,
AP,
X, INCX, BETA,
A, LDA, X, INCX )
A, LDA, X, INCX )
AP,
X, INCX )
A, LDA, X, INCX )
A, LDA, X, INCX )
AP,
X, INCX )
vector
matrix
Y, INCY, A, LDA )
Y, INCY, A, LDA )
Y, INCY, A, LDA )
A, LDA )
AP )
Y, INCY, A, LDA )
Y, INCY, AP )
A, LDA )
AP )
Y, INCY, A, LDA )
Y, INCY, AP )

K,

K,
K,
K,
K,

scalar
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,

vector
Y, INCY
Y, INCY
Y, INCY
Y, INCY
Y, INCY
Y, INCY
Y, INCY
Y, INCY

matrix
C, LDC
C, LDC
C, LDC
C, LDC
C, LDC
C, LDC
C, LDC

)
)
)
)
)
)
)
)

vector
scalars
5-element array
A, B, C, S )
D1, D2, A, B,
PARAM )
INCY,
C, S )
INCY,
PARAM )
INCY )
INCY
INCY
INCY
INCY
INCY
INCY

dim
M, N,
M, N,
M, N,
N,
N,
N,
N,
M, N,
M, N,

vector
X, INCX,
X, INCX,
X, INCX,
X, INCX,
X, INCX,
X, INCX,
X, INCX,
X, INCX,
X, INCX,
X, INCX,
X, INCX,

b-width scalar
ALPHA,
KL, KU, ALPHA,
ALPHA,
K,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,

scalar
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,
ALPHA,

K,

K,

K,

INCX, Y,
INCX, Y,
INCX, Y,
INCX )
INCX, Y,
INCX, Y,
INCX, Y,
INCX, Y,
INCX, Y,
INCX, Y,
INCX )
INCX )
INCX )

dim scalar vector

N,
N,
N,
N,
N,
N,
N,
N,
N,
N,
N,
N,
N,

options
TRANS,
TRANS,
UPLO,
UPLO,
UPLO,
UPLO,
UPLO,
UPLO,
UPLO, TRANS, DIAG,
UPLO, TRANS, DIAG,
UPLO, TRANS, DIAG,
UPLO, TRANS, DIAG,
UPLO, TRANS, DIAG,
UPLO, TRANS, DIAG,
options

Level 2 BLAS

xGER
xGERU
xGERC
xHER
xHPR
xHER2
xHPR2
xSYR
xSPR
xSYR2
xSPR2

options
TRANSA, TRANSB,
SIDE, UPLO,
SIDE, UPLO,
UPLO, TRANS,
UPLO, TRANS,
UPLO, TRANS,
UPLO, TRANS,
SIDE, UPLO, TRANSA,
DIAG,
SIDE, UPLO, TRANSA,
DIAG,

Level 3 BLAS
xGEMM (
xSYMM (
xHEMM (
xSYRK (
xHERK (
xSYR2K(
xHER2K(
xTRMM (
xTRSM (

)
)
)
)
)
)
)

Generate plane rotation


Generate modied plane rotation
Apply plane rotation
Apply modied plane rotation
x$y
x  x
yx
y  x + y
dot  xT y
dot  xT y
dot  xH y
dot   + xT y
nrm2  jjxjj2
asum  jjre(x)jj1 + jjim(x)jj1
amax  1st k 3 jre(xk )j + jim(xk )j
= max(jre(xi )j + jim(xi )j)

prexes
S, D
S, D
S, D
S, D
S, D, C, Z
S, D, C, Z, CS, ZD
S, D, C, Z
S, D, C, Z
S, D, DS
C, Z
C, Z
SDS
S, D, SC, DZ
S, D, SC, DZ
S, D, C, Z

S, D
C, Z
C, Z
C, Z
C, Z
C, Z
C, Z
S, D
S, D
S, D
S, D

S, D, C, Z
S, D, C, Z
C, Z
C, Z
C, Z
S, D
S, D
S, D
S, D, C, Z
S, D, C, Z
S, D, C, Z
S, D, C, Z
S, D, C, Z
S, D, C, Z

A  xyT + A A ; m  n
A  xyT + A A ; m  n
A  xyH + A A ; m  n
A  xxH + A
A  xxH + A
A  xyH + y(x)H + A
A  xyH + y(x)H + A
A  xxT + A
A  xxT + A
A  xyT + yxT + A
A  xyT + yxT + A

S, D, C, Z
S, D, C, Z
C, Z
S, D, C, Z
C, Z
S, D, C, Z
C, Z
S, D, C, Z
S, D, C, Z

y  Ax + y y  AT x + y y  AH x + y A ; m  n


y  Ax + y y  AT x + y y  AH x + y A ; m  n
y  Ax + y
y  Ax + y
y  Ax + y
y  Ax + y
y  Ax + y
y  Ax + y
x  Ax x  AT x x  AH x
x  Ax x  AT x x  AH x
x  Ax x  AT x x  AH x
x  A;1 x x  A;T x x  A;H x
x  A;1 x x  A;T x x  A;H x
x  A;1 x x  A;T x x  A;H x

C  op(A)op(B) + C op(X ) = X X T  X H  C ; m  n


C  AB + C C  BA + C C ; m  n A = AT
C  AB + C C  BA + C C ; m  n A = AH
C  AAT + C C  AT A + C C ; n  n
C  AAH + C C  AH A + C C ; n  n
C  ABT + 
BAT + C C  AT B + 
BT A + C C ; n  n
C  ABH + 
BAH + C C  AH B + 
BH A + C C ; n  n
B  op(A)B B  Bop(A) op(A) = A AT  AH  B ; m  n
B  op(A;1 )B B  Bop(A;1 ) op(A) = A AT  AH  B ; m  n

Meaning of prexes
S - REAL
D - DOUBLE PRECISION

C - COMPLEX
Z - COMPLEX*16
(this may not be supported
by all machines)

For the Level 2 BLAS a set of extended-precision routines with


the prexes ES, ED, EC, EZ may also be available.

Level 1 BLAS

SP - Sum. Packed
HP - Herm. Packed
TP - Triang. Packed

In addition to the listed routines there are two further


extended-precision dot product routines DQDOTI and DQDOTA.

GB - General Band
SB - Sym. Band
HB - Herm. Band
TB - Triang. Band

Level 2 and Level 3 BLAS

Matrix types:
GE - GEneral
SY - SYmmetric
HE - HErmitian
TR - TRiangular
Level 2 and Level 3 BLAS Options
Dummy options arguments are declared as CHARACTER*1
and may be passed as character strings.
TRANx = `No transpose', `Transpose',
`Conjugate transpose' (X X T  X H )
= `Upper triangular', `Lower triangular'
= `Non-unit triangular', `Unit triangular'
= `Left', `Right' (A or op(A) on the left,
or A or op(A) on the right)
UPLO
DIAG
SIDE

For real matrices, TRANSx = `T' and TRANSx = `C' have


the same meaning.
For Hermitian matrices, TRANSx = `T' is not allowed.
For complex symmetric matrices, TRANSx = `H' is not
allowed.

References
C. Lawson, R. Hanson, D. Kincaid, and F. Krogh, \Basic
Linear Algebra Subprograms for Fortran Usage," ACM Trans.

on Math. Soft. 5 (1979) 308-325


J.J. Dongarra, J. DuCroz, S. Hammarling, and R. Hanson,
\An Extended Set of Fortran Basic Linear Algebra Subprograms,"

ACM Trans. on Math. Soft. 14,1 (1988) 1-32

J.J. Dongarra, I. Du, J. DuCroz, and S. Hammarling, \A Set


of Level 3 Basic Linear Algebra Subprograms," ACM Trans.

on Math. Soft. (1989)

Obtaining the Software via netlib@ornl.gov


To receive a copy of the single-precision software,
type in a mail message:
send sblas from blas
send sblas2 from blas
send sblas3 from blas

To receive a copy of the double-precision software,


type in a mail message:
send dblas from blas
send dblas2 from blas
send dblas3 from blas

To receive a copy of the complex single-precision software,


type in a mail message:
send cblas from blas
send cblas2 from blas
send cblas3 from blas

lapack@cs.utk.edu

To receive a copy of the complex double-precision software,


type in a mail message:
send zblas from blas
send zblas2 from blas
send zblas3 from blas

Send comments and questions to

Basic
Linear
Algebra
Subprograms

A Quick Reference Guide

University of Tennessee
Oak Ridge National Laboratory
Numerical Algorithms Group Ltd.

May 11, 1997

You might also like