| 17 | #include <numeric> |
| 18 | #include <set> |
| 19 | #include <sstream> |
| 20 | #include <stdexcept> |
| 21 | #include <unordered_map> |
| 22 | #include <unordered_set> |
| 23 | |
| 24 | namespace engine::assets { |
| 25 | namespace { |
| 26 | |
| 27 | constexpr int64_t kParallelF32ConvertElements = 1ll << 20; |
| 28 | constexpr int64_t kF32ConvertChunkElements = 1ll << 16; |
| 29 | |
| 30 | core::TensorShape shape_from_dims(const std::vector<int64_t> & dims) { |
| 31 | if (dims.empty() || dims.size() > core::kMaxTensorRank) { |
| 32 | throw std::runtime_error("tensor rank must be between 1 and 4"); |
| 33 | } |
| 34 | switch (dims.size()) { |
| 35 | case 1: |
| 36 | return core::TensorShape::from_dims({dims[0]}); |
| 37 | case 2: |
| 38 | return core::TensorShape::from_dims({dims[0], dims[1]}); |
no test coverage detected