Engineering and Scientific Subroutine Library for AIX Version 3 Release 3: Guide and Reference
Part 1. Guide Information
Chapter 1. Introduction and Requirements
Overview of ESSL
Performance and Functional Capability
Usability
The Variety of Mathematical Functions
ESSL--Processing Capabilities
Accuracy of the Computations
High Performance of ESSL
The Fortran Language Interface to the Subroutines
Software and Hardware Products That Can Be Used with ESSL
For ESSL--Hardware
ESSL--Operating Systems
ESSL--Software Products
Installation and Customization Products
Software Products for Displaying ESSL Online Information
ESSL Internet Resources
Obtaining Documentation
Accessing ESSL's Product Home Pages
Getting on the ESSL Mailing List
List of ESSL Subroutines
Linear Algebra Subprograms
Matrix Operations
Linear Algebraic Equations
Eigensystem Analysis
Fourier Transforms, Convolutions and Correlations, and Related Computations
Sorting and Searching
Interpolation
Numerical Quadrature
Random Number Generation
Utilities
Chapter 2. Planning Your Program
Selecting an ESSL Subroutine
Which ESSL Library Do You Want to Use?
What Type of Data Are You Processing in Your Program?
How Is Your Data Structured? And What Storage Technique Are You Using?
What about Performance and Accuracy?
Avoiding Conflicts with Internal ESSL Routine Names That are Exported
Setting Up Your Data
How Do You Set Up Your Scalar Data?
How Do You Set Up Your Arrays?
How Should Your Array Data Be Aligned?
What Storage Mode Should You Use for Your Data?
How Do You Convert from One Storage Mode to Another?
Setting Up Your ESSL Calling Sequences
What Is an Input-Output Argument?
What Are the General Rules to Follow when Specifying Data for the Arguments?
What Happens When a Value of 0 Is Specified for N?
How Do You Specify the Beginning of the Data Structure in the ESSL Calling Sequence?
Using Auxiliary Storage in ESSL
Dynamic Allocation of Auxiliary Storage
Setting Up Auxiliary Storage When Dynamic Allocation Is Not Used
Who Do You Want to Calculate the Size? You or ESSL?
How Do You Calculate the Size Using the Formulas?
How Do You Get ESSL to Calculate the Size Using ESSL Error Handling?
Providing a Correct Transform Length to ESSL
What ESSL Subroutines Require Transform Lengths?
Who Do You Want to Calculate the Length? You or ESSL?
How Do You Calculate the Length Using the Table or Formula?
How Do You Get ESSL to Calculate the Length Using ESSL Error Handling?
Getting the Best Accuracy
What Precisions Do ESSL Subroutines Operate On?
How does the Nature of the ESSL Computation Affect Accuracy?
What Data Type Standards Are Used by ESSL, and What Exceptions Should You Know About?
How is Underflow Handled?
Where Can You Find More Information on Accuracy?
Getting the Best Performance
What General Coding Techniques Can You Use to Improve Performance?
Where Can You Find More Information on Performance?
Dealing with Errors when Using ESSL
What Can You Do about Program Exceptions?
What Can You Do about ESSL Input-Argument Errors?
What Can You Do about ESSL Computational Errors?
What Can You Do about ESSL Resource Errors?
What Can You Do about ESSL Attention Messages?
How Do You Control Error Handling by Setting Values in the ESSL Error Option Table?
How does Error Handling Work in a Threaded Environment?
Where Can You Find More Information on Errors?
Chapter 3. Setting Up Your Data Structures
Concepts
Vectors
Transpose of a Vector
Conjugate Transpose of a Vector
In Storage
How Stride Is Used for Vectors
Sparse Vector
Matrices
Transpose of a Matrix
Conjugate Transpose of a Matrix
In Storage
How Leading Dimension Is Used for Matrices
Symmetric Matrix
Positive Definite or Negative Definite Symmetric Matrix
Symmetric Indefinite Matrix
Complex Hermitian Matrix
Positive Definite or Negative Definite Complex Hermitian Matrix
Positive Definite or Negative Definite Symmetric Toeplitz Matrix
Positive Definite or Negative Definite Complex Hermitian Toeplitz Matrix
Triangular Matrix
General Band Matrix
Symmetric Band Matrix
Positive Definite Symmetric Band Matrix
Complex Hermitian Band Matrix
Triangular Band Matrix
General Tridiagonal Matrix
Symmetric Tridiagonal Matrix
Positive Definite Symmetric Tridiagonal Matrix
Sparse Matrix
Sequences
Real and Complex Elements in Storage
One-Dimensional Sequences
Two-Dimensional Sequences
Three-Dimensional Sequences
How Stride Is Used for Three-Dimensional Sequences
Chapter 4. Coding Your Program
Fortran Programs
Calling ESSL Subroutines and Functions in Fortran
Setting Up a User-Supplied Subroutine for ESSL in Fortran
Setting Up Scalar Data in Fortran
Setting Up Arrays in Fortran
Creating Multiple Threads and Calling ESSL from Your Fortran Program
Handling Errors in Your Fortran Program
Example of Handling Errors in a Multithreaded Application Program
C Programs
Calling ESSL Subroutines and Functions in C
Passing Arguments in C
Setting Up a User-Supplied Subroutine for ESSL in C
Setting Up Scalar Data in C
|Setting Up Complex Data Types in C
|Using Logical Data in C
Setting Up Arrays in C
Creating Multiple Threads and Calling ESSL from Your C Program
Handling Errors in Your C Program
C++ Programs
Calling ESSL Subroutines and Functions in C++
Passing Arguments in C++
Setting Up a User-Supplied Subroutine for ESSL in C++
Setting Up Scalar Data in C++
|Selecting the <complex> or <complex.h> Header File
|Setting Up Short-Precision Complex Data Types If You Are Using the IBM Open Class Complex Mathematics Library in C++
|Using Logical Data in C++
Setting Up Arrays in C++
Creating Multiple Threads and Calling ESSL from Your C++ Program
Handling Errors in Your C++ Program
|Chapter 5. Processing Your Program
|Dynamic Linking Versus Static Linking
|Fortran Program Procedures
|C Program Procedures
|C++ Program Procedures
Chapter 6. Migrating Your Programs
|Migrating ESSL Version 3 Programs to Version 3 Release 3
|ESSL Subroutines
Migrating ESSL Version 3 Programs to Version 3 Release 2
ESSL Subroutines
Migrating ESSL Version 3 Programs to Version 3 Release 1.2
ESSL Subroutines
Migrating ESSL Version 3 Programs to Version 3 Release 1.1
ESSL Subroutines
Migrating ESSL Version 2 Programs to Version 3
ESSL Subroutines
ESSL Messages
Planning for Future Migration
|Migrating between IBM e(logo)server pSeries and RS/6000 Processors
Auxiliary Storage
Bitwise-Identical Results
Migrating from Other Libraries to ESSL
Migrating from ESSL/370
Migrating from Another IBM Subroutine Library
Migrating from LAPACK
Migrating from a Non-IBM Subroutine Library
Chapter 7. Handling Problems
Where to Find More Information About Errors
Getting Help from IBM Support
National Language Support
Dealing with Errors
Program Exceptions
ESSL Input-Argument Error Messages
ESSL Computational Error Messages
ESSL Resource Error Messages
ESSL Informational and Attention Messages
Miscellaneous Error Messages
Messages
Message Conventions
Input-Argument Error Messages(2001-2099)
Computational Error Messages(2100-2199)
Input-Argument Error Messages(2200-2299)
Resource Error Messages(2400-2499)
Informational and Attention Error Messages(2600-2699)
Miscellaneous Error Messages(2700-2799)
Part 2. Reference Information
Chapter 8. Linear Algebra Subprograms
Overview of the Linear Algebra Subprograms
Vector-Scalar Linear Algebra Subprograms
Sparse Vector-Scalar Linear Algebra Subprograms
Matrix-Vector Linear Algebra Subprograms
Sparse Matrix-Vector Linear Algebra Subprograms
Use Considerations
Performance and Accuracy Considerations
Vector-Scalar Subprograms
ISAMAX, IDAMAX, ICAMAX, and IZAMAX--Position of the First or Last Occurrence of the Vector Element Having the Largest Magnitude
ISAMIN and IDAMIN--Position of the First or Last Occurrence of the Vector Element Having Minimum Absolute Value
ISMAX and IDMAX--Position of the First or Last Occurrence of the Vector Element Having the Maximum Value
ISMIN and IDMIN--Position of the First or Last Occurrence of the Vector Element Having Minimum Value
SASUM, DASUM, SCASUM, and DZASUM--Sum of the Magnitudes of the Elements in a Vector
SAXPY, DAXPY, CAXPY, and ZAXPY--Multiply a Vector X by a Scalar, Add to a Vector Y, and Store in the Vector Y
SCOPY, DCOPY, CCOPY, and ZCOPY--Copy a Vector
SDOT, DDOT, CDOTU, ZDOTU, CDOTC, and ZDOTC--Dot Product of Two Vectors
SNAXPY and DNAXPY--Compute SAXPY or DAXPY N Times
SNDOT and DNDOT--Compute Special Dot Products N Times
SNRM2, DNRM2, SCNRM2, and DZNRM2--Euclidean Length of a Vector with Scaling of Input to Avoid Destructive Underflow and Overflow
SNORM2, DNORM2, CNORM2, and ZNORM2--Euclidean Length of a Vector with No Scaling of Input
SROTG, DROTG, CROTG, and ZROTG--Construct a Givens Plane Rotation
SROT, DROT, CROT, ZROT, CSROT, and ZDROT--Apply a Plane Rotation
SSCAL, DSCAL, CSCAL, ZSCAL, CSSCAL, and ZDSCAL--Multiply a Vector X by a Scalar and Store in the Vector X
SSWAP, DSWAP, CSWAP, and ZSWAP--Interchange the Elements of Two Vectors
SVEA, DVEA, CVEA, and ZVEA--Add a Vector X to a Vector Y and Store in a Vector Z
SVES, DVES, CVES, and ZVES--Subtract a Vector Y from a Vector X and Store in a Vector Z
SVEM, DVEM, CVEM, and ZVEM--Multiply a Vector X by a Vector Y and Store in a Vector Z
SYAX, DYAX, CYAX, ZYAX, CSYAX, and ZDYAX--Multiply a Vector X by a Scalar and Store in a Vector Y
SZAXPY, DZAXPY, CZAXPY, and ZZAXPY--Multiply a Vector X by a Scalar, Add to a Vector Y, and Store in a Vector Z
Sparse Vector-Scalar Subprograms
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
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
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
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
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
Matrix-Vector Subprograms
SGEMV, DGEMV, CGEMV, ZGEMV, SGEMX, DGEMX, SGEMTX, and DGEMTX--Matrix-Vector Product for a General Matrix, Its Transpose, or Its Conjugate Transpose
SGER, DGER, CGERU, ZGERU, CGERC, and ZGERC--Rank-One Update of a General Matrix
SSPMV, DSPMV, CHPMV, ZHPMV, SSYMV, DSYMV, CHEMV, ZHEMV, SSLMX, and DSLMX--Matrix-Vector Product for a Real Symmetric or Complex Hermitian Matrix
SSPR, DSPR, CHPR, ZHPR, SSYR, DSYR, CHER, ZHER, SSLR1, and DSLR1 --Rank-One Update of a Real Symmetric or Complex Hermitian Matrix
SSPR2, DSPR2, CHPR2, ZHPR2, SSYR2, DSYR2, CHER2, ZHER2, SSLR2, and DSLR2--Rank-Two Update of a Real Symmetric or Complex Hermitian Matrix
SGBMV, DGBMV, CGBMV, and ZGBMV--Matrix-Vector Product for a General Band Matrix, Its Transpose, or Its Conjugate Transpose
SSBMV, DSBMV, CHBMV, and ZHBMV--Matrix-Vector Product for a Real Symmetric or Complex Hermitian Band Matrix
STRMV, DTRMV, CTRMV, ZTRMV, STPMV, DTPMV, CTPMV, and ZTPMV--Matrix-Vector Product for a Triangular Matrix, Its Transpose, or Its Conjugate Transpose
STBMV, DTBMV, CTBMV, and ZTBMV--Matrix-Vector Product for a Triangular Band Matrix, Its Transpose, or Its Conjugate Transpose
Sparse Matrix-Vector Subprograms
DSMMX--Matrix-Vector Product for a Sparse Matrix in Compressed-Matrix Storage Mode
DSMTM--Transpose a Sparse Matrix in Compressed-Matrix Storage Mode
DSDMX--Matrix-Vector Product for a Sparse Matrix or Its Transpose in Compressed-Diagonal Storage Mode
Chapter 9. Matrix Operations
Overview of the Matrix Operation Subroutines
Use Considerations
Specifying Normal, Transposed, or Conjugate Transposed Input Matrices
Transposing or Conjugate Transposing:
Performance and Accuracy Considerations
In General
For Large Matrices
For Combined Operations
Matrix Operation Subroutines
SGEADD, DGEADD, CGEADD, and ZGEADD--Matrix Addition for General Matrices or Their Transposes
SGESUB, DGESUB, CGESUB, and ZGESUB--Matrix Subtraction for General Matrices or Their Transposes
SGEMUL, DGEMUL, CGEMUL, and ZGEMUL--Matrix Multiplication for General Matrices, Their Transposes, or Conjugate Transposes
SGEMMS, DGEMMS, CGEMMS, and ZGEMMS--Matrix Multiplication for General Matrices, Their Transposes, or Conjugate Transposes Using Winograd's Variation of Strassen's Algorithm
SGEMM, DGEMM, CGEMM, and ZGEMM--Combined Matrix Multiplication and Addition for General Matrices, Their Transposes, or Conjugate Transposes
SSYMM, DSYMM, CSYMM, ZSYMM, CHEMM, and ZHEMM--Matrix-Matrix Product Where One Matrix is Real or Complex Symmetric or Complex Hermitian
STRMM, DTRMM, CTRMM, and ZTRMM--Triangular Matrix-Matrix Product
SSYRK, DSYRK, CSYRK, ZSYRK, CHERK, and ZHERK--Rank-K Update of a Real or Complex Symmetric or a Complex Hermitian Matrix
SSYR2K, DSYR2K, CSYR2K, ZSYR2K, CHER2K, and ZHER2K--Rank-2K Update of a Real or Complex Symmetric or a Complex Hermitian Matrix
SGETMI, DGETMI, CGETMI, and ZGETMI--General Matrix Transpose (In-Place)
SGETMO, DGETMO, CGETMO, and ZGETMO--General Matrix Transpose (Out-of-Place)
Chapter 10. Linear Algebraic Equations
Overview of the Linear Algebraic Equation Subroutines
Dense Linear Algebraic Equation Subroutines
Banded Linear Algebraic Equation Subroutines
Sparse Linear Algebraic Equation Subroutines
Linear Least Squares Subroutines
Dense and Banded Linear Algebraic Equation Considerations
Use Considerations
Performance and Accuracy Considerations
Sparse Matrix Direct Solver Considerations
Use Considerations
Performance and Accuracy Considerations
Sparse Matrix Skyline Solver Considerations
Use Considerations
Performance and Accuracy Considerations
Sparse Matrix Iterative Solver Considerations
Use Considerations
Performance and Accuracy Considerations
Linear Least Squares Considerations
Use Considerations
Performance and Accuracy Considerations
Dense Linear Algebraic Equation Subroutines
SGEF, DGEF, CGEF, and ZGEF--General Matrix Factorization
SGES, DGES, CGES, and ZGES--General Matrix, Its Transpose, or Its Conjugate Transpose Solve
SGESM, DGESM, CGESM, and ZGESM--General Matrix, Its Transpose, or Its Conjugate Transpose Multiple Right-Hand Side Solve
SGETRF, DGETRF, CGETRF and ZGETRF--General Matrix Factorization
SGETRS, DGETRS, CGETRS, and ZGETRS--General Matrix Multiple Right-Hand Side Solve
SGEFCD and DGEFCD--General Matrix Factorization, Condition Number Reciprocal, and Determinant
SPPF, DPPF, SPOF, DPOF, CPOF, ZPOF, SPOTRF, DPOTRF, CPOTRF, and ZPOTRF--Positive Definite Real Symmetric or Complex Hermitian Matrix Factorization
SPPS and DPPS--Positive Definite Real Symmetric Matrix Solve
SPOSM, DPOSM, CPOSM, ZPOSM, SPOTRS, DPOTRS, CPOTRS, and ZPOTRS--Positive Definite Real Symmetric or Complex Hermitian Matrix Multiple Right-Hand Side Solve
SPPFCD, DPPFCD, SPOFCD, and DPOFCD--Positive Definite Real Symmetric Matrix Factorization, Condition Number Reciprocal, and Determinant
DBSSV--Symmetric Indefinite Matrix Factorization and Multiple Right-Hand Side Solve
DBSTRF--Symmetric Indefinite Matrix Factorization
DBSTRS--Symmetric Indefinite Matrix Multiple Right-Hand Side Solve
SGEICD, DGEICD, SGETRI and DGETRI--General Matrix Inverse
SPPICD, DPPICD, SPOICD, DPOICD, SPOTRI and DPOTRI--Positive Definite Real Symmetric Matrix Inverse
STRSV, DTRSV, CTRSV, ZTRSV, STPSV, DTPSV, CTPSV, and ZTPSV--Solution of a Triangular System of Equations with a Single Right-Hand Side
STRSM, DTRSM, CTRSM, and ZTRSM--Solution of Triangular Systems of Equations with Multiple Right-Hand Sides
STRI, DTRI, STPI, DTPI, STRTRI, DTRTRI, STPTRI, and DTPTRI--Triangular Matrix Inverse
Banded Linear Algebraic Equation Subroutines
SGBF and DGBF--General Band Matrix Factorization
SGBS and DGBS--General Band Matrix Solve
SPBF, DPBF, SPBCHF, and DPBCHF--Positive Definite Symmetric Band Matrix Factorization
SPBS, DPBS, SPBCHS, and DPBCHS--Positive Definite Symmetric Band Matrix Solve
SGTF and DGTF--General Tridiagonal Matrix Factorization
SGTS and DGTS--General Tridiagonal Matrix Solve
SGTNP, DGTNP, CGTNP, and ZGTNP--General Tridiagonal Matrix Combined Factorization and Solve with No Pivoting
SGTNPF, DGTNPF, CGTNPF, and ZGTNPF--General Tridiagonal Matrix Factorization with No Pivoting
SGTNPS, DGTNPS, CGTNPS, and ZGTNPS--General Tridiagonal Matrix Solve with No Pivoting
SPTF and DPTF--Positive Definite Symmetric Tridiagonal Matrix Factorization
SPTS and DPTS--Positive Definite Symmetric Tridiagonal Matrix Solve
STBSV, DTBSV, CTBSV, and ZTBSV--Triangular Band Equation Solve
Sparse Linear Algebraic Equation Subroutines
DGSF--General Sparse Matrix Factorization Using Storage by Indices, Rows, or Columns
DGSS--General Sparse Matrix or Its Transpose Solve Using Storage by Indices, Rows, or Columns
DGKFS--General Sparse Matrix or Its Transpose Factorization, Determinant, and Solve Using Skyline Storage Mode
DSKFS--Symmetric Sparse Matrix Factorization, Determinant, and Solve Using Skyline Storage Mode
DSRIS--Iterative Linear System Solver for a General or Symmetric Sparse Matrix Stored by Rows
DSMCG--Sparse Positive Definite or Negative Definite Symmetric Matrix Iterative Solve Using Compressed-Matrix Storage Mode
DSDCG--Sparse Positive Definite or Negative Definite Symmetric Matrix Iterative Solve Using Compressed-Diagonal Storage Mode
DSMGCG--General Sparse Matrix Iterative Solve Using Compressed-Matrix Storage Mode
DSDGCG--General Sparse Matrix Iterative Solve Using Compressed-Diagonal Storage Mode
Linear Least Squares Subroutines
SGESVF and DGESVF--Singular Value Decomposition for a General Matrix
SGESVS and DGESVS--Linear Least Squares Solution for a General Matrix Using the Singular Value Decomposition
DGEQRF--General Matrix QR Factorization
|DGELS--Linear Least Squares Solution for a General Matrix
SGELLS and DGELLS--Linear Least Squares Solution for a General Matrix with Column Pivoting
Chapter 11. Eigensystem Analysis
Overview of the Eigensystem Analysis Subroutines
Performance and Accuracy Considerations
Eigensystem Analysis Subroutines
SGEEV, DGEEV, CGEEV, and ZGEEV--Eigenvalues and, Optionally, All or Selected Eigenvectors of a General Matrix
SSPEV, DSPEV, CHPEV, and ZHPEV--Eigenvalues and, Optionally, the Eigenvectors of a Real Symmetric Matrix or a Complex Hermitian Matrix
SSPSV, DSPSV, CHPSV, and ZHPSV--Extreme Eigenvalues and, Optionally, the Eigenvectors of a Real Symmetric Matrix or a Complex Hermitian Matrix
SGEGV and DGEGV--Eigenvalues and, Optionally, the Eigenvectors of a Generalized Real Eigensystem, Az=wBz, where A and B Are Real General Matrices
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
Chapter 12. Fourier Transforms, Convolutions and Correlations, and Related Computations
Overview of the Signal Processing Subroutines
Fourier Transforms Subroutines
Convolution and Correlation Subroutines
Related-Computation Subroutines
Fourier Transforms, Convolutions, and Correlations Considerations
Use Considerations
Initializing Auxiliary Working Storage
Determining the Amount of Auxiliary Working Storage That You Need
Performance and Accuracy Considerations
When Running on the Workstation Processors
Defining Arrays
Fourier Transform Considerations
How the Fourier Transform Subroutines Achieve High Performance
Convolution and Correlation Considerations
Related Computation Considerations
Accuracy Considerations
Fourier Transform Subroutines
SCFT and DCFT--Complex Fourier Transform
SRCFT and DRCFT--Real-to-Complex Fourier Transform
SCRFT and DCRFT--Complex-to-Real Fourier Transform
SCOSF and DCOSF--Cosine Transform
SSINF and DSINF--Sine Transform
SCFT2 and DCFT2--Complex Fourier Transform in Two Dimensions
SRCFT2 and DRCFT2--Real-to-Complex Fourier Transform in Two Dimensions
SCRFT2 and DCRFT2--Complex-to-Real Fourier Transform in Two Dimensions
SCFT3 and DCFT3--Complex Fourier Transform in Three Dimensions
SRCFT3 and DRCFT3--Real-to-Complex Fourier Transform in Three Dimensions
SCRFT3 and DCRFT3--Complex-to-Real Fourier Transform in Three Dimensions
Convolution and Correlation Subroutines
SCON and SCOR--Convolution or Correlation of One Sequence with One or More Sequences
SCOND and SCORD--Convolution or Correlation of One Sequence with Another Sequence Using a Direct Method
SCONF and SCORF--Convolution or Correlation of One Sequence with One or More Sequences Using the Mixed-Radix Fourier Method
SDCON, DDCON, SDCOR, and DDCOR--Convolution or Correlation with Decimated Output Using a Direct Method
SACOR--Autocorrelation of One or More Sequences
SACORF--Autocorrelation of One or More Sequences Using the Mixed-Radix Fourier Method
Related-Computation Subroutines
SPOLY and DPOLY--Polynomial Evaluation
SIZC and DIZC--I-th Zero Crossing
STREC and DTREC--Time-Varying Recursive Filter
SQINT and DQINT--Quadratic Interpolation
SWLEV, DWLEV, CWLEV, and ZWLEV--Wiener-Levinson Filter Coefficients
Chapter 13. Sorting and Searching
Overview of the Sorting and Searching Subroutines
Use Considerations
Performance and Accuracy Considerations
Sorting and Searching Subroutines
ISORT, SSORT, and DSORT--Sort the Elements of a Sequence
ISORTX, SSORTX, and DSORTX--Sort the Elements of a Sequence and Note the Original Element Positions
ISORTS, SSORTS, and DSORTS--Sort the Elements of a Sequence Using a Stable Sort and Note the Original Element Positions
IBSRCH, SBSRCH, and DBSRCH--Binary Search for Elements of a Sequence X in a Sorted Sequence Y
ISSRCH, SSSRCH, and DSSRCH--Sequential Search for Elements of a Sequence X in the Sequence Y
Chapter 14. Interpolation
Overview of the Interpolation Subroutines
Use Considerations
Performance and Accuracy Considerations
Interpolation Subroutines
SPINT and DPINT--Polynomial Interpolation
STPINT and DTPINT--Local Polynomial Interpolation
SCSINT and DCSINT--Cubic Spline Interpolation
SCSIN2 and DCSIN2--Two-Dimensional Cubic Spline Interpolation
Chapter 15. Numerical Quadrature
Overview of the Numerical Quadrature Subroutines
Use Considerations
Choosing the Method
Performance and Accuracy Considerations
Programming Considerations for the SUBF Subroutine
Designing SUBF
Coding and Setting Up SUBF in Your Program
Numerical Quadrature Subroutines
SPTNQ and DPTNQ--Numerical Quadrature Performed on a Set of Points
SGLNQ and DGLNQ--Numerical Quadrature Performed on a Function Using Gauss-Legendre Quadrature
SGLNQ2 and DGLNQ2--Numerical Quadrature Performed on a Function Over a Rectangle Using Two-Dimensional Gauss-Legendre Quadrature
SGLGQ and DGLGQ--Numerical Quadrature Performed on a Function Using Gauss-Laguerre Quadrature
SGRAQ and DGRAQ--Numerical Quadrature Performed on a Function Using Gauss-Rational Quadrature
SGHMQ and DGHMQ--Numerical Quadrature Performed on a Function Using Gauss-Hermite Quadrature
Chapter 16. Random Number Generation
Overview of the Random Number Generation Subroutines
Use Considerations
Random Number Generation Subroutines
SURAND and DURAND--Generate a Vector of Uniformly Distributed Random Numbers
SNRAND and DNRAND--Generate a Vector of Normally Distributed Random Numbers
SURXOR and DURXOR--Generate a Vector of Long Period Uniformly Distributed Random Numbers
Chapter 17. Utilities
Overview of the Utility Subroutines
Use Considerations
Determining the Level of ESSL Installed
Finding the Optimal Stride(s) for Your Fourier Transforms
Converting Sparse Matrix Storage
Utility Subroutines
EINFO--ESSL Error Information-Handler Subroutine
ERRSAV--ESSL ERRSAV Subroutine for ESSL
ERRSET--ESSL ERRSET Subroutine for ESSL
ERRSTR--ESSL ERRSTR Subroutine for ESSL
IESSL--Determine the Level of ESSL Installed
STRIDE--Determine the Stride Value for Optimal Performance in Specified Fourier Transform Subroutines
DSRSM--Convert a Sparse Matrix from Storage-by-Rows to Compressed-Matrix Storage Mode
DGKTRN--For a General Sparse Matrix, Convert Between Diagonal-Out and Profile-In Skyline Storage Mode
DSKTRN--For a Symmetric Sparse Matrix, Convert Between Diagonal-Out and Profile-In Skyline Storage Mode
Part 3. Appendixes
Appendix A. Basic Linear Algebra Subprograms (BLAS)
Level 1 BLAS
Level 2 BLAS
Level 3 BLAS
Appendix B. LAPACK
LAPACK
Notices
Trademarks
Software Update Protocol
Programming Interfaces
Glossary
Bibliography
References
ESSL Publications
Evaluation and Planning
Installation
Application Programming
Related Publications
AIX
XL Fortran
PL/I
IBM 3838 Array Processor
Index
[ Top of Page | Previous Page | Next Page | Table of Contents | Index ]