HP Fortran for OpenVMS
HP Fortran for OpenVMS
HP EXTENDED MATH LIBRARY (CXML) ALPHA
ONLY
HP Extended Math Library (CXML) for OpenVMS Alpha
is a set of mathematical subprograms that are optimized
for HP architectures. Included subprograms cover the
areas of:
• Basic Linear Algebra
• Linear System and Eigenproblem Solvers
• Sparse Linear System Solvers
• Sorting
• Random Number Generation
• Signal Processing
The Basic Linear Algebra library includes the industry-
standard Basic Linear Algebra Subprograms (BLAS)
Level 1, Level 2, and Level 3. Also included are sub-
programs for BLAS Level 1 Extensions, Sparse BLAS
Level 1, and Array Math Functions (VLIB).
The Linear System and Eigenproblem Solver library pro-
vides the complete LAPACK v2 package developed by
a consortium of university and government laboratories.
LAPACK is an industry-standard subprogram package
offering an extensive set of linear system and eigenprob-
lem solvers. LAPACK uses blocked algorithms that are
better suited to most modern architectures, particularly
ones with memory hierarchies. LAPACK will supersede
LINPACK and EISPACK for most users.
The Sparse Linear System library provides both direct
and iterative sparse linear system solvers. The direct
solver package supports both symmetric and nonsym-
metric sparse matrices stored using the skyline storage
scheme. The iterative solver package contains a basic
set of storage schemes, preconditioners, and iterative
solvers. The design of this package is modular and
matrix-free, allowing future expansion and easy modifi-
cation by users.
The Signal Processing library provides a basic set of sig-
nal processing functions. Included are one-, two-, and
three-dimensional Fast Fourier Transforms (FFT), group
FFTs, Cosine/Sine Transforms (FCT/FST), Convolution,
Correlation, and Digital Filters.
Many CXML subprograms are optimized for the sup-
ported hardware platforms. Optimization techniques in-
clude traditional optimizations such as loop unrolling and
loop reordering. CXML subprograms also provide effi-
cient management of the hierarchical memory system,
using techniques such as the following:
• Reuse of data within registers to minimize memory
accesses
• Efficient cache management
• Use of blocked algorithms that minimize translation
buffer misses and unnecessary paging
Since CXML routines can be called from all languages
that support the OpenVMS calling standard, the library
provides optimized computation for applications written
in these languages. Where appropriate, most subpro-
grams are available in both real and complex versions,
as well as in both single and double precision. CXML for
OpenVMS Alpha supports both IEEE and VAX floating-
point formats.
Basic Linear Algebra Subprograms
Linear algebra operations are fundamental to many
mathematical applications, and several libraries of linear
algebra subprograms exist throughout the computer in-
dustry. The CXML BLAS library contains the most com-
monly used linear algebra subprograms.
The CXML linear algebra library contains five groups of
subprograms at three levels:
• Basic Linear Algebra Subprograms (BLAS) Level 1
• BLAS Level 1 Extensions
• BLAS Level 1 Sparse Extensions
• BLAS Level 2
• BLAS Level 3
BLAS Level 1 (Scalar/Vector and Vector/Vector
Operations)
BLAS Level 1 provides a set of elementary vector func-
tions, operating on one or two vectors. These are typ-
ically very small routines, and they make less efficient
use of the computing resources of modern computer ar-
chitectures than the Level 2 and 3 operations.
CXML provides the 15 standard BLAS Level 1 opera-
tions:
• The index of the element of a vector having maximum
absolute value
• The sum of the absolute values of the elements of a
vector
• Inner product of two real vectors
• Scalar plus the extended precision inner product of
two real vectors
• Conjugated inner product of two complex vectors
• Unconjugated inner product of two complex vectors
• Square root of the sum of squares (norm) of the el-
ements of a vector
• Scalar times a vector plus a vector
5