| 377 | } |
| 378 | |
| 379 | inline int Offset(const RuntimeShape& shape, int i0, int i1, int i2, int i3) { |
| 380 | TFLITE_DCHECK_EQ(shape.DimensionsCount(), 4); |
| 381 | const int* dims_data = reinterpret_cast<const int*>(shape.DimsDataUpTo4D()); |
| 382 | TFLITE_DCHECK(i0 >= 0 && i0 < dims_data[0]); |
| 383 | TFLITE_DCHECK(i1 >= 0 && i1 < dims_data[1]); |
| 384 | TFLITE_DCHECK(i2 >= 0 && i2 < dims_data[2]); |
| 385 | TFLITE_DCHECK(i3 >= 0 && i3 < dims_data[3]); |
| 386 | return ((i0 * dims_data[1] + i1) * dims_data[2] + i2) * dims_data[3] + i3; |
| 387 | } |
| 388 | |
| 389 | inline int Offset(const Dims<4>& dims, int i0, int i1, int i2, int i3) { |
| 390 | TFLITE_DCHECK(i0 >= 0 && i0 < dims.sizes[0]); |