KernelPackingWitness.channel: def of stelliferous@0.0.2.0 Import: import stelliferous@0.0.2.0/proofs/kernel_packing_witness.bend as KernelPackingWitness Lines 97-108 of stelliferous@0.0.2.0/proofs/kernel_packing_witness.bend: https://jend.leeeet.dev/read.txt?path=stelliferous@0.0.2.0/proofs/kernel_packing_witness.bend&start_line=97&end_line=108 import Base import stelliferous@0.0.2.0/traversal_loop.bend as Loop import stelliferous@0.0.2.0/kernel_spatial_packing.bend as Packing import stelliferous@0.0.2.0/kernel_tile.bend as Tile import stelliferous@0.0.2.0/proofs/traversal_witness.bend as TraversalWitness import stelliferous@0.0.2.0/proofs/kernel_packing_read_witness.bend as PackingReadWitness def channel(~block: Packing.Block(), ~sampled: @-input: Array -> @+row: U32 -> @+column: U32 -> @+channel: U32 -> @+height: U32 -> @+width: U32 -> @+stride: U32 -> @+next_row: U32 -> @+offset: U32 -> @+output_width: U32 -> @+kernel_column: U32 -> @+padding: U32 -> @+evidence: PackingReadWitness.family(input) -> TraversalWitness.Sample,Tile.Tile8,input,block(input,row,column,channel,height,width,stride,next_row,offset,output_width,kernel_column,padding)>, +depth: Nat,-input: Array,-state: Packing.RowTiles(),+input_evidence: PackingReadWitness.family(input),evidence: RowEvidence) -> RowEvidence: RowEvidence{output,cursor,equation,balanced} = evidence RowCursor{+i,+c,+kr,+kc,+row,+offset,+ow,+h,+w,+s,+p,+taps} = cursor %Equal.sym(Packing.RowTiles(),state,restore_row(input,output,RowCursor{i,c,kr,kc,row,offset,ow,h,w,s,p,taps}),equation) : RowEvidence after_kernel_rows(depth,input,Loop.run(~Packing.RowTiles(),~Packing.kernel_row_step(~block),taps,restore_row(input,output,RowCursor{i,c,kr,kc,row,offset,ow,h,w,s,p,taps})), kernel_row_loop(~block,~sampled,depth,taps,input,restore_row(input,output,RowCursor{i,c,kr,kc,row,offset,ow,h,w,s,p,taps}),input_evidence, RowEvidence{output,RowCursor{i,c,kr,kc,row,offset,ow,h,w,s,p,taps},{==},balanced})) Uses (18): https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Array https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Equal.sym https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=F32 https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=Nat https://jend.leeeet.dev/definition.txt?path=Base/base.bend&name=U32 https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_spatial_packing.bend&name=Block https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_spatial_packing.bend&name=RowTiles https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_spatial_packing.bend&name=channel_step https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_spatial_packing.bend&name=kernel_row_step https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/kernel_tile.bend&name=Tile8 https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/kernel_packing_read_witness.bend&name=family https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/kernel_packing_witness.bend&name=RowCursor https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/kernel_packing_witness.bend&name=RowEvidence https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/kernel_packing_witness.bend&name=after_kernel_rows https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/kernel_packing_witness.bend&name=kernel_row_loop https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/kernel_packing_witness.bend&name=restore_row https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/proofs/traversal_witness.bend&name=Sample https://jend.leeeet.dev/definition.txt?path=stelliferous@0.0.2.0/traversal_loop.bend&name=run