1037
インテル インテル インテル インテル ® ライブラリ ライブラリ ライブラリ ライブラリ リファレンス・マニュアル Copyright © 1994-2001 Intel Corporation 無断での引用、転載を禁じます。 資料番号 : 630813J-11

インテル(R) 数値演算ライブラリ(MKL) リファレンス・マニュアル · インテル® 数値演算ライブラリ -リファレンス・マニュアル- 目次

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

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 BLAS

    BLASBLASBLAS 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