HP MLIB User's Guide Vol. 2 7th Ed.

872 HP MLIB User’s Guide
vsunpacki, vsunpackv, vsunpackm, vdunpacki, vdunpackv, vdunpackmUnpack (scatter) a contiguous vector to
a vector with specified indexing
SUBROUTINE vdunpacki(n, a, y, incy)
INTEGER, INTENT(IN) :: n, incy
REAL (KIND=8), DIMENSION(n), INTENT(IN) :: a
REAL (KIND=8), DIMENSION(n), INTENT(OUT):: y
SUBROUTINE vdunpackv(n, a, y, iy)
INTEGER, INTENT(IN) :: n
REAL (KIND=8), DIMENSION(n), INTENT(IN) :: a
REAL (KIND=8), DIMENSION(n), INTENT(OUT):: y
INTEGER, DIMENSION(n), INTENT(IN) :: iy
SUBROUTINE vdunpackm(n, a, y, my)
INTEGER, INTENT(IN) :: n
REAL (KIND=8), DIMENSION(n), INTENT(IN) :: a
REAL (KIND=8), DIMENSION(n), INTENT(OUT):: y
INTEGER, DIMENSION(n), INTENT(IN) :: my
Input n Number of elements to be calculated.
a Array containing the vector to be unpacked. Length of
a is at least n, for vsunpacki, vdunpacki, vsunpackv,
and vdunpackv; and the number of non-zero elements
(at most n) in the mask vector for vsunpackm and
vdunpackm.
incy Index increment for vsunpacki and vdunpacki.
iy Array containing the index vector for vsunpackv and
vdunpackv. Length of iy is at least n.
my Array containing the mask vector for vsunpackm and
vdunpackm. Length of my is at least n.
Output y Array receiving the output vector. Length of y is at
least:
1+(n-1)*incy
for vsunpacki and vdunpacki
1+the maximum index iy(i) (i = 1 to n)
for vsunpackv and vdunpackv
n
for vsunpackm and vdunpackm