def par_reduce.array.go

bend-kit-concurrency@0.2.0.0 · concurrency.bend:129

import bend-kit-concurrency@0.2.0.0/concurrency.bend as Concurrency
import Base

129def par_reduce.array.go(~A: Type, ~f: A -> A -> A, a: Array<A>, d: Nat) -> A:
130  match a d:
131    case ALeaf{x} _:
132      x
133    case ANode{xs, ys} 0n:
134      f(par_reduce.array.go(~A, ~f, xs, 0n), par_reduce.array.go(~A, ~f, ys, 0n))
135    case ANode{xs, ys} 1n+ +p:
136      lo hi = par_reduce.array.go(~A, ~f, xs, p) par_reduce.array.go(~A, ~f, ys, p)
137      f(lo, hi)

Uses (2)

Used by (1)