def loop

bendtorch-core@0.1.0.0 · src/tensor/contracts/fold.bend:30

import bendtorch-core@0.1.0.0/src/tensor/contracts/fold.bend as Fold
import Base
import bendtorch-core@0.1.0.0/src/tensor/core.bend as Core

30def loop(~O: Data, ~g: O -> F32 -> F32 -> F32, ~P: Data, ~ia: P -> Nat -> Nat, ~keep: P -> Nat -> Bool,
31  fuel: Nat, +operation: O, +plan: P, +cursor: Nat, input: Core.Dynamic, accumulator: F32) ->
32  Core.Dynamic & Result<&2, &1, Core.Error, F32>:
33  match fuel:
34    case 0n:
35      (input, Done{accumulator})
36    case 1n+rest:
37      step(~O, ~g, operation, keep(plan, cursor), input => value => loop(~O, ~g, ~P, ~ia, ~keep, rest, operation, plan, 1n+cursor, input, value),
38        accumulator, Core.read_dynamic(input, U32.from_nat(ia(plan, cursor))))

Uses (11)

Used by (3)