KernelPipeline.split: def of stelliferous@0.0.2.0 Import: import stelliferous@0.0.2.0/kernel_pipeline.bend as KernelPipeline Lines 96-106 of stelliferous@0.0.2.0/kernel_pipeline.bend: https://jend.leeeet.dev/read.txt?path=stelliferous@0.0.2.0/kernel_pipeline.bend&start_line=96&end_line=106 import Base import stelliferous@0.0.2.0/kernel_window.bend as KernelWindow # The right child keeps the parent's rows; the left child copies only its band. # Unaligned rows would break whole eight-position blocks, so they are cloned; # so is a band that fails its coverage check. def split(work: Work,offset: U32,half: U32,window: InputWindow) -> InputWindow & InputWindow: Work{channels_out,+height,+width,+kernel,+stride,+padding,+output_width,positions,+inner} = work InputWindow{buffer,+first,+rows} = window +offset = offset +half = half +band = KernelWindow.band(first,rows,height,kernel,stride,padding,output_width,offset,half) split_when(KernelWindow.copies_band(first,rows,height,kernel,stride,padding,output_width,offset,half,band), (inner / (kernel * kernel) : U32),width,first,rows,band,buffer) Uses (9): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Pair https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.div https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mul https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_pipeline.bend&name=InputWindow https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_pipeline.bend&name=Work https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_pipeline.bend&name=split_when https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_window.bend&name=band https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_window.bend&name=copies_band