DGTHRZ(3) SPARSE BLAS routine of NEC Numeric Library Collection DGTHRZ(3)
NAME
DGTHRZ - Gather a vector into compressed form
SYNOPSIS
SUBROUTINE DGTHRZ( NZ, Y, X, INDX )
INTEGER NZ, INDX
DOUBLE PRECISION
Y, X
PURPOSE
Gather(copy) the specified components of a vector stored in full-stor-
age form into compressed form and zero the gathered components of the
full-form vector. If all nonzero components of Y appear in INDX, a com-
mon occurence in the use of a single uncompressed scratch vector, then
DGTHRZ simultaneously performs
x := y
y := 0
This is specified by the following:
X(I) = Y( INDX(I) )
Y( INDX(I) ) = 0.0
for I = 1, ..., NZ.
In typical use of full-form temporary vectors, the vector is initially
set to zero. DSCTR is used to initialize the interesting entries for
processing. At the completion of processing, DGTHRZ is used to move the
interesting values back into the sparse data structures and simultane-
ously reset the full-form vector to its initial, zero, state for later
use.
The values of INDX must be distinct to allow consistent vector or par-
allel execution since otherwise the indeterminacy in the order of
accessing elements of Y and resetting them to zero makes X ambiguous.
ARGUMENTS
NZ (input) INTEGER
Number of elements in the compressed form.
INDX (input) INTEGER
Array containing the indices of the values to be gathered into
compressed form.
Y (input and output) DOUBLE PRECISION
Array, on input, which contains the vector Y in full storage
form. The gathered components in Y are set to zero. Only the
elements corresponding to the indices in INDX will be accessed.
X (output) DOUBLE PRECISION
Array containing the values gathered into the compressed form.
FURTHER DETAILS
Sparse BLAS algorithm is from ACM algorithm 692 by D. Dodson, R.
Grimes, and J. Lewis.
SPARSE BLAS routine 31 October 2017 DGTHRZ(3)