anchor.diff:      (10 13)
       (11 13 15)))
   
  +(declaim (type (sa-sb 32) *coeffs-3930*))
   (defparameter *coeffs-3930*
  -  (make-array 4
  -              :element-type '(sb 32)
  -              :initial-contents '(360 317 -109 98)))
  +  (make-array
  +   4
  +   :element-type '(sb 32)
  +   :initial-contents '(98 -109 317 360)))
   
   (defun predictor-promote-version (version)
     (find version *predictor-versions* :test #'>=))
   
   (declaim (inline dot-product))
   (defun dot-product (x y &key (start1 0) (start2 0))
  -  (declare (type (sa-sb 16) x y)
  +  (declare (type (sa-sb 32) x y)
              (type fixnum start1 start2)
              (optimize (speed 3)))
     (loop
  
positive.code:                 x-8 (ash x-8 -1)))))))
    entropy)
  
  (defmethod predictor-update (frame
                               (version (eql 3950))
                               (channels (eql :stereo)))
    (declare (ignore version channels))
    ;; Seems like this function cannot be applyed to all channels
    ;; independently (like APPLY-FILTER)
    frame)
  
  (defmethod predictor-decode (frame (version (eql 3950)) channels)
  
negative.code:    (if (= (length (frame-output frame)) 2)
         :stereo :mono)))
  
  (declaim (inline zeros))
  (defun zeros (n &key (type '(sb 32)))
    (make-array n
                :element-type type
                :initial-element 0))
  
  (defun apply-filter (entropy order fracbits)
    (declare (type (sa-sb 32) entropy)
             (type (integer 1 15) fracbits)
             (type non-negative-fixnum order)
             (optimize (speed 3)))
    (let ((coeffs (zeros order :type '(sb 32)))
          (buffer (zeros (+ +history-size+ (ash order 1))
                         :type '(sb 32)))
          (avg 0))
      (declare (type (sa-sb 32) coeffs buffer)
               (type (sb 32) avg))
      (dotimes (i (length entropy))
        (let ((buffer-idx (rem i +history-size+))
  