def sweep
bendtorch-core@0.1.0.0 · src/autograd/backward.bend:136
import bendtorch-core@0.1.0.0/src/autograd/backward.bend as Backward
import Base
136def sweep(nodes: List<&2, Node>, gradients: List<&2, Maybe<&2, F32>>, +count: Nat) -> List<&2, Maybe<&2, F32>>:
137 match nodes gradients count:
138 case Nil{} gradients count:
139 gradients
140 case Con{node, rest} Nil{} count:
141 Nil{}
142 case Con{node, rest} Con{gradient, pending} 0n:
143 Nil{}
144 case Con{node, rest} Con{+gradient, pending} 1n+below:
145 gradient <> sweep(rest, contribute(node, gradient, below, pending), below)