def combine_kernel
stelliferous@0.0.2.0 · tensor_operations.bend:85
import stelliferous@0.0.2.0/tensor_operations.bend as TensorOperations
import Base
import stelliferous@0.0.2.0/storage_buffer.bend as Storage
import stelliferous@0.0.2.0/tensor_view.bend as Views
import stelliferous@0.0.2.0/tensor_access.bend as Access
import stelliferous@0.0.2.0/proofs/tensor_access_certificate.bend as AccessCertificate
85def combine_kernel(~Element: Data,~operation: Element -> Element -> Element,+count: Nat,+right_view: Views.View,+offset: U32,
86 left: Storage.Buffer<Element>,right: Storage.Buffer<Element>) -> Storage.Buffer<Element> & Storage.Buffer<Element>:
87 Storage.Buffer{left,left_length,left_certificate} = left
88 Storage.Buffer{right,right_length,right_certificate} = right
89 +fast = Access.zero_contiguous(right_view) && U32.is_zero(offset)
90 combine_buffers(~Element,left_length,right_length,
91 Access.combine_run(~Element,~operation,fast,count,right_view,offset,right,left),
92 AccessCertificate.combine(~Element,~operation,fast,count,right_view,offset,right,left,right_certificate,left_certificate))