def pair_loop

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

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

66def pair_loop(~O: Data, ~g: O -> F32 -> F32 -> F32 -> F32, ~P: Data, ~ia: P -> Nat -> Nat, ~ib: P -> Nat -> Nat,
67  fuel: Nat, +operation: O, +plan: P, +cursor: Nat, left: Core.Dynamic, right: Core.Dynamic, accumulator: F32) ->
68  (Core.Dynamic & Core.Dynamic) & Result<&2, &1, Core.Error, F32>:
69  match fuel:
70    case 0n:
71      ((left, right), Done{accumulator})
72    case 1n+rest:
73      pair_left(~O, ~g, operation, U32.from_nat(ib(plan, cursor)),
74        left => right => value => pair_loop(~O, ~g, ~P, ~ia, ~ib, rest, operation, plan, 1n+cursor, left, right, value),
75        right, accumulator, Core.read_dynamic(left, U32.from_nat(ia(plan, cursor))))

Uses (10)

Used by (3)