Guide and Reference


List of ESSL Subroutines

This section provides an overview of the subroutines in each of the areas of ESSL.

Appendix A. "Basic Linear Algebra Subprograms (BLAS)" contains a list of Level 1, 2, and 3 Basic Linear Algebra Subprograms (BLAS) included in ESSL.

Appendix B. "LAPACK" contains a list of Linear Algebra Package (LAPACK) subroutines included in ESSL.

Linear Algebra Subprograms

The linear algebra subprograms consist of:

Notes:

  1. The term subprograms is used to be consistent with the Basic Linear Algebra Subprograms (BLAS), because many of these subprograms correspond to the BLAS.

  2. Some of the linear algebra subprograms were designed in accordance with the Level 1 and Level 2 BLAS de facto standard. If these subprograms do not comply with the standard as approved, IBM will consider updating them to do so. If IBM updates these subprograms, the updates could require modifications of the calling application program.

Vector-Scalar Linear Algebra Subprograms

The vector-scalar linear algebra subprograms include a subset of the standard set of Level 1 BLAS. For details on the BLAS, see reference [73]. The remainder of the vector-scalar linear algebra subprograms are commonly used computations provided for your applications. Both real and complex versions of the subprograms are provided.

Table 3. List of Vector-Scalar Linear Algebra Subprograms
Descriptive Name Short- Precision Subprogram Long- Precision Subprogram Page
Position of the First or Last Occurrence of the Vector Element Having the Largest Magnitude
ISAMAX&¤
ICAMAX&¤

IDAMAX&¤
IZAMAX&¤

ISAMAX, IDAMAX, ICAMAX, and IZAMAX--Position of the First or Last Occurrence of the Vector Element Having the Largest Magnitude
Position of the First or Last Occurrence of the Vector Element Having Minimum Absolute Value ISAMIN& IDAMIN& ISAMIN and IDAMIN--Position of the First or Last Occurrence of the Vector Element Having Minimum Absolute Value
Position of the First or Last Occurrence of the Vector Element Having Maximum Value ISMAX& IDMAX& ISMAX and IDMAX--Position of the First or Last Occurrence of the Vector Element Having the Maximum Value
Position of the First or Last Occurrence of the Vector Element Having Minimum Value ISMIN& IDMIN& ISMIN and IDMIN--Position of the First or Last Occurrence of the Vector Element Having Minimum Value
Sum of the Magnitudes of the Elements in a Vector
SASUM&¤
SCASUM&¤

DASUM&¤
DZASUM&¤

SASUM, DASUM, SCASUM, and DZASUM--Sum of the Magnitudes of the Elements in a Vector
Multiply a Vector X by a Scalar, Add to a Vector Y, and Store in the Vector Y
SAXPY¤
CAXPY¤

DAXPY¤
ZAXPY¤

SAXPY, DAXPY, CAXPY, and ZAXPY--Multiply a Vector X by a Scalar, Add to a Vector Y, and Store in the Vector Y
Copy a Vector
SCOPY¤
CCOPY¤

DCOPY¤
ZCOPY¤

SCOPY, DCOPY, CCOPY, and ZCOPY--Copy a Vector
Dot Product of Two Vectors
SDOT&¤
CDOTU&¤
CDOTC&¤

DDOT&¤
ZDOTU&¤
ZDOTC&¤

SDOT, DDOT, CDOTU, ZDOTU, CDOTC, and ZDOTC--Dot Product of Two Vectors
Compute SAXPY or DAXPY N Times SNAXPY DNAXPY SNAXPY and DNAXPY--Compute SAXPY or DAXPY N Times
Compute Special Dot Products N Times SNDOT DNDOT SNDOT and DNDOT--Compute Special Dot Products N Times
Euclidean Length of a Vector with Scaling of Input to Avoid Destructive Underflow and Overflow
SNRM2&¤
SCNRM2&¤

DNRM2&¤
DZNRM2&¤

SNRM2, DNRM2, SCNRM2, and DZNRM2--Euclidean Length of a Vector with Scaling of Input to Avoid Destructive Underflow and Overflow
Euclidean Length of a Vector with No Scaling of Input
SNORM2&
CNORM2&

DNORM2&
ZNORM2&

SNORM2, DNORM2, CNORM2, and ZNORM2--Euclidean Length of a Vector with No Scaling of Input
Construct a Givens Plane Rotation
SROTG¤
CROTG¤

DROTG¤
ZROTG¤

SROTG, DROTG, CROTG, and ZROTG--Construct a Givens Plane Rotation
Apply a Plane Rotation
SROT¤
CROT¤
CSROT¤

DROT¤
ZROT¤
ZDROT¤

SROT, DROT, CROT, ZROT, CSROT, and ZDROT--Apply a Plane Rotation
Multiply a Vector X by a Scalar and Store in the Vector X
SSCAL¤
CSCAL¤
CSSCAL¤

DSCAL¤
ZSCAL¤
ZDSCAL¤

SSCAL, DSCAL, CSCAL, ZSCAL, CSSCAL, and ZDSCAL--Multiply a Vector X by a Scalar and Store in the Vector X
Interchange the Elements of Two Vectors
SSWAP¤
CSWAP¤

DSWAP¤
ZSWAP¤

SSWAP, DSWAP, CSWAP, and ZSWAP--Interchange the Elements of Two Vectors
Add a Vector X to a Vector Y and Store in a Vector Z
SVEA
CVEA

DVEA
ZVEA

