anchor.diff:      (%update-neighbor-map i pos nbr info)))
   
   (defun %update-neighbor-map-cpu (i pos nbr info)
  -  (let ((x (mem-aref pos i)))
  +  (let ((x (memory-block-aref pos i)))
       (insert-particle-in-neighbor-map-cpu i x nbr info)))
   
   (defun update-neighbor-map-cpu (pos nbr info n &key grid-dim block-dim)
  
positive.code:           (k block-idx-y))
        (clear-particles-in-cell-cpu nbr info i j k))))
  
  (defun memcpy-neighbor-map-host-to-device (nbr info)
    (memcpy-host-to-device nbr info))
  
  (defun memcpy-neighbor-map-device-to-host (nbr info)
    (memcpy-device-to-host nbr info))
  
  (defmacro with-neighbor-map ((nbr info box-min box-max delta capacity) &body body)
    `(let* ((,info (alloc-neighbor-map-info ,box-min ,box-max ,delta ,capacity))
  
negative.code:     (%update-density i rho x nbr info)))
  
  (defun %update-density-cpu (i rho x nbr info)
    (symbol-macrolet ((xi (memory-block-aref x i))
                      (xj (memory-block-aref x j))
                      (rhoi (memory-block-aref rho i)))
      (let ((tmp 0.0))
        (do-neighbor-particles-cpu (j nbr info xi)
          (let ((dr (float4-scale-cpu (float4-sub-cpu xi xj) simscale)))
  