1 Level 1 BLAS SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE SUBROUTINE FUNCTION FUNCTION FUNCTION FUNCTION FUNCTION FUNCTION FUNCTION xROTG ( xROTMG( xROT ( xROTM ( xSWAP ( xSCAL ( xCOPY ( xAXPY ( xDOT ( xDOTU ( xDOTC ( xxDOT ( xNRM2 ( xASUM ( IxAMAX( dim scalar vector N, N, N, N, N, N, N, N, N, N, N, N, N, 5-element array A, B, C, S ) D1, D2, A, B, PARAM ) X, INCX, Y, INCY, C, S ) X, INCX, Y, INCY, PARAM ) X, INCX, Y, INCY ) ALPHA, X, INCX ) X, INCX, Y, INCY ) ALPHA, X, INCX, Y, INCY ) X, INCX, Y, INCY ) X, INCX, Y, INCY ) X, INCX, Y, INCY ) X, INCX, Y, INCY ) X, INCX ) X, INCX ) X, INCX ) Level 2 BLAS options xGEMV xGBMV xHEMV xHBMV xHPMV xSYMV xSBMV xSPMV xTRMV xTBMV xTPMV xTRSV xTBSV xTPSV ( ( ( ( ( ( ( ( ( ( ( ( ( ( xGER xGERU xGERC xHER xHPR xHER2 xHPR2 xSYR xSPR xSYR2 xSPR2 ( ( ( ( ( ( ( ( ( ( ( TRANS, TRANS, UPLO, UPLO, UPLO, UPLO, UPLO, UPLO, UPLO, TRANS, UPLO, TRANS, UPLO, TRANS, UPLO, TRANS, UPLO, TRANS, UPLO, TRANS, options DIAG, DIAG, DIAG, DIAG, DIAG, DIAG, UPLO, UPLO, UPLO, UPLO, UPLO, UPLO, UPLO, UPLO, dim M, N, M, N, N, N, N, N, N, N, N, N, N, N, N, N, dim M, N, M, N, M, N, N, N, N, N, N, N, N, N, K, K, scalar ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, ALPHA, options TRANSA, TRANSB, SIDE, UPLO, SIDE, UPLO, UPLO, UPLO, UPLO, UPLO, SIDE, UPLO, SIDE, UPLO, TRANS, TRANS, TRANS, TRANS, TRANSA, TRANSA, scalars b-width scalar ALPHA, KL, KU, ALPHA, ALPHA, K, ALPHA, ALPHA, ALPHA, K, ALPHA, ALPHA, Level 3 BLAS xGEMM ( xSYMM ( xHEMM ( xSYRK ( xHERK ( xSYR2K( xHER2K( xTRMM ( xTRSM ( vector matrix vector scalar A, LDA, X, INCX, BETA, A, LDA, X, INCX, BETA, A, LDA, X, INCX, BETA, A, LDA, X, INCX, BETA, AP, X, INCX, BETA, A, LDA, X, INCX, BETA, A, LDA, X, INCX, BETA, AP, X, INCX, BETA, A, LDA, X, INCX ) A, LDA, X, INCX ) AP, X, INCX ) A, LDA, X, INCX ) A, LDA, X, INCX ) AP, X, INCX ) vector vector matrix X, INCX, Y, INCY, A, LDA ) X, INCX, Y, INCY, A, LDA ) X, INCX, Y, INCY, A, LDA ) X, INCX, A, LDA ) X, INCX, AP ) X, INCX, Y, INCY, A, LDA ) X, INCX, Y, INCY, AP ) X, INCX, A, LDA ) X, INCX, AP ) X, INCX, Y, INCY, A, LDA ) X, INCX, Y, INCY, AP ) dim M, N, M, N, M, N, N, N, N, N, DIAG, M, N, DIAG, M, N, scalar K, ALPHA, ALPHA, ALPHA, K, ALPHA, K, ALPHA, K, ALPHA, K, ALPHA, ALPHA, ALPHA, matrix A, LDA, A, LDA, A, LDA, A, LDA, A, LDA, A, LDA, A, LDA, A, LDA, A, LDA, matrix B, LDB, B, LDB, B, LDB, vector Y, INCY Y, INCY Y, INCY Y, INCY Y, INCY Y, INCY Y, INCY Y, INCY scalar BETA, BETA, BETA, BETA, BETA, B, LDB, BETA, B, LDB, BETA, B, LDB ) B, LDB ) Generate plane rotation Generate modied plane rotation Apply plane rotation Apply modied plane rotation x$y x x y x y x + y dot xT y dot xT y dot xH y dot + xT y nrm2 jjxjj2 asum jjre(x)jj1 + jjim(x)jj1 amax 1st k 3 jre(xk )j + jim(xk )j = max(jre(xi )j + jim(xi )j) A A A A A A A A A A A Ax + y; y AT x + y; y AH x + y; A m n Ax + y; y AT x + y; y AH x + y; A m n Ax + y Ax + y Ax + y Ax + y Ax + y Ax + y Ax; x AT x; x AH x Ax; x AT x; x AH x Ax; x AT x; x AH x A 1 x; x A T x; x A H x A 1 x; x A T x; x A H x A 1 x; x A T x; x A H x xyT + A; A m n xyT + A; A m n xyH + A; A m n xxH + A xxH + A xyH + y(x)H + A xyH + y(x)H + A xxT + A xxT + A xyT + yxT + A xyT + yxT + A S, D C, Z C, Z C, Z C, Z C, Z C, Z S, D S, D S, D S, D C C C C C C C B B op(A)op(B) + C; op(X ) = X; X T ; X H ; C m n AB + C; C BA + C; C m n; A = AT AB + C; C BA + C; C m n; A = AH AAT + C; C AT A + C; C n n AAH + C; C AH A + C; C n n ABT + BAT + C; C AT B + BT A + C; C n n ABH + BAH + C; C AH B + BH A + C; C n n op(A)B; B Bop(A); op(A) = A; AT ; AH ; B m n op(A 1 )B; B Bop(A 1 ); op(A) = A; AT ; AH ; B m n S, D, C, Z S, D, C, Z C, Z S, D, C, Z C, Z S, D, C, Z C, Z S, D, C, Z S, D, C, Z y y y y y y y y x x x x x x ) ) ) ) ) ) ) ) matrix C, LDC C, LDC C, LDC C, LDC C, LDC C, LDC C, LDC 2 ) ) ) ) ) ) ) prexes S, D S, D S, D S, D S, D, C, Z S, D, C, Z, CS, ZD S, D, C, Z S, D, C, Z S, D, DS C, Z C, Z SDS S, D, SC, DZ S, D, SC, DZ S, D, C, Z S, D, C, Z S, D, C, Z C, Z C, Z C, Z S, D S, D S, D S, D, C, Z S, D, C, Z S, D, C, Z S, D, C, Z S, D, C, Z S, D, C, Z Meaning of prexes S - REAL D - DOUBLE PRECISION C - COMPLEX Z - COMPLEX*16 (this may not be supported by all machines) For the Level 2 BLAS a set of extended-precision routines with the prexes ES, ED, EC, EZ may also be available. Level 1 BLAS In addition to the listed routines there are two further extended-precision dot product routines DQDOTI and DQDOTA. Level 2 and Level 3 BLAS Matrix types: GE - GEneral GB - General Band SY - SYmmetric SB - Sym. Band SP - Sum. Packed HE - HErmitian HB - Herm. Band HP - Herm. Packed TR - TRiangular TB - Triang. Band TP - Triang. Packed Level 2 and Level 3 BLAS Options Dummy options arguments are declared as CHARACTER*1 and may be passed as character strings. TRANx = `No transpose', `Transpose', `Conjugate transpose' (X; X T ; X H ) UPLO = `Upper triangular', `Lower triangular' DIAG = `Non-unit triangular', `Unit triangular' SIDE = `Left', `Right' (A or op(A) on the left, or A or op(A) on the right) For real matrices, TRANSx = `T' and TRANSx = `C' have the same meaning. For Hermitian matrices, TRANSx = `T' is not allowed. For complex symmetric matrices, TRANSx = `H' is not allowed. References C. Lawson, R. Hanson, D. Kincaid, and F. Krogh, \Basic Linear Algebra Subprograms for Fortran Usage," ACM Trans. on Math. Soft. 5 (1979) 308-325 J.J. Dongarra, J. DuCroz, S. Hammarling, and R. Hanson, \An Extended Set of Fortran Basic Linear Algebra Subprograms," ACM Trans. on Math. Soft. 14,1 (1988) 1-32 J.J. Dongarra, I. Du, J. DuCroz, and S. Hammarling, \A Set of Level 3 Basic Linear Algebra Subprograms," ACM Trans. on Math. Soft. (1989) Obtaining the Software via [email protected] To receive a copy of the single-precision software, type in a mail message: send sblas from blas send sblas2 from blas send sblas3 from blas To receive a copy of the double-precision software, type in a mail message: send dblas from blas send dblas2 from blas send dblas3 from blas To receive a copy of the complex single-precision software, type in a mail message: send cblas from blas send cblas2 from blas send cblas3 from blas Basic Linear Algebra Subprograms A Quick Reference Guide To receive a copy of the complex double-precision software, type in a mail message: University of Tennessee Oak Ridge National Laboratory Numerical Algorithms Group Ltd. Send comments and questions to May 11, 1997 send zblas from blas send zblas2 from blas send zblas3 from blas 3 [email protected] .