anchor.diff:              tt))))
   
   (defun atan2 (y x)
  -  (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)))
  +  (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)
  
positive.code:                 (- (* (sin real) (sinh imag))))))
      (double-float
       (cos-double-float x))
      (real
       (cos-single-float (float x 0.0f0)))))
  
  
negative.code: (defun phase (number)
    (atan (imagpart number) (realpart number)))
  
  (defun fix-fdiv-quotient (quotient number divisor)
    (cond ((or (double-float-p number)
               (double-float-p divisor))
           (float quotient 0.0d0))
          ((or (single-float-p number)
               (single-float-p divisor))
           (float quotient 0.0f0))
          ((or (short-float-p number)
               (short-float-p divisor))
           (float quotient #.(xshort-float 0.0s0)))
          (t
           (float quotient 0.0f0))))
  
  (defun ffloor (number &optional (divisor 1))
    (multiple-value-bind (quotient remainder)
        (floor number divisor)
      (values (fix-fdiv-quotient quotient number divisor)
              remainder)))
  
  (defun fceiling (number &optional (divisor 1))
    (multiple-value-bind (quotient remainder)
        (ceiling number divisor)
      (values (fix-fdiv-quotient quotient number divisor)
              remainder)))
  
  (defun ftruncate (number &optional (divisor 1))
    (multiple-value-bind (quotient remainder)
        (truncate number divisor)
      (values (fix-fdiv-quotient quotient number divisor)
              remainder)))
  
  (defun fround (number &optional (divisor 1))
    (multiple-value-bind (quotient remainder)
        (round number divisor)
      (values (fix-fdiv-quotient quotient number divisor)
              remainder)))
  
  ;;; INTEGER-DECODE-FLOAT from SBCL.
  