| 21 | |
| 22 | template<typename T> |
| 23 | Array<T> unwrap(const Array<T> &in, const dim_t wx, const dim_t wy, |
| 24 | const dim_t sx, const dim_t sy, const dim_t px, const dim_t py, |
| 25 | const dim_t dx, const dim_t dy, const bool is_column) { |
| 26 | af::dim4 idims = in.dims(); |
| 27 | |
| 28 | dim_t nx = 1 + (idims[0] + 2 * px - (((wx - 1) * dx) + 1)) / sx; |
| 29 | dim_t ny = 1 + (idims[1] + 2 * py - (((wy - 1) * dy) + 1)) / sy; |
| 30 | |
| 31 | af::dim4 odims(wx * wy, nx * ny, idims[2], idims[3]); |
| 32 | |
| 33 | if (!is_column) { std::swap(odims[0], odims[1]); } |
| 34 | |
| 35 | Array<T> outArray = createEmptyArray<T>(odims); |
| 36 | kernel::unwrap<T>(outArray, in, wx, wy, sx, sy, px, py, dx, dy, nx, |
| 37 | is_column); |
| 38 | |
| 39 | return outArray; |
| 40 | } |
| 41 | |
| 42 | #define INSTANTIATE(T) \ |
| 43 | template Array<T> unwrap<T>( \ |
no test coverage detected