KernelWindow.band: def of stelliferous@0.0.2.0 Import: import stelliferous@0.0.2.0/kernel_window.bend as KernelWindow Lines 18-26 of stelliferous@0.0.2.0/kernel_window.bend: https://jend.leeeet.dev/read.txt?path=stelliferous@0.0.2.0/kernel_window.bend&start_line=18&end_line=26 import Base # Rows read by output positions [offset, offset + span), kept inside the parent # window [parent_first, parent_first + parent_rows). A band has at least one row, # and its first row stays a stride multiple. def band(+parent_first: U32,+parent_rows: U32,+height: U32,+kernel: U32,+stride: U32,+padding: U32,+output_width: U32,+offset: U32,+span: U32) -> Band: +parent_end = (parent_first + parent_rows : U32) +top = ((parent_end - 1) / stride * stride : U32) +first = U32.max(parent_first,U32.min(first_row(stride,padding,(offset / output_width : U32)),top)) +last = end_row(height,kernel,stride,padding,((offset + span - 1) / output_width : U32)) Band{first,(U32.min(parent_end,U32.max(last,(first + 1 : U32))) - first : U32)} Uses (10): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.add 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.max https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.min https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.mul https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32.sub 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=end_row https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_window.bend&name=first_row