| 94 | |
| 95 | template<typename T> |
| 96 | Array<T> qr_inplace(Array<T> &in) { |
| 97 | dim4 iDims = in.dims(); |
| 98 | int M = iDims[0]; |
| 99 | int N = iDims[1]; |
| 100 | Array<T> t = createEmptyArray<T>(af::dim4(min(M, N), 1, 1, 1)); |
| 101 | |
| 102 | auto func = [=](Param<T> in, Param<T> t, int M, int N) { |
| 103 | geqrf_func<T>()(AF_LAPACK_COL_MAJOR, M, N, in.get(), in.strides(1), |
| 104 | t.get()); |
| 105 | }; |
| 106 | getQueue().enqueue(func, in, t, M, N); |
| 107 | |
| 108 | return t; |
| 109 | } |
| 110 | |
| 111 | } // namespace cpu |
| 112 | } // namespace arrayfire |