| 472 | |
| 473 | template <class Shape> |
| 474 | void TensorShapeBase<Shape>::InsertDim(int d, int64 size) { |
| 475 | CHECK_GE(d, 0); |
| 476 | CHECK_LE(d, dims()); |
| 477 | if (!kIsPartial) CHECK_GE(size, 0); |
| 478 | CHECK_LT(dims(), MaxDimensions()); |
| 479 | gtl::InlinedVector<int64, 8> vals; |
| 480 | AppendTo(*this, &vals); |
| 481 | vals.insert(vals.begin() + d, size); |
| 482 | ClearAllButDataType(); |
| 483 | for (auto dval : vals) { |
| 484 | AddDim(dval); |
| 485 | } |
| 486 | } |
| 487 | |
| 488 | template <class Shape> |
| 489 | gtl::InlinedVector<int64, 4> TensorShapeBase<Shape>::dim_sizes() const { |