| 48 | } |
| 49 | |
| 50 | static inline size_t tensor_length_in_byte(const Tensor* tensor) { |
| 51 | Layout layout = tensor->layout; |
| 52 | size_t length = layout.nr_dim > 0 ? 1 : 0; |
| 53 | for (int i = 0; i < layout.nr_dim; i++) { |
| 54 | int stride = layout.stride[i] > 0 ? layout.stride[i] : -layout.stride[i]; |
| 55 | length += stride * (layout.dims[i] - 1); |
| 56 | } |
| 57 | length *= dtype_length((tensor)->dtype.type_enum, NULL); |
| 58 | return length; |
| 59 | } |
| 60 | #endif |