~/bend-docscommunity

kernel_packing_buffer.bend source

kernel_packing_buffer.bend on the hub · documented module

import Baseimport ./kernel_spatial_packing.bend as Packingimport ./kernel_tile.bend as Tileimport ./storage_buffer.bend as Storageimport ./proofs/kernel_packing_certificate.bend as PackingCertificateimport ./proofs/storage_certificate.bend as Certificateimport ./proofs/traversal_certificate.bend as TraversalCertificatedef buffers(input_length: Nat,output_length: Nat,result: Array<F32> & Array<Tile.Tile8>,  certificates: TraversalCertificate.Certificates<Array<F32>,Tile.Tile8,Certificate.family(~F32),result>) ->  Storage.Buffer<F32> & Storage.Buffer<Tile.Tile8>:  (input,output) = result  TraversalCertificate.Certificates{source_certificate,output_certificate} = certificates  (Storage.Buffer{input,input_length,source_certificate},Storage.Buffer{output,output_length,output_certificate})def run(+call: Packing.Call,input: Storage.Buffer<F32>,output: Storage.Buffer<Tile.Tile8>) -> Storage.Buffer<F32> & Storage.Buffer<Tile.Tile8>:  Storage.Buffer{input,input_length,input_certificate} = input  Storage.Buffer{output,output_length,output_certificate} = output  buffers(input_length,output_length,Packing.run(call,input,output),PackingCertificate.certificates(call,input,output,input_certificate,output_certificate))