def run
bend-parallel@0.1.0.0 · sort.bend:397
import bend-parallel@0.1.0.0/sort.bend as Sort
import Base
import bend-parallel@0.1.0.0/histogram.bend as Hist
397
398def run(+b: Nat, +k: U32, bufs: Bufs, r: Array<U32> & U32) -> Array<U32> & Bufs:
399 Bufs{pm, cs, os, t} = bufs
400 (ks, +n) = r
401 +kk = U32.max(k, 1)
402 +kb = Hist.kbits(kk)
403 +lg = U32.log2(n)
404 +d = Nat.min(b, lg)
405 +e = Nat.sub(lg, d)
406 run.sums(Hist.small(d), d, e, kb, kk, Hist.fit.eq(lg, Array.size(U32, pm)), cs, os, Hist.rows(d, 0, e, kb, kk,
407 Array.fork(U32, ks), Array.fork(U32, Hist.fit.ge(Nat.add(d, kb), Array.size(U32, t)))))