trtrs_scratchpad_size

Computes size of scratchpad memory required for trtrs function.

Description

trtrs_scratchpad_size supports the following precisions.

T

float

double

std::complex<float>

std::complex<double>

Computes the number of elements of type T the scratchpad memory to be passed to trtrs function should be able to hold. Calls to this routine must specify the template parameter explicitly.

trtrs_scratchpad_size

Syntax

namespace oneapi::mkl::lapack {
  template <typename T>
  std::int64_t trtrs_scratchpad_size(cl::sycl::queue &queue, oneapi::mkl::uplo upper_lower, oneapi::mkl::transpose trans, oneapi::mkl::diag diag, std::int64_t n, std::int64_t nrhs, std::int64_t lda, std::int64_t ldb)
}

Input Parameters

queue

Device queue where calculations by trtrs function will be performed.

upper_lower

Indicates whether \(A\) is upper or lower triangular:

If upper_lower = uplo::upper, then \(A\) is upper triangular.

If upper_lower = uplo::lower, then \(A\) is lower triangular.

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\).

diag

If diag = oneapi::mkl::diag::nonunit, then \(A\) is not a unit triangular matrix.

If unit_diag = diag::unit, then \(A\) is unit triangular: diagonal elements of \(A\) are assumed to be 1 and not referenced in the array a.

n

The order of \(A\); the number of rows in \(B\); \(n \ge 0\).

nrhs

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

lda

The leading dimension of a; \(\text{lda} \ge \max(1, n)\).

ldb

The leading dimension of b; \(\text{ldb} \ge \max(1, n)\).

Return Value

The number of elements of type T the scratchpad memory to be passed to trtrs function should be able to hold.

Parent topic: LAPACK Linear Equation Routines