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