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

Function solveLU

src/backend/opencl/solve.cpp:39–59  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37
38template<typename T>
39Array<T> solveLU(const Array<T> &A, const Array<int> &pivot, const Array<T> &b,
40 const af_mat_prop options) {
41 if (OpenCLCPUOffload()) { return cpu::solveLU(A, pivot, b, options); }
42
43 int N = A.dims()[0];
44 int NRHS = b.dims()[1];
45
46 vector<int> ipiv(N);
47 copyData(&ipiv[0], pivot);
48
49 Array<T> B = copyArray<T>(b);
50
51 const Buffer *A_buf = A.get();
52 Buffer *B_buf = B.get();
53
54 int info = 0;
55 magma_getrs_gpu<T>(MagmaNoTrans, N, NRHS, (*A_buf)(), A.getOffset(),
56 A.strides()[1], &ipiv[0], (*B_buf)(), B.getOffset(),
57 B.strides()[1], getQueue()(), &info);
58 return B;
59}
60
61template<typename T>
62Array<T> generalSolve(const Array<T> &a, const Array<T> &b) {

Callers

nothing calls this directly

Calls 7

OpenCLCPUOffloadFunction · 0.85
copyDataFunction · 0.70
getQueueFunction · 0.50
dimsMethod · 0.45
getMethod · 0.45
getOffsetMethod · 0.45
stridesMethod · 0.45

Tested by

no test coverage detected