def movement

stelliferous@0.0.2.0 · kernel_planning.bend:158

import stelliferous@0.0.2.0/kernel_planning.bend as KernelPlanning
import Base
import stelliferous@0.0.2.0/kernel_cost.bend as Cost

158def movement(depth: Nat,+offset: U32,+span: U32,+window: InputRows,+work: Work,+config: Cost.Configuration) -> Movement:
159  match depth:
160    case 0n:
161      Work{+positions,inner,rows,owners,geometry,activation} = work
162      leaf_cost(span,U32.min(span,(positions - offset : U32)),work,config)
163    case 1n+ +rest:
164      Cost.Configuration{mac,byte_ns,operation_ns,grain,wake} = config
165      +half = (span / 16 * 8 : U32)
166      +fork = fork_input(offset,half,window,work)
167      merge(fork_bytes(work,forked_bytes(fork)),fork_bytes(work,forked_transfer(fork)),byte_ns,movement(rest,offset,half,forked_left(fork),work,config),
168        movement(rest,(offset + half : U32),(span - half : U32),window,work,config))

Uses (18)

Used by (2)