| 171 | } |
| 172 | |
| 173 | std::size_t get_index(size_t i) const |
| 174 | { |
| 175 | std::size_t result = 0; |
| 176 | std::size_t s = 1; |
| 177 | |
| 178 | for(auto k : migraphx::reverse(migraphx::range(m_lens.size()))) |
| 179 | { |
| 180 | std::size_t stride = m_strides[k]; |
| 181 | std::size_t len = m_lens[k]; |
| 182 | std::size_t idx = (i % (s * len)) / s; |
| 183 | result += stride * idx; |
| 184 | s *= len; |
| 185 | } |
| 186 | return result; |
| 187 | } |
| 188 | |
| 189 | std::vector<std::size_t> min_lens() const |
| 190 | { |