| 2092 | |
| 2093 | template <class Range> |
| 2094 | static std::vector<std::size_t> select_mask(const std::vector<std::size_t>& slice_mask, |
| 2095 | const Range& r) |
| 2096 | { |
| 2097 | std::vector<std::size_t> result; |
| 2098 | std::transform(slice_mask.begin(), |
| 2099 | slice_mask.end(), |
| 2100 | r.begin(), |
| 2101 | join_back_inserter(result), |
| 2102 | [](std::size_t mask, std::size_t n) -> std::vector<std::size_t> { |
| 2103 | if(mask == 0) |
| 2104 | return {}; |
| 2105 | return {n}; |
| 2106 | }); |
| 2107 | return result; |
| 2108 | } |
| 2109 | |
| 2110 | // Generate the shape transforms for strided view |
| 2111 | optional<std::vector<operation>> |
no test coverage detected