anchor.diff:  	    (and (= exp1 exp2)
   		 (< (abs (- sig1 sig2)) delta)))))))
   
  -(defmacro assert-sigfig-equal (significant-figures expected form &rest extras)
  -  (expand-assert :equal form form expected extras
  -		 :test (lambda (f1 f2) (sigfig-equal f1 f2 significant-figures))))
  +(defmacro assert-sigfig-equal (expected form &rest extras)
  +  (expand-assert :equal form form expected extras :test #'sigfig-equal))
   
   ;;; (ARRAY-EQUAL array1 array2) => true or false
   (defun array-equal (array1 array2 &key (test #'number-equal))
  
positive.code:   "Return a list of the indices, values and error of the elements that
  are not equal."
    (let ((dimensions (array-dimensions array1))
  	(end (1- (array-total-size array1)))
  	(errseq '()))
      (do* ((index 0 (1+ index))
  	  (indices (%array-indices index dimensions)
  		   (%array-indices index dimensions))
  	  (n1 (apply #'aref array1 indices)
  	      (apply #'aref array1 indices))
  	  (n2 (apply #'aref array2 indices)
  	      (apply #'aref array2 indices)))
  	 ((>= index end)
  	  (unless (funcall test n1 n2)
  	    (push (list indices n1 n2 (funcall errfun n1 n2))
  		  errseq)))
        (unless (funcall test n1 n2)
  	(push (list indices n1 n2 (funcall errfun n1 n2))
  	      errseq)))))
  
negative.code:   (cond
      ((zerop significand)
       (values significand 0))
      ((>= (abs significand) 10)
       (normalize-float (/ significand 10.0) (1+ exponent)))
      ((< (abs significand) 1)
       (normalize-float (* significand 10.0) (1- exponent)))
      (t (values (/ significand 10.0) (1+ exponent)))))
  
  