anchor.diff:    (%integer-as-short-float
      (dpb exp +short-float-exponent-byte+
           (dpb sig +short-float-significand-byte+
  -             (if (zerop sign) 0 -1)))))
  +             (if (zerop sign) 0 #x8000)))))
   
   ;;; Ratio to float conversion from SBCL 1.4.2
   
  
positive.code:    (logior (ash (dpb exp +double-float-exponent-byte+
                       (dpb (ash sig -32)
                            +double-float-significand-byte+
                            (if (zerop sign) 0 -1)))
                  32)
             (ldb (byte 32 0) sig))))
  (defun short-from-bits (sign exp sig)
  
negative.code:             tt))))
  
  (defun atan2 (y x)
    (let ((n (cond ((> x 0) (atan (/ y x)))
                   ((and (>= y 0) (< x 0))
                    (+ (atan (/ y x)) pi))
                   ((and (< y 0) (< x 0))
                    (- (atan (/ y x)) pi))
                   ((and (> y 0) (zerop x))
                    (/ pi 2))
                   ((and (< y 0) (zerop x))
                    (- (/ pi 2)))
                   (t 0))))
      (cond ((and (floatp x) (floatp y))
             (float (float n x) y))
            ((floatp x)
             (float n x))
            ((floatp y)
             (float n y))
            (t n))))
  
  (defun two-arg-gcd (a b)
    (check-type a integer)
  