LispWorks だけど
(declare (optimize (speed 3) (space 0) (debug 0) (float 0)))
(declare (type (simple-array double-float (*)) array)
(type (simple-array fixnum (*)) positions)
...)
と do, svref に the double-float, the fixnum とか使って positions の要素数に
かかわらず Allocation = 16 bytes standard / 0 bytes conses まで最適化できた.
Allegro はしらんけど float って型じゃ意味なくね? double-float とか single-float
とか指定すべきでは.