# Basic Linear Algebra Subprograms (BLAS) and C BLAS (CBLAS)

The following information lists the ESSL subprograms corresponding to a subprogram in the standard set of BLAS and CBLAS.

## Level 1 BLAS

Table 1. Level 1 BLAS Included in ESSL
Descriptive Name Short-Precision Subprogram Long-Precision Subprogram
ISAMAX, IDAMAX, ICAMAX, and IZAMAX (Position of the First or Last Occurrence of the Vector Element Having the Largest Magnitude)
ISAMAX
ICAMAX
cblas_isamax
cblas_idamax
IDAMAX
IZAMAX
cblas_icamax
cblas_izamax
SASUM, DASUM, SCASUM, and DZASUM (Sum of the Magnitudes of the Elements in a Vector)
SASUM
SCASUM
cblas_sasum
cblas_scasum
DASUM
DZASUM
cblas_dasum
cblas_dcasum
SAXPY, DAXPY, CAXPY, and ZAXPY (Multiply a Vector X by a Scalar, Add to a Vector Y, and Store in the Vector Y)
SAXPY
CAXPY
cblas_saxpy
cblas_caxpy
DAXPY
ZAXPY
cblas_daxpy
cblas_zaxpy
SCOPY, DCOPY, CCOPY, and ZCOPY (Copy a Vector)
SCOPY
CCOPY
cblas_scopy
cblas_ccopy
DCOPY
ZCOPY
cblas_dcopy
cblas_zcopy
SDOT, DDOT, CDOTU, ZDOTU, CDOTC, and ZDOTC (Dot Product of Two Vectors)
SDOT
CDOTU
CDOTC
cblas_sdot
cblas_cdotu_sub
cblas_cdotc_sub
DDOT
ZDOTU
ZDOTC
cblas_ddot
cblas_zdotu_sub
cblas_zdotc_sub
SNRM2, DNRM2, SCNRM2, and DZNRM2 (Euclidean Length of a Vector with Scaling of Input to Avoid Destructive Underflow and Overflow)
SNRM2
SCNRM2
cblas_snrm2
cblas_scnrm2
DNRM2
DZNRM2
cblas_dnrm2
cblas_dznrm2
SROTG, DROTG, CROTG, and ZROTG (Construct a Givens Plane Rotation)
SROTG
CROTG
cblas_srotg
cblas_crotg
DROTG
ZROTG
cblas_drotg
cblas_zrotg
SROT, DROT, CROT, ZROT, CSROT, and ZDROT (Apply a Plane Rotation)
SROT
CROT
CSROT
cblas_srot
cblas_crot
cblas_csrot
DROT
ZROT
ZDROT
cblas_drot
cblas_zrot
cblas_zdrot
SROTMG and DROTMG (Construct a modified Givens Transformation)
SROTMG
cblas_srotmg
DROTMG
cblas_drotmg
SROTM and DROTM (Apply a modified Givens Transformation)
SROTM
cblas_srotm
DROTM
cblas_drotm
SSCAL, DSCAL, CSCAL, ZSCAL, CSSCAL, and ZDSCAL (Multiply a Vector X by a Scalar and Store in the Vector X)
SSCAL
CSCAL
CSSCAL
cblas_sscal
cblas_cscal
cblas_csscal
DSCAL
ZSCAL
ZDSCAL
cblas_dscal
cblas_zscal
cblas_zdscal
SSWAP, DSWAP, CSWAP, and ZSWAP (Interchange the Elements of Two Vectors)
SSWAP
CSWAP
cblas_sswap
cblas_cswap
DSWAP
ZSWAP
cblas_dswap
cblas_zswap

## Level 2 BLAS

