| 26 | |
| 27 | template <typename T> |
| 28 | void InitTriangleWindow(const TensorView<StorageCPU, T, 1> &window) { |
| 29 | int radius = window.num_elements() / 2; |
| 30 | for (int i = 0; i < radius; i++) { |
| 31 | *window(i) = i + 1; |
| 32 | *window(window.num_elements() - i - 1) = i + 1; |
| 33 | } |
| 34 | *window(radius) = radius + 1; |
| 35 | } |
| 36 | |
| 37 | template <typename Out, typename In, typename W> |
| 38 | void BaselineConvolveAxis(Out *out, const In *in, const W *window, int len, int r, int channel_num, |