دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
دسته بندی: Programming: Libraries API ویرایش: 4th نویسندگان: IBM سری: SA22-7272-03 ناشر: IBM سال نشر: 2000 تعداد صفحات: 1104 زبان: English فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود) حجم فایل: 4 مگابایت
در صورت تبدیل فایل کتاب Engineering and Scientific Subroutine Library for AIX: Guide and Reference به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب مهندسی و زیربرنامه علمی کتابخانه برای AIX: راهنما و مرجع نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
برگرفته از http://web.archive.org/web/20170114011319/http://bebop.cs.berkeley.edu/resources/arch-manuals/power3/essl.pdf در 13 ژانویه 2017. این نسخه برای نسخه 3 نسخه 2 کتابخانه مهندسی و علمی IBM (ESSL) برای برنامه دارای مجوز Advanced Interactive Executive (AIX)، برنامه شماره 5765-C42 و برای همه نسخهها و اصلاحات بعدی تا زمانی که نسخههای جدید مشخص نشده باشند، اعمال میشود.
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.
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