def tree.node
gralha-coverage@0.1.0.1 · cover.bend:1111
import gralha-coverage@0.1.0.1/cover.bend as Cover
import Base
1111def tree.node(n: Node, depth: Nat, +x0: U32, +size: U32) -> CovTree:
1112 match n:
1113 case Node{flat, value, tl, tr, bl, br}:
1114 match flat:
1115 case True{}: CovFlat{node.value(value)}
1116 case False{}:
1117 match depth:
1118 case 0n: CovFlat{node.value(value)}
1119 case 1n+d:
1120 +dd = d
1121 +half = U32.shln(1, dd)
1122 +x1 = (x0 + half : U32)
1123 CovQuad{tree.node(node.of(tl, half, x0), dd, x0, half), tree.node(node.of(tr, half, x1), dd, x1, half),
1124 tree.node(node.of(bl, half, x0), dd, x0, half), tree.node(node.of(br, half, x1), dd, x1, half)}