SVEA, DVEA, CVEA, and ZVEA--Add a Vector X to a Vector Y and Store in a Vector Z
Subtract a Vector Y from a Vector X and Store in a Vector Z
SVES
CVES

DVES
ZVES

SVES, DVES, CVES, and ZVES--Subtract a Vector Y from a Vector X and Store in a Vector Z
Multiply a Vector X by a Vector Y and Store in a Vector Z
SVEM
CVEM

DVEM
ZVEM

SVEM, DVEM, CVEM, and ZVEM--Multiply a Vector X by a Vector Y and Store in a Vector Z
Multiply a Vector X by a Scalar and Store in a Vector Y
SYAX
CYAX
CSYAX

DYAX
ZYAX
ZDYAX

SYAX, DYAX, CYAX, ZYAX, CSYAX, and ZDYAX--Multiply a Vector X by a Scalar and Store in a Vector Y
Multiply a Vector X by a Scalar, Add to a Vector Y, and Store in a Vector Z
SZAXPY
CZAXPY

DZAXPY
ZZAXPY

SZAXPY, DZAXPY, CZAXPY, and ZZAXPY--Multiply a Vector X by a Scalar, Add to a Vector Y, and Store in a Vector Z

& This subprogram is invoked as a function in a Fortran program.

¤ Level 1 BLAS

Sparse Vector-Scalar Linear Algebra Subprograms

The sparse vector-scalar linear algebra subprograms operate on sparse vectors; that is, only the nonzero elements of the vector are stored. These subprograms provide similar functions to the vector-scalar subprograms. These subprograms represent a subset of the sparse extensions to the Level 1 BLAS described in reference [29]. Both real and complex versions of the subprograms are provided.

Table 4. List of Sparse Vector-Scalar Linear Algebra Subprograms
Descriptive Name Short- Precision Subprogram Long- Precision Subprogram Page
Scatter the Elements of a Sparse Vector X in Compressed-Vector Storage Mode into Specified Elements of a Sparse Vector Y in Full-Vector Storage Mode
SSCTR
CSCTR

DSCTR
ZSCTR

SSCTR, DSCTR, CSCTR, ZSCTR--Scatter the Elements of a Sparse Vector X in Compressed-Vector Storage Mode into Specified Elements of a Sparse Vector Y in Full-Vector Storage Mode
Gather Specified Elements of a Sparse Vector Y in Full-Vector Storage Mode into a Sparse Vector X in Compressed-Vector Storage Mode
SGTHR
CGTHR

DGTHR
ZGTHR

SGTHR, DGTHR, CGTHR, and ZGTHR--Gather Specified Elements of a Sparse Vector Y in Full-Vector Storage Mode into a Sparse Vector X in Compressed-Vector Storage Mode
Gather Specified Elements of a Sparse Vector Y in Full-Vector Mode into a Sparse Vector X in Compressed-Vector Mode, and Zero the Same Specified Elements of Y
SGTHRZ
CGTHRZ

DGTHRZ
ZGTHRZ

SGTHRZ, DGTHRZ, CGTHRZ, and ZGTHRZ--Gather Specified Elements of a Sparse Vector Y in Full-Vector Mode into a Sparse Vector X in Compressed-Vector Mode, and Zero the Same Specified Elements of Y
Multiply a Sparse Vector X in Compressed-Vector Storage Mode by a Scalar, Add to a Sparse Vector Y in Full-Vector Storage Mode, and Store in the Vector Y
SAXPYI
CAXPYI

DAXPYI
ZAXPYI

SAXPYI, DAXPYI, CAXPYI, and ZAXPYI--Multiply a Sparse Vector X in Compressed-Vector Storage Mode by a Scalar, Add to a Sparse Vector Y in Full-Vector Storage Mode, and Store in the Vector Y
Dot Product of a Sparse Vector X in Compressed-Vector Storage Mode and a Sparse Vector Y in Full-Vector Storage Mode
SDOTI&
CDOTCI&
CDOTUI&

DDOTI&
ZDOTCI&
ZDOTUI&

SDOTI, DDOTI, CDOTUI, ZDOTUI, CDOTCI, and ZDOTCI--Dot Product of a Sparse Vector X in Compressed-Vector Storage Mode and a Sparse Vector Y in Full-Vector Storage Mode

& This subprogram is invoked as a function in a Fortran program.

Matrix-Vector Linear Algebra Subprograms

The matrix-vector linear algebra subprograms operate on a higher-level data structure--matrix-vector rather than vector-scalar--using optimized algorithms to improve performance. These subprograms include a subset of the standard set of Level 2 BLAS. For details on the Level 2 BLAS, see [34] and [35]. Both real and complex versions of the subprograms are provided.

Table 5. List of Matrix-Vector Linear Algebra Subprograms
Descriptive Name Short- Precision Subprogram Long- Precision Subprogram Page
Matrix-Vector Product for a General Matrix, Its Transpose, or Its Conjugate Transpose
SGEMVø
CGEMVø
SGEMX§
SGEMTX§

DGEMVø
ZGEMVø
DGEMX§
DGEMTX§

SGEMV, DGEMV, CGEMV, ZGEMV, SGEMX, DGEMX, SGEMTX, and DGEMTX--Matrix-Vector Product for a General Matrix, Its Transpose, or Its Conjugate Transpose
Rank-One Update of a General Matrix
SGERø
CGERUø
CGERCø

DGERø
ZGERUø
ZGERCø

