HP Fortran for OpenVMS

HP Fortran for OpenVMS
Six iterative sparse solvers for real, double precision
data are supplied:
Preconditioned conjugate gradient method
Preconditioned least squares conjugate gradient
method
Preconditioned biconjugate method
Preconditioned conjugate gradient squared method
Preconditioned generalized minimum residual method
Preconditioned transpose free QMR method
Routines for three storage schemes are provided, or the
user can develop routines to employ a custom storage
scheme. The supplied storage schemes include:
Symmetric diagonal
Unsymmetric diagonal
General storage by rows
Three preconditioners are supplied, which can be selec-
tively applied to the data. Users can also supply custom
preconditioners. The preconditioners supplied include:
Diagonal
Polynomial (Neumann)
Incomplete LU with zero diagonals added
Sorting Subprograms
Two sort subprograms using the Quicksort algorithm
and two general purpose radix sort subprograms are
provided, as follows:
Sort elements of a vector using the Quicksort algo-
rithm
Sort an indexed vector of data using the Quicksort
algorithm
Sort data using a radix sort algorithm
Sort an indexed vector of data using a radix sort al-
gorithm
All of the above sorts operate on data stored in memory.
Random Number Subprograms
CXML provides four random number generator subpro-
grams:
Produce a vector of uniform [0,1], long-period ran-
dom numbers using the L´Ecuyer multiplicative
method. Two auxiliary input routines are provided
to allow this subprogram to be called from within a
parallel section of a program.
Produce a vector of N(0,1), normally-distributed ran-
dom numbers. Two auxiliary input routines are pro-
vided to allow this subprogram to be called from
within a parallel section of a program.
Produce single precision random numbers using a
linear multiplicative algorithm
Produce single precision random numbers using a
Lehmer multiplicative generator
Signal Processing Subprograms
The CXML Signal Processing library contains a set of
subprograms in four basic areas of signal processing:
Fast Fourier Transforms (FFT)
Fast Cosine and Fast Sine Transforms (FCT and
FST)
Convolution and correlation
Digital filters
Fast Fourier Transforms and Cosine and Sine
Transforms
CXML provides one-dimensional, two-dimensional,
three-dimensional, and group FFT routines and one-
dimensional FCT/FST routines. Each routine is supplied
in two forms:
The first form computes the transform in one unit
operation. This is convenient for programs requiring
speed on only one or a few operations.
The second form is provided for programs requiring
speed on repeated operations. With this form, each
routine is subdivided into three routines. One routine
builds the rotation factors, a second routine applies
them to perform the transform, 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
CXML provides routines for computing one-dimensional
discrete convolutions and correlations. These routines
can process both periodic and nonperiodic data.
Digital Filters
CXML provides support for one-dimensional, nonrecur-
sive digital filtering. Based on the Kaisers Sinh-Bessel
algorithm, these routines allow programming of band-
pass, bandstop, low-pass, and high-pass filters.
9