Table 2. Level 2 BLAS Included in ESSL
Descriptive Name Short-Precision Subprogram Long-Precision Subprogram
SGEMV, DGEMV, CGEMV, ZGEMV, SGEMX, DGEMX, SGEMTX, and DGEMTX (Matrix-Vector Product for a General Matrix, Its Transpose, or Its Conjugate Transpose)
SGEMV
CGEMV
cblas_sgemv
cblas_cgemv
DGEMV
ZGEMV
cblas_dgemv
cblas_zgemv
SGER, DGER, CGERU, ZGERU, CGERC, and ZGERC (Rank-One Update of a General Matrix)
SGER
CGERU
CGERC
cblas_sger
cblas_cgeru
cblas_cgerc
DGER
ZGERU
ZGERC
cblas_dger
cblas_zgeru
cblas_zgerc
SSPMV, DSPMV, CHPMV, ZHPMV, SSYMV, DSYMV, CHEMV, ZHEMV, SSLMX, and DSLMX (Matrix-Vector Product for a Real Symmetric or Complex Hermitian Matrix)
SSPMV
CHPMV
SSYMV
CHEMV
cblas_sspmv
cblas_chpmv
cblas_ssymv
cblas_chemv
DSPMV
ZHPMV
DSYMV
ZHEMV
cblas_dspmv
cblas_zhpmv
cblas_dsymv
cblas_zhemv
SSPR, DSPR, CHPR, ZHPR, SSYR, DSYR, CHER, ZHER, SSLR1, and DSLR1 (Rank-One Update of a Real Symmetric or Complex Hermitian Matrix)
SSPR
CHPR
SSYR
CHER
cblas_sspr
cblas_chpr
cblas_ssyr
cblas_cher
DSPR
ZHPR
DSYR
ZHER
cblas_dspr
cblas_zhpr
cblas_dsyr
cblas_zher
SSPR2, DSPR2, CHPR2, ZHPR2, SSYR2, DSYR2, CHER2, ZHER2, SSLR2, and DSLR2 (Rank-Two Update of a Real Symmetric or Complex Hermitian Matrix)
SSPR2
CHPR2
SSYR2
CHER2
cblas_sspr2
cblas_chpr2
cblas_ssyr2
cblas_cher2
DSPR2
ZHPR2
DSYR2
ZHER2
cblas_dspr2
cblas_zhpr2
cblas_dsyr2
cblas_zher2
SGBMV, DGBMV, CGBMV, and ZGBMV (Matrix-Vector Product for a General Band Matrix, Its Transpose, or Its Conjugate Transpose)
SGBMV
CGBMV
cblas_sgbmv
cblas_cgbmv
DGBMV
ZGBMV
cblas_dgbmv
cblas_zgbmv
SSBMV, DSBMV, CHBMV, and ZHBMV (Matrix-Vector Product for a Real Symmetric or Complex Hermitian Band Matrix)
SSBMV
CHBMV
cblas_ssbmv
cblas_chbmv
DSBMV
ZHBMV
cblas_dsbmv
cblas_zhbmv
STRMV, DTRMV, CTRMV, ZTRMV, STPMV, DTPMV, CTPMV, and ZTPMV (Matrix-Vector Product for a Triangular Matrix, Its Transpose, or Its Conjugate Transpose)
STPMV
CTPMV
STRMV
CTRMV
cblas_stpmv
cblas_ctpmv
cblas_strmv
cblas_ctrmv
DTPMV
ZTPMV
DTRMV
ZTRMV
cblas_dtpmv
cblas_ztpmv
cblas_dtrmv
cblas_ztrmv
STRSV, DTRSV, CTRSV, ZTRSV, STPSV, DTPSV, CTPSV, and ZTPSV (Solution of a Triangular System of Equations with a Single Right-Hand Side)
STPSV
CTPSV
STRSV
CTRSV
cblas_stpsv
cblas_ctpsv
cblas_strsv
cblas_ctrsv
DTPSV
ZTPSV
DTRSV
ZTRSV
cblas_dtpsv
cblas_ztpsv
cblas_dtrsv
cblas_ztrsv
STBMV, DTBMV, CTBMV, and ZTBMV (Matrix-Vector Product for a Triangular Band Matrix, Its Transpose, or Its Conjugate Transpose)
STBMV
CTBMV
cblas_stbmv
cblas_ctbmv
DTBMV
ZTBMV
cblas_dtbmv
cblas_ztbmv
STBSV, DTBSV, CTBSV, and ZTBSV (Triangular Band Equation Solve)
STBSV
CTBSV
cblas_stbsv
cblas_ctbsv
DTBSV
ZTBSV
cblas_dtbsv
cblas_ztbsv

## Level 3 BLAS

Table 3. Level 3 BLAS Included in ESSL
Descriptive Name Short-Precision Subprogram Long-Precision Subprogram
SGEMM, DGEMM, CGEMM, and ZGEMM (Combined Matrix Multiplication and Addition for General Matrices, Their Transposes, or Conjugate Transposes)
SGEMM
CGEMM
cblas_sgemm
cblas_cgemm
DGEMM
ZGEMM
cblas_dgemm
cblas_zgemm
SSYMM, DSYMM, CSYMM, ZSYMM, CHEMM, and ZHEMM (Matrix-Matrix Product Where One Matrix is Real or Complex Symmetric or Complex Hermitian)
SSYMM
CSYMM
CHEMM
cblas_ssymm
cblas_csymm
cblas_chemm
DSYMM
ZSYMM
ZHEMM
cblas_dsymm
cblas_zsymm
cblas_zhemm
STRMM, DTRMM, CTRMM, and ZTRMM (Triangular Matrix-Matrix Product)
STRMM
CTRMM
cblas_strmm
cblas_ctrmm
DTRMM
ZTRMM
cblas_dtrmm
cblas_ztrmm
STRSM, DTRSM, CTRSM, and ZTRSM (Solution of Triangular Systems of Equations with Multiple Right-Hand Sides)
STRSM
CTRSM
cblas_strsm
cblas_ctrsm
DTRSM
ZTRSM
cblas_dtrsm
cblas_ztrsm
SSYRK, DSYRK, CSYRK, ZSYRK, CHERK, and ZHERK (Rank-K Update of a Real or Complex Symmetric or a Complex Hermitian Matrix)
SSYRK
CSYRK
CHERK
cblas_ssyrk
cblas_csyrk
cblas_cherk
DSYRK
ZSYRK
ZHERK
cblas_dsyrk
cblas_zsyrk
cblas_zherk
SSYR2K, DSYR2K, CSYR2K, ZSYR2K, CHER2K, and ZHER2K (Rank-2K Update of a Real or Complex Symmetric or a Complex Hermitian Matrix)
SSYR2K
CSYR2K
CHER2K
cblas_ssyr2k
cblas_csyr2k
cblas_cher2k
DSYR2K
ZSYR2K
ZHER2K
cblas_dsyr2k
cblas_zsyr2k
cblas_zher2k
Note: xerbla is not used by ESSL but is included in the ESSL libraries for use in other programming environments (for example, Python).

## CBLAS Subroutines

Note the following about the CBLAS subroutines:
• The definitions of the CBLAS data types and prototypes are included in the ESSL header files. In the beginning of your program, before you call any of the CBLAS subroutines, you must code the following statement for the ESSL header file:
`` #include <essl.h>``
• CBLAS enumerated types have changed to type definitions for ESSL Version 5 Release 5 and changes are required if you used enumerated types. See Migrating Programs from ESSL for Linux on Power Version 5 Release 4 to Version 5 Release 5 for the required changes to your existing programs
• For information about CBLAS calling sequences, see Syntax and [11].