| 188 | } |
| 189 | |
| 190 | static void remove_empty_sub_dims(std::vector<dimension::sub>& subdimensions) |
| 191 | { |
| 192 | subdimensions.erase(std::remove_if(subdimensions.begin(), |
| 193 | subdimensions.end(), |
| 194 | [&](const dimension::sub& d) { |
| 195 | return d.len == 1 and d.origin_axis().empty(); |
| 196 | }), |
| 197 | subdimensions.end()); |
| 198 | if(subdimensions.empty()) |
| 199 | subdimensions.push_back({1, {}}); |
| 200 | } |
| 201 | |
| 202 | static std::size_t len(const std::vector<dimension::sub*>& subs) |
| 203 | { |