def nodes_merge

bendtorch-core@0.1.0.0 · src/autograd/backward_PROOF.bend:509

import bendtorch-core@0.1.0.0/src/autograd/backward_PROOF.bend as BackwardPROOF
import Base
import bendtorch-core@0.1.0.0/src/autograd/backward.bend as Backward

509def nodes_merge(+entries: List<&2, Backward.Entry>, +gradients: List<&2, Maybe<&2, F32>>) ->
510  {Backward.nodes(entries) == Backward.nodes(Backward.merge(entries, gradients)) : List<&2, Backward.Node>}:
511  match entries gradients:
512    case Nil{} gradients:
513      {==}
514    case Con{Backward.Entry{node, value, slot}, rest} Nil{}:
515      {==}
516    case Con{Backward.Entry{node, value, slot}, rest} Con{gradient, more}:
517      Equal.cong(List<&2, Backward.Node>, List<&2, Backward.Node>, xs => node <> xs,
518        Backward.nodes(rest), Backward.nodes(Backward.merge(rest, more)), nodes_merge(rest, more))

Uses (8)

Used by (1)