def leaf_kept

bendtorch-core@0.1.0.0 · src/autograd/reduce_parallel_proof.bend:377

import bendtorch-core@0.1.0.0/src/autograd/reduce_parallel_proof.bend as ReduceParallelProof
import Base
import bendtorch-core@0.1.0.0/src/autograd/reduce.bend as Reduce

377# A closure that hands its two arguments back as they are leaves a leaf add
378# as it is.
379def leaf_kept(-rec: F32 -> Array<F32> -> F32 & Array<F32>, same: @value: F32 -> @array: Array<F32> -> {rec(value, array) == (value, array) : F32 & Array<F32>},
380  +accumulator: F32, pair: Array<F32> & F32) ->
381  {Reduce.walk_next(rec, Reduce.leaf_add(accumulator, pair)) == Reduce.leaf_add(accumulator, pair) : F32 & Array<F32>}:
382  match pair:
383    case Tuple{array, word}:
384      same(F32.add(accumulator, word), array)

Uses (7)

Used by (2)