| 90 | /* ============= Slice and SubTensorSpec ============= */ |
| 91 | |
| 92 | SubTensorSpec SubTensorSpec::make_from_offset_elem( |
| 93 | const TensorLayout& layout, ptrdiff_t offset_elem) { |
| 94 | mgb_assert(layout.ndim && layout.dtype.valid()); |
| 95 | return {layout, offset_elem}; |
| 96 | } |
| 97 | |
| 98 | SubTensorSpec Slice::apply(TensorLayout layout, int axis) const { |
| 99 | mgb_assert(layout.ndim > 0 && layout.dtype.valid()); |