Visible to Intel only — GUID: GUID-53D40640-F03A-4A36-8C75-66D9763BE91B
Visible to Intel only — GUID: GUID-53D40640-F03A-4A36-8C75-66D9763BE91B
Naming Conventions for BLAS Routines
BLAS routine names have the following structure:
<character> <name> <mod> [_64]
The <character> field indicates the data type:
- s
-
real, single precision
- c
-
complex, single precision
- d
-
real, double precision
- z
-
complex, double precision
Some routines and functions can have combined character codes, such as sc or dz.
For example, the function scasum uses a complex input array and returns a real value.
The <name> field, in BLAS level 1, indicates the operation type. For example, the BLAS level 1 routines ?dot, ?rot, ?swap compute a vector dot product, vector rotation, and vector swap, respectively.
In BLAS level 2 and 3, <name> reflects the matrix argument type:
- ge
-
general matrix
- gb
-
general band matrix
- sy
-
symmetric matrix
- sp
-
symmetric matrix (packed storage)
- sb
-
symmetric band matrix
- he
-
Hermitian matrix
- hp
-
Hermitian matrix (packed storage)
- hb
-
Hermitian band matrix
- tr
-
triangular matrix
- tp
-
triangular matrix (packed storage)
- tb
-
triangular band matrix.
The <mod> field, if present, provides additional details of the operation. BLAS level 1 names can have the following characters in the <mod> field:
- c
-
conjugated vector
- u
-
unconjugated vector
- g
-
Givens rotation construction
- m
- modified Givens rotation
- mg
- modified Givens rotation construction
BLAS level 2 names can have the following characters in the <mod> field:
- mv
-
matrix-vector product
- sv
-
solving a system of linear equations with a single unknown vector
- r
-
rank-1 update of a matrix
- r2
-
rank-2 update of a matrix.
BLAS level 3 names can have the following characters in the <mod> field:
- mm
-
matrix-matrix product
- sm
-
solving a system of linear equations with multiple unknown vectors
- rk
-
rank-k update of a matrix
- r2k
-
rank-2k update of a matrix.
On 64-bit platforms, BLAS routines with the _64 suffix support large data arrays in the LP64 interface library and enable you to mix integer types in one application. For example, when an application is linked with the LP64 interface library, SGEMM indexes arrays with the 32-bit integer type, while SGEMM_64 indexes arrays with the 64-bit integer type. For more interface library details, see "Using the ILP64 Interface vs. LP64 Interface" in the developer guide.
The examples below illustrate how to interpret BLAS routine names:
ddot |
<d> <dot>: real and double precision, vector-vector dot product |
cdotc |
<c> <dot> <c>: complex and single precision, vector-vector dot product, conjugated |
cdotu |
<c> <dot> <u>: complex and single precision, vector-vector dot product, unconjugated |
scasum |
<sc> <asum>: real and single-precision output, complex and single-precision input, sum of magnitudes of vector elements |
sgemv |
<s> <ge> <mv>: real and single precision, general matrix, matrix-vector product |
ztrmm |
<z> <tr> <mm> _64: complex and double precision, triangular matrix, matrix-matrix product, 64-bit integer type |
Sparse BLAS level 1 naming conventions are similar to those of BLAS level 1. For more information, see Naming Conventions.