# getrs¶

Solves a system of linear equations with an LU-factored square coefficient matrix, with multiple right-hand sides.

Description

getrs supports the following precisions.

T

float

double

std::complex<float>

std::complex<double>

The routine solves for $$X$$ the following systems of linear equations:

$$AX = B$$

if trans=oneapi::mkl::transpose::nontrans

$$A^TX = B$$

if trans=oneapi::mkl::transpose::trans

$$A^HX = B$$

if trans=oneapi::mkl::transpose::conjtrans

Before calling this routine, you must call getrf to compute the LU factorization of $$A$$.

## getrs (Buffer Version)¶

Syntax

namespace oneapi::mkl::lapack {
void getrs(sycl::queue &queue, oneapi::mkl::transpose trans, std::int64_t n, std::int64_t nrhs, sycl::buffer<T,1> &a, std::int64_t lda, sycl::buffer<std::int64_t,1> &ipiv, sycl::buffer<T,1> &b, std::int64_t ldb, sycl::buffer<T,1> &scratchpad, std::int64_t scratchpad_size)
}


Input Parameters

queue

The queue where the routine should be executed.

trans

Indicates the form of the equations:

If trans=oneapi::mkl::transpose::nontrans, then $$AX = B$$ is solved for $$X$$.

If trans=oneapi::mkl::transpose::trans, then $$A^TX = B$$ is solved for $$X$$.

If trans=oneapi::mkl::transpose::conjtrans, then $$A^HX = B$$ is solved for $$X$$.

n

The order of the matrix $$A$$ and the number of rows in matrix $$B(0 \le n)$$.

nrhs

The number of right-hand sides ($$0 \le \text{nrhs}$$).

a

Buffer containing the factorization of the matrix $$A$$, as returned by getrf. The second dimension of a must be at least $$\max(1, n)$$.

lda

The leading dimension of a.

ipiv

Array, size at least $$\max(1, n)$$. The ipiv array, as returned by getrf.

b

The array b contains the matrix $$B$$ whose columns are the right-hand sides for the systems of equations. The second dimension of b must be at least $$\max(1,\text{nrhs})$$.

ldb

The leading dimension of b.

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

Output Parameters

b

The buffer b is overwritten by the solution matrix $$X$$.

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

## getrs (USM Version)¶

Syntax

namespace oneapi::mkl::lapack {
sycl::event getrs(sycl::queue &queue, oneapi::mkl::transpose trans, std::int64_t n, std::int64_t nrhs, T *a, std::int64_t lda, std::int64_t *ipiv, T *b, std::int64_t ldb, T *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {})
}


Input Parameters

queue

The queue where the routine should be executed.

trans

Indicates the form of the equations:

If trans=oneapi::mkl::transpose::nontrans, then $$AX = B$$ is solved for $$X$$.

If trans=oneapi::mkl::transpose::trans, then $$A^TX = B$$ is solved for $$X$$.

If trans=oneapi::mkl::transpose::conjtrans, then $$A^HX = B$$ is solved for $$X$$.

n

The order of the matrix $$A$$ and the number of rows in matrix $$B(0 \le n)$$.

nrhs

The number of right-hand sides ($$0 \le \text{nrhs}$$).

a

Pointer to array containing the factorization of the matrix $$A$$, as returned by getrf. The second dimension of a must be at least $$\max(1, n)$$.

lda

The leading dimension of a.

ipiv

Array, size at least $$\max(1, n)$$. The ipiv array, as returned by getrf.

b

The array b contains the matrix $$B$$ whose columns are the right-hand sides for the systems of equations. The second dimension of b must be at least $$\max(1,\text{nrhs})$$.

ldb

The leading dimension of b.

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

events

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

Output Parameters

b

The array b is overwritten by the solution matrix $$X$$.