View
13
Download
0
Category
Preview:
Citation preview
Copyright 1994-2001 Intel Corporation : 630813J-11
1 ................................................................................... 1-1
BLAS ............................................................................................. 1-2 BLAS .............................................................................. 1-2 ......................................................................................... 1-2LAPACK ........................................................................................ 1-2VML ...................................................................................................... 1-3 ................................................................................................... 1-3 ........................................................................................................... 1-3 ................................................................................. 1-4
..................................................................................................... 1-4 ............................................................................................ 1-5 ................................................................................................... 1-5 ................................................................................................... 1-6 ............................................................................ 1-6 .............................................................................................. 1-6
....................................................................................................... 1-8
2 BLAS BLAS .............................................................................................. 2-2 ................................................................................... 2-3BLAS 1 ..................................................................... 2-4
?asum ..................................................................................................... 2-5
i
?axpy ....................................................................................................... 2-6?copy ....................................................................................................... 2-7
?dot ......................................................................................................... 2-8?dotc ....................................................................................................... 2-9?dotu ..................................................................................................... 2-10?nrm2 .................................................................................................... 2-11?rot ........................................................................................................ 2-12?rotg ...................................................................................................... 2-14?rotm ..................................................................................................... 2-15?rotmg ................................................................................................... 2-17?scal ...................................................................................................... 2-18?swap .................................................................................................... 2-20i?amax ................................................................................................... 2-21i?amin .................................................................................................... 2-22
BLAS 2 .............................................................................. 2-23?gbmv ................................................................................................... 2-24?gemv ................................................................................................... 2-27?ger ....................................................................................................... 2-30?gerc ..................................................................................................... 2-31?geru ..................................................................................................... 2-33?hbmv ................................................................................................... 2-35?hemv ................................................................................................... 2-38?her ....................................................................................................... 2-40?her2 ..................................................................................................... 2-42?hpmv ................................................................................................... 2-44?hpr ....................................................................................................... 2-47?hpr2 ..................................................................................................... 2-49?sbmv .................................................................................................... 2-51?spmv .................................................................................................... 2-54?spr ....................................................................................................... 2-56?spr2 ..................................................................................................... 2-58?symv .................................................................................................... 2-60?syr ....................................................................................................... 2-62?syr2 ..................................................................................................... 2-64
ii
?tbmv .................................................................................................... 2-66?tbsv ...................................................................................................... 2-69?tpmv .................................................................................................... 2-72
?tpsv ...................................................................................................... 2-75?trmv ..................................................................................................... 2-77?trsv ...................................................................................................... 2-79
BLAS 3 .............................................................................. 2-82MKL ..................... 2-82
?gemm .................................................................................................. 2-83?hemm .................................................................................................. 2-86?herk ..................................................................................................... 2-89?her2k ................................................................................................... 2-92?symm ................................................................................................... 2-96?syrk ................................................................................................... 2-100?syr2k .................................................................................................. 2-103?trmm .................................................................................................. 2-107?trsm ................................................................................................... 2-110
BLAS ................................................................ 2-114 BLAS .................................................... 2-114 BLAS ........................................................... 2-115 BLAS ......................................... 2-115 BLAS .................................. 2-116
?axpyi .................................................................................................. 2-116?doti .................................................................................................... 2-118?dotci ................................................................................................... 2-119?dotui .................................................................................................. 2-120?gthr .................................................................................................... 2-121?gthrz .................................................................................................. 2-122?roti ..................................................................................................... 2-123?sctr .................................................................................................... 2-124
3 1 FFT ......................................................................................................... 3-1 ............................................................................................ 3-2 ......................................................................................... 3-2
iii
1 FFT ............................................................... 3-3cfft1d/zfft1d .............................................................................................. 3-4cfft1dc/zfft1dc .......................................................................................... 3-5
1 FFT ................................................................... 3-6scfft1d/dzfft1d .......................................................................................... 3-8scfft1dc/dzfft1dc .................................................................................... 3-10
1 FFT ................................................................. 3-11csfft1d/zdfft1d ........................................................................................ 3-13csfft1dc/zdfft1dc .................................................................................... 3-15
2 FFT ....................................................................................................... 3-17 2 FFT ............................................................. 3-18
cfft2d/zfft2d ............................................................................................ 3-19cfft2dc/zfft2dc ........................................................................................ 3-20
2 FFT ................................................................. 3-21scfft2d/dzfft2d ........................................................................................ 3-22scfft2dc/dzfft2dc .................................................................................... 3-24
2 FFT ................................................................. 3-27csfft2d/zdfft2d ........................................................................................ 3-28csfft2dc/zdfft2dc .................................................................................... 3-29
4 LAPACK : 1 .......................................................................................... 4-2 ................................................................................... 4-3 ......................................................................................................... 4-3 ......................................................................................................... 4-4 ..................................................................................................... 4-5 ........................................................ 4-7
?getrf ....................................................................................................... 4-7?gbtrf ..................................................................................................... 4-10?gttrf ...................................................................................................... 4-12?potrf ..................................................................................................... 4-14?pptrf ..................................................................................................... 4-16?pbtrf ..................................................................................................... 4-18?pttrf ...................................................................................................... 4-20?sytrf ..................................................................................................... 4-22
iv
?hetrf ..................................................................................................... 4-25?sptrf ..................................................................................................... 4-28?hptrf ..................................................................................................... 4-31
1 ...................................................... 4-33?getrs .................................................................................................... 4-34?gbtrs .................................................................................................... 4-36?gttrs ..................................................................................................... 4-38?potrs .................................................................................................... 4-41?pptrs .................................................................................................... 4-43?pbtrs .................................................................................................... 4-45?pttrs ..................................................................................................... 4-47?sytrs ..................................................................................................... 4-49?hetrs .................................................................................................... 4-51?sptrs .................................................................................................... 4-53?hptrs .................................................................................................... 4-55?trtrs ...................................................................................................... 4-57?tptrs ..................................................................................................... 4-59?tbtrs ..................................................................................................... 4-61
............................................................. 4-63?gecon .................................................................................................. 4-63?gbcon .................................................................................................. 4-65?gtcon ................................................................................................... 4-67?pocon .................................................................................................. 4-70?ppcon .................................................................................................. 4-72?pbcon .................................................................................................. 4-74?ptcon ................................................................................................... 4-76?sycon ................................................................................................... 4-78?hecon .................................................................................................. 4-80?spcon ................................................................................................... 4-82?hpcon .................................................................................................. 4-84?trcon .................................................................................................... 4-86?tpcon ................................................................................................... 4-88?tbcon ................................................................................................... 4-90
..................................................................... 4-92?gerfs .................................................................................................... 4-92
v
?gbrfs .................................................................................................... 4-95?gtrfs ..................................................................................................... 4-98?porfs .................................................................................................. 4-101
?pprfs .................................................................................................. 4-104?pbrfs .................................................................................................. 4-107?ptrfs ................................................................................................... 4-110?syrfs ................................................................................................... 4-113?herfs .................................................................................................. 4-116?sprfs .................................................................................................. 4-119?hprfs .................................................................................................. 4-122?trrfs .................................................................................................... 4-124?tprfs ................................................................................................... 4-127?tbrfs ................................................................................................... 4-130
........................................................... 4-133?getri ................................................................................................... 4-133?potri ................................................................................................... 4-135?pptri ................................................................................................... 4-137?sytri .................................................................................................... 4-139?hetri ................................................................................................... 4-141?sptri ................................................................................................... 4-143?hptri ................................................................................................... 4-145?trtri ..................................................................................................... 4-147?tptri .................................................................................................... 4-148
............................................................................. 4-150?geequ ................................................................................................ 4-150?gbequ ................................................................................................ 4-153?poequ ................................................................................................ 4-155?ppequ ................................................................................................ 4-157?pbequ ................................................................................................ 4-159
...................................................................................... 4-161?gesv ................................................................................................... 4-162?gesvx ................................................................................................. 4-163?gbsv ................................................................................................... 4-170?gbsvx ................................................................................................. 4-172?gtsv .................................................................................................... 4-179
vi
?gtsvx .................................................................................................. 4-181?posv ................................................................................................... 4-186?posvx ................................................................................................. 4-188
?ppsv ................................................................................................... 4-193?ppsvx ................................................................................................. 4-195?pbsv ................................................................................................... 4-200?pbsvx ................................................................................................. 4-202?ptsv .................................................................................................... 4-207?ptsvx .................................................................................................. 4-209?sysv ................................................................................................... 4-212?sysvx ................................................................................................. 4-215?hesvx ................................................................................................. 4-220?hesv ................................................................................................... 4-224?spsv ................................................................................................... 4-227?spsvx ................................................................................................. 4-230?hpsvx ................................................................................................. 4-235?hpsv ................................................................................................... 4-239
5 LAPACK : .............................................................................................. 5-4 ................................................................................... 5-5 ............................................................................................................ 5-5 ..................................................................................................... 5-6 ................................................................................................ 5-6
?geqrf ...................................................................................................... 5-8?geqpf ................................................................................................... 5-11?geqp3 .................................................................................................. 5-14?orgqr .................................................................................................... 5-17?ormqr ................................................................................................... 5-19?ungqr ................................................................................................... 5-21?unmqr .................................................................................................. 5-23?gelqf .................................................................................................... 5-25?orglq .................................................................................................... 5-28?ormlq ................................................................................................... 5-30?unglq ................................................................................................... 5-32
vii
?unmlq .................................................................................................. 5-34?geqlf .................................................................................................... 5-36?orgql .................................................................................................... 5-38
?ungql ................................................................................................... 5-40?ormql ................................................................................................... 5-42?unmql .................................................................................................. 5-45?gerqf .................................................................................................... 5-48?orgrq .................................................................................................... 5-50?ungrq ................................................................................................... 5-52?ormrq ................................................................................................... 5-54?unmrq .................................................................................................. 5-57?tzrzf ..................................................................................................... 5-60?ormrz ................................................................................................... 5-62?unmrz .................................................................................................. 5-65?ggqrf .................................................................................................... 5-68?ggrqf .................................................................................................... 5-71
................................................................................................. 5-74?gebrd ................................................................................................... 5-76?gbbrd ................................................................................................... 5-79?orgbr .................................................................................................... 5-82?ormbr ................................................................................................... 5-85?ungbr ................................................................................................... 5-88?unmbr .................................................................................................. 5-91?bdsqr ................................................................................................... 5-94?bdsdc ................................................................................................... 5-98
........................................................................................ 5-101?sytrd .................................................................................................. 5-105?orgtr ................................................................................................... 5-107?ormtr .................................................................................................. 5-109?hetrd .................................................................................................. 5-111?ungtr .................................................................................................. 5-113?unmtr ................................................................................................. 5-115?sptrd .................................................................................................. 5-117?opgtr .................................................................................................. 5-119?opmtr ................................................................................................. 5-120
viii
?hptrd .................................................................................................. 5-122?upgtr .................................................................................................. 5-124?upmtr ................................................................................................. 5-125
?sbtrd .................................................................................................. 5-128?hbtrd .................................................................................................. 5-130?sterf ................................................................................................... 5-132?steqr .................................................................................................. 5-134?stedc .................................................................................................. 5-137?stegr .................................................................................................. 5-141?pteqr .................................................................................................. 5-146?stebz .................................................................................................. 5-149?stein ................................................................................................... 5-152?disna .................................................................................................. 5-154
................................................................................. 5-157?sygst .................................................................................................. 5-158?hegst ................................................................................................. 5-160?spgst .................................................................................................. 5-162?hpgst ................................................................................................. 5-164?sbgst .................................................................................................. 5-166?hbgst ................................................................................................. 5-169?pbstf .................................................................................................. 5-172
..................................................................................... 5-174?gehrd ................................................................................................. 5-178?orghr .................................................................................................. 5-180?ormhr ................................................................................................. 5-182?unghr ................................................................................................. 5-185?unmhr ................................................................................................ 5-187?gebal ................................................................................................. 5-190?gebak ................................................................................................ 5-193?hseqr ................................................................................................. 5-195?hsein .................................................................................................. 5-199?trevc .................................................................................................. 5-205?trsna .................................................................................................. 5-210?trexc .................................................................................................. 5-215?trsen .................................................................................................. 5-217
ix
?trsyl .................................................................................................... 5-222 ............................................................................. 5-225
?gghrd ................................................................................................. 5-226
?ggbal ................................................................................................. 5-230?ggbak ................................................................................................ 5-233?hgeqz ................................................................................................ 5-235?tgevc .................................................................................................. 5-242?tgexc .................................................................................................. 5-247?tgsen ................................................................................................. 5-250?tgsyl ................................................................................................... 5-256?tgsna ................................................................................................. 5-261
........................................................................................ 5-266?ggsvp ................................................................................................. 5-267?tgsja ................................................................................................... 5-271
...................................................................................... 5-278 (LLS) .......................................................................... 5-278
?gels .................................................................................................... 5-279?gelsy .................................................................................................. 5-282?gelss .................................................................................................. 5-286?gelsd .................................................................................................. 5-289
LLS ........................................................................................... 5-293?gglse .................................................................................................. 5-293?ggglm ................................................................................................ 5-296
........................................................................................ 5-298?syev ................................................................................................... 5-299?heev ................................................................................................... 5-301?syevd ................................................................................................. 5-303?heevd ................................................................................................. 5-306?syevx ................................................................................................. 5-309?heevx ................................................................................................. 5-313?syevr .................................................................................................. 5-317?heevr ................................................................................................. 5-322?spev ................................................................................................... 5-327?hpev ................................................................................................... 5-329?spevd ................................................................................................. 5-331
x
?hpevd ................................................................................................. 5-334?spevx ................................................................................................. 5-338?hpevx ................................................................................................. 5-342
?sbev ................................................................................................... 5-346?hbev .................................................................................................. 5-348?sbevd ................................................................................................. 5-350?hbevd ................................................................................................ 5-353?sbevx ................................................................................................. 5-357?hbevx ................................................................................................. 5-361?stev .................................................................................................... 5-365?stevd .................................................................................................. 5-367?stevx .................................................................................................. 5-370?stevr .................................................................................................. 5-374
..................................................................................... 5-379?gees .................................................................................................. 5-379?geesx ................................................................................................. 5-384?geev .................................................................................................. 5-390?geevx ................................................................................................. 5-394
............................................................................................... 5-400?gesvd ................................................................................................. 5-400?gesdd ................................................................................................ 5-405?ggsvd ................................................................................................. 5-409
................................................................................. 5-415?sygv ................................................................................................... 5-416?hegv .................................................................................................. 5-419?sygvd ................................................................................................. 5-422?hegvd ................................................................................................ 5-425?sygvx ................................................................................................. 5-429?hegvx ................................................................................................. 5-434?spgv ................................................................................................... 5-439?hpgv .................................................................................................. 5-442?spgvd ................................................................................................. 5-445?hpgvd ................................................................................................ 5-448?spgvx ................................................................................................. 5-452?hpgvx ................................................................................................. 5-456
xi
?sbgv ................................................................................................... 5-460?hbgv .................................................................................................. 5-463?sbgvd ................................................................................................. 5-466
?hbgvd ................................................................................................ 5-469?sbgvx ................................................................................................. 5-473?hbgvx ................................................................................................. 5-478
............................................................................. 5-483?gges .................................................................................................. 5-483?ggesx ................................................................................................. 5-490?ggev ................................................................................................... 5-498?ggevx ................................................................................................. 5-503
........................................................................................................ 5-510
6 ............................................................................ 6-2 ................................................................................................. 6-2 ................................................................................. 6-3
............................................................................ 6-6 ......................................................................................................... 6-6VML .................................................................................................... 6-8
Inv .......................................................................................................... 6-10Div ......................................................................................................... 6-11Sqrt ....................................................................................................... 6-12InvSqrt ................................................................................................... 6-13Cbrt ....................................................................................................... 6-15InvCbrt ................................................................................................... 6-16Pow ........................................................................................................ 6-17Exp ........................................................................................................ 6-18Ln .......................................................................................................... 6-20Log10 .................................................................................................... 6-21Cos ........................................................................................................ 6-22Sin ......................................................................................................... 6-23SinCos ................................................................................................... 6-24Tan ......................................................................................................... 6-25Acos ...................................................................................................... 6-26
xii
Asin ....................................................................................................... 6-27Atan ....................................................................................................... 6-28Atan2 ..................................................................................................... 6-29
Cosh ...................................................................................................... 6-30Sinh ....................................................................................................... 6-31Tanh ...................................................................................................... 6-33Acosh .................................................................................................... 6-34Asinh ..................................................................................................... 6-35Atanh ..................................................................................................... 6-36
VML Pack/Unpack ................................................................................... 6-37Pack ...................................................................................................... 6-37Unpack .................................................................................................. 6-39
VML ........................................................................................... 6-42SetMode ................................................................................................ 6-42GetMode ............................................................................................... 6-45SetErrStatus .......................................................................................... 6-46GetErrStatus ......................................................................................... 6-48ClearErrStatus ....................................................................................... 6-48SetErrorCallBack ................................................................................... 6-49GetErrorCallBack .................................................................................. 6-51ClearErrorCallBack ............................................................................... 6-52
A BLAS ....................................................................................... A-1VML ......................................................................................... A-3 .............................................................................................. A-4
B
C BLAS CBLASCBLAS ................................................................................................... C-1
..................................................................................................... C-2 1 CBLAS ............................................................................................ C-3 2 CBLAS ............................................................................................ C-6 3 CBLAS .......................................................................................... C-14
xiii
xiv
: 630813J-011
Web : http://www.intel.co.jp/jp/developer/http://www.intel.co.jp/jp/developer/design/develop.htm
-001 1994 11
-002 crotg zrotg?her2k?symm?syrk ?syr2k
1995 5
-003 Intel BLAS Library for the Pentium Processor Reference Manual?rotm ?rotmg C
1996 1
-004 2.0 1 2BLAS 3
1996 11
-005 2 FFT1 FFT 2 FFT C
1997 8
-006 2.1 2 BLAS
1998 1
-007 3.0LAPACK ( 4 5 ) CBLAS ( C)MKL 3.0 HTML
1999 1
-008 3.2FFT 4 5 LAPACK NAG
1999 6
-009 LAPACK 5 1999 11
-010 4.0VML 6
2000 6
-011 5.1LAPACK
2001 4
IntelIntel Pentium Intel Corporation
*
1994-2001 Intel Corporation. Chapters 4 and 5 include derivative work portions that have been copyrighted 1991, 1992, and 1998 by The Numerical Algorithms Group, Ltd.
1-1
1 (MKL) FortranFortran CMKL MKL
BLAS (Basic Linear Algebra Subprograms) - -
BLAS( ) (Fortran C ) LAPACK
LAPACK
VML (Vector Mathematical Library) (Fortran C )
1 BLAS
BLAS
BLAS 1
BLAS 2 - 1 2 -
BLAS 3 - k -
BLAS
BLAS ( )BLAS 1 BLAS
(FFT) (PDE)FFTBLAS
LAPACK
LAPACK
( 4 )
( 5 )
1-2
1 VML
VML ( 6 ) ( )
dgemm() -
dgemm
SIMD
MKL (SMP)SMP
1MKL
1-3
1 FFT BLAS 3BLAS 3( 2BLAS 2 )
1 LAPACK QR
BLAS 3 LAPACK
(MKL) FortranMKLFortran VML C
4 ( )
1
1-4
1
a REAL(saxpy )DOUBLE PRECISION(daxpy )
1
2 BLAS BLASBLAS BLAS
3 (FFT)
4 LAPACK : 1 ( ) LAPACK
5 LAPACK : LAPACK
1-5
1 6
VML
A BLAS VML ( )
B BLAS
C BLAS CBLASBLAS C
(cungqr/zungqr ?ungqr )
(?)
?swap -?swap4 sswapdswapcswap zswap
UPPERCASE COURIER FortranCHARACTER*1
lowercase courier a(k+i,j) = matrix(i,j) Cconst float*
1-6
1 lowercase courier mixed Cwith UpperCase courier vmlSetMode
lowercase courier italic incx
* Fortran
1-7
1
BLAS BLASLAPACK VML
BLAS 1C. Lawson, R. Hanson, D. Kincaid, and F. Krough, Basic Linear Algebra Subprograms for Fortran Usage, ACM Transactions on Mathematical Software, Vol.5, No.3 (September 1979) 308-325.
BLAS 2J. Dongarra, J. Du Croz, S. Hammarling, and R. Hanson, An Extended Set of Fortran Basic Linear Algebra Subprograms, ACM Transactions on Mathematical Software, Vol.14, No.1 (March 1988) 1-32.
BLAS 3J. Dongarra, J. DuCroz, I. Duff, and S. Hammarling, A Set of Level 3 Basic Linear Algebra Subprograms, ACM Transactions on Mathematical Software (December 1989).
BLASD. Dodson, R. Grimes, and J. Lewis. Sparse Extensions to the FORTRAN Basic Linear Algebra Subprograms, ACM Transactions on Mathematical Software. Vol.17, No.2 (June 1991).
D. Dodson, R. Grimes, and J. Lewis. Algorithm 692: Model Implementation and Test Package for the Sparse Basic Linear Algebra Subprograms, ACM Transactions on Mathematical Software. Vol.17, No.2 (June 1991).
LAPACKE. Anderson, Z. Bai, C. Bischof, S. Blackford, J. Demmel, J. Dongarra, J. Du Croz, A. Greenbaum, S. Hammarling, A. McKenney, and D. Sorensen, LAPACK Userss Guide, Third Edition, Society for Industrial and Applied Mathematics (SIAM), 1999.
G. Golub and C. Van Loan, Matrix Computations, Johns Hopkins University Press, 1989.
VMLJ.M. Muller, Elementary functions: algorithms and implementation, Birkhauser Boston, 1997.
IEEE Standard for Binary Floating-Point Arithmetic. ANSI/IEEE Std 754-1985.
BLAS BLAS LAPACK (
1-8
)www.netlib.org
2-1
BLAS
2 BLASBLASBLASBLAS 4
BLAS 1 ( ) BLAS 2 ( ) BLAS 3 ( ) BLAS ?asum ?axpy (sdcz )
BLAS XERBLA XERBLAXERBLA
BLAS 1 i?amax i?aminiBLAS 1
BLAS BLAS 2
BLAS ( )
s c
d z
sc dz scasum
BLAS 1BLAS 1 ?dot?rot?swap
BLAS 2 3ge gb sy sp ( )sb he hp ( )hb tr tp ( )tb
( )BLAS 1
c u g Givens
BLAS 2 mv sv 1
2-2
r 1r2 2
BLAS BLAS 2 BLAS 3 mm sm 1rk kr2k 2k
BLAS
ddot
cdotc
scasum
cdotu
sgemv
ztrmm
BLASBLAS 1 BLAS
BLAS A 2 a aij a(i,j)
1
2
A
2-3
BLAS BLAS 2 BLAS 1
BLAS 12-1BLAS 1
2-1 BLAS 1
?asum s, d, sc, dz ( )
?axpy s, d, c, z ( )
?copy s, d, c, z ( )
?dot s, d ( )
?dotc c, z ( )
?dotu c, z ( )
?nrm2 s, d, sc, dz 2- ( )( )
?rot s, d, cs, zd ( )
?rotg s, d, c, z Givens ( )
?rotm s, d
?rotmg s, d Givens
?scal s, d, c, z, cs, zd ( )
?swap s, d, c, z ( )
i?amax s, d, c, z ( )i
i?amin s, d, c, z ( )i
2-4
BLAS BLAS 2
?asum
res = sasum ( n, x, incx )
res = scasum ( n, x, incx )
res = dasum ( n, x, incx )
res = dzasum ( n, x, incx )
?asum x
res = |Rex(1)| + |Imx(1)| + |Rex(2)| + |Imx(2)|+ ... + |Rex(n)| + |Imx(n)|x n
n INTEGER x
x REAL (sasum )DOUBLE PRECISION (dasum )COMPLEX (scasum )DOUBLE COMPLEX (dzasum )
DIMENSION(1+ (n-1)*abs(incx))
incx INTEGERx
res REAL (sasum )
DOUBLE PRECISION (dasum )REAL (scasum )DOUBLE PRECISION (dzasum )
2-5
BLAS BLAS 2
?axpy
call saxpy ( n, a, x, incx, y, incy )
call daxpy ( n, a, x, incx, y, incy )
call caxpy ( n, a, x, incx, y, incy )
call zaxpy ( n, a, x, incx, y, incy )
?axpyy := a*x + Y
a
x y n
n INTEGER x y
a REAL (saxpy )DOUBLE PRECISION (daxpy )COMPLEX (caxpy )DOUBLE COMPLEX (zaxpy )
a
x REAL (saxpy )DOUBLE PRECISION (daxpy )COMPLEX (caxpy )DOUBLE COMPLEX (zaxpy )
DIMENSION(1+ (n-1)*abs(incx))
incx INTEGERx
2-6
BLAS BLAS 2 y REAL (saxpy )
DOUBLE PRECISION (daxpy )COMPLEX (caxpy )DOUBLE COMPLEX (zaxpy )
DIMENSION(1+ (n-1)*abs(incy))
incy INTEGERy
y y
?copy
call scopy ( n, x, incx, y, incy )
call dcopy ( n, x, incx, y, incy )
call ccopy ( n, x, incx, y, incy )
call zcopy ( n, x, incx, y, incy )
?copyy = x
x y
n INTEGER x y
x REAL (scopy )DOUBLE PRECISION (dcopy )COMPLEX (ccopy )DOUBLE COMPLEX (zcopy )
2-7
DIMENSION (1+ (n-1)*abs(incx))
incx INTEGERx
BLAS BLAS 2 y REAL (scopy )
DOUBLE PRECISION (dcopy )COMPLEX (ccopy )DOUBLE COMPLEX (zcopy )
DIMENSION(1+ (n-1)*abs(incy))
incy INTEGERy
n x
?dot
res = sdot ( n, x, incx, y, incy )
res = ddot ( n, x, incx, y, incy )
?dot
x y
n INTEGER x y
x REAL (sdot )DOUBLE PRECISION (ddot )
DIMENSION (1+(n-1)*abs(incx))
incx INTEGERx
res xy( )=
2-8
BLAS BLAS 2 y REAL (sdot )
DOUBLE PRECISION (ddot )
DIMENSION (1+(n-1)*abs(incy))
incy INTEGERy
res REAL (sdot )
DOUBLE PRECISION (ddot )
nx yres 0
?dotc
res = cdotc ( n, x, incx, y, incy )
res = zdotc ( n, x, incx, y, incy )
?dotc
x y n
n INTEGER x y
x COMPLEX (cdotc )DOUBLE COMPLEX (zdotc )
DIMENSION (1 + (n-1)*abs(incx))
incx INTEGERx
res conjg x( )y( )=
2-9
BLAS BLAS 2 y COMPLEX (cdotc )
DOUBLE COMPLEX (zdotc )
DIMENSION(1 + (n-1)*abs(incy))
incy INTEGERy
res COMPLEX (cdotc )
DOUBLE COMPLEX (zdotc )
n x yres 0
?dotu
res = cdotu ( n, x, incx, y, incy )
res = zdotu ( n, x, incx, y, incy )
?dotu
x y n
n INTEGER x y
x COMPLEX (cdotu )DOUBLE COMPLEX (zdotu )
DIMENSION (1 + (n-1)*abs(incx))
incx INTEGER x
res x*y( )=
2-10
BLAS BLAS 2 y COMPLEX (cdotu )
DOUBLE COMPLEX (zdotu )
DIMENSION (1 + (n-1)*abs(incy))incy INTEGERy
res COMPLEX (cdotu )
DOUBLE COMPLEX (zdotu )
nx yres 0
?nrm2
res = snrm2 ( n, x, incx )
res = dnrm2 ( n, x, incx )
res = scnrm2 ( n, x, incx )
res = dznrm2 ( n, x, incx )
?nrm2res = ||X||
x
resx
2-11
BLAS BLAS 2 n INTEGER x
x REAL (snrm2 )DOUBLE PRECISION (dnrm2 )COMPLEX (scnrm2 )DOUBLE COMPLEX (dznrm2 )
DIMENSION (1 + (n-1)*abs (incx))
incx INTEGERx
res REAL (snrm2 )
DOUBLE PRECISION (dnrm2 )REAL (scnrm2 )DOUBLE PRECISION (dznrm2 )
x
?rot
call srot ( n, x, incx, y, incy, c, s )
call drot ( n, x, incx, y, incy, c, s )
call csrot ( n, x, incx, y, incy, c, s )
call zdrot ( n, x, incx, y, incy, c, s )
2 x yx(i) = c*X(i) + s*y(i)
y(i) = c*Y(i) - s*y(i)
2-12
BLAS BLAS 2 n INTEGER x y
x REAL (srot )DOUBLE PRECISION (drot )COMPLEX (csrot )DOUBLE COMPLEX (zdrot )
DIMENSION (1 + (n-1)*abs(incx))
incx INTEGERx
y REAL (srot )DOUBLE PRECISION (drot )COMPLEX (csrot )DOUBLE COMPLEX (zdrot )
DIMENSION (1 + (n-1)*abs(incy))
incy INTEGERy
c REAL (srot )DOUBLE PRECISION (drot )REAL (csrot )DOUBLE PRECISION (zdrot )
s REAL (srot )DOUBLE PRECISION (drot )REAL (csrot )DOUBLE PRECISION (zdrot )
x c*x + s*y
y c*y - s*x
2-13
BLAS BLAS 2
?rotg Givens
call srotg ( a, b, c, s )
call drotg ( a, b, c, s )
call crotg ( a, b, c, s )
call zrotg ( a, b, c, s )
p (a, b) y Givens abc s
a REAL (srotg )
DOUBLE PRECISION (drotg )COMPLEX (crotg )DOUBLE COMPLEX (zrotg )
p x
b REAL (srotg )DOUBLE PRECISION (drotg )COMPLEX (crotg )DOUBLE COMPLEX (zrotg )
p y
a Givens r
b Givens z
2-14
BLAS BLAS 2 c REAL (srotg )
DOUBLE PRECISION (drotg )REAL (crotg )DOUBLE PRECISION (zrotg )
Givens c
s REAL (srotg )DOUBLE PRECISION (drotg )COMPLEX (crotg )DOUBLE COMPLEX (zrotg )
Givens s
?rotm
call srotm ( n, x, incx, y, incy, param )
call drotm ( n, x, incx, y, incy, param )
2 x y
x(i) = H*x(i) + H*y(i)
y(i) = H*y(i) - H*x(i)
H Givens param(2) param(5)param
2-15
BLAS BLAS 2 n INTEGER x y
x REAL (srotm )DOUBLE PRECISION (drotm )DIMENSION (1 + (n-1)*abs(incx))
incx INTEGERx
y REAL (srotm )DOUBLE PRECISION (drotm )DIMENSION (1 + (n-1)*abs(incy))
incy INTEGERy
param REAL (srotm )DOUBLE PRECISION (drotm )DIMENSION 5
param
param(1)flagparam(2-5) H h11h21h12 h22
flagH
flag = -1.: H =
flag = 0.: H =
flag = 1.: H =
flag = -2.: H =
1.-1. 0flag
h11 h12
h21 h22
1. h12
h21 1.
h11 1.
1. h22
1. 0.
0. 1.
2-16
3 param
BLAS BLAS 2 x h11*x + h12*y
y h21*x + h22*y
H Givens
?rotmg Givens
call srotmg ( d1, d2, x1, y1, param )
call drotmg ( d1, d2, x1, y1, param )
(x1, y1) y Givens H
d1 REAL (srotmg )
DOUBLE PRECISION (drotmg ) (sqrt(d1)x1) x
d2 REAL (srotmg )DOUBLE PRECISION (drotmg ) (sqrt(d2)y1) y
x1 REAL (srotmg )DOUBLE PRECISION (drotmg ) x
x
0H x1
y1=
2-17
BLAS BLAS 2 y1 REAL (srotmg )
DOUBLE PRECISION (drotmg ) y
param REAL (srotmg )
DOUBLE PRECISION (drotmg )DIMENSION 5
param
param(1)flagparam(2-5) H h11h21h12 h22
flagH
flag = -1.: H =
flag = 0.: H =
flag = 1.: H =
flag = -2.: H =
1.-1. 0flag 3 param
?scal
h11 h12
h21 h22
1. h12
h21 1.
h11 1.
1. h22
1. 0.
0. 1.
2-18
call sscal ( n, a, x, incx )
BLAS BLAS 2 call dscal ( n, a, x, incx )
call cscal ( n, a, x, incx )
call zscal ( n, a, x, incx )
call csscal ( n, a, x, incx )
call zdscal ( n, a, x, incx )
?scalx = a*x
ax n
n INTEGER x
a REAL (sscalcsscal )DOUBLE PRECISION (dscalzdscal )REAL (cscal )DOUBLE PRECISION (zscal )
a
x REAL (sscal )DOUBLE PRECISION (dscal )COMPLEX (cscalcsscal )DOUBLE COMPLEX (zscalcsscal )
DIMENSION (1 + (n-1)*abs(incx))
incx INTEGERx
x x
2-19
BLAS BLAS 2
?swap
call sswap ( n, x, incx, y, incy )
call dswap ( n, x, incx, y, incy )
call cswap ( n, x, incx, y, incy )
call zswap ( n, x, incx, y, incy )
2 x y?swap y x
n INTEGER x y
x REAL (sswap )DOUBLE PRECISION (dswap )COMPLEX (cswap )DOUBLE COMPLEX (zswap )
DIMENSION(1 + (n-1)*abs(incx))
incx INTEGERx
y REAL (sswap )DOUBLE PRECISION (dswap )COMPLEX (cswap )DOUBLE COMPLEX (zswap )
DIMENSION(1 + (n-1)*abs(incy))
incy INTEGERy
x x
y y
2-20
BLAS BLAS 2
i?amax
index = isamax ( n, x, incx )
index = idamax ( n, x, incx )
index = icamax ( n, x, incx )
index = izamax ( n, x, incx )
xi?amax x(i) |Re x(i)| + |Im x(i)|
n0
2
n INTEGER x
x REAL (isamax )DOUBLE PRECISION (idamax )COMPLEX (icamax )DOUBLE COMPLEX (izamax )
DIMENSION (1+(n-1)*abs(incx))
incx INTEGERx
index INTEGER x
2-21
BLAS BLAS 2
i?amin
index = isamin ( n, x, incx )
index = idamin ( n, x, incx )
index = icamin ( n, x, incx )
index = izamin ( n, x, incx )
xi?amin x(i) |Rex(i)| + |Imx(i)|
n , 0
2
n INTEGERn x
x REAL (isamin )DOUBLE PRECISION (idamin )COMPLEX (icamin )DOUBLE COMPLEX (izamin )
DIMENSION (1+(n-1)*abs(incx))
incx INTEGERx
index INTEGER x
2-22
BLAS BLAS 2BLAS 2
BLAS 2 2-2BLAS 2
2-2 BLAS 2
?gbmv s, d, c, z
?gemv s, d, c, z
?ger s, d 1
?gerc c, z 1
?geru c, z 1
?hbmv c, z
?hemv c, z
?her c, z 1
?her2 c, z 2
?hpmv c, z
?hpr c, z 1
?hpr2 c, z 2
?sbmv s, d
?spmv s, d
?spr s, d 1
?spr2 s, d 2
?symv s, d
?syr s, d 1
?syr2 s, d 2
( )
2-23
BLAS BLAS 2
?gbmv
CALL sgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, inxc, beta, y, incy )
call dgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy )
call cgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy )
call zgbmv ( trans, m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy )
?gbmvy := alpha*a*x + beta*y
y := alpha*a'*x + beta*y
?tbmv s, d, c, z
?tbsv s, d, c, z 1
?tpmv s, d, c, z
?tpsv s, d, c, z 1
?trmv s, d, c, z
?trsv s, d, c, z 1
2-2 BLAS 2 ( )
2-24
y := alpha*conjg(a')*x + beta*y
alpha beta
BLAS BLAS 2x y
akl ku m n
trans CHARACTER*1
m INTEGER am
n INTEGER an
kl INTEGER akl0 kl
ku INTEGER aku0 ku
alpha REAL (sgbmv )DOUBLE PRECISION (dgbmv )COMPLEX (cgbmv )DOUBLE COMPLEX (zgbmv )
alpha
a REAL (sgbmv )DOUBLE PRECISION (dgbmv )OMPLEX (cgbmv )DOUBLE COMPLEX (zgbmv )
DIMENSION (lda, n) a (kl + ku + 1) n (ku + 1) (ku + 1)
trans
N n y:= alpha*a*x + beta*y
T t y:= alpha*a'*x + beta*y
C c y:= alpha*conjg(a')*x +beta*y
2-25
2 (ku + 2) 1
BLAS BLAS 2 a ( ku ku )
do 20, j = 1, n k = ku + 1 - j
do 10, i = max(1, j-ku), min(m, j+kl) a(k+i, j) = matrix(i,j) 10 continue 20 continue
lda INTEGER ( )a 1lda (kl + ku + 1)
x REAL (sgbmv )DOUBLE PRECISION (dgbmv )COMPLEX (cgbmv )DOUBLE COMPLEX (zgbmv )
DIMENSION trans = 'N' 'n'(1 + (n - 1)*abs(incx))(1 + (m - 1)*abs(incx)) x x
incx INTEGERxincx
beta REAL (sgbmv )DOUBLE PRECISION (dgbmv )COMPLEX (cgbmv )DOUBLE COMPLEX (zgbmv )
betabetay
2-26
BLAS BLAS 2y REAL (sgbmv )
DOUBLE PRECISION (dgbmv )COMPLEX (cgbmv )OUBLE COMPLEX (zgbmv )
DIMENSIONtrans ='N' 'n'(1 + (m - 1)*abs(incy))(1 + (n - 1)*abs(incy)) y y
incy INTEGERyincy
y y
?gemv
call sgemv ( trans, m, n, alpha, a, lda, x, incx,beta, y, incy )
call dgemv ( trans, m, n, alpha, a, lda, x, incx,beta, y, incy )
call cgemv ( trans, m, n, alpha, a, lda, x, incx,beta, y, incy )
call zgemv ( trans, m, n, alpha, a, lda, x, incx,beta, y, incy )
?gemvy := alpha*a*x + beta*y
2-27
y := alpha*a'*x + beta*y
BLAS BLAS 2y := alpha*conjg(a')*x + beta*y
alpha beta
x y
am n
trans CHARACTER*1
m INTEGER am
n INTEGER an
alpha REAL (sgemv )DOUBLE PRECISION (dgemv )COMPLEX (cgemv )DOUBLE COMPLEX (zgemv )
alpha
a REAL (sgemv )DOUBLE PRECISION (dgemv )COMPLEX (cgemv )DOUBLE COMPLEX (zgemv )
DIMENSION (lda, n) a m n
trans
N n y:= alpha*a*x + beta*y
T t y:= alpha*a'*x + beta*y
C c y:= alpha*conjg(a')*x +beta*y
2-28
BLAS BLAS 2lda INTEGER ( )
a 1lda max(1, m)
x REAL (sgemv )DOUBLE PRECISION (dgemv )OMPLEX (cgemv )DOUBLE COMPLEX (zgemv )
DIMENSIONtrans = 'N' 'n'(1+(n-1)*abs(incx))(1+(m - 1)*abs(incx)) x x
incx INTEGERxincx
beta REAL (sgemv )DOUBLE PRECISION (dgemv )COMPLEX (cgemv )DOUBLE COMPLEX (zgemv )
betabetay
y REAL (sgemv )DOUBLE PRECISION (dgemv )COMPLEX (cgemv )DOUBLE COMPLEX (zgemv )
DIMENSIONtrans = 'N' 'n'(1+(m-1)*abs(incy))(1+(n-1)*abs(incy))beta y y
incy INTEGERyincy
y y
2-29
BLAS BLAS 2
?ger 1
call sger ( m, n, alpha, x, incx, y, incy, a, lda )
call dger ( m, n, alpha, x, incx, y, incy, a, lda )
?gera := alpha*x*y' + a
alpha
xm
yn
am n
m INTEGER am
n INTEGER an
alpha REAL (sger )DOUBLE PRECISION (dger )
alpha
x REAL (sger )DOUBLE PRECISION (dger )
DIMENSION (1 + (m - 1)*abs(incx)) x m x
2-30
BLAS BLAS 2incx INTEGERxincx
y REAL (sger )DOUBLE PRECISION (dger )
DIMENSION (1 + (n - 1)*abs(incy)) y n y
incy INTEGERyincy
a REAL (sger )DOUBLE PRECISION (dger )
DIMENSION (lda, n) a m n
lda INTEGER ( )a 1lda max(1, m)
a
?gerc 1 ( )
call cgerc ( m, n, alpha, x, incx, y, incy, a, lda )
call zgerc ( m, n, alpha, x, incx, y, incy, a, lda )
?gerca := alpha*x*conjg(y') + a
2-31
BLAS BLAS 2alpha
xm
yn
am n
m INTEGER am
n INTEGER an
alpha SINGLE PRECISION COMPLEX (cgerc )DOUBLE PRECISION COMPLEX (zgerc )
alpha
x SINGLE PRECISION COMPLEX (cgerc )DOUBLE PRECISION COMPLEX (zgerc )
DIMENSION (1 + (m - 1)*abs(incx)) x m x
incx INTEGERxincx
y COMPLEX (cgerc )DOUBLE COMPLEX (zgerc )
DIMENSION (1 + (n - 1)*abs(incy)) y n y
incy INTEGERyincy
a COMPLEX (cgerc )DOUBLE COMPLEX (zgerc )
2-32
BLAS BLAS 2DIMENSION (lda, n) a m n
lda INTEGER ( )a 1lda max(1, m)
a
?geru 1 ( )
call cgeru ( m, n, alpha, x, incx, y, incy, a, lda )
call zgeru ( m, n, alpha, x, incx, y, incy, a, lda )
?gerua:= alpha*x*y' + a
alpha
xm
yn
am n
2-33
BLAS BLAS 2m INTEGER am
n INTEGER an
alpha COMPLEX (cgeru )DOUBLE COMPLEX (zgeru )
alpha
x COMPLEX (cgeru )DOUBLE COMPLEX (zgeru )
DIMENSION(1 + (m - 1)*abs(incx))xmx
incx INTEGERxincx
y COMPLEX (cgeru )DOUBLE COMPLEX (zgeru )
DIMENSION(1 + (n - 1)*abs(incy))yny
incy INTEGERyincy
a COMPLEX (cgeru )DOUBLE COMPLEX (zgeru )
DIMENSION (lda, n) a m n
lda INTEGER ( )a 1lda max(1, m)
a
2-34
BLAS BLAS 2
?hbmv
call chbmv ( uplo, n, k, alpha, a, lda, x, incx, beta, y, incy )
call zhbmv ( uplo, n, k, alpha, a, lda, x, incx, beta, y, incy )
?hbmvy := alpha*a*x + beta*y
alpha beta
x yn
ak n n
uplo character*1 a
n INTEGER an
k INTEGER ak0 k
uplo a
U u a
L l a
2-35
BLAS BLAS 2alpha COMPLEX (chbmv )
DOUBLE COMPLEX (zhbmv )
alpha
a COMPLEX (chbmv )DOUBLE COMPLEX (zhbmv )
DIMENSION (lda, n)uplo = 'U' 'u' a (k + 1) n (k + 1) k 2 a k k
do 20, j = 1, n m = k + 1 - j do 10, i = max(1, j - k), j a(m + i, j) = matrix(i, j) 10 continue20 continue
uplo = 'L' 'l' a (k + 1) n 1 2 1 a k k
do 20, j = 1, n m = 1 - j do 10, i = j, min( n, j + k )
2-36
BLAS BLAS 2 a( m + i, j ) = matrix( i, j ) 10 continue20 continue
lda INTEGER ( )a 1lda (k + 1)
x COMPLEX (chbmv )DOUBLE COMPLEX (zhbmv )
DIMENSION (1 + (n - 1)*abs(incx)) x x
incx INTEGERxincx
beta COMPLEX (chbmv )DOUBLE COMPLEX (zhbmv )
beta
y COMPLEX (chbmv )DOUBLE COMPLEX (zhbmv )
DIMENSION(1 + (n - 1)*abs(incy))yy
incy INTEGERyincy
y y
2-37
BLAS BLAS 2
?hemv
call chemv ( uplo, n, alpha, a, lda, x, incx, beta, y, incy )
call zhemv ( uplo, n, alpha, a, lda, x, incx, beta, y, incy )
?hemvy := alpha*a*x + beta*y
alpha beta
x yn
an n
uplo CHARACTER*1 a
n INTEGER an
uplo aU u a
L l a
2-38
BLAS BLAS 2alpha COMPLEX (chemv )
DOUBLE COMPLEX (zhemv )
alpha
a COMPLEX (chemv )DOUBLE COMPLEX (zhemv )
DIMENSION (lda, n)uplo = 'U' 'u' a n n auplo = 'L' 'l' a n n a
lda INTEGER ( )a 1lda max(1, n)
x COMPLEX (chemv )DOUBLE COMPLEX (zhemv )
DIMENSION(1 + (n - 1)*abs(incx))xnx
incx INTEGERxincx
beta COMPLEX (chemv )DOUBLE COMPLEX (zhemv )
betabetay
2-39
BLAS BLAS 2y COMPLEX (chemv )
DOUBLE COMPLEX (zhemv )
DIMENSION(1 + (n - 1)*abs(incy))yny
incy INTEGERyincy
y y
?her 1
call cher ( uplo, n, alpha, x, incx, a, lda )
call zher ( uplo, n, alpha, x, incx, a, lda )
?hera := alpha*x*conjg(x') + a
alpha
xn
an n
2-40
BLAS BLAS 2uplo CHARACTER*1 a
n INTEGER an
alpha REAL (cher )DOUBLE PRECISION (zher )
alpha
x COMPLEX (cher )DOUBLE COMPLEX (zher )
(1 + (n - 1)*abs(incx)) x n x
incx INTEGERxincx
a COMPLEX (cher )DOUBLE COMPLEX (zher )
DIMENSION (lda, n)uplo = 'U' 'u' a n n a
uplo = 'L' 'l' a n n a
uplo a
U u a
L l a
2-41
BLAS BLAS 2
lda INTEGER ( )a 1lda max(1, n)
a uplo = 'U' 'u' a
uplo = 'L' 'l' a
?her2 2
call cher2 ( uplo, n, alpha, x, incx, y, incy, a, lda )
call zher2 ( uplo, n, alpha, x, incx, y, incy, a, lda )
?her2a := alpha*x*conjg(y') + conjg(alpha)*y*conjg(x') + a
alpha
x yn
an n
2-42
BLAS BLAS 2uplo CHARACTER*1 a
n INTEGER an
alpha COMPLEX (cher2 )DOUBLE COMPLEX (zher2 )
alpha
x COMPLEX (cher2 )DOUBLE COMPLEX (zher2 )
DIMENSION(1 + (n - 1)*abs(incx))xnx
incx INTEGERxincx
y COMPLEX (cher2 )DOUBLE COMPLEX (zher2 )
DIMENSION(1 + (n - 1)*abs(incy))yny
incy INTEGERyincy
a COMPLEX (cher2 )DOUBLE COMPLEX (zher2 )
uplo a
U u aL l a
2-43
BLAS BLAS 2DIMENSION (lda, n)uplo = 'U' 'u' a n n a
uplo = 'L' 'l' a n n a
lda INTEGER ( )a 1lda max(1, n)
a uplo = 'U' 'u' a
uplo = 'L' 'l' a
?hpmv
call chpmv ( uplo, n, alpha, ap, x, incx, beta, y, incy )
call zhpmv ( uplo, n, alpha, ap, x, incx, beta, y, incy )
2-44
BLAS BLAS 2
?hpmvy := alpha*a*x + beta*y
alpha beta
x yn
a n n
uplo CHARACTER*1 a
ap
n INTEGER an
alpha COMPLEX (chpmv )DOUBLE COMPLEX (zhpmv )
alpha
ap COMPLEX (chpmv )DOUBLE COMPLEX (zhpmv )
DIMENSION ((n*(n + 1))/2)uplo = 'U''u'ap(1) a(1, 1)ap(2) a(1, 2)ap(3) a(2, 2) apuplo = 'L' 'l'ap(1)a(1, 1)ap(2) a(2, 1)ap(3) a(3, 1) ap
uplo aU u a ap
L l a ap
2-45
BLAS BLAS 2
x COMPLEX (chpmv )DOUBLE PRECISION COMPLEX (zhpmv )
DIMENSION(1 + (n - 1)*abs(incx))xnx
incx INTEGERxincx
beta COMPLEX (chpmv )DOUBLE COMPLEX (zhpmv )
betabetay
y COMPLEX (chpmv )DOUBLE COMPLEX (zhpmv )
DIMENSION(1 + (n - 1)*abs(incy))yny
incy INTEGERyincy
y y
2-46
BLAS BLAS 2
?hpr 1
call chpr ( uplo, n, alpha, x, incx, ap )
call zhpr ( uplo, n, alpha, x, incx, ap )
?hpra := alpha*x*conjg(x') + a
alpha
xn
a n n
uplo CHARACTER*1 a
ap
n INTEGER a n
alpha REAL (chpr )DOUBLE PRECISION (zhpr )
alpha
uplo a
U u a ap
L l a ap
2-47
BLAS BLAS 2x COMPLEX (chpr )
DOUBLE COMPLEX (zhpr )
DIMENSION(1 + (n - 1)*abs(incx))xnx
incx INTEGERxincx
ap COMPLEX (chpr )DOUBLE COMPLEX (zhpr )
DIMENSION ((n*(n + 1))/2)uplo = 'U''u'AP(1) a(1, 1)ap(2) a(1, 2)ap(3) a(2, 2) ap
uplo = 'L' 'l'ap(1) a(1, 1)ap(2) a(2, 1)ap(3) a(3, 1) ap
ap uplo = 'U' 'u'
uplo = 'L' 'l'
2-48
BLAS BLAS 2
?hpr2 2
call chpr2 ( uplo, n, alpha, x, incx, y, incy, ap )
call zhpr2 ( uplo, n, alpha, x, incx, y, incy, ap )
?hpr2a := alpha*x*conjg(y') + conjg(alpha)*y*conjg(x') + a
alpha
x yn
a n n
uplo CHARACTER*1 a
ap
n INTEGER an
alpha COMPLEX (chpr2 )DOUBLE COMPLEX (zhpr2 )
alpha
uplo a
U u a ap
L l a ap
2-49
BLAS BLAS 2x COMPLEX (chpr2 )
DOUBLE COMPLEX (zhpr2 )
(1 + (n - 1)*abs(incx)) x n x
incx INTEGER xincx
y COMPLEX (chpr2 )DOUBLE COMPLEX (zhpr2 )
DIMENSION (1 + (n - 1)*abs(incy)) y n y
incy INTEGER yincy
ap COMPLEX (chpr2 )DOUBLE COMPLEX (zhpr2 )
DIMENSION ((n*(n + 1))/2)uplo = 'U''u'ap(1) a(1, 1)ap(2) a(1, 2)ap(3) a(2, 2) ap
uplo = 'L' 'l'ap(1) a(1, 1)ap(2) A(2, 1)ap(3) A(3, 1) ap
2-50
BLAS BLAS 2ap uplo = 'U' 'u'
uplo = 'L' 'l'
?sbmv
call ssbmv ( uplo, n, k, alpha, a, lda, x, incx, beta, y, incy )
call dsbmv ( uplo, n, k, alpha, a, lda, x, incx, beta, y, incy )
?sbmvy := alpha*a*x + beta*y
alpha beta
x yn
ak n n
2-51
BLAS BLAS 2uplo CHARACTER*1 a
n INTEGER an
k INTEGER ak0 k
alpha REAL (ssbmv )DOUBLE PRECISION (dsbmv )
alpha
a REAL (ssbmv )DOUBLE PRECISION (dsbmv )
DIMENSION (lda, n)uplo = 'U' 'u' a (k + 1) n (k + 1) k 2 a k k
do 20, j = 1, n m = k + 1 - j do 10, i = max( 1, j - k ), j a( m + i, j ) = matrix( i, j ) 10 continue20 continue
uplo a
U u a
L l a
2-52
BLAS BLAS 2uplo = 'L' 'l' a (k + 1) n 1 2 1 a k k
do 20, j = 1, n m = 1 - j do 10, i = j, min( n, j + k ) a( m + i, j ) = matrix( i, j ) 10 continue20 continue
lda INTEGER ( )a 1lda (k + 1)
x REAL (ssbmv )DOUBLE PRECISION (dsbmv )
DIMENSION(1 + (n - 1)*abs(incx))xx
incx INTEGERx incx
beta REAL (ssbmv )DOUBLE PRECISION (dsbmv )
beta
y REAL (ssbmv )DOUBLE PRECISION (dsbmv )
DIMENSION(1 + (n - 1)*abs(incy))yy
2-53
BLAS BLAS 2incy INTEGERyincy
y y
?spmv
call sspmv ( uplo, n, alpha, ap, x, incx, beta, y, incy )
call dspmv ( uplo, n, alpha, ap, x, incx, beta, y, incy )
?spmvy := alpha*a*x + beta*y
alpha beta
x yn
a n n
uplo CHARACTER*1 a
ap
uplo a
U u a ap
L l a ap
2-54
BLAS BLAS 2n INTEGER an
alpha REAL (sspmv )DOUBLE PRECISION (dspmv )
alpha
ap REAL (sspmv )DOUBLE PRECISION (dspmv )
DIMENSION ((n*(n + 1))/2)uplo = 'U''u'ap(1) a(1, 1)ap(2) a(1, 2)ap(3) a(2, 2) apuplo = 'L' 'l'ap(1) a(1, 1)ap(2) a(2, 1)ap(3) a(3, 1) ap
x REAL (sspmv )DOUBLE PRECISION (dspmv )
DIMENSION (1 + (n - 1)*abs(incx)) x n x
incx INTEGERxincx
beta REAL (sspmv )DOUBLE PRECISION (dspmv )
betabetay
y REAL (sspmv )DOUBLE PRECISION (dspmv )
DIMENSION(1 + (n - 1)*abs(incy))yny
2-55
BLAS BLAS 2incy INTEGER yincy
y y
?spr 1
call sspr( uplo, n, alpha, x, incx, ap )
call dspr( uplo, n, alpha, x, incx, ap )
?spra:= alpha*x*x' + a
alpha
x n
a n n
uplo CHARACTER*1 a
ap
uplo a
U u a ap
L l a ap
2-56
BLAS BLAS 2n INTEGER an
alpha REAL (sspr )DOUBLE PRECISION (dspr )
alpha
x REAL (sspr )DOUBLE PRECISION (dspr )
DIMENSION(1 + (n - 1)*abs(incx))xnx
incx INTEGER xincx
ap REAL (sspr )DOUBLE PRECISION (dspr )
DIMENSION ((n*(n + 1))/2)uplo = 'U''u'ap(1) a(1,1)ap(2) a(1,2)ap(3) a(2,2) ap
uplo = 'L' 'l' ap(1) a(1,1)ap(2) a(2,1)ap(3) a(3,1) ap
ap uplo = 'U' 'u'
uplo = 'L' 'l'
2-57
BLAS BLAS 2
?spr2 2
call sspr2( uplo, n, alpha, x, incx, y, incy, ap )
call dspr2( uplo, n, alpha, x, incx, y, incy, ap )
?spr2 a:= alpha*x*y' + alpha*y*x' + a
alpha
x yn
a n n
uplo CHARACTER*1 a
ap
n INTEGER a n
alpha REAL (sspr2 )DOUBLE PRECISION (dspr2 )
alpha
uplo a
U u a ap
L l a ap
2-58
BLAS BLAS 2x REAL (sspr2 )
DOUBLE PRECISION (dspr2 )
DIMENSION(1 + (n - 1)*abs(incx))xn x
incx INTEGERxincx
y REAL (sspr2 )DOUBLE PRECISION (dspr2 )
DIMENSION(1 + (n - 1)*abs(incy))yny
incy INTEGER yincy
ap REAL (sspr2 )DOUBLE PRECISION (dspr2 )
DIMENSION ((n*(n + 1))/2)uplo = 'U''u'ap(1) a(1,1)ap(2) a(1,2)ap(3) a(2,2) ap
uplo = 'L' 'l'ap(1) a(1,1)ap(2) a(2,1)ap(3) a(3,1) ap
ap uplo = 'U' 'u'
uplo = 'L' 'l'
2-59
BLAS BLAS 2
?symv
call ssymv ( uplo, n, alpha, a, lda, x, incx, beta, y,
incy )
call dsymv ( uplo, n, alpha, a, lda, x, incx, beta, y,
incy )
?symv y := alpha*a*x + beta*y
alpha beta
x yn
an n
uplo CHARACTER*1 a
n INTEGER a n
uplo a
U u a
L l a
2-60
BLAS BLAS 2alpha REAL (ssymv )
DOUBLE PRECISION (dsymv )
alpha
a REAL (ssymv )DOUBLE PRECISION (dsymv )
DIMENSION (lda, n)uplo = 'U' 'u' a n nauplo = 'L''l' an na
lda INTEGER ( )a 1lda max(1,n)
x REAL (ssymv )DOUBLE PRECISION (dsymv )
DIMENSION(1 + (n - 1)*abs(incx))xnx
incx INTEGERxincx
beta REAL (ssymv )DOUBLE PRECISION (dsymv )
betabetay
y REAL (ssymv )DOUBLE PRECISION (dsymv )
DIMENSION(1 + (n - 1)*abs(incy))yny
2-61
BLAS BLAS 2incy INTEGERyincy
y y
?syr 1
call ssyr( uplo, n, alpha, x, incx, a, lda )
call dsyr( uplo, n, alpha, x, incx, a, lda )
?syr
a := alpha*x*x' + a
alpha
xn
an n
uplo CHARACTER*1 a
uplo a
U u a
L l a
2-62
BLAS BLAS 2n INTEGER an
alpha REAL (ssyr )DOUBLE PRECISION (dsyr )
alpha
x REAL (ssyr )DOUBLE PRECISION (dsyr )
DIMENSION(1 + (n - 1)*abs(incx)) xnx
incx INTEGERxincx
a REAL (ssyr )DOUBLE PRECISION (dsyr )
DIMENSION (lda, n)uplo = 'U' 'u' a n na
uplo = 'L' 'l' a n na
lda INTEGER ( )a 1lda max(1,n)
a uplo = 'U' 'u' a
uplo = 'L' 'l' a
2-63
BLAS BLAS 2
?syr2 2
call ssyr2( uplo, n, alpha, x, incx, y, incy, a, lda )
call dsyr2( uplo, n, alpha, x, incx, y, incy, a, lda )
?syr2 a := alpha*x*y' + alpha*y*x' + a
alpha
x yn
an n
uplo CHARACTER*1 a
n INTEGER an
alpha REAL (ssyr2 )DOUBLE PRECISION (dsyr2 )
alpha
uplo a
U u a
L l a
2-64
BLAS BLAS 2x REAL (ssyr2 )
DOUBLE PRECISION (dsyr2 )
DIMENSION(1 + (n - 1)*abs(incx))xnx
incx INTEGERxincx
y REAL (ssyr2 )DOUBLE PRECISION (dsyr2 )
DIMENSION(1 + (n - 1)*abs(incy))yny
incy INTEGER yincy
a REAL (ssyr2 )DOUBLE PRECISION (dsyr2 )
DIMENSION (lda, n)uplo = 'U' 'u' a n na
uplo = 'L' 'l' a n n a
lda INTEGER ( )a 1lda max(1,n)
2-65
BLAS BLAS 2a uplo = 'U' 'u' a
uplo = 'L' 'l' a
?tbmv
call stbmv ( uplo, trans, diag, n, k, a, lda, x, incx )
call dtbmv ( uplo, trans, diag, n, k, a, lda, x, incx )
call ctbmv ( uplo, trans, diag, n, k, a, lda, x, incx )
call ztbmv ( uplo, trans, diag, n, k, a, lda, x, incx )
?tbmv
x := a*x x := a'*x x := conjg(a')*x
xn
an n(k + 1)
uplo CHARACTER*1
2-66
BLAS BLAS 2
trans CHARACTER*1
diag CHARACTER*1a
n INTEGER an
k INTEGER uplo = 'U' 'u'k auplo = 'L' 'l'k ak 0 k
a REAL (stbmv )DOUBLE PRECISION (dtbmv )COMPLEX (ctbmv )DOUBLE COMPLEX (ztbmv )
DIMENSION (lda, n)uplo = 'U' 'u' a (k + 1) n (k + 1) k 2
uplo a
U u
L l
trans
N n x := a*x
T t x := a'*x
C c x := conjg(a')*x
diag a
U u a
N n a
2-67
a k k
BLAS BLAS 2 do 20, j = 1, n m = k + 1 - j
do 10, i = max(1, j - k), j a(m + i, j) = matrix(i, j) 10 continue20 continue
uplo = 'L' 'l' a (k + 1) n 1 2 1 a k k
do 20, j = 1, n m = 1 - j do 10, i = j, min(n, j + k) a(m + i, j) = matrix (i, j) 10 continue20 continue
diag = 'U' 'u' a1
lda INTEGER ( )a 1lda (k + 1)
2-68
BLAS BLAS 2x REAL (stbmv )
DOUBLE PRECISION (dtbmv )COMPLEX (ctbmv )DOUBLE COMPLEX (ztbmv )
DIMENSION (1 + (n - 1)*abs(incx))xnx
incx INTEGER xincx
x x
?tbsv 1
call stbsv ( uplo, trans, diag, n, k, a, lda, x, incx )
call dtbsv ( uplo, trans, diag, n, k, a, lda, x, incx )
call ctbsv ( uplo, trans, diag, n, k, a, lda, x, incx )
call ztbsv ( uplo, trans, diag, n, k, a, lda, x, incx )
?tbsv
a*x = b, a'*x = b, conjg(a')*x = b
b xn
an n(k + 1)
2-69
BLAS BLAS 2
uplo CHARACTER*1
trans CHARACTER*1
diag CHARACTER*1a
n INTEGER an
k INTEGERuplo = 'U' 'u'k auplo = 'L''l'k ak0 k
uplo a
U u
L l
trans
N n a*x = b
T t a'*x = b
C c conjg(a')*x = b
diag a
U u a
N n a
2-70
BLAS BLAS 2a REAL (stbsv )
DOUBLE PRECISION (dtbsv )COMPLEX (ctbsv )DOUBLE COMPLEX (ztbsv )
DIMENSION (lda, n)uplo = 'U' 'u' a (k + 1) n (k + 1) k 2 a k k
do 20, j = 1, n m = k + 1 - j do 10, i = max(1, j - k), j a(m + i, j) = matrix (i, j) 10 continue20 continue
uplo = 'L' 'l' a (k + 1) n 1 2 1 a k k
do 20, j = 1, n m = 1 - j do 10, i = j, min(n, j + k) a(m + i, j) = matrix (i, j) 10 continue20 continue
2-71
BLAS BLAS 2diag = 'U' 'u' a1
lda INTEGER ( )a 1lda (k + 1)
x REAL (stbsv )DOUBLE PRECISION (dtbsv )COMPLEX (ctbsv )DOUBLE COMPLEX (ztbsv )
DIMENSION (1 + (n - 1)*abs(incx)) x n b
incx INTEGER xincx
x x
?tpmv
call stpmv ( uplo, trans, diag, n, ap, x, incx )
call dtpmv ( uplo, trans, diag, n, ap, x, incx )
call ctpmv ( uplo, trans, diag, n, ap, x, incx )
call ztpmv ( uplo, trans, diag, n, ap, x, incx )
?tpmv
x := a*x x := a'*x x := conjg(a')*x
2-72
BLAS BLAS 2xn
an n
uplo CHARACTER*1 a
trans CHARACTER*1
diag CHARACTER*1a
n INTEGER an
ap REAL (stpmv )DOUBLE PRECISION (dtpmv )COMPLEX (ctpmv )DOUBLE COMPLEX (ztpmv )
uplo a
U u
L l
trans
N n x := a*x
T t x := a'*x
C c x := conjg(a')*x
diag a
U u a
N n a
2-73
BLAS BLAS 2DIMENSION ((n*(n + 1))/2)uplo = 'U''u'ap(1) a(1,1)ap(2) a(1,2)ap(3) a(2,2) apuplo = 'L' 'l'ap(1) a(1,1)ap(2)a(2,1)ap(3) a(3,1) apdiag = 'U' 'u'a1
x REAL (stpmv )DOUBLE PRECISION (dtpmv )COMPLEX (ctpmv )DOUBLE COMPLEX (ztpmv )
DIMENSION (1 + (n - 1)*abs(incx)) x n x
incx INTEGER xincx
x x
2-74
BLAS BLAS 2
?tpsv 1
call stpsv ( uplo, trans, diag, n, ap, x, incx )
call dtpsv ( uplo, trans, diag, n, ap, x, incx )
call ctpsv ( uplo, trans, diag, n, ap, x, incx )
call ztpsv ( uplo, trans, diag, n, ap, x, incx )
?tpsv
a*x = b a'*x = b conjg(a')*x = b
b xn
an n
uplo CHARACTER*1 a
uplo a
U u
L l
2-75
BLAS BLAS 2trans CHARACTER*1
diag CHARACTER*1a
n INTEGER an
ap REAL (stpsv )DOUBLE PRECISION (dtpsv )COMPLEX (ctpsv )DOUBLE COMPLEX (ztpsv )
DIMENSION ((n*(n + 1))/2)uplo = 'U''u'ap(1) a(1, 1)ap(2) a(1, 2)ap(3) a(2, 2) apuplo = 'L' 'l'ap(1) a(1, 1)ap(2)a(2, 1)ap(3) a(3, 1) apdiag = 'U' 'u'a1
trans
N n a*x = b
T t a'*x = b
C c conjg(a')*x = b
diag a
U u a
N n a
2-76
BLAS BLAS 2x REAL (stpsv )
DOUBLE PRECISION (dtpsv )COMPLEX (ctpsv )DOUBLE COMPLEX (ztpsv )
DIMENSION(1 + (n - 1)*abs(incx))xnb
incx INTEGER xincx
x x
?trmv
call strmv ( uplo, trans, diag, n, a, lda, x, incx )
call dtrmv ( uplo, trans, diag, n, a, lda, x, incx )
call ctrmv ( uplo, trans, diag, n, a, lda, x, incx )
call ztrmv ( uplo, trans, diag, n, a, lda, x, incx )
?trmv
x := a*x x := a'*x x := conjg(a')*x
xn
an n
2-77
BLAS BLAS 2uplo CHARACTER*1 a
trans CHARACTER*1
diag CHARACTER*1a
n INTEGER an
a REAL (strmv )DOUBLE PRECISION (dtrmv )COMPLEX (ctrmv )DOUBLE COMPLEX (ztrmv )
DIMENSION (lda,n)uplo = 'U' 'u' a n nauplo = 'L' 'l'
uplo a
U u
L l
trans
N n x := a*x
T t x := a'*x
C c x := conjg(a')*x
diag a
U u a
N n a
2-78
a n nadiag = 'U' 'u'a1
BLAS BLAS 2lda INTEGER ( )
a 1lda max(1, n)
x REAL (strmv )DOUBLE PRECISION (dtrmv )COMPLEX (ctrmv )OUBLE COMPLEX (ztrmv )
DIMENSION(1 + (n - 1)*abs(incx))xnx
incx INTEGERxincx
x x
?trsv 1
call strsv ( uplo, trans, diag, n, a, lda, x, incx )
call dtrsv ( uplo, trans, diag, n, a, lda, x, incx )
call ctrsv ( uplo, trans, diag, n, a, lda, x, incx )
call ztrsv ( uplo, trans, diag, n, a, lda, x, incx )
2-79
BLAS BLAS 2
?trsv
a*x = b a'*x = b conjg(a')*x = b
b xn
an n
uplo CHARACTER*1
trans CHARACTER*1
diag CHARACTER*1a
n INTEGER an
uplo a
U u
L l
trans
N n a*x = b
T t a'*x = b
C c conjg(a')*x = b
diag a
U u a
N n a
2-80
BLAS BLAS 2a REAL (strsv )
DOUBLE PRECISION (dtrsv )COMPLEX (ctrsv )OUBLE COMPLEX (ztrsv )
DIMENSION (lda,n)UPLO = 'U' 'u' a n nauplo= 'L' 'l' a n nadiag = 'U' 'u'a1
lda INTEGER ( )a 1lda max(1, n)
x REAL (strsv )DOUBLE PRECISION (dtrsv )COMPLEX (ctrsv )DOUBLE COMPLEX (ztrsv )
DIMENSION(1 + (n - 1)*abs(incx))xnb
incx INTEGER xincx
x x
2-81
BLAS BLAS 2BLAS 3
BLAS 3 2-3BLAS 3
MKL
BLAS 3MKL (SMP)
MKL
BLAS 3
2-3 BLAS 3
?gemm s, d, c, z
?hemm c, z
?herk c, z k
?her2k c, z 2k
?symm s, d, c, z
?syrk s, d, c, z k
?syr2k s, d, c, z 2k
?trmm s, d, c, z
?trsm s, d, c, z 1
2-82
BLAS BLAS 2 12
?gemm
call sgemm ( transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc )
call dgemm ( transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc )
call cgemm ( transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc )
call zgemm ( transa, transb, m, n, k, alpha, a, lda, b, ldb, beta, c, ldc )
?gemmc := alpha*op(a)*op(b) + beta*c
op(x)op(x) = x op(x) = x' op(x) = conjg(x')
alpha beta
ab c
op(a)m k
op(b)k n
2-83
cm n
BLAS BLAS 2transa CHARACTER*1
op(a)
transb CHARACTER*1op(b)
m INTEGER op(a) cm
n INTEGER op(b) cn
k INTEGER op(a) op(b)k
alpha REAL(sgemm )DOUBLE PRECISION (dgemm )COMPLEX (cgemm )DOUBLE COMPLEX (zgemm )
alpha
transa op(a)
N n op(a) = a
T t op(a) = a'
C c op(a) = conjg(A')
transb op(b)
N n op(b) = b
T t op(b) = b'
C c op(b) = conjg(b')
2-84
BLAS BLAS 2a REAL (sgemm )
DOUBLE PRECISION (dgemm )COMPLEX (cgemm )DOUBLE COMPLEX (zgemm )
DIMENSION (lda, ka)ka transa = 'N' 'n' k mtransa = 'N' 'n' a m k a a k m a
lda INTEGER ( )a 1transa = 'N' 'n'lda max(1, m)lda max(1, k)
b REAL (sgemm )DOUBLE PRECISION (dgemm )COMPLEX (cgemm )DOUBLE COMPLEX (zgemm )
DIMENSION (ldb, kb)kb transb = 'N' 'n' n ktransb = 'N' 'n' b k n b b n k b
ldb INTEGER ( )b 1transb = 'N' 'n'ldb max
Recommended