anchor.diff:  
   
   ;;;
  -;;; Definition of Built-in Vector Types
  +;;; Float3
   ;;;
   
   (defstruct (float3 (:constructor make-float3 (x y z)))
  
positive.code:   (boxmuller-extra-double :double))
  
  
  ;;;
  ;;; Definition of cl-cuda types
  ;;;
  
  (defparameter +basic-types+ `((void  0 :void)
  
negative.code:   (x :double)
    (y :double)
    (z :double))
  
  (defmethod cffi:translate-into-foreign-memory ((value double3)
                                                 (type double3-c)
                                                 ptr)
    (cffi:with-foreign-slots ((x y z) ptr (:struct double3))
      (setf x (double3-x value)
            y (double3-y value)
            z (double3-z value))))
  
  (defmethod cffi:translate-from-foreign (value (type double3-c))
    (cffi:with-foreign-slots ((x y z) value (:struct double3))
      (make-double3 x y z)))
  
  
  ;;;
  ;;; Double4
  ;;;
  
  (defstruct (double4 (:constructor make-double4 (x y z w)))
    (x 0.0d0 :type double-float)
  