def copy_bands
stelliferous@0.0.2.0 · tensor_layout.bend:63
import stelliferous@0.0.2.0/tensor_layout.bend as TensorLayout
import Base
import stelliferous@0.0.2.0/storage_buffer.bend as Storage
import stelliferous@0.0.2.0/tensor.bend as Tensors
import stelliferous@0.0.2.0/tensor_band.bend as Bands
63
64def copy_bands(~Element: Data,status: Tensors.Status,bands: Bands.Bands(~Element),+geometry: Bands.Geometry,+shape: List<&2,U32>,+fill: Element,+workers: U32) ->
65 Tensors.Tensor<Element> & Tensors.Tensor<Element>:
66 match status:
67 case Tensors.Usable{}:
68 Storage.bind_pair(~Bands.Bands(~Element),~Bands.Bands(~Element),~(Tensors.Tensor<Element> & Tensors.Tensor<Element>),
69 Bands.copy(~Element,bands),left => right =>
70 (Tensors.Banded{left,geometry,shape,fill,Tensors.Usable{},workers},Tensors.Banded{right,geometry,shape,fill,Tensors.Usable{},workers}))
71 case Tensors.Failed{+problem}:
72 (Tensors.Banded{bands,geometry,shape,fill,Tensors.Failed{problem},workers},
73 Tensors.Tensor{Tensors.buffer(~Element,fill,0),shape,fill,Tensors.Failed{problem},workers})