MCPcopy Create free account
hub / github.com/arrayfire/arrayfire / lu_inplace

Function lu_inplace

src/backend/opencl/lu.cpp:61–79  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

59
60template<typename T>
61Array<int> lu_inplace(Array<T> &in, const bool convert_pivot) {
62 if (OpenCLCPUOffload()) { return cpu::lu_inplace(in, convert_pivot); }
63
64 dim4 iDims = in.dims();
65 int M = iDims[0];
66 int N = iDims[1];
67 int MN = std::min(M, N);
68 std::vector<int> ipiv(MN);
69
70 cl::Buffer *in_buf = in.get();
71 int info = 0;
72 magma_getrf_gpu<T>(M, N, (*in_buf)(), in.getOffset(), in.strides()[1],
73 &ipiv[0], getQueue()(), &info);
74
75 if (!convert_pivot) { return createHostDataArray<int>(dim4(MN), &ipiv[0]); }
76
77 Array<int> pivot = convertPivot(&ipiv[0], MN, M);
78 return pivot;
79}
80
81bool isLAPACKAvailable() { return true; }
82

Callers 1

luFunction · 0.70

Calls 9

OpenCLCPUOffloadFunction · 0.85
minFunction · 0.70
convertPivotFunction · 0.70
getQueueFunction · 0.50
dim4Class · 0.50
dimsMethod · 0.45
getMethod · 0.45
getOffsetMethod · 0.45
stridesMethod · 0.45

Tested by

no test coverage detected