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.
The linear algebra subprograms consist of:
Notes:
The vector-scalar linear algebra subprograms include a subset of the
standard set of Level 1 BLAS. For details on the BLAS, see reference
[79]. 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
|
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.
|
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.
|
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 |
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.
|
The linear algebraic equations consist of:
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,
real symmetric indefinite 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
|
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
|
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 SPOTRF° CPOTRF° |
DPPF DPOF ZPOF DPOTRF° ZPOTRF° DPPFP§ | SPPF, DPPF, SPOF, DPOF, CPOF, ZPOF, SPOTRF, DPOTRF, CPOTRF, and ZPOTRF--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 SPOTRS° CPOTRS° |
DPOSM ZPOSM DPOTRS° ZPOTRS° | SPOSM, DPOSM, CPOSM, ZPOSM, SPOTRS, DPOTRS, CPOTRS, and ZPOTRS--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 |
Symmetric Indefinite Matrix Factorization and Multiple Right-Hand Side Solve |
| DBSSV | DBSSV--Symmetric Indefinite Matrix Factorization and Multiple Right-Hand Side Solve |
Symmetric Indefinite Matrix Factorization |
| DBSTRF | DBSTRF--Symmetric Indefinite Matrix Factorization |
Symmetric Indefinite Matrix Multiple Right-Hand Side Solve |
| DBSTRS | DBSTRS--Symmetric Indefinite Matrix Multiple Right-Hand Side Solve |
General Matrix Inverse, Condition Number Reciprocal, and Determinant |
SGEICD SGETRI° |
DGEICD DGETRI° | SGEICD, DGEICD, SGETRI and DGETRI--General Matrix Inverse |
Positive Definite Real Symmetric Matrix Inverse, Condition Number Reciprocal, and Determinant |
SPPICD SPOICD SPOTRI° |
DPPICD DPOICD DPOTRI° | SPPICD, DPPICD, SPOICD, DPOICD, SPOTRI and DPOTRI--Positive Definite Real Symmetric Matrix Inverse |
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 STRTRI° STPTRI° |
DTRI DTPI DTRTRI° DTPTRI° | STRI, DTRI, STPI, DTPI, STRTRI, DTRTRI, STPTRI, and DTPTRI--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 is new programs.
Documentation for this subroutine is no longer provided.
|
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
|
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.
|
The linear least squares subroutines provide least squares solutions to
linear systems of equations for real general matrices. |Three methods are provided: one that uses the singular value
|decomposition; one that uses a QR decomposition with column
|pivoting; and another that uses a QR decomposition without column
|pivoting. Some of these subroutines correspond to the LAPACK routines
|described in reference [8].
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 |
General Matrix QR Factorization |
| DGEQRF° | DGEQRF--General Matrix QR Factorization |
Linear Least Squares Solution for a General Matrix |
| DGELS° | DGELS--Linear Least Squares Solution for a General Matrix |
Linear Least Squares Solution for a General Matrix with Column Pivoting | SGELLS | DGELLS | SGELLS and DGELLS--Linear Least Squares Solution for a General Matrix with Column Pivoting |
° LAPACK
|
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 [99] or use adaptations of EISPACK routines, as
described in theEISPACK Guide Lecture Notes in Computer
Science in reference [87] or in the EISPACK Guide Extension
Lecture Notes in Computer Science in reference [58]. (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 |
This signal processing area provides:
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.
|
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.
|
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 |
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 |
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 |
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 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 |
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.
|