def count.grp
bend-parallel@0.1.0.0 · histogram.bend:299
import bend-parallel@0.1.0.0/histogram.bend as Histogram
import Base
import bend-parallel@0.1.0.0/scan.bend as Scan
299
300
301def count.grp(lo: Bool, +d: Nat, +k: U32, +kb: Nat, counts: Array<U32>, p: Two) -> Array<U32> & Bufs:
302 match lo:
303 case True{}:
304 Two{keys, table} = p
305 count.cols(d, 0n, Nat.min(d, kb), k, kb, keys, counts, table)
306 case False{}:
307 Two{keys, table} = p
308 +g = Nat.min(d, kb)
309 +r = Scan.half(d)
310 +m = Nat.sub(d, r)
311 count.cols(r, m, g, k, kb, keys, counts, grp(Nat.add(r, g), False{}, 0, g, Nat.sub(kb, g), m, kb, k, Array.fork(U32, table)))