Routines for BLAS and LAPACK 3.1.1

This re-organizes the LAPACK routines list by task, with a brief note indicating what each routine does. It also includes links to the Fortran 95 generic interfaces for driver subroutines. Not all “BLAS” routines are actually in BLAS; some are LAPACK extensions that functionally fit in the BLAS.

Compiled by Mark Gates <mrgates2 illinois edu>. Updated Dec 2010 for LAPACK doxygen documentation.
BLAS and LAPACK guides are available from http://www.ews.illinois.edu/~mrgates2/.

BLAS level 0
BLAS level 1
BLAS level 2
BLAS level 3
Linear systems
Linear least squares
Eigenvalue drivers
SVD
LU, Cholesky, LDL factorization
QR, RQ, QL, LQ factorization
Eigenvalue routines
Auxiliary
Unclassified

Data type prefix

s single c complex single
d double z complex double

Matrix type prefix

full banded packed tridiag generalized problem
general ge gb gt gg
symmetric sy sb sp st
Hermitian he hb hp
SPD/HPD po pb pp pt
triangular tr tb tp tg
upper Hessenberg hs hg
trapezoidal tz
orthogonal or op
unitary un up
diagonal di
bidiagonal bd
Type prefix Routine Matrix type Description
BLAS level 0
s d cabs1 |Re(x)| + |Im(x)|
s d c z ladiv complex divide
BLAS level 1
s d c z axpy add vectors, y = αx + y
s d c z copy copy vector, y = x
s d c z swap swap vectors
s d c z dot[c] dot product, xH y
c z dotu dot product, unconjugated xT y
sd d sdot dot product, extended precision
s d c z scal scale vector, y = αy
cs zd scal scale vector by single/double
s d cs zd rscl scale vector by reciprocal, y = y / α
s d c z rot apply Givens plane rotation
cs zd drot
s d c z rotg generate plane rotation
s d rotm apply modified plane rotation
s d rotmg generate modified plane rotation
s d sc dz nrm2 vector 2-norm
s d sc dz asum vector 1-norm,
||Re(x)||1 + ||Im(x)||1
sc dz sum1 vector 1-norm (true),
||x||1
is id ic iz amax vector inf-norm, index with max abs value,
argmaxi |Re(xi)| + |Im(xi)|
ic iz max1 index with real part has max abs value,
argmaxi |Re(xi)| (?)
BLAS level 2
s d c z gemv general matvec, y = αAx + βy
s d c z gbmv general banded
c z hemv Hermitian
c z hbmv Hermitian banded
c z hpmv Hermitian packed
s d c z symv symmetric
s d sbmv symmetric banded
s d c z spmv symmetric packed
s d c z trmv triangular
s d c z tbmv triangular banded
s d c z tpmv triangular packed
c z her Hermitian rank 1 update
c z hpr Hermitian packed
s d c z syr symmetric
s d c z spr symmetric packed
c z gerc general rank 1 update, conjugated
s d c z geru general rank 1 update, unconjugated
c z her2 Hermitian rank 2 update
c z hpr2 Hermitian packed
s d syr2 symmetric
s d spr2 symmetric packed
s d c z trsv triangular triangular solve
s d c z tbsv triangular banded
s d c z tpsv triangular packed
s d c z lascl scale matrix
s d c z lacpy copy submatrix
c z lacp2 copy real to complex submatrix
s d c z lacn2 matrix 1-norm estimate
BLAS level 3
s d c z gemm general matrix-matrix multiply
c z hemm Hermitian
s d c z symm symmetric
s d c z trmm triangular
s d c z trsm triangular triangular solve, multiple rhs
c z herk Hermitian rank k update
s d c z syrk symmetric
c z her2k Hermitian rank 2k update
s d c z syr2k symmetric
Type prefix F95 Routine Matrix type Description
Linear systems
s d c z F95 gesv general solve Ax = b
s d c z F95 gbsv general banded
s d c z F95 gtsv general tridiagonal
ds zc F95 gesv general (single precision)
c z -- hesv Hermitian
c z -- hpsv Hermitian packed
s d c z F95 posv SPD
s d c z F95 pbsv SPD banded
s d c z F95 ppsv SPD packed
s d c z F95 ptsv SPD tridiagonal
s d c z F95 sysv symmetric
s d c z F95 spsv symmetric packed
s d c z F95 gesvx general solve Ax = b, expert
s d c z F95 gbsvx general banded
s d c z F95 gtsvx general tridiagonal
c z -- hesvx Hermitian
c z -- hpsvx Hermitian packed
s d c z F95 posvx SPD
s d c z F95 pbsvx SPD banded
s d c z F95 ppsvx SPD packed
s d c z F95 ptsvx SPD tridiagonal
s d c z F95 sysvx symmetric
s d c z F95 spsvx symmetric packed
Linear least squares
s d c z F95 gels general Minimize ||b - Ax||2
s d c z F95 gelsy general ...using complete orthogonal factorization
s d c z F95 gelsd general ...using SVD (divide-and-conquer)
s d c z F95 gelss general ...using SVD
s d c z F95 gglse general Minimize ||c - Ax||2 subject to Bx = d
s d c z F95 ggglm general Minimize ||y||2 subject to d = Ax + By
Symmetric eigenvalues
c z F95 heev Hermitian solve Ax = λx
c z F95 hbev Hermitian banded
c z F95 hpev Hermitian packed
s d F95 syev symmetric
s d F95 sbev symmetric banded
s d F95 spev symmetric packed
s d F95 stev symmetric tridiagonal
c z F95 heevx Hermitian solve Ax = λx, expert
c z F95 hbevx Hermitian banded
c z F95 hpevx Hermitian packed
s d F95 syevx symmetric
s d F95 sbevx symmetric banded
s d F95 spevx symmetric packed
s d F95 stevx symmetric tridiagonal
c z F95 heevd Hermitian solve Ax = λx, divide-and-conquer
c z F95 hbevd Hermitian banded
c z F95 hpevd Hermitian packed
s d F95 syevd symmetric
s d F95 sbevd symmetric banded
s d F95 spevd symmetric packed
s d F95 stevd symmetric tridiagonal
c z F95 heevr Hermitian solve Ax = λx, relatively robust representation
s d F95 syevr symmetric
s d F95 stevr symmetric tridiagonal
c z F95 hegv Hermitian solve Ax = λMx
c z F95 hbgv Hermitian banded
c z F95 hpgv Hermitian packed
s d F95 sygv symmetric
s d F95 sbgv symmetric banded
s d F95 spgv symmetric packed
c z F95 hegvx Hermitian solve Ax = λMx, expert
c z F95 hbgvx Hermitian banded
c z F95 hpgvx Hermitian packed
s d F95 sygvx symmetric
s d F95 sbgvx symmetric banded
s d F95 spgvx symmetric packed
c z F95 hegvd Hermitian solve Ax = λMx, divide-and-conquer
c z F95 hbgvd Hermitian banded
c z F95 hpgvd Hermitian packed
s d F95 sygvd symmetric
s d F95 sbgvd symmetric banded
s d F95 spgvd symmetric packed
Nonymmetric eigenvalues
s d c z F95 geev general solve Ax = λx
s d c z F95 geevx general solve Ax = λx, expert
s d c z F95 gees general Schur factorization
s d c z F95 geesx general Schur factorization, expert
s d c z F95 ggev general solve Ax = λMx
s d c z F95 ggevx general solve Ax = λMx, expert
s d c z F95 gges general generalized Schur factorization
s d c z F95 ggesx general generalized Schur factorization, expert
SVD
s d c z F95 gesvd general SVD
s d c z F95 gesdd general ...using divide-and-conquer
s d -- bdsdc bidiagonal
s d c z -- bdsqr bidiagonal ...using QR
s d c z F95 ggsvd general generalized SVD
Type prefix Routine Matrix type Description
LU, Cholesky, LDLT factorization
s d c z getrf general LU factorization
s d c z gbtrf general banded
s d c z gttrf general tridiagonal
s d c z potrf SPD Cholesky factorization
s d c z pbtrf SPD banded
s d c z pptrf SPD packed
s d c z pttrf SPD tridiagonal
s d c z sytrf symmetric LDLT symmetric indefinite factorization
s d c z sptrf symmetric packed
c z hetrf Hermitian
c z hptrf Hermitian packed
s d c z getrs general solve Ax = b using factorization
s d c z gbtrs general banded
s d c z gttrs general tridiagonal
c z hetrs Hermitian
c z hptrs Hermitian packed
s d c z potrs SPD
s d c z pbtrs SPD banded
s d c z pptrs SPD packed
s d c z pttrs SPD tridiagonal
s d c z sytrs symmetric
d s c z sptrs symmetric packed
s d c z trtrs triangular
s d c z tbtrs triangular banded
s d c z tptrs triangular packed
s d c z getri general inverse A-1 using factorization
c z hetri Hermitian
c z hptri Hermitian packed
s d c z potri SPD
s d c z pptri SPD packed
s d c z sptri symmetric packed
s d c z sytri symmetric
s d c z tptri triangular packed
s d c z trtri triangular
s d c z gecon general condition number estimate using factorization
s d c z gbcon general banded
s d c z gtcon general tridiagonal
c z hecon Hermitian
c z hpcon Hermitian packed
s d c z pocon SPD
s d c z pbcon SPD banded
s d c z ppcon SPD packed
s d c z ptcon SPD tridiagonal
s d c z sycon symmetric
s d c z spcon symmetric packed
s d c z trcon triangular
s d c z tbcon triangular banded
s d c z tpcon triangular packed
s d c z geequ general equilibrate matrix
s d c z gbequ general banded
s d c z poequ SPD
s d c z pbequ SPD banded
s d c z ppequ SPD packed
s d c z gerfs general refine solution to Ax = b, error estimates
s d c z gbrfs general banded
s d c z gtrfs general tridiagonal
c z herfs Hermitian
c z hprfs Hermitian packed
s d c z porfs SPD
s d c z pbrfs SPD banded
s d c z pprfs SPD packed
s d c z ptrfs SPD tridiagonal
s d c z syrfs symmetric
s d c z sprfs symmetric packed
s d c z trrfs triangular
s d c z tbrfs triangular banded
s d c z tprfs triangular packed
QR factorization
s d c z geqp3 general QR factorization with pivoting
s d c z geqrf general QR factorization
s d c z ggqrf general generalized QR factorization
s d orgqr orthogonal generate Q
c z ungqr unitary
s d ormqr orthogonal multiply by Q
c z unmqr unitary
RQ factorization
s d c z gerqf general RQ factorization
s d c z ggrqf general generalized RQ factorization
s d orgrq orthogonal generate Q
c z ungrq unitary
s d ormrq orthogonal multiply by Q
c z unmrq unitary
QL factorization
s d c z geqlf general QL factorization
s d orgql orthogonal generate Q
c z ungql unitary
s d ormql orthogonal multiply by Q
c z unmql unitary
LQ factorization
s d c z gelqf general LQ factorization
s d orglq orthogonal generate Q
c z unglq unitary
s d ormlq orthogonal multiply by Q
c z unmlq unitary
RZ factorization
s d c z tzrqf trapezoidal RZ factorization (deprecated)
s d c z tzrzf trapezoidal RZ factorization
s d ormrz orthogonal multiply by Q
c z unmrz unitary
Symmetric eigenvalue
c z hetrd Hermitian reduction to tridiagonal form
c z hbtrd Hermitian banded
c z hptrd Hermitian packed
s d sytrd symmetric
s d sbtrd symmetric banded
s d sptrd symmetric packed
s d orgtr orthogonal generate matrix after -trd
s d opgtr orthogonal packed
c z ungtr unitary
c z upgtr unitary packed
s d ormtr orthogonal multiply by matrix after -trd
s d opmtr orthogonal packed
c z unmtr unitary
c z upmtr unitary packed
s d c z steqr symmetric tridiagonal symmetric tridiagonal eigensolver, using implicitly shifted QR
s d c z pteqr SPD tridiagonal ...using Cholesky and bidiagonal QR
s d sterf symmetric tridiagonal ...using square-root free QR
s d c z stedc symmetric tridiagonal ...using divide-and-conquer
s d c z stegr symmetric tridiagonal ...using relatively robust representation
s d stebz symmetric tridiagonal eigenalues using bisection
s d c z stein symmetric tridiagonal eigenvectors using inverse iteration
s d disna diagonal condition numbers
Nonsymmetric eigenvalue
s d c z gehrd general Hessenberg reduction
s d c z gebal general balance matrix
s d c z gebak general back transforming
s d orghr orthogonal generate matrix after -hrd
c z unghr unitary
s d ormhr orthogonal multiply by matrix after -hrd
c z unmhr unitary
s d c z hseqr upper Hessenberg Schur factorizaton
s d c z hsein upper Hessenberg eigenvectors by inverse iteration
s d c z trevc triangular eigenvectors
s d c z trexc triangular reorder Schur factorization
s d c z trsyl triangular Sylvester equation
s d c z trsna triangular condition numbers
s d c z trsen triangular condition numbers of eigenvalue cluster/subspace
s d c z gbbrd general banded reduce to bidiagonal form
s d c z gebrd general
s d orgbr orthogonal generate matrix after -brd
c z ungbr unitary
s d ormbr orthogonal multiply by matrix after -brd
c z unmbr unitary
Generalized nonsymmetric eigenvalue
s d c z gghrd general Hessenberg reduction
s d c z ggbal general balance matrix
s d c z ggbak general back transforming
s d c z hgeqz upper Hessenberg eigenvalues
s d c z tgevc triangular eigenvectors
s d c z tgexc triangular reorder Schur factorization
s d c z tgsyl triangular Sylvester equation
s d c z tgsna triangular condition numbers
s d c z tgsen triangular condition numbers of eigenvalue cluster/subspace
Single Double Description
second dsecnd user time in seconds, using external ETIME
second dsecnd user time in seconds, using external ETIME_
second dsecnd user time in seconds, using ETIME
second dsecnd user time in seconds, using CPU_TIME
second dsecnd returns 0, instead of a user time

