(bind-func vcopy_unpack
"take a packed float* buffer and copy it into a sparse representation"
(lambda (src:float* dest:float* stride neighbors srclen)
(doloop (i srclen)
(doloop (j neighbors)
(pset! dest (+ (* stride i) j) (pref src (+ (* neighbors i) j)))))))