Array Compression
The following utility routines compress arrays. Note that the output array may be the same as the input array in which case the compression is done in place. Also the mask array may be the same as the input array. The name suffixes of the compression routine may be decoded as m minus (negative), n non-zero, p positive, z equal to zero. If the routine name ends in rrr, the mask, input and output arrays are all real. If the name ends in a single r , the mask is real, the input and output arrays are integers. Otherwise the mask, input and output arrays are all integers. For example kmprsn(100, int, 1, int, 1, int, 1, num) will compress all the zeros out of array int.
:x n length of z and x
z array of masks
iz stride in z
x array of source
ix stride in x
y array of output
iy stride in y
count length of y
kmprsn(n, z, iz, x, ix, y, iy, count)
kmprsnr(n, z, iz, x, ix, y, iy, count)
kmprsnrrr(n, z, iz, x, ix, y, iy, count)
kmprsp(n, z, iz, x, ix, y, iy, count)
kmprspr(n, z, iz, x, ix, y, iy, count)
kmprsz(n, z, iz, x, ix, y, iy, count)
kmprszr(n, z, iz, x, ix, y, iy, count)