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