Slice / gather / split operator bounds #
This file provides IBP and affine transfer rules for a small subset of indexing-like operations:
Slice: extract a contiguous range[start, stop)from a flattened tensor,Gather: select entries by a runtime array of static indices, andSplit: split a flattened tensor into an array of parts.
Important limitation: this does not model tensor-valued index dtypes inside the differentiable
graph (i.e. no PyTorch-style LongTensor indexing/gather/scatter driven by data tensors).
View a vector tensor through its leading-axis slices.
Instances For
IBP for Slice: extract elements [start, stop) from a flattened vector. Slice is a linear operation, so bounds propagate exactly.
Instances For
IBP for Gather: index into a vector using integer indices.
For input $x$ and a concrete index vector, the output satisfies $y_j=x_{\mathrm{indices}[j]}$. This is a permutation or selection.
Instances For
Affine bounds for Slice: extract a subvector of an affine form.
If the input represents $y=Ax+c$, slicing selects the corresponding rows of $A$ and entries of $c$.
Instances For
Derivative bounds for Slice: derivatives just slice through.
Instances For
Derivative bounds for Gather: derivatives follow the same indexing.
Instances For
Concatenate multiple FlatBoxes into one.