# getrf¶

Computes the LU factorization of a general $$m \times n$$ matrix.

Description

getrf supports the following precisions.

T

float

double

std::complex<float>

std::complex<double>

The routine computes the LU factorization of a general $$m \times n$$ matrix $$A$$ as $$A = PLU$$,

where $$P$$ is a permutation matrix, $$L$$ is lower triangular with unit diagonal elements (lower trapezoidal if $$m > n$$) and $$U$$ is upper triangular (upper trapezoidal if $$m < n$$). The routine uses partial pivoting, with row interchanges.

## getrf (BUFFER Version)¶

Syntax

namespace oneapi::mkl::lapack {
void getrf(cl::sycl::queue &queue, std::int64_t m, std::int64_t n, cl::sycl::buffer<T,1> &a, std::int64_t lda, cl::sycl::buffer<std::int64_t,1> &ipiv, cl::sycl::buffer<T,1> &scratchpad, std::int64_t scratchpad_size)
}


Input Parameters

queue

The queue where the routine should be executed.

m

The number of rows in the matrix $$A$$ ($$0 \le m$$).

n

The number of columns in $$A$$ ($$0 \le n$$).

a

Buffer holding input matrix $$A$$. The buffer a contains the matrix $$A$$. The second dimension of a must be at least $$\max(1, n)$$.

lda

The leading dimension of a.

Size of scratchpad memory as a number of floating point elements of type T. Size should not be less than the value returned by getrf_scratchpad_size function.

Output Parameters

a

Overwritten by $$L$$ and $$U$$. The unit diagonal elements of $$L$$ are not stored.

ipiv

Array, size at least $$\max(1,\min(m, n))$$. Contains the pivot indices; for $$1 \le i \le \min(m, n)$$, row $$i$$ was interchanged with row $$\text{ipiv}(i)$$.

Buffer holding scratchpad memory to be used by routine for storing intermediate results.

## getrf (USM Version)¶

Syntax

namespace oneapi::mkl::lapack {
cl::sycl::event getrf(cl::sycl::queue &queue, std::int64_t m, std::int64_t n, T *a, std::int64_t lda, std::int64_t *ipiv, T *scratchpad, std::int64_t scratchpad_size, const cl::sycl::vector_class<cl::sycl::event> &events = {})
}


Input Parameters

queue

The queue where the routine should be executed.

m

The number of rows in the matrix $$A$$ ($$0 \le m$$).

n

The number of columns in $$A$$ ($$0 \le n$$).

a

Pointer to array holding input matrix $$A$$. The second dimension of a must be at least $$\max(1, n)$$.

lda

The leading dimension of a.

Size of scratchpad memory as a number of floating point elements of type T. Size should not be less than the value returned by getrf_scratchpad_size function.

events

List of events to wait for before starting computation. Defaults to empty list.

Output Parameters

a

Overwritten by $$L$$ and $$U$$. The unit diagonal elements of $$L$$ are not stored.

ipiv

Array, size at least $$\max(1,\min(m, n))$$. Contains the pivot indices; for $$1 \le i \le \min(m, n)$$, row $$i$$ was interchanged with row $$\text{ipiv}(i)$$.