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: 
  (defkernel rap-visc-kernel (float ((x float4)))
    (let ((r (norm x)))
      (return (* (/ 45.0 (* pi (pow h 6.0)))
                 (- h r)))))
  
  (defun rap-visc-kernel-cpu (x)
  
negative.code:      (* (float4-z a) (float4-z b))
       (* (float4-w a) (float4-w b))))
  
  (defkernelmacro pow (x n)
    (check-type n fixnum)
    `(* ,@(loop repeat n collect x)))
  
  ;; (defkernel pow (float ((b float) (p float)))
  ;;   (return (expt b p)))
  
  (defun pow-cpu (b p)
    (float (expt b p) 0.0))
  