Width-polymorphic semantics for einsum output tiles #
An output tile is a finite family of independent contraction accumulators. This module describes that family for an arbitrary number of lanes. Concrete code generators may keep selected widths in separate scalar registers, but their correctness proofs reduce to the definitions and theorems here.
No theorem in this module selects a hardware width or changes scalar evaluation order.
Add one value to every lane of a contraction tile.
The lane family is a function rather than another vector so generated code can expose each selected lane value without allocating an intermediate container.
Instances For
Equal lane families determine equal function-backed vectors.
The additive coordinate fold is the executable presentation of
Semantics.coordinateSum.
A vector-valued coordinate fold is the vector of its scalar lane sums when every update is pointwise addition.
An arbitrary-width contraction tile equals the vector of its scalar contractions. Every lane therefore retains the scalar fold's original coordinate order.
Any concrete tile update that agrees pointwise with updateTile has the same
arbitrary-width contraction semantics.
Scalar-register kernels use this theorem as their only semantic boundary. Their implementation-specific proof need only identify one update step.