def block_tree
bend-visgraph@2.0.0.0 · parallel.bend:40
import bend-visgraph@2.0.0.0/parallel.bend as Parallel
import Base
import bend-visgraph@2.0.0.0/visgraph.bend as VG
40def block_tree(depth: Nat, +s: U32, +e: U32, cc: VG.Cols & VG.Cols) -> Blocks:
41 match depth:
42 case 1n++d:
43 (c1, c2) = cc
44 +mid = (s + U32.shr((e - s : U32)) : U32)
45 x y = block_tree(d, s, mid, fork_cols(c1)) block_tree(d, mid, e, fork_cols(c2))
46 BJoin{x, y}
47 case 0n:
48 (c1, c2) = cc
49 +mid = (s + U32.shr((e - s : U32)) : U32)
50 x y = block_leaf(s, mid, c1) block_leaf(mid, e, c2)
51 BJoin{x, y}