Software Product Description ________________________________________________________________ PRODUCT NAME: Digital Extended Math Library for VMS, SPD 31.67.00 Version 1.0 DESCRIPTION Digital Extended Math Library (DXML) is a set of mathematical subroutines drawn from public domain and proprietary libraries that are optimized for the VAX vector architecture. It includes the Basic Linear Algebra Subprograms (BLAS) Level 2 and BLAS Level 3 available from the Argonne National Labs. Also included are Digital proprietary subprograms for BLAS Level 1 Extensions and signal processing including one and two dimensional Fast Fourier Transforms (FFTs), Convolution, Correlation, and Digital Filters. These subprograms are highly optimized for the VAX Vector Architecture, but also support VAX scalar processing. Since DXML routines can be called from all languages that are supported by the VAX calling standards, the library permits access to VAX vector processing for applications written in other languages as well as FORTRAN or VAX MACRO. DXML contains both a scalar library and a vector library. The scalar library is provided for development and testing of appli- cation programs. The vector library can be used for vectoriza- tion and optimization of scientific and engineering programs, as well as for mathematical software libraries. Where appropriate, all routines are available in both real and complex versions, as well as in both single and double precision (D and G format). DIGITAL October 1990 AE-PBLLA-TE The vector library uses advanced algorithms tailored to specific operational characteristics of the VAX Vector Architecture. Some key computational modules are written in assembler language, making use of the vector instruction set. Optimization tech- niques include chaining and overlapping of the vector functional units, as well as efficient management of the hierarchical mem- ory system, using techniques such as the following: o Use of unity stride wherever possible o Reuse of data within the vector registers to minimize memory accessing o Efficient cache management o Use of algorithms that minimize translation buffer misses and unnecessary paging BLAS Contents Linear algebra operations are fundamental to vectorized math- ematical applications; many libraries of linear algebra sub- routines exist throughout the computer industry. The DXML BLAS library contains the most widely used public domain math li- braries in the industry, as well as "added value" libraries that are proprietary to Digital. The DXML linear algebra library contains routines at three levels: o Basic Linear Algebra Subroutines (BLAS) Level 1 extensions o BLAS Level 2 o BLAS Level 3 BLAS Level 1 Extensions (Vector-Vector Operations) When developing mathematical algorithms using the BLAS Level 1, scientists and engineers found several additional con- structs were used on a regular basis. These constructs are known throughout the computer industry as BLAS Level 1 extensions. 2 DXML contains 13 BLAS Level 1 extension operations: o Index of element having the minimum absolute value o Index of element having the maximum value o Index of element having the minimum value o Largest value of the elements of a vector o Smallest value of the elements of a vector o Largest absolute value of the elements of a vector o Smallest absolute value of the elements of a vector o Sum of the values of the elements of a vector o Set all elements of a vector equal to a scalar o Constant times a vector set to another vector (y = a*x) o Euclidean norm with no intermediate scaling o Sum of the squares of the elements of a vector o Constant times a vector plus a vector set to another vector (z = a*x + y) BLAS Level 2 (Matrix/Vector Operations) The BLAS 2 codes make effective utilization of the data in the vector registers, reducing the number of vector loads and stores required. In addition, loop unrolling techniques are used to minimize cache misses and page faults. o Matrix/vector products o Rank-1 and rank-2 matrix updates o Solutions of triangular systems of equations Six types of matrices are supported by these BLAS Level 2 rou- tines: o General 3 o General Band o Symmetric/Hermitian o Symmetric/Hermitian Band o Triangular o Triangular Band BLAS Level 3 (Matrix/Matrix Operations) DXML partitions matrices into blocks and computes matrix/matrix operations on each block. This approach avoids excessive memory accesses by providing full reuse of data while each block is in the cache or the registers. BLAS Level 3 routines provide this kind of blocking for three basic types of operations: o Matrix/matrix products o Rank-k and rank-2k updates of a symmetric matrix o Solving triangular systems of equations with multiple right- hand sides Three types of matrices are supported by these BLAS Level 3 routines: o General o Symmetric/Hermitian o Triangular Signal Processing Subroutines The DXML signal processing package contains a set of Digital proprietary subroutines. Routines are provided in three basic areas: o Fast Fourier Transforms o Convolution and Correlation 4 o Digital Filters Fast Fourier Transforms (FFTs) DXML provides both 1- and 2-dimensional FFT routines. Each routine is supplied in two forms: o The first form computes the transform in one unit operation. This is convenient for programs requiring speed on only one or a few FFT operations. o The second form is provided for programs requiring speed on repeated FFT operations. With this form, each routine is subdivided into three routines. One routine builds the rotation factors, a second routine applies them to the data to perform the FFT, and a third routine deallocates any virtual memory allocated in the first routine. Thus, for repeated operations, the rotation factors need to be built only once. Convolution and Correlation DXML provides routines for computing 1-dimensional discrete convolutions and correlations. These routines can process both periodic and nonperiodic data. Digital Filters DXML provides support for 1-dimensional, nonrecursive digital filtering. Based on the Kaisers Sinh-Bessel algorithm, these routines allow programming of bandpass, bandstop, low-pass, and high-pass filters. HARDWARE REQUIREMENTS VAX, MicroVAX, VAXstation or VAXserver configuration as speci- fied in the System Support Addendum (SSA 31.67.00-x). SOFTWARE REQUIREMENTS* 5 For systems using terminals: (No DECwindows interface) o VMS Operating System For workstations running VWS: o VMS Operating System o VMS Workstation Software * Refer to the System Support Addendum (SSA 31.67.00-x) for availability and required versions of prerequisite/optional software. ORDERING INFORMATION Software Licenses: QL-YEZ99-J* Software Media: QA-YEZAA-** Software Documentation: QA-YEZAA-GZ Software Product Services: QT-YEZA*-** * Denotes variant fields. For additional information on avail- able licenses, services and media, refer to the appropriate price book. SOFTWARE LICENSING This software is furnished under the licensing provisions of Digital Equipment Corporation's Standard Terms and Conditions. For more information about Digital's licensing terms and poli- cies, contact your local Digital office. LICENSE MANAGEMENT FACILITY SUPPORT This layered product supports the VMS License Management Fa- cility. License units for this product are allocated on a CPU-capacity basis. For more information on the License Management Facility, refer to the VMS Operating System Software Product Description (SPD 25.01.xx) or the VMS Operating System documentation set. 6 For more information about Digital's licensing terms and poli- cies, contact your local Digital office. SOFTWARE PRODUCT SERVICES A variety of service options are available. For more informa- tion, please contact your local Digital office. SOFTWARE WARRANTY Warranty for this software product is provided by Digital with the purchase of a license for the product as defined in the Software Warranty Addendum. [TM] The DIGITAL Logo, DECwindows, VAX, MicroVAX, VAXstation and VAXserver are trademarks of Digital Equipment Corporation. 7