legate.core.LogicalStore.delinearize#
- LogicalStore.delinearize(self, int32_t dim, tuple shape) LogicalStore #
Delinearizes a dimension into multiple dimensions. Each dimension i of the store, where i >
dim
, will be mapped to dimension i+N of the resulting store, where N is the length ofshape
. A delinearization that does not preserve the size of the store is invalid.For example, consider a 2D store
A
[[1, 2, 3, 4], [5, 6, 7, 8]]
A delinearizing call A.delinearize(1, [2, 2])) yields:
[[[1, 2], [3, 4]], [[5, 6], [7, 8]]]
- Parameters:
- Returns:
A new store with the chosen dimension delinearized
- Return type:
LogicalStore
Notes
Unlike other transformations, delinearization is not an affine transformation. Due to this nature, delinearized stores can raise NonInvertibleError in places where they cannot be used.
- Raises:
ValueError – If
dim
is invalid for the store orshape
does not preserve the size of the chosen dimenison