-(defmacro hash-array-using (recurse array depthoid)
- ;; Any other array can be hashed by working with its underlying
- ;; one-dimensional physical representation. Used by both SXHASH and
- ;; PSXHASH.
- (once-only ((array array) (depthoid depthoid))
- `(let ((result 60828123))
- (declare (type fixnum result))
- (dotimes (i (min ,depthoid (array-rank ,array)))
- (mixf result (array-dimension ,array i)))
- (dotimes (i (min ,depthoid (array-total-size ,array)))
- (mixf result
- (,recurse (row-major-aref ,array i) (- ,depthoid 1 i))))
- result)))
-