def reach

bendtorch-core@0.1.0.0 · src/autograd/backward_LAWS.bend:51

import bendtorch-core@0.1.0.0/src/autograd/backward_LAWS.bend as BackwardLAWS
import Base
import bendtorch-core@0.1.0.0/src/autograd/backward.bend as Backward

51def reach(nodes: List<&2, Backward.Node>, flags: List<&2, Bool>, +count: Nat) -> List<&2, Bool>:
52  match nodes flags count:
53    case Nil{} flags count:
54      flags
55    case Con{node, rest} Nil{} count:
56      Nil{}
57    case Con{node, rest} Con{flag, pending} 0n:
58      Nil{}
59    case Con{node, rest} Con{+flag, pending} 1n+below:
60      flag <> reach(rest, spread(node, flag, below, pending), below)

Uses (5)

Used by (3)