def tile
stelliferous@0.0.2.0 · kernel_spatial_packing.bend:139
import stelliferous@0.0.2.0/kernel_spatial_packing.bend as KernelSpatialPacking
import Base
import stelliferous@0.0.2.0/traversal_loop.bend as Loop
import stelliferous@0.0.2.0/kernel_tile.bend as Tile
139
140def tile(within: Bool,wraps: Bool,input: Array<F32>,output: Array<Tile.Tile8>,index: U32,+position: U32,height: U32,width: U32,kernel: U32,stride: U32,padding: U32,+output_width: U32,
141 +channels: Nat,taps: Nat,+inner: Nat) -> Tiled():
142 match within wraps:
143 case True{} wraps:
144 after_row_tile(position,kernel,channels,inner,Loop.run(~RowTiles(),~channel_step(~block),channels,
145 RowTile{input,output,index,0,0,0,(position / output_width : U32),(position % output_width : U32),output_width,height,width,stride,padding,taps}))
146 case False{} True{}:
147 after_row_tile(position,kernel,channels,inner,Loop.run(~RowTiles(),~channel_step(~wrap_block),channels,
148 RowTile{input,output,index,0,0,0,(position / output_width : U32),(position % output_width : U32),output_width,height,width,stride,padding,taps}))
149 case False{} False{}:
150 after_crossing(channels,taps,inner,Loop.run(~Crossings(),~crossing_step,inner,Crossing{input,output,index,0,position,height,width,kernel,stride,padding,output_width}))