| 25 | namespace kernel { |
| 26 | |
| 27 | int trimIndex(int idx, const int len) { |
| 28 | int ret_val = idx; |
| 29 | if (ret_val < 0) { |
| 30 | int offset = (abs(ret_val) - 1) % len; |
| 31 | ret_val = offset; |
| 32 | } else if (ret_val >= len) { |
| 33 | int offset = abs(ret_val) % len; |
| 34 | ret_val = len - offset - 1; |
| 35 | } |
| 36 | return ret_val; |
| 37 | } |
| 38 | |
| 39 | template<typename in_t, typename idx_t> |
| 40 | class lookupNDCreateKernel { |
no test coverage detected