(There are 5 different versions of second and dsecnd. I presume the appropriate version for your system is installed when LAPACK is installed.)

Routine Description
ieeeck check that Inf and NaN are safe
ilaenv choose problem dependent parameters
ilaver LAPACK version
iparmq set problem and machine dependent parameters
lsame case-insensitive char match
lsamen case-insensitive string match
xerbla error handler
Type prefix Routine Matrix type Description
Auxiliary
s d labad
s d c z labrd
c z lacgv
s d c z lacon
c z lacrm
c z lacrt
s d lae2
s d laebz
s d c z laed0
s d laed1
s d laed2
s d laed3
s d laed4
s d laed5
s d laed6
s d c z laed7
s d c z laed8
s d laed9
s d laeda
s d c z laein
c z laesy
s d c z laev2
s d laexc
s d lag2
s d c z lag2c
s d c z lags2
s d lagtf
s d c z lagtm
s d lagts
s d lagv2
c z lahef
s d c z lahqr
s d c z lahr2
s d c z lahrd
s d c z laic1
s d laisnan
s d laln2
s d c z lals0
s d c z lalsa
s d c z lalsd
s d lamch
s d lamrg
s d c z langb
s d c z lange
s d c z langt
c z lanhb
c z lanhe
c z lanhp
s d c z lanhs
c z lanht
s d c z lansb
s d c z lansp
s d lanst
s d c z lansy
s d c z lantb
s d c z lantp
s d c z lantr
s d lanv2
s d c z lapll
s d c z lapmt
s d lapy2
s d lapy3
s d c z laqgb
s d c z laqge
c z laqhb
c z laqhe
c z laqhp
s d c z laqp2
s d c z laqps
s d c z laqr0
s d c z laqr1
s d c z laqr2
s d c z laqr3
s d c z laqr4
s d c z laqr5
s d c z laqsb
s d c z laqsp
s d c z laqsy
s d laqtr
s d c z lar1v
s d c z lar2v
c z larcm
s d c z larf
s d c z larfb
s d c z larfg
s d c z larft
s d c z larfx
s d c z largv
s d c z larnv
s d larrb
s d larre
s d larrf
s d c z larrv
s d c z lartg
s d c z lartv
s d laruv
s d c z larz
s d c z larzb
s d c z larzt
s d las2
s d lasd0
s d lasd1
s d lasd2
s d lasd3
s d lasd4
s d lasd5
s d lasd6
s d lasd7
s d lasd8
s d lasda
s d lasdq
s d lasdt
s d c z laset
s d lasq1
s d lasq2
s d lasq3
s d lasq4
s d lasq5
s d lasq6
s d c z lasr
s d lasrt
s d c z lassq
s d lasv2
s d c z laswp
s d lasy2
s d c z lasyf
s d c z latbs
s d c z latdf
s d c z latps
s d c z latrd
s d c z latrs
s d c z latrz
s d c z latzm
s d c z lauu2
s d c z lauum
s d lazq3
s d lazq4
Unclassified
Most of these are slower unblocked (BLAS 1 or 2) versions, or are deprecated.
s d c z gbtf2 general banded
s d c z gebd2 general
s d c z gegs general
s d c z gegv general
s d c z gehd2 general
s d c z gelq2 general
s d c z gelsx general
s d c z geql2 general
s d c z geqpf general
s d c z geqr2 general
s d c z gerq2 general
s d c z gesc2 general
s d c z getc2 general
s d c z getf2 general
s d c z general ggsvp
s d c z gtts2 general tridiagonal
c z hbgst Hermitian banded
c z hegs2 Hermitian
c z hegst Hermitian
c z hetd2 Hermitian
c z hetf2 Hermitian
c z hpgst Hermitian packed
s d c z isnan
s d org2l orthogonal
s d org2r orthogonal
s d orgl2 orthogonal
s d orgr2 orthogonal
s d orm2l orthogonal
s d orm2r orthogonal
s d orml2 orthogonal
s d ormr2 orthogonal
s d ormr3 orthogonal
s d c z pbstf SPD banded
s d c z pbtf2 SPD banded
s d c z potf2 SPD
s d c z ptts2 SPD tridiagonal
s d sbgst symmetric banded
s d spgst symmetric packed
s d sygs2 symmetric
s d sygst symmetric
s d sytd2 symmetric
s d c z sytf2 symmetric
s d c z tgex2 triangular
s d c z tgsja triangular
s d c z tgsy2 triangular
s d c z trti2 triangular
c z ung2l unitary
c z ung2r unitary
c z ungl2 unitary
c z ungr2 unitary
c z unm2l unitary
c z unm2r unitary
c z unml2 unitary
c z unmr2 unitary
c z unmr3 unitary
LAPACK version 3.1.1 February 2007