anchor.diff:  
   (defkernel grad-spiky-kernel (float4 ((x float4)))
     (let ((r (norm x)))
  -    (return (* (/ -45.0 (* pi (pow h 6.0)))
  -               (pow (- h r) 2.0)
  +    (return (* (/ -45.0 (* pi (pow h 6)))
  +               (pow (- h r) 2)
                  (/ x r)))))
   
   (defun grad-spiky-kernel-cpu (x)
  
positive.code:      (* (float4-z a) (float4-z b))
       (* (float4-w a) (float4-w b))))
  
  (defkernel pow (float ((b float) (p float)))
    (return (expt b p)))
  
  (defun pow-cpu (b p)
    (float (expt b p) 0.0))
  
negative.code:                            (prs 'float  n))
        ;; with neighbor map
        (with-neighbor-map (nbr info box-min box-max delta capacity)
          ;; print # of particles
          (format t "~A particles~%" n)
          ;; apply given initial condition
          (initialize x v particles)
          ;; copy initial position and velocity to device memory
  