| 40 | |
| 41 | template<typename T> |
| 42 | Array<T> diagExtract(const Array<T> &in, const int num) { |
| 43 | const dim4 &idims = in.dims(); |
| 44 | dim_t size = min(idims[0], idims[1]) - abs(num); |
| 45 | Array<T> out = createEmptyArray<T>(dim4(size, 1, idims[2], idims[3])); |
| 46 | |
| 47 | getQueue().enqueue(kernel::diagExtract<T>, out, in, num); |
| 48 | |
| 49 | return out; |
| 50 | } |
| 51 | |
| 52 | #define INSTANTIATE_DIAGONAL(T) \ |
| 53 | template Array<T> diagExtract<T>(const Array<T> &in, const int num); \ |