SGER, DGER, CGERU, ZGERU, CGERC, and ZGERC--Rank-One Update of a General Matrix
Matrix-Vector Product for a Real Symmetric or Complex Hermitian Matrix
SSPMVø
CHPMVø
SSYMVø
CHEMVø
SSLMX§

DSPMVø
ZHPMVø
DSYMVø
ZHEMVø
DSLMX§

SSPMV, DSPMV, CHPMV, ZHPMV, SSYMV, DSYMV, CHEMV, ZHEMV, SSLMX, and DSLMX--Matrix-Vector Product for a Real Symmetric or Complex Hermitian Matrix
Rank-One Update of a Real Symmetric or Complex Hermitian Matrix
SSPRø
CHPRø
SSYRø
CHERø
SSLR1§

DSPRø
ZHPRø
DSYRø
ZHERø
DSLR1§

SSPR, DSPR, CHPR, ZHPR, SSYR, DSYR, CHER, ZHER, SSLR1, and DSLR1 --Rank-One Update of a Real Symmetric or Complex Hermitian Matrix
Rank-Two Update of a Real Symmetric or Complex Hermitian Matrix
SSPR2ø
CHPR2ø
SSYR2ø
CHER2ø
SSLR2§

DSPR2ø
ZHPR2ø
DSYR2ø
ZHER2ø
DSLR2§

SSPR2, DSPR2, CHPR2, ZHPR2, SSYR2, DSYR2, CHER2, ZHER2, SSLR2, and DSLR2--Rank-Two Update of a Real Symmetric or Complex Hermitian Matrix
Matrix-Vector Product for a General Band Matrix, Its Transpose, or Its Conjugate Transpose
SGBMVø
CGBMVø

DGBMVø
ZGBMVø

SGBMV, DGBMV, CGBMV, and ZGBMV--Matrix-Vector Product for a General Band Matrix, Its Transpose, or Its Conjugate Transpose
Matrix-Vector Product for a Real Symmetric or Complex Hermitian Band Matrix
SSBMVø
CHBMVø

DSBMVø
ZHBMVø

SSBMV, DSBMV, CHBMV, and ZHBMV--Matrix-Vector Product for a Real Symmetric or Complex Hermitian Band Matrix
Matrix-Vector Product for a Triangular Matrix, Its Transpose, or Its Conjugate Transpose
STRMVø
CTRMVø
STPMVø
CTPMVø

DTRMVø
ZTRMVø
DTPMVø
ZTPMVø

STRMV, DTRMV, CTRMV, ZTRMV, STPMV, DTPMV, CTPMV, and ZTPMV--Matrix-Vector Product for a Triangular Matrix, Its Transpose, or Its Conjugate Transpose
Matrix-Vector Product for a Triangular Band Matrix, Its Transpose, or Its Conjugate Transpose
STBMVø
CTBMVø

DTBMVø
ZTBMVø

STBMV, DTBMV, CTBMV, and ZTBMV--Matrix-Vector Product for a Triangular Band Matrix, Its Transpose, or Its Conjugate Transpose

ø Level 2 BLAS

§ This subroutine is provided only for migration from earlier releases of ESSL and is not intended for use in new programs.

Sparse Matrix-Vector Linear Algebra Subprograms

The sparse matrix-vector linear algebra subprograms operate on sparse matrices; that is, only the nonzero elements of the matrix are stored. These subprograms provide similar functions to the matrix-vector subprograms.

Table 6. List of Sparse Matrix-Vector Linear Algebra Subprograms
Descriptive Name Long- Precision Subprogram Page
Matrix-Vector Product for a Sparse Matrix in Compressed-Matrix Storage Mode DSMMX DSMMX--Matrix-Vector Product for a Sparse Matrix in Compressed-Matrix Storage Mode
Transpose a Sparse Matrix in Compressed-Matrix Storage Mode DSMTM DSMTM--Transpose a Sparse Matrix in Compressed-Matrix Storage Mode
Matrix-Vector Product for a Sparse Matrix or Its Transpose in Compressed-Diagonal Storage Mode DSDMX DSDMX--Matrix-Vector Product for a Sparse Matrix or Its Transpose in Compressed-Diagonal Storage Mode

Matrix Operations

Some of the matrix operation subroutines were designed in accordance with the Level 3 BLAS de facto standard. If these subroutines do not comply with the standard as approved, IBM will consider updating them to do so. If IBM updates these subroutines, the updates could require modifications of the calling application program. For details on the Level 3 BLAS, see reference [32]. The matrix operation subroutines also include the commonly used matrix operations: addition, subtraction, multiplication, and transposition.

Table 7. List of Matrix Operation Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
Matrix Addition for General Matrices or Their Transposes
SGEADD
CGEADD

DGEADD
ZGEADD

SGEADD, DGEADD, CGEADD, and ZGEADD--Matrix Addition for General Matrices or Their Transposes
Matrix Subtraction for General Matrices or Their Transposes
SGESUB
CGESUB

DGESUB
ZGESUB

SGESUB, DGESUB, CGESUB, and ZGESUB--Matrix Subtraction for General Matrices or Their Transposes
Matrix Multiplication for General Matrices, Their Transposes, or Conjugate Transposes
SGEMUL
CGEMUL

DGEMUL
ZGEMUL
DGEMLP§

SGEMUL, DGEMUL, CGEMUL, and ZGEMUL--Matrix Multiplication for General Matrices, Their Transposes, or Conjugate Transposes
Matrix Multiplication for General Matrices, Their Transposes, or Conjugate Transposes Using Winograd's Variation of Strassen's Algorithm
SGEMMS
CGEMMS

