anchor.diff:  ;;; Author: Ole Arndt <ole@sugarshark.com>
   ;;; Licence: BSD
   ;;;
  -;;; Commentary: 
  +;;; Commentary:
   ;;;
   ;;;
   
   (in-package :vecmath)
   
  -;; (declaim (optimize (speed 3) (space 0) (debug 0) (safety 0)))
  +;; (declaim (optimize (speed 3) (space 2) (debug 0) (safety 0)))
   
   (eval-when (:compile-toplevel :load-toplevel :execute)
     (defparameter *optimization*
  
positive.code: 
  (defun lerp (delta low high)
    "Linearly interpolate between low and high."
    (declare (type scalar delta low high)
             (optimize (speed 3)))
    (the scalar (+ low (* delta (- high low)))))
  
  (defun square (s)
    (declare (type scalar s)
             (optimize (speed 3)))
    (the scalar (* s s)))
  
   ;;; vecmath.lisp ends here
  
negative.code:   (defun ensure-scalar (s)
      (coerce s 'scalar)))
  
  (declaim (ftype (function (number) scalar) invert negate half inverse-sqrt square))
  (declaim (inline invert negate 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 negate (s)
    "Return s * -1."
    (the scalar (* s -1)))
  
  (defun half (s)
    "Return half the value."
  