HP Fortran for OpenVMS

HP Fortran for OpenVMS
Copy one vector to another
Apply a Givens rotation
Apply a modified Givens plane rotation
Generate elements for a Givens plane rotation
Generate elements for a modified Givens plane ro-
tation
Product of a vector times a scalar
Swap the elements of two vectors
BLAS Level 1 Extensions (Vector/Vector
Operations)
When developing mathematical algorithms using the
BLAS Level 1, scientists and engineers found that sev-
eral additional constructs were used on a regular basis.
These constructs are well known throughout the com-
puter industry as BLAS Level 1 Extensions.
CXML contains 13 BLAS Level 1 Extension operations:
Index of element having the minimum absolute value
Index of element having the maximum value
Index of element having the minimum value
Largest value of the elements of a vector
Smallest value of the elements of a vector
Largest absolute value of the elements of a vector
Smallest absolute value of the elements of a vector
Sum of the values of the elements of a vector
Set all elements of a vector equal to a scalar
Constant times a vector set to another
vector (y = a
x)
Euclidean norm with no intermediate scaling
Sum of the squares of the elements of a vector
Constant times a vector plus a vector set to another
vector (z = a
x+y)
BLAS Level 1 Sparse Extensions (Vector/Vector
Operations)
This group of operations is similar to the BLAS Level
1 routines, but is designed to work on sparse vectors
(vectors in which most of the elements are zero). Six of
the routines are from industry standard Sparse BLAS 1,
and the remaining three are enhancements.
The nine sparse BLAS Level 1 operations are:
Scalar times a sparse vector plus a vector
Sum of a sparse vector and a full vector
Inner product of a sparse vector and a full vector
Gather a sparse vector from a full vector
Gather a sparse vector from the scaled elements of
a full vector
Gather a sparse vector from a full vector and zero
corresponding elements of full vector
Apply Givens rotation to a sparse vector and a full
vector
Scatter a sparse vector into a full vector
Scale and scatter a sparse vector into a full vector
BLAS Level 2 (Matrix/Vector Operations)
The BLAS Level 2 codes make more effective use of
the data in the registers, reducing the number of reg-
ister loads and stores required. In addition, loop un-
rolling techniques are used to minimize cache misses
and page faults. The BLAS Level 2 subprograms use
the following types of operations:
Matrix/vector products
Rank-1 and rank-2 matrix updates
Solutions of triangular systems of equations
Six types of matrices are supported by these BLAS
Level 2 routines:
General
General band
Symmetric/Hermitian
Symmetric/Hermitian band
Triangular
Triangular band
BLAS Level 3 (Matrix/Matrix Operations)
The BLAS Level 3 routines operate at a level that makes
the most efficient use of machine resources. CXML opti-
mizes these routines by partitioning matrices into blocks
and computing 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:
Matrix/matrix products
Rank-k and rank-2k updates of a symmetric matrix
Solving triangular systems of equations with multiple
right-hand sides
6