DGEMMS
ZGEMMS

SGEMMS, DGEMMS, CGEMMS, and ZGEMMS--Matrix Multiplication for General Matrices, Their Transposes, or Conjugate Transposes Using Winograd's Variation of Strassen's Algorithm
Combined Matrix Multiplication and Addition for General Matrices, Their Transposes, or Conjugate Transposes
SGEMM¢
CGEMM¢

DGEMM¢
ZGEMM¢

SGEMM, DGEMM, CGEMM, and ZGEMM--Combined Matrix Multiplication and Addition for General Matrices, Their Transposes, or Conjugate Transposes
Matrix-Matrix Product Where One Matrix is Real or Complex Symmetric or Complex Hermitian
SSYMM¢
CSYMM¢
CHEMM¢

DSYMM¢
ZSYMM¢
ZHEMM¢

SSYMM, DSYMM, CSYMM, ZSYMM, CHEMM, and ZHEMM--Matrix-Matrix Product Where One Matrix is Real or Complex Symmetric or Complex Hermitian
Triangular Matrix-Matrix Product
STRMM¢
CTRMM¢

DTRMM¢
ZTRMM¢

STRMM, DTRMM, CTRMM, and ZTRMM--Triangular Matrix-Matrix Product
Rank-K Update of a Real or Complex Symmetric or a Complex Hermitian Matrix
SSYRK¢
CSYRK¢
CHERK¢

DSYRK¢
ZSYRK¢
ZHERK¢

SSYRK, DSYRK, CSYRK, ZSYRK, CHERK, and ZHERK--Rank-K Update of a Real or Complex Symmetric or a Complex Hermitian Matrix
Rank-2K Update of a Real or Complex Symmetric or a Complex Hermitian Matrix
SSYR2K¢
CSYR2K¢
CHER2K¢

DSYR2K¢
ZSYR2K¢
ZHER2K¢

SSYR2K, DSYR2K, CSYR2K, ZSYR2K, CHER2K, and ZHER2K--Rank-2K Update of a Real or Complex Symmetric or a Complex Hermitian Matrix
General Matrix Transpose (In-Place)
SGETMI
CGETMI

DGETMI
ZGETMI

SGETMI, DGETMI, CGETMI, and ZGETMI--General Matrix Transpose (In-Place)
General Matrix Transpose (Out-of-Place)
SGETMO
CGETMO

DGETMO
ZGETMO

SGETMO, DGETMO, CGETMO, and ZGETMO--General Matrix Transpose (Out-of-Place)

¢ Level 3 BLAS

§ This subroutine is provided only for migration from earlier release of ESSL and is not intended for use in new programs.

Linear Algebraic Equations

The linear algebraic equations consist of:

Notes:

  1. Some of the linear algebraic equations were designed in accordance with the Level 2 BLAS, Level 3 BLAS, and LAPACK de facto standard. If these subprograms do not comply with the standard as approved, IBM will consider updating them to do so. If IBM updates these subprograms, the updates could require modifications of the calling application program. For details on the Level 2 and 3 BLAS, see [32] and [34]. For details on LAPACK, see [8].

Dense Linear Algebraic Equations

The dense linear algebraic equation subroutines provide solutions to linear systems of equations for both real and complex general matrices and their transposes, positive definite real symmetric and complex Hermitian matrices, and triangular matrices. Some of these subroutines correspond to the Level 2 BLAS, Level 3 BLAS, and LAPACK routines described in references [32], [34], and [8].

Table 8. List of Dense Linear Algebraic Equation Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
General Matrix Factorization
SGEF
CGEF
SGETRF°
CGETRF°

DGEF
ZGEF
DGETRF°
ZGETRF°
DGEFP§

SGEF, DGEF, CGEF, and ZGEF--General Matrix Factorization 
 
SGETRF, DGETRF, CGETRF and ZGETRF--General Matrix Factorization

General Matrix, Its Transpose, or Its Conjugate Transpose Solve
SGES
CGES

DGES
ZGES

SGES, DGES, CGES, and ZGES--General Matrix, Its Transpose, or Its Conjugate Transpose Solve
General Matrix, Its Transpose, or Its Conjugate Transpose Multiple Right-Hand Side Solve
SGESM
CGESM
SGETRS°
CGETRS°

DGESM
ZGESM
DGETRS°
ZGETRS°

SGESM, DGESM, CGESM, and ZGESM--General Matrix, Its Transpose, or Its Conjugate Transpose Multiple Right-Hand Side Solve SGETRS, DGETRS, CGETRS, and ZGETRS--General Matrix Multiple Right-Hand Side Solve
General Matrix Factorization, Condition Number Reciprocal, and Determinant SGEFCD DGEFCD SGEFCD and DGEFCD--General Matrix Factorization, Condition Number Reciprocal, and Determinant
Positive Definite Real Symmetric or Complex Hermitian Matrix Factorization
SPPF
SPOF
CPOF

DPPF
DPOF
ZPOF
DPPFP§

SPPF, DPPF, SPOF, DPOF, CPOF, and ZPOF--Positive Definite Real Symmetric or Complex Hermitian Matrix Factorization
Positive Definite Real Symmetric Matrix Solve SPPS
DPPS

SPPS and DPPS--Positive Definite Real Symmetric Matrix Solve
Positive Definite Real Symmetric or Complex Hermitian Matrix Multiple Right-Hand Side Solve
SPOSM
CPOSM

DPOSM
ZPOSM

