scheme@(guile-user)> ,use (srfi srfi-42)
scheme@(guile-user)> ,optimize (do-ec (:parallel (:vector i v1)
(:vector j v2))
(:parallel (:vector k v1)
(:vector l v2))
(f i j k l))
$1 =
(let ((vec-1 v1) (len-1 0) (vec v2) (len 0))
(set! len-1
((@@ (srfi srfi-42) vector-length) vec-1))
(set! len
((@@ (srfi srfi-42) vector-length) vec))
(let loop ((i-1 0) (i 0))
(if (and (< i-1 len-1) (< i len))
(let ((i-2 (vector-ref vec-1 i-1))
(j (vector-ref vec i)))
(let ((vec-1 v1) (len-1 0) (vec v2) (len 0))
(set! len-1
((@@ (srfi srfi-42) vector-length) vec-1))
(set! len
((@@ (srfi srfi-42) vector-length) vec))
(let loop ((i-1 0) (i 0))
(if (and (< i-1 len-1) (< i len))
(let ((k (vector-ref vec-1 i-1))
(l (vector-ref vec i)))
(f i-2 j k l)
(loop (#{1+}# i-1) (#{1+}# i))))))
(loop (#{1+}# i-1) (#{1+}# i))))))