Level 1 BLAS
dim scalar vector vector scalars 5-element prefixes array SUBROUTINE _ROTG ( A, B, C, S ) S, D SUBROUTINE _ROTMG( D1, D2, A, B, PARAM ) S, D SUBROUTINE _ROT ( N, X, INCX, Y, INCY, C, S ) S, D SUBROUTINE _ROTM ( N, X, INCX, Y, INCY, PARAM ) S, D SUBROUTINE _SWAP ( N, X, INCX, Y, INCY ) S, D, C, Z SUBROUTINE _SCAL ( N, ALPHA, X, INCX ) S, D, C, Z, CS, ZD SUBROUTINE _COPY ( N, X, INCX, Y, INCY ) S, D, C, Z SUBROUTINE _AXPY ( N, ALPHA, X, INCX, Y, INCY ) S, D, C, Z FUNCTION _DOT ( N, X, INCX, Y, INCY ) S, D, DS FUNCTION _DOTU ( N, X, INCX, Y, INCY ) C, Z FUNCTION _DOTC ( N, X, INCX, Y, INCY ) C, Z FUNCTION __DOT ( N, ALPHA, X, INCX, Y, INCY ) SDS FUNCTION _NRM2 ( N, X, INCX ) S, D, SC, DZ FUNCTION _ASUM ( N, X, INCX ) S, D, SC, DZ FUNCTION I_AMAX( N, X, INCX ) S, D, C, Z
Name | Operation | Prefixes |
_ROTG | Generate plane rotation | S, D |
_ROTMG | Generate modified plane rotation | S, D |
_ROT | Apply plane rotation | S, D |
_ROTM | Apply modified plane rotation | S, D |
_SWAP |
![]() |
S, D, C, Z |
_SCAL |
![]() |
S, D, C, Z, CS, ZD |
_COPY |
![]() |
S, D, C, Z |
_AXPY |
![]() |
S, D, C, Z |
_DOT |
![]() |
S, D, DS |
_DOTU |
![]() |
C, Z |
_DOTC |
![]() |
C, Z |
__DOT |
![]() |
SDS |
_NRM2 |
![]() |
S, D, SC, DZ |
_ASUM |
![]() |
S, D, SC, DZ |
I_AMAX |
![]() |
S, D, C, Z |
|
= max( | re( x i ) | + | im( x i ) | ) |
Level 2 BLAS
options dim b-width scalar matrix vector scalar vector prefixes _GEMV ( TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ) S, D, C, Z _GBMV ( TRANS, M, N, KL, KU, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ) S, D, C, Z _HEMV ( UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ) C, Z _HBMV ( UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ) C, Z _HPMV ( UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY ) C, Z _SYMV ( UPLO, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ) S, D _SBMV ( UPLO, N, K, ALPHA, A, LDA, X, INCX, BETA, Y, INCY ) S, D _SPMV ( UPLO, N, ALPHA, AP, X, INCX, BETA, Y, INCY ) S, D _TRMV ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX ) S, D, C, Z _TBMV ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX ) S, D, C, Z _TPMV ( UPLO, TRANS, DIAG, N, AP, X, INCX ) S, D, C, Z _TRSV ( UPLO, TRANS, DIAG, N, A, LDA, X, INCX ) S, D, C, Z _TBSV ( UPLO, TRANS, DIAG, N, K, A, LDA, X, INCX ) S, D, C, Z _TPSV ( UPLO, TRANS, DIAG, N, AP, X, INCX ) S, D, C, Z options dim scalar vector vector matrix prefixes _GER ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA ) S, D _GERU ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA ) C, Z _GERC ( M, N, ALPHA, X, INCX, Y, INCY, A, LDA ) C, Z _HER ( UPLO, N, ALPHA, X, INCX, A, LDA ) C, Z _HPR ( UPLO, N, ALPHA, X, INCX, AP ) C, Z _HER2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA ) C, Z _HPR2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, AP ) C, Z _SYR ( UPLO, N, ALPHA, X, INCX, A, LDA ) S, D _SPR ( UPLO, N, ALPHA, X, INCX, AP ) S, D _SYR2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, A, LDA ) S, D _SPR2 ( UPLO, N, ALPHA, X, INCX, Y, INCY, AP ) S, D
Level 3 BLAS
options dim scalar matrix matrix scalar matrix prefixes _GEMM ( TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC ) S, D, C, Z _SYMM ( SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC ) S, D, C, Z _HEMM ( SIDE, UPLO, M, N, ALPHA, A, LDA, B, LDB, BETA, C, LDC ) C, Z _SYRK ( UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC ) S, D, C, Z _HERK ( UPLO, TRANS, N, K, ALPHA, A, LDA, BETA, C, LDC ) C, Z _SYR2K( UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC ) S, D, C, Z _HER2K( UPLO, TRANS, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC ) C, Z _TRMM ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB ) S, D, C, Z _TRSM ( SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB ) S, D, C, Z
Name | Operation | Prefixes |
_GEMV |
![]() |
S, D, C, Z |
_GBMV |
![]() |
S, D, C, Z |
_HEMV |
![]() |
C, Z |
_HBMV |
![]() |
C, Z |
_HPMV |
![]() |
C, Z |
_SYMV |
![]() |
S, D |
_SBMV |
![]() |
S, D |
_SPMV |
![]() |
S, D |
_TRMV |
![]() |
S, D, C, Z |
_TBMV |
![]() |
S, D, C, Z |
_TPMV |
![]() |
S, D, C, Z |
_TRSV |
![]() |
S, D, C, Z |
_TBSV |
![]() |
S, D, C, Z |
_TPSV |
![]() |
S, D, C, Z |
_GER |
![]() |
S, D |
_GERU |
![]() |
C, Z |
_GERC |
![]() |
C, Z |
_HER |
![]() |
C, Z |
_HPR |
![]() |
C, Z |
_HER2 |
![]() |
C, Z |
_HPR2 |
![]() |
C, Z |
_SYR |
![]() |
S, D |
_SPR |
![]() |
S, D |
_SYR2 |
![]() |
S, D |
_SPR2 |
![]() |
S, D |
Name | Operation | Prefixes |
_GEMM |
![]() |
S, D, C, Z |
_SYMM |
![]() |
S, D, C, Z |
_HEMM |
![]() |
C, Z |
_SYRK |
![]() |
S, D, C, Z |
_HERK |
![]() |
C, Z |
_SYR2K |
![]() |
S, D, C, Z |
_HER2K |
![]() |
C, Z |
_TRMM |
![]() |
S, D, C, Z |
_TRSM |
![]() |
S, D, C, Z |
Notes
Meaning of prefixes
S - REAL | C - COMPLEX | |
D - DOUBLE PRECISION | Z - COMPLEX*16 | (this may not be supported |
by all machines) |
For the Level 2 BLAS a set of extended-precision routines with the prefixes 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 - Symmetric Band | SP - Symmetric Packed |
HE - HErmitian | HB - Hermitian Band | HP - Hermitian Packed |
TR - TRiangular | TB - Triangular Band | TP - Triangular Packed |
Options
Arguments describing options are declared as CHARACTER*1 and may be passed as character strings.
TRANS | = ` No transpose', ` Transpose', ` Conjugate transpose' ( X, X T, XC ) |
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) |