def cons_compatible

stelliferous@0.0.2.0 · tensor_band_concat.bend:64

import stelliferous@0.0.2.0/tensor_band_concat.bend as TensorBandConcat
import Base
import stelliferous@0.0.2.0/tensor.bend as Tensors
import stelliferous@0.0.2.0/tensor_band.bend as Bands

64def cons_compatible(~Element: Data,first: Tensors.Tensor<Element> & Maybe<&2,Bands.Plan>,
65  rest: (Tensors.Parts<Element> & Maybe<&2,Bands.Plan>) & Bool) -> (Tensors.Parts<Element> & Maybe<&2,Bands.Plan>) & Bool:
66  (tensor,first_layout) = first
67  (rest_and_layout,compatible) = rest
68  (rest_parts,rest_layout) = rest_and_layout
69  +first_layout = {first_layout : Maybe<&2,Bands.Plan>}
70  +rest_layout = {rest_layout : Maybe<&2,Bands.Plan>}
71  ((Tensors.Cons{tensor,rest_parts},first_plan(first_layout,rest_layout)),compatible && compatible_plans(first_layout,rest_layout))

Uses (10)

Used by (1)