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))

Uses (11)

Used by (7)