| 1861 | return result; |
| 1862 | } |
| 1863 | std::vector<std::vector<std::size_t>> shape_transform_descriptor::common_axes_map_from_dst() const |
| 1864 | { |
| 1865 | std::vector<std::vector<std::size_t>> result; |
| 1866 | std::size_t start = 0; |
| 1867 | for(const auto& d : dimensions) |
| 1868 | { |
| 1869 | auto& v = result.emplace_back(d.subdimensions.size()); |
| 1870 | std::iota(v.begin(), v.end(), start); |
| 1871 | start += d.subdimensions.size(); |
| 1872 | } |
| 1873 | if(result.size() == 1 and result.front().empty()) |
| 1874 | { |
| 1875 | result.front().resize(rank); |
| 1876 | std::iota(result.front().begin(), result.front().end(), 0); |
| 1877 | } |
| 1878 | return result; |
| 1879 | } |
| 1880 | |
| 1881 | std::vector<std::size_t> shape_transform_descriptor::get_dst_axes_from_src(std::size_t axis) const |
| 1882 | { |