def step

stelliferous@0.0.2.0 · tensor_cursor.bend:53

import stelliferous@0.0.2.0/tensor_cursor.bend as TensorCursor
import Base

53def step(~Rest: Data,~next: Rest -> U32 -> Rest & U32,level: Level<Rest>,address: U32) -> Level<Rest> & U32:
54  Level{axis,rest} = level
55  match axis:
56    case Axis{extent,0n,stride,rewind}: (Level{Axis{extent,0n,stride,rewind},rest},address)
57    case Axis{+extent,1n,stride,+rewind}: reset(~Rest,extent,stride,rewind,next(rest,(address - rewind : U32)))
58    case Axis{extent,1n+1n+remaining,+stride,rewind}: (Level{Axis{extent,1n+remaining,stride,rewind},rest},(address + stride : U32))

Uses (9)

Used by (1)