Retrieved from http://web.archive.org/web/20170114013648/https://wiki.scinet.utoronto.ca/wiki/images/f/f4/Essl51.pdf on 2017 January 13.
Engineering and Scientific Subroutine Library for AIX: Guide and Reference
â Scribed by IBM
- Publisher
- IBM
- Year
- 2000
- Tongue
- English
- Leaves
- 1104
- Series
- SA22-7272-03
- Edition
- 4th
- Category
- Library
No coin nor oath required. For personal study only.
⌠Synopsis
Retrieved from http://web.archive.org/web/20170114011319/http://bebop.cs.berkeley.edu/resources/arch-manuals/power3/essl.pdf on 2017 January 13.
This edition applies to Version 3 Release 2 of the IBM Engineering and Scientific Subroutine Library (ESSL) for Advanced Interactive Executive (AIX) licensed program, program number 5765-C42 and to all subsequent releases and modifications until otherwise indicated by new editions.
⌠Table of Contents
Part 1. Guide Information
Looking for a Subroutine?
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
xvii
About This Book . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
xix
How to Use This Book . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. xix
How to Find a Subroutine Description . . . . . . . . . . . . . . . .
. . . . . . .
. xx
Where to Find Related Publications . . . . . . . . . . . . . . . . .
. . . . . . .
. xxi
How to Look Up a Bibliography Reference . . . . . . . . . . . . .
. . . . . . .
. xxi
Special Terms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. xxi
Short and Long Precision
. . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. xxi
Subroutines and Subprograms
. . . . . . . . . . . . . . . . . .
. . . . . . .
. xxi
How to Interpret the Subroutine Names with a Prefix Underscore
. . . . . .
. xxii
Abbreviated Names
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. xxii
Fonts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. xxii
Special Notations and Conventions . . . . . . . . . . . . . . . . .
. . . . . . .
xxiii
Scalar Data
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxiii
Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxiii
Matrices
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxiii
Sequences . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxiv
Arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
. xxv
Special Characters, Symbols, Expressions, and Abbreviations
.
. . . . . . .
xxvi
How to Interpret the Subroutine Descriptions . . . . . . . . . . . .
. . . . . . .
xxviii
Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxviii
Syntax
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxviii
On Entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxviii
On Return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxix
Notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxix
Function
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxix
Special Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxix
Error Conditions . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxix
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
xxix
What's New for ESSL for AIX . . . . . . .
. . . . . . . . . . . . . . . . . . . .
xxxi
What's New for ESSL Version 3 Release 2
. . . . . . . . . . . . . . . . . . . .
xxxi
Changes for ESSL Version 3 Release 1.2
. . . . . . . . . . . . . . . . . . . .
xxxi
Changes for ESSL Version 3 Release 1.1
. . . . . . . . . . . . . . . . . . . .
xxxii
Changes for ESSL Version 3 . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
xxxii
Future Migration
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
xxxiii
In BriefâWhat's Provided in ESSL for AIX
. . . . . . . . . . . . . . . . . .
xxxv
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
Chapter 1. Introduction and Requirements
. . . . . . . . . . . . . . . . . . . .
3
Overview of ESSL . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
3
Performance and Functional Capability
.
. . . . . . . . . . . . . . . . . . . . .
3
Usability
. . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
4
The Variety of Mathematical Functions . .
. . . . . . . . . . . . . . . . . . . . .
4
ESSLâProcessing Capabilities . . . . . .
. . . . . . . . . . . . . . . . . . . . .
5
Accuracy of the Computations . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
6
2000
iii
High Performance of ESSL
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
6
The Fortran Language Interface to the Subroutines . . . . . . .
. . . . . . . .
7
Software and Hardware Products That Can Be Used with ESSL .
. . . . . . . .
7
For ESSLâHardware . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
7
ESSLâOperating Systems
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
7
ESSLâSoftware Products . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
8
Installation and Customization Products . . . . . . . . . . . . . .
. . . . . . . .
8
Software Products for Displaying ESSL Online Information . . .
. . . . . . . .
8
ESSL Internet Resources . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
8
Obtaining Documentation
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
9
Accessing ESSL's Product Home Pages . . . . . . . . . . . . . .
. . . . . . . .
9
Getting on the ESSL Mailing List . . . . . . . . . . . . . . . . . . . .
. . . . . . . .
9
List of ESSL Subroutines . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
10
Linear Algebra Subprograms
. . . . . . . . . . . . . . . . . . . .
. . . . . . .
10
Matrix Operations . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
13
Linear Algebraic Equations . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
14
Eigensystem Analysis . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
18
Fourier Transforms, Convolutions and Correlations, and Related
Computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
18
Sorting and Searching . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
20
Interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
21
Numerical Quadrature
. . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
21
Random Number Generation . . . . . . . . . . . . . . . . . . . .
. . . . . . .
21
Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . .
22
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? . . . . . . . . . . . . .
23
23
23
25
26
26
26
26
26
27
27
27
28
28
28
28
29
29
30
31
31
31
31
32
36
36
iv
Engineering and Scientific Subroutine Library Version 3 Guide and Reference
Who Do You Want to Calculate the Length? You or ESSL? . . . . . . . . .
37
How Do You Calculate the Length Using the Table or Formula? . . . . . . .
37
How Do You Get ESSL to Calculate the Length Using ESSL Error Handling?
37
Getting the Best Accuracy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
42
What Precisions Do ESSL Subroutines Operate On? . . . . . . . . . . . . .
42
How does the Nature of the ESSL Computation Affect Accuracy? . . . . . .
42
What Data Type Standards Are Used by ESSL, and What Exceptions Should
You Know About? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
How is Underflow Handled? . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
Where Can You Find More Information on Accuracy? . . . . . . . . . . . . .
43
Getting the Best Performance
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
What General Coding Techniques Can You Use to Improve Performance?
43
Where Can You Find More Information on Performance? . . . . . . . . . . .
44
Dealing with Errors when Using ESSL
. . . . . . . . . . . . . . . . . . . . . . .
45
What Can You Do about Program Exceptions? . . . . . . . . . . . . . . . . .
45
What Can You Do about ESSL Input-Argument Errors? . . . . . . . . . . . .
45
What Can You Do about ESSL Computational Errors? . . . . . . . . . . . .
46
What Can You Do about ESSL Resource Errors? . . . . . . . . . . . . . . .
48
What Can You Do about ESSL Attention Messages? . . . . . . . . . . . . .
49
How Do You Control Error Handling by Setting Values in the ESSL Error
Option Table? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
How does Error Handling Work in a Threaded Environment? . . . . . . . . .
51
Where Can You Find More Information on Errors? . . . . . . . . . . . . . . .
52
Chapter 3. Setting Up Your Data Structures . . . . . . . . . . . . . . .
. . .
53
Concepts
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
53
Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
53
Transpose of a Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
54
Conjugate Transpose of a Vector . . . . . . . . . . . . . . . . . . . . . .
. . .
54
In Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
55
How Stride Is Used for Vectors . . . . . . . . . . . . . . . . . . . . . . .
. . .
56
Sparse Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
58
Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
60
Transpose of a Matrix
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
60
Conjugate Transpose of a Matrix . . . . . . . . . . . . . . . . . . . . . .
. . .
60
In Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
61
How Leading Dimension Is Used for Matrices . . . . . . . . . . . . . . .
. . .
61
Symmetric Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
63
Positive Definite or Negative Definite Symmetric Matrix . . . . . . . . .
. . .
67
|
Symmetric Indefinite Matrix
. . . . . . . . . . . . . . . . . . . . . . . . .
. . .
68
Complex Hermitian Matrix . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
68
Positive Definite or Negative Definite Complex Hermitian Matrix . . . .
. . .
69
Positive Definite or Negative Definite Symmetric Toeplitz Matrix . . . .
. . .
69
Positive Definite or Negative Definite Complex Hermitian Toeplitz Matrix
. .
70
Triangular Matrix
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
72
General Band Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
75
Symmetric Band Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
80
Positive Definite Symmetric Band Matrix . . . . . . . . . . . . . . . . . .
. . .
83
Complex Hermitian Band Matrix . . . . . . . . . . . . . . . . . . . . . . .
. . .
83
Triangular Band Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
84
General Tridiagonal Matrix . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
88
Symmetric Tridiagonal Matrix . . . . . . . . . . . . . . . . . . . . . . . .
. . .
89
Positive Definite Symmetric Tridiagonal Matrix . . . . . . . . . . . . . .
. . .
90
Sparse Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . .
90
Contents
v
Sequences
. . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . .
Real and Complex Elements in Storage . . . . . . . .
. . . . . . . . . . . .
One-Dimensional Sequences . . . . . . . . . . . . . .
. . . . . . . . . . . .
Two-Dimensional Sequences . . . . . . . . . . . . . .
. . . . . . . . . . . .
Three-Dimensional Sequences . . . . . . . . . . . . .
. . . . . . . . . . . .
How Stride Is Used for Three-Dimensional Sequences
. . . . . . . . . . .
103
103
103
103
104
106
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 and Logical Data Types 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++
. . . . . . . . . . . . . . . . . . . . . . . . .
Setting Up Short-Precision Complex Data Types and Logical Data Types in
C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Setting Up Arrays in C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creating Multiple Threads and Calling ESSL from Your C++ Program
. .
Handling Errors in Your C++ Program . . . . . . . . . . . . . . . . . . . . .
PL/I Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
109
109
109
109
110
110
115
116
125
127
127
128
129
129
130
131
132
134
143
143
144
145
145
146
147
148
150
159
Chapter 5. Processing Your Program . . . . . . . . . . . . . . . .
. . . . .
Compiling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
General Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
Using Your Own Complex Data Definitions in C Programs . . . .
. . . . .
Using Your Own Short Complex Data Definitions in C++ Programs
. . . .
Compiling and Linking . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
64-bit environment
. . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
Fortran Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
C Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
C++ Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . .
161
161
161
161
162
162
162
162
163
164
|
Chapter 6. Migrating Your Programs . . . . . . . . . . . . .
. . . . . . . . .
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
. . . . . . . .
165
165
165
165
166
166
vi
Engineering and Scientific Subroutine Library Version 3 Guide and Reference
ESSL Subroutines . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
Migrating ESSL Version 2 Programs to Version 3
. . . . . . . . . . . . . . . .
ESSL Subroutines . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
ESSL Messages . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
Planning for Future Migration . . . . . . . . . . . .
. . . . . . . . . . . . . . . .
Migrating between 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 .
. . . . . . . . . . . . . . . .
166
166
166
167
167
167
168
168
168
168
168
168
169
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) . . . . . . .
. . . . . . . . . . .
171
171
171
172
172
173
173
174
174
175
176
176
176
177
185
188
188
188
189
Part 2. Reference Information
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
191
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 . . . . . . . . . . . . . . . . . . . . . . . .
193
193
193
194
195
196
196
197
198
199
202
205
208
Contents
vii
SASUM, DASUM, SCASUM, and DZASUMâSum of the Magnitudes of
the Elements in a Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . .
211
SAXPY, DAXPY, CAXPY, and ZAXPYâMultiply a Vector X by a Scalar,
Add to a Vector Y, and Store in the Vector Y . . . . . . . . . . . . . . . .
214
SCOPY, DCOPY, CCOPY, and ZCOPYâCopy a Vector . . . . . . . . . .
217
SDOT, DDOT, CDOTU, ZDOTU, CDOTC, and ZDOTCâDot Product of
Two Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
220
SNAXPY and DNAXPYâCompute SAXPY or DAXPY N Times . . . . . .
224
SNDOT and DNDOTâCompute Special Dot Products N Times . . . . . .
229
SNRM2, DNRM2, SCNRM2, and DZNRM2âEuclidean Length of a Vector
with Scaling of Input to Avoid Destructive Underflow and Overflow . . .
234
SNORM2, DNORM2, CNORM2, and ZNORM2âEuclidean Length of a
Vector with No Scaling of Input . . . . . . . . . . . . . . . . . . . . . . . .
237
SROTG, DROTG, CROTG, and ZROTGâConstruct a Givens Plane
Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
240
SROT, DROT, CROT, ZROT, CSROT, and ZDROTâApply a Plane
Rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
247
SSCAL, DSCAL, CSCAL, ZSCAL, CSSCAL, and ZDSCALâMultiply a
Vector X by a Scalar and Store in the Vector X . . . . . . . . . . . . . .
251
SSWAP, DSWAP, CSWAP, and ZSWAPâInterchange the Elements of
Two Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
254
SVEA, DVEA, CVEA, and ZVEAâAdd a Vector X to a Vector Y and
Store in a Vector Z
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
257
SVES, DVES, CVES, and ZVESâSubtract a Vector Y from a Vector X
and Store in a Vector Z . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
261
SVEM, DVEM, CVEM, and ZVEMâMultiply a Vector X by a Vector Y and
Store in a Vector Z
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
265
SYAX, DYAX, CYAX, ZYAX, CSYAX, and ZDYAXâMultiply a Vector X
by a Scalar and Store in a Vector Y
. . . . . . . . . . . . . . . . . . . . .
269
SZAXPY, DZAXPY, CZAXPY, and ZZAXPYâMultiply a Vector X by a
Scalar, Add to a Vector Y, and Store in a Vector Z . . . . . . . . . . . . .
272
Sparse Vector-Scalar Subprograms . . . . . . . . . . . . . . . . . . . . . . . .
276
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 . . . . . . . . . . . .
277
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 . . . . . . . . . . . . . . . . . . . . . .
280
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
283
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 . . . . . . . .
286
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 . . . . . . . . . . . . . . . .
289
Matrix-Vector Subprograms . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
293
SGEMV, DGEMV, CGEMV, ZGEMV, SGEMX, DGEMX, SGEMTX, and
DGEMTXâMatrix-Vector Product for a General Matrix, Its Transpose, or
Its Conjugate Transpose . . . . . . . . . . . . . . . . . . . . . . . . . . . .
294
SGER, DGER, CGERU, ZGERU, CGERC, and ZGERCâRank-One
Update of a General Matrix
. . . . . . . . . . . . . . . . . . . . . . . . . .
305
viii
Engineering and Scientific Subroutine Library Version 3 Guide and Reference
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 . . . . . . . . . . . . . . . . . . . . .
313
321
329
338
345
350
356
362
363
366
370
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
375
375
376
376
376
377
377
377
377
378
379
386
393
403
409
418
426
Contents
ix
|
|
|
x
EngineeringSSYRK, 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) . . . . . . . . . . . . . . . . . . . . . . . . . . . .
433
440
448
451
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, and ZPOFâPositive Definite Real
Symmetric or Complex Hermitian Matrix Factorization . . . . . . . . . .
SPPS and DPPSâPositive Definite Real Symmetric Matrix Solve . . . .
SPOSM, DPOSM, CPOSM, and ZPOSMâ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 . . . . . . . . . . . . .
455
455
455
456
457
458
458
458
459
459
459
459
460
460
461
461
461
461
462
462
462
464
465
468
472
478
482
487
491
499
502
507
514
520
and Scientific Subroutine Library Version 3 Guide and Reference
|
DBSTRSâSymmetric Indefinite Matrix Multiple Right-Hand Side Solve .
SGEICD and DGEICDâGeneral Matrix Inverse, Condition Number
Reciprocal, and Determinant . . . . . . . . . . . . . . . . . . . . . . . . . .
SPPICD, DPPICD, SPOICD, and DPOICDâPositive Definite Real
Symmetric Matrix Inverse, Condition Number Reciprocal, and
Determinant
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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, and DTPIâ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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
525
529
534
541
547
555
560
561
565
568
572
575
578
580
583
586
589
591
593
599
600
606
610
629
648
659
667
675
682
689
690
Contents
xi
|
SGESVS and DGESVSâLinear Least Squares Solution for a General
Matrix Using the Singular Value Decomposition . . . . . . . . . . . . .
. .
DGEQRFâGeneral Matrix QR Factorization . . . . . . . . . . . . . . .
. .
SGELLS and DGELLSâLinear Least Squares Solution for a General
Matrix Using a QR Decomposition with Column Pivoting
. . . . . .
. .
698
703
708
Chapter 11. Eigensystem Analysis . . . . . . . . . . . . . . . . . . . . . . .
715
Overview of the Eigensystem Analysis Subroutines . . . . . . . . . . . . . . .
715
Performance and Accuracy Considerations . . . . . . . . . . . . . . . . . . . .
715
Eigensystem Analysis Subroutines . . . . . . . . . . . . . . . . . . . . . . . . .
717
SGEEV, DGEEV, CGEEV, and ZGEEVâEigenvalues and, Optionally, All
or Selected Eigenvectors of a General Matrix . . . . . . . . . . . . . . .
718
SSPEV, DSPEV, CHPEV, and ZHPEVâEigenvalues and, Optionally, the
Eigenvectors of a Real Symmetric Matrix or a Complex Hermitian Matrix
729
SSPSV, DSPSV, CHPSV, and ZHPSVâExtreme Eigenvalues and,
Optionally, the Eigenvectors of a Real Symmetric Matrix or a Complex
Hermitian Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
738
SGEGV and DGEGVâEigenvalues and, Optionally, the Eigenvectors of a
Generalized Real Eigensystem, Az=wBz, where A and B Are Real
General Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
746
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 . . . . . . . . . .
752
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
.
759
759
759
760
760
761
761
763
763
764
764
764
764
765
765
767
767
768
769
777
785
793
800
807
814
821
829
xii
Engineering and Scientific Subroutine Library Version 3 Guide and Reference
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
835
841
847
848
854
860
869
873
877
882
883
886
889
892
896
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 . . . . . . . . . . . . . . . . . . . . . . . .
901
901
901
901
903
904
906
909
912
916
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
. . .
921
921
921
921
922
923
928
931
937
Chapter 15. Numerical Quadrature . . . . . . . .
. . . . . . . . . . . . . . .
Overview of the Numerical Quadrature Subroutines
. . . . . . . . . . . . . .
Use Considerations . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
Choosing the Method . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
Performance and Accuracy Considerations . . . .
. . . . . . . . . . . . . . .
941
941
941
941
941
Contents
xiii
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 . . . . . . . . . . . . . . . . . . . . . . .
942
942
943
944
945
948
951
957
960
964
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 . . . . . . . . . . . . . . . . . . . . . . . .
.
967
967
967
967
968
971
975
Chapter 17. Utilities . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
Overview of the Utility Subroutines . . . . . . . . . . . . . . . . . . . . . . . . 979
Use Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979
Determining the Level of ESSL Installed . . . . . . . . . . . . . . . . . . . . 979
Finding the Optimal Stride(s) for Your Fourier Transforms
. . . . . . . . .
979
Converting Sparse Matrix Storage . . . . . . . . . . . . . . . . . . . . . . . 980
Utility Subroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 981
EINFOâESSL Error Information-Handler Subroutine
. . . . . . . . . . . .
982
ERRSAVâESSL ERRSAV Subroutine for ESSL . . . . . . . . . . . . . . . 985
ERRSETâESSL ERRSET Subroutine for ESSL . . . . . . . . . . . . . . . 986
ERRSTRâESSL ERRSTR Subroutine for ESSL . . . . . . . . . . . . . . . 988
IESSLâDetermine the Level of ESSL Installed . . . . . . . . . . . . . . . . 989
STRIDEâDetermine the Stride Value for Optimal Performance in
Specified Fourier Transform Subroutines . . . . . . . . . . . . . . . . . . . 991
DSRSMâConvert a Sparse Matrix from Storage-by-Rows to
Compressed-Matrix Storage Mode . . . . . . . . . . . . . . . . . . . . . . 1001
DGKTRNâFor a General Sparse Matrix, Convert Between Diagonal-Out
and Profile-In Skyline Storage Mode . . . . . . . . . . . . . . . . . . . . . 1005
DSKTRNâFor a Symmetric Sparse Matrix, Convert Between
Diagonal-Out and Profile-In Skyline Storage Mode . . . . . . . . . . . . . 1011
Part 3. Appendixes
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1017
Appendix A. Basic Linear Algebra Subprograms (BLAS)
. . . . . . . .
APA-1
Level 1 BLAS . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . .
APA-1
xiv
Engineering and Scientific Subroutine Library Version 3 Guide and Reference
Level 2 BLAS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APA-1
Level 3 BLAS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APA-2
Appendix B. LAPACK
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APB-1
LAPACK . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
APB-1
Notices . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NOT-1
Trademarks . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NOT-2
Software Update Protocol
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NOT-2
Programming Interfaces
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
NOT-2
Glossary
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
GLOS-1
Bibliography . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-1
References . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-1
ESSL Publications . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-5
Evaluation and Planning . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-5
Installation . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-5
Application Programming . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-5
Related Publications . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-5
AIX for the RS/6000
. . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-5
AIX Version 4 Release 3 for the RS/6000
. . . . . . . . . . . . . . . . . .
BIB-5
XL Fortran . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-5
PL/I . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-5
Workstation Processors
. . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-5
IBM 3838 Array Processor . . . . . . . .
. . . . . . . . . . . . . . . . . . .
BIB-6
Index
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
INDEX-1
đ SIMILAR VOLUMES
Retrieved from http://web.archive.org/web/20170114012551/http://www.hpcx.ac.uk/support/documentation/IBMdocuments/am501401.pdf on 2017 January 13. This edition applies to: v Version 4 Release 1 of the IBM Engineering and Scientific Subroutine Library (ESSL) for Advanced Int
Scientific Computing for Scientists and Engineers is designed to teach undergraduate students relevant numerical methods and required fundamentals in scientific computing. Most problems in science and engineering require the solution of mathematical problems, most of which can only be done on a com
<p><em>Scientific Computing for Scientists and Engineers</em> is designed to teach undergraduate students relevant numerical methods and required fundamentals in scientific computing.</p> <p>Most problems in science and engineering require the solution of mathematical problems, most of which can onl
<p><em>Scientific Computing for Scientists and Engineers</em> is designed to teach undergraduate students relevant numerical methods and required fundamentals in scientific computing.</p> <p>Most problems in science and engineering require the solution of mathematical problems, most of which can onl