SPOSM, DPOSM, CPOSM, and ZPOSM--Positive Definite Real Symmetric or Complex Hermitian Matrix Multiple Right-Hand Side Solve
Positive Definite Real Symmetric Matrix Factorization, Condition Number Reciprocal, and Determinant
SPPFCD
SPOFCD

DPPFCD
DPOFCD

SPPFCD, DPPFCD, SPOFCD, and DPOFCD--Positive Definite Real Symmetric Matrix Factorization, Condition Number Reciprocal, and Determinant
General Matrix Inverse, Condition Number Reciprocal, and Determinant SGEICD DGEICD SGEICD and DGEICD--General Matrix Inverse, Condition Number Reciprocal, and Determinant
Positive Definite Real Symmetric Matrix Inverse, Condition Number Reciprocal, and Determinant
SPPICD
SPOICD

DPPICD
DPOICD

SPPICD, DPPICD, SPOICD, and DPOICD--Positive Definite Real Symmetric Matrix Inverse, Condition Number Reciprocal, and Determinant
Solution of a Triangular System of Equations with a Single Right-Hand Side
STRSVø
CTRSVø
STPSVø
CTPSVø

DTRSVø
ZTRSVø
DTPSVø
ZTPSVø

STRSV, DTRSV, CTRSV, ZTRSV, STPSV, DTPSV, CTPSV, and ZTPSV--Solution of a Triangular System of Equations with a Single Right-Hand Side
Solution of Triangular Systems of Equations with Multiple Right-Hand Sides
STRSM¢
CTRSM¢

DTRSM¢
ZTRSM¢

STRSM, DTRSM, CTRSM, and ZTRSM--Solution of Triangular Systems of Equations with Multiple Right-Hand Sides
Triangular Matrix Inverse
STRI
STPI

DTRI
DTPI

STRI, DTRI, STPI, and DTPI--Triangular Matrix Inverse

ø Level 2 BLAS

¢ Level 3 BLAS

° LAPACK

§ This subroutine is provided only for migration from earlier releases of ESSL and is not intended for use in new programs. Documentation for this subroutine is no longer provided.

Banded Linear Algebraic Equations

The banded linear algebraic equation subroutines provide solutions to linear systems of equations for real general band matrices, real positive definite symmetric band matrices, real or complex general tridiagonal matrices, real positive definite symmetric tridiagonal matrices, and real or complex triangular band matrices.

Table 9. List of Banded Linear Algebraic Equation Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
General Band Matrix Factorization SGBF DGBF SGBF and DGBF--General Band Matrix Factorization
General Band Matrix Solve SGBS DGBS SGBS and DGBS--General Band Matrix Solve
Positive Definite Symmetric Band Matrix Factorization
SPBF
SPBCHF

DPBF
DPBCHF

SPBF, DPBF, SPBCHF, and DPBCHF--Positive Definite Symmetric Band Matrix Factorization
Positive Definite Symmetric Band Matrix Solve
SPBS
SPBCHS

DPBS
DPBCHS

SPBS, DPBS, SPBCHS, and DPBCHS--Positive Definite Symmetric Band Matrix Solve
General Tridiagonal Matrix Factorization SGTF DGTF SGTF and DGTF--General Tridiagonal Matrix Factorization
General Tridiagonal Matrix Solve SGTS DGTS SGTS and DGTS--General Tridiagonal Matrix Solve
General Tridiagonal Matrix Combined Factorization and Solve with No Pivoting
SGTNP
CGTNP

DGTNP
ZGTNP

SGTNP, DGTNP, CGTNP, and ZGTNP--General Tridiagonal Matrix Combined Factorization and Solve with No Pivoting
General Tridiagonal Matrix Factorization with No Pivoting
SGTNPF
CGTNPF

DGTNPF
ZGTNPF

SGTNPF, DGTNPF, CGTNPF, and ZGTNPF--General Tridiagonal Matrix Factorization with No Pivoting
General Tridiagonal Matrix Solve with No Pivoting
SGTNPS
CGTNPS

DGTNPS
ZGTNPS

SGTNPS, DGTNPS, CGTNPS, and ZGTNPS--General Tridiagonal Matrix Solve with No Pivoting
Positive Definite Symmetric Tridiagonal Matrix Factorization SPTF DPTF SPTF and DPTF--Positive Definite Symmetric Tridiagonal Matrix Factorization
Positive Definite Symmetric Tridiagonal Matrix Solve SPTS DPTS SPTS and DPTS--Positive Definite Symmetric Tridiagonal Matrix Solve
Triangular Band Equation Solve
STBSVø
CTBSVø

DTBSVø
ZTBSVø

STBSV, DTBSV, CTBSV, and ZTBSV--Triangular Band Equation Solve

ø Level 2 BLAS

Sparse Linear Algebraic Equations

The sparse linear algebraic equation subroutines provide direct and iterative solutions to linear systems of equations both for general sparse matrices and their transposes and for sparse symmetric matrices.

Table 10. List of Sparse Linear Algebraic Equation Subroutines
Descriptive Name Long- Precision Subroutine Page
General Sparse Matrix Factorization Using Storage by Indices, Rows, or Columns DGSF DGSF--General Sparse Matrix Factorization Using Storage by Indices, Rows, or Columns
General Sparse Matrix or Its Transpose Solve Using Storage by Indices, Rows, or Columns DGSS DGSS--General Sparse Matrix or Its Transpose Solve Using Storage by Indices, Rows, or Columns
General Sparse Matrix or Its Transpose Factorization, Determinant, and Solve Using Skyline Storage Mode
DGKFS
DGKFSP§

DGKFS--General Sparse Matrix or Its Transpose Factorization, Determinant, and Solve Using Skyline Storage Mode
Symmetric Sparse Matrix Factorization, Determinant, and Solve Using Skyline Storage Mode
DSKFS
DSKFSP§

DSKFS--Symmetric Sparse Matrix Factorization, Determinant, and Solve Using Skyline Storage Mode
Iterative Linear System Solver for a General or Symmetric Sparse Matrix Stored by Rows DSRIS DSRIS--Iterative Linear System Solver for a General or Symmetric Sparse Matrix Stored by Rows
Sparse Positive Definite or Negative Definite Symmetric Matrix Iterative Solve Using Compressed-Matrix Storage Mode DSMCG£ DSMCG--Sparse Positive Definite or Negative Definite Symmetric Matrix Iterative Solve Using Compressed-Matrix Storage Mode
Sparse Positive Definite or Negative Definite Symmetric Matrix Iterative Solve Using Compressed-Diagonal Storage Mode DSDCG DSDCG--Sparse Positive Definite or Negative Definite Symmetric Matrix Iterative Solve Using Compressed-Diagonal Storage Mode
General Sparse Matrix Iterative Solve Using Compressed-Matrix Storage Mode DSMGCG£ DSMGCG--General Sparse Matrix Iterative Solve Using Compressed-Matrix Storage Mode
General Sparse Matrix Iterative Solve Using Compressed-Diagonal Storage Mode DSDGCG DSDGCG--General Sparse Matrix Iterative Solve Using Compressed-Diagonal Storage Mode

§ This subroutine is provided only for migration from earlier releases of ESSL and is not intended for use in new programs. Documentation for this subroutine is no longer provided.

£ This subroutine is provided only for migration from earlier releases of ESSL and is not intended for use in new programs. Use DSRIS instead.

Linear Least Squares

The linear least squares subroutines provide least squares solutions to linear systems of equations for real general matrices. Two methods are provided: one that uses the singular value decomposition and another that uses a QR decomposition with column pivoting.

Table 11. List of Linear Least Squares Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
Singular Value Decomposition for a General Matrix SGESVF DGESVF SGESVF and DGESVF--Singular Value Decomposition for a General Matrix
Linear Least Squares Solution for a General Matrix Using the Singular Value Decomposition SGESVS DGESVS SGESVS and DGESVS--Linear Least Squares Solution for a General Matrix Using the Singular Value Decomposition
Linear Least Squares Solution for a General Matrix Using a QR Decomposition with Column Pivoting SGELLS DGELLS SGELLS and DGELLS--Linear Least Squares Solution for a General Matrix Using a QR Decomposition with Column Pivoting

Eigensystem Analysis

The eigensystem analysis subroutines provide solutions to the algebraic eigensystem analysis problem Az = wz and the generalized eigensystem analysis problem Az = wBz (Table 12). Many of the eigensystem analysis subroutines use the algorithms presented in Linear Algebra by Wilkinson and Reinsch [93] or use adaptations of EISPACK routines, as described in the EISPACK Guide Lecture Notes in Computer Science in reference [81] or in the EISPACK Guide Extension Lecture Notes in Computer Science in reference [55]. (EISPACK is available from the sources listed in reference [49].)

Table 12. List of Eigensystem Analysis Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
Eigenvalues and, Optionally, All or Selected Eigenvectors of a General Matrix
SGEEV
CGEEV

DGEEV
ZGEEV

SGEEV, DGEEV, CGEEV, and ZGEEV--Eigenvalues and, Optionally, All or Selected Eigenvectors of a General Matrix
Eigenvalues and, Optionally, the Eigenvectors of a Real Symmetric Matrix or a Complex Hermitian Matrix
SSPEV
CHPEV

DSPEV
ZHPEV

SSPEV, DSPEV, CHPEV, and ZHPEV--Eigenvalues and, Optionally, the Eigenvectors of a Real Symmetric Matrix or a Complex Hermitian Matrix
Extreme Eigenvalues and, Optionally, the Eigenvectors of a Real Symmetric Matrix or a Complex Hermitian Matrix
SSPSV
CHPSV

DSPSV
ZHPSV

SSPSV, DSPSV, CHPSV, and ZHPSV--Extreme Eigenvalues and, Optionally, the Eigenvectors of a Real Symmetric Matrix or a Complex Hermitian Matrix
Eigenvalues and, Optionally, the Eigenvectors of a Generalized Real Eigensystem, Az=wBz, where A and B Are Real General Matrices SGEGV DGEGV SGEGV and DGEGV--Eigenvalues and, Optionally, the Eigenvectors of a Generalized Real Eigensystem, Az=wBz, where A and B Are Real General Matrices
Eigenvalues and, Optionally, the Eigenvectors of a Generalized Real Symmetric Eigensystem, Az=wBz, where A Is Real Symmetric and B Is Real Symmetric Positive Definite SSYGV DSYGV SSYGV and DSYGV--Eigenvalues and, Optionally, the Eigenvectors of a Generalized Real Symmetric Eigensystem, Az=wBz, where A Is Real Symmetric and B Is Real Symmetric Positive Definite

Fourier Transforms, Convolutions and Correlations, and Related Computations

This signal processing area provides:

Fourier Transforms

The Fourier transform subroutines perform mixed-radix transforms in one, two, and three dimensions.

Table 13. List of Fourier Transform Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
Complex Fourier Transform
SCFT
SCFTP§

DCFT SCFT and DCFT--Complex Fourier Transform
Real-to-Complex Fourier Transform SRCFT DRCFT SRCFT and DRCFT--Real-to-Complex Fourier Transform
Complex-to-Real Fourier Transform SCRFT DCRFT SCRFT and DCRFT--Complex-to-Real Fourier Transform
Cosine Transform
SCOSF
SCOSFT§

DCOSF SCOSF and DCOSF--Cosine Transform
Sine Transform SSINF DSINF SSINF and DSINF--Sine Transform
Complex Fourier Transform in Two Dimensions
SCFT2
SCFT2P§

DCFT2 SCFT2 and DCFT2--Complex Fourier Transform in Two Dimensions
Real-to-Complex Fourier Transform in Two Dimensions SRCFT2 DRCFT2 SRCFT2 and DRCFT2--Real-to-Complex Fourier Transform in Two Dimensions
Complex-to-Real Fourier Transform in Two Dimensions SCRFT2 DCRFT2 SCRFT2 and DCRFT2--Complex-to-Real Fourier Transform in Two Dimensions
Complex Fourier Transform in Three Dimensions
SCFT3
SCFT3P§

DCFT3 SCFT3 and DCFT3--Complex Fourier Transform in Three Dimensions
Real-to-Complex Fourier Transform in Three Dimensions SRCFT3 DRCFT3 SRCFT3 and DRCFT3--Real-to-Complex Fourier Transform in Three Dimensions
Complex-to-Real Fourier Transform in Three Dimensions SCRFT3 DCRFT3 SCRFT3 and DCRFT3--Complex-to-Real Fourier Transform in Three Dimensions

§ This subroutine is provided only for migration from earlier releases of ESSL and is not intended for use in new programs. Documentation for this subroutine is no longer provided.

Convolutions and Correlations

The convolution and correlation subroutines provide the choice of using Fourier methods or direct methods. The Fourier-method subroutines contain a high-performance mixed-radix capability. There are also several direct-method subroutines that provide decimated output.

Table 14. List of Convolution and Correlation Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
Convolution or Correlation of One Sequence with One or More Sequences
SCON§
SCOR§


SCON and SCOR--Convolution or Correlation of One Sequence with One or More Sequences
Convolution or Correlation of One Sequence with Another Sequence Using a Direct Method
SCOND
SCORD


SCOND and SCORD--Convolution or Correlation of One Sequence with Another Sequence Using a Direct Method
Convolution or Correlation of One Sequence with One or More Sequences Using the Mixed-Radix Fourier Method
SCONF
SCORF


SCONF and SCORF--Convolution or Correlation of One Sequence with One or More Sequences Using the Mixed-Radix Fourier Method
Convolution or Correlation with Decimated Output Using a Direct Method
SDCON
SDCOR

DDCON
DDCOR

SDCON, DDCON, SDCOR, and DDCOR--Convolution or Correlation with Decimated Output Using a Direct Method
Autocorrelation of One or More Sequences SACOR§
SACOR--Autocorrelation of One or More Sequences
Autocorrelation of One or More Sequences Using the Mixed-Radix Fourier Method SACORF
SACORF--Autocorrelation of One or More Sequences Using the Mixed-Radix Fourier Method

§ These subroutines are provided only for migration from earlier releases of ESSL and are not intended for use in new programs.

Related Computations

The related-computation subroutines consist of a group of computations that can be used in general signal processing applications. They are similar to those provided on the IBM 3838 Array Processor; however, the ESSL subroutines generally solve a wider range of problems.

Table 15. List of Related-Computation Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
Polynomial Evaluation SPOLY DPOLY SPOLY and DPOLY--Polynomial Evaluation
I-th Zero Crossing SIZC DIZC SIZC and DIZC--I-th Zero Crossing
Time-Varying Recursive Filter STREC DTREC STREC and DTREC--Time-Varying Recursive Filter
Quadratic Interpolation SQINT DQINT SQINT and DQINT--Quadratic Interpolation
Wiener-Levinson Filter Coefficients
SWLEV
CWLEV

DWLEV
ZWLEV

SWLEV, DWLEV, CWLEV, and ZWLEV--Wiener-Levinson Filter Coefficients

Sorting and Searching

The sorting and searching subroutines operate on three types of data: integer, short-precision real, and long-precision real (Table 16). The sorting subroutines perform sorts with or without index designations. The searching subroutines perform either a binary or sequential search.

Table 16. List of Sorting and Searching Subroutines
Descriptive Name Integer Subroutine Short- Precision Subroutine Long- Precision Subroutine Page
Sort the Elements of a Sequence ISORT SSORT DSORT ISORT, SSORT, and DSORT--Sort the Elements of a Sequence
Sort the Elements of a Sequence and Note the Original Element Positions ISORTX SSORTX DSORTX ISORTX, SSORTX, and DSORTX--Sort the Elements of a Sequence and Note the Original Element Positions
Sort the Elements of a Sequence Using a Stable Sort and Note the Original Element Positions ISORTS SSORTS DSORTS ISORTS, SSORTS, and DSORTS--Sort the Elements of a Sequence Using a Stable Sort and Note the Original Element Positions
Binary Search for Elements of a Sequence X in a Sorted Sequence Y IBSRCH SBSRCH DBSRCH IBSRCH, SBSRCH, and DBSRCH--Binary Search for Elements of a Sequence X in a Sorted Sequence Y
Sequential Search for Elements of a Sequence X in the Sequence Y ISSRCH SSSRCH DSSRCH ISSRCH, SSSRCH, and DSSRCH--Sequential Search for Elements of a Sequence X in the Sequence Y

Interpolation

The interpolation subroutines provide the capabilities of doing polynomial interpolation, local polynomial interpolation, and both one- and two-dimensional cubic spline interpolation (Table 17).

Table 17. List of Interpolation Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
Polynomial Interpolation SPINT DPINT SPINT and DPINT--Polynomial Interpolation
Local Polynomial Interpolation STPINT DTPINT STPINT and DTPINT--Local Polynomial Interpolation
Cubic Spline Interpolation SCSINT DCSINT SCSINT and DCSINT--Cubic Spline Interpolation
Two-Dimensional Cubic Spline Interpolation SCSIN2 DCSIN2 SCSIN2 and DCSIN2--Two-Dimensional Cubic Spline Interpolation

Numerical Quadrature

The numerical quadrature subroutines provide Gaussian quadrature methods for integrating a tabulated function and a user-supplied function over a finite, semi-infinite, or infinite region of integration (Table 18).

Table 18. List of Numerical Quadrature Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
Numerical Quadrature Performed on a Set of Points SPTNQ DPTNQ SPTNQ and DPTNQ--Numerical Quadrature Performed on a Set of Points
Numerical Quadrature Performed on a Function Using Gauss-Legendre Quadrature SGLNQ& DGLNQ& SGLNQ and DGLNQ--Numerical Quadrature Performed on a Function Using Gauss-Legendre Quadrature
Numerical Quadrature Performed on a Function Over a Rectangle Using Two-Dimensional Gauss-Legendre Quadrature SGLNQ2& DGLNQ2& SGLNQ2 and DGLNQ2--Numerical Quadrature Performed on a Function Over a Rectangle Using Two-Dimensional Gauss-Legendre Quadrature
Numerical Quadrature Performed on a Function Using Gauss-Laguerre Quadrature SGLGQ& DGLGQ& SGLGQ and DGLGQ--Numerical Quadrature Performed on a Function Using Gauss-Laguerre Quadrature
Numerical Quadrature Performed on a Function Using Gauss-Rational Quadrature SGRAQ& DGRAQ& SGRAQ and DGRAQ--Numerical Quadrature Performed on a Function Using Gauss-Rational Quadrature
Numerical Quadrature Performed on a Function Using Gauss-Hermite Quadrature SGHMQ& DGHMQ& SGHMQ and DGHMQ--Numerical Quadrature Performed on a Function Using Gauss-Hermite Quadrature

& This subprogram is invoked as a function in a Fortran program.

Random Number Generation

Random number generation subroutines generate uniformly distributed random numbers or normally distributed random numbers (Table 19).

Table 19. List of Random Number Generation Subroutines
Descriptive Name Short- Precision Subroutine Long- Precision Subroutine Page
Generate a Vector of Uniformly Distributed Random Numbers SURAND DURAND SURAND and DURAND--Generate a Vector of Uniformly Distributed Random Numbers
Generate a Vector of Normally Distributed Random Numbers SNRAND DNRAND SNRAND and DNRAND--Generate a Vector of Normally Distributed Random Numbers
Generate a Vector of Long Period Uniformly Distributed Random Numbers SURXOR DURXOR SURXOR and DURXOR--Generate a Vector of Long Period Uniformly Distributed Random Numbers

Utilities

The utility subroutines perform general service functions that support ESSL, rather than mathematical computations (Table 20).

Table 20. List of Utility Subroutines
Descriptive Name Subroutine Page
ESSL Error Information-Handler Subroutine EINFO EINFO--ESSL Error Information-Handler Subroutine
ESSL ERRSAV Subroutine for ESSL ERRSAV ERRSAV--ESSL ERRSAV Subroutine for ESSL
ESSL ERRSET Subroutine for ESSL ERRSET ERRSET--ESSL ERRSET Subroutine for ESSL
ESSL ERRSTR Subroutine for ESSL ERRSTR ERRSTR--ESSL ERRSTR Subroutine for ESSL
Set the Vector Section Size (VSS) for the ESSL/370 Scalar Library IVSSET§
Set the Extended Vector Operations Indicator for the ESSL/370 Scalar Library IEVOPS§
Determine the Level of ESSL Installed IESSL IESSL--Determine the Level of ESSL Installed
Determine the Stride Value for Optimal Performance in Specified Fourier Transform Subroutines STRIDE STRIDE--Determine the Stride Value for Optimal Performance in Specified Fourier Transform Subroutines
Convert a Sparse Matrix from Storage-by-Rows to Compressed-Matrix Storage Mode DSRSM DSRSM--Convert a Sparse Matrix from Storage-by-Rows to Compressed-Matrix Storage Mode
For a General Sparse Matrix, Convert Between Diagonal-Out and Profile-In Skyline Storage Mode DGKTRN DGKTRN--For a General Sparse Matrix, Convert Between Diagonal-Out and Profile-In Skyline Storage Mode
For a Symmetric Sparse Matrix, Convert Between Diagonal-Out and Profile-In Skyline Storage Mode DSKTRN DSKTRN--For a Symmetric Sparse Matrix, Convert Between Diagonal-Out and Profile-In Skyline Storage Mode

§ This subroutine is provided for migration from earlier releases of ESSL and is not intended for use in new programs. Documentation for this subroutine is no longer provided.


[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]