def planes

stelliferous@0.0.2.0 · tensor_band.bend:40

import stelliferous@0.0.2.0/tensor_band.bend as TensorBand
import Base
import stelliferous@0.0.2.0/storage_buffer.bend as Storage
import stelliferous@0.0.2.0/storage_copy.bend as Copy

40def planes(~Element: Data,remaining: Nat,+channel: U32,+count: U32,+source_stride: U32,+destination_stride: U32,
41  +source_start: U32,+destination_start: U32,owners: Storage.Buffer<Element> & Storage.Buffer<Element>) ->
42  Storage.Buffer<Element> & Storage.Buffer<Element>:
43  match remaining:
44    case 0n: owners
45    case 1n+rest:
46      (source,destination) = owners
47      planes(~Element,rest,(channel + 1 : U32),count,source_stride,destination_stride,source_start,destination_start,
48        Copy.range(~Element,count,(source_start + channel * source_stride : U32),
49          (destination_start + channel * destination_stride : U32),source,destination))

Uses (8)

Used by (4)