anchor.diff:  ;;;
   
   ;;; We are going to define a lot of functions inline
  -;;; 
  +;;;
   (defmacro definline (name params &body body)
     `(progn
        (declaim (inline ,name))
  
positive.code:   (defun ensure-scalar (s)
      (coerce s 'scalar)))
  
  (declaim (ftype (function (number) scalar) invert half inverse-sqrt square))
  (declaim (inline invert half inverse-sqrt lerp square))
  
  (defun invert (s)
    "Return one over scalar."
    (the scalar (/ +scalar-one+ s)))
  (define-compiler-macro invert (&whole form s)
    (cond ((and (constantp s) (not (typep s 'scalar)))
           `(invert ,(ensure-scalar s)))
          (t
           `(,@form))))
  
  
  (defun half (s)
    "Return half the value."
  
negative.code: 
  (defun lerp (delta low high)
    "Linearly interpolate between low and high."
    (declare (type scalar delta low high))
    (the scalar (+ low (* delta (- high low)))))
  
  (defun square (s)
    (declare (type scalar s))
    (* s s))
  
   ;;; vecmath.lisp ends here
  