anchor.diff:  (defmethod size-of ((array array))
     (array-total-size array))
   
  -(defmethod map-row-densely ((array array) row)
  -  (declare (ignore array))
  -  row)
  -
  -(defmethod map-column-densely ((array array) column)
  -  (declare (ignore array))
  -  column)
  -
   (defmethod map-matrix (function (array array))
     (loop for row below (height-of array) do
           (loop for column below (width-of array) do
  
positive.code: ;;; Possibly sparse matrix interface
  
  (defgeneric height-of (matrix &key densep)
    (:documentation "Return the number of rows of MATRIX."))
  
  (defgeneric width-of (matrix &key densep)
    (:documentation "Return the number of columns of MATRIX."))
  
  (defgeneric size-of (matrix)
    (:documentation "Return the number known cells in MATRIX. This is an
  upper limit for dense indices produced by MAP-MATRIX."))
  
  (defgeneric map-row-densely (matrix row)
    (:documentation "Number those rows that are not empty from 0. Return
  NIL for empty rows."))
  
  (defgeneric map-column-densely (matrix column)
    (:documentation "Number those columns that are not empty from 0.
  Return NIL for empty columns."))
  
  (defgeneric map-matrix (function matrix)
    (:documentation "Call FUNCTION for each non-missing cell of MATRIX.
  FUNCTION is of four parameters: ROW, COLUMN, VALUE and DENSE-INDEX."))
  
  (defmacro do-matrix (((row column value dense-index) matrix)
                       &body body)
  
negative.code:                (map-matrix
                  (lambda (row column value i)
                    (declare (ignore value))
                    (let ((row (dense-row-index matrix row))
                          (column (dense-column-index matrix column)))
                      (setf (aref approximation i)
                            (funcall clip
                                     (+ (aref approximation i)
  