def ASet.copy_node

bend-ml-tensor-array@0.1.19.0 · main.bend:2010

import bend-ml-tensor-array@0.1.19.0/main.bend as BendMlTensorArray
import Base

2010def ASet.copy_node(-T: Data, -xs: Array<T>, ys: Array<T>, r: ASet.Copy(T, xs)) -> ASet.Copy(T, ANode{xs, ys}):
2011  match r:
2012    case Tuple{b, r1}:
2013      match r1:
2014        case Tuple{+m, r2}:
2015          match r2:
2016            case Tuple{+p, r3}:
2017              match r3:
2018                case Tuple{+q, r4}:
2019                  match r4:
2020                    case Tuple{+s, u}:
2021                      (ANode{b, ys}, U32.shl(m),
2022                        {(%p : {ANode{b, ys} == ANode{_, ys} : Array<T>}; {==}) : {ANode{b, ys} == ANode{xs, ys} : Array<T>}},
2023                        {(%s : {U32.shl(m) == Pair.snd(Array<T>, U32, Array.size.node(T, ys, _)) : U32}; %q : {U32.shl(m) == U32.shl(_) : U32}; {==}) : {U32.shl(m) == ASet.sz(T, ANode{b, ys}) : U32}},
2024                        {(%s : {(ANode{b, ys}, Pair.snd(Array<T>, U32, Array.size.node(T, ys, _))) == Array.size.node(T, ys, _) : Array<T> & U32}; {==}) : {(ANode{b, ys}, ASet.sz(T, ANode{b, ys})) == Array.size(T, ANode{b, ys}) : Array<T> & U32}},
2025                        Unit{})

Uses (11)

Used by (1)