ormtr
Multiplies a real matrix by the real orthogonal matrix
Q
determined
by sytrd. This routine belongs to the oneapi::mkl::lapack
namespace.Description
Depending on the parameters left_right and trans, the routine can
form one of the matrix products
Q*C
, QT*C
, C*Q
, or
C*QT
(overwriting the result on C
).The routine multiplies a real matrix
C
by Q
orAPI
Syntax
namespace oneapi::mkl::lapack {
void ormtr(cl::sycl::queue &queue,
mkl::side side,
mkl::uplo uplo,
mkl::transpose trans,
std::int64_t m,
std::int64_t n,
cl::sycl::buffer<T> &a,
std::int64_t lda,
cl::sycl::buffer<T> &tau,
cl::sycl::buffer<T> &c,
std::int64_t ldc,
cl::sycl::buffer<T> &scratchpad,
std::int64_t scratchpad_size)
}
ormtr
supports the following precisions and devices:T | Devices supported |
---|---|
float | Host and CPU |
double | Host and CPU |
Input Parameters
In the descriptions below,
r
denotes the order of Q
:r = m | if left_right = side::left |
---|---|
r = n | if left_right = side::right |
- queue
- Device queue where calculations will be performed.
- side
- Must be eitherside::leftorside::right.Ifside = side::left,QorQTis applied toCfrom the left.Ifside = side::right,QorQTis applied toCfrom the right.
- uplo
- trans
- Must be eithertranspose::nontransortranspose::trans.Iftrans = transpose::nontrans, the routine multipliesCbyQ.Iftrans = transpose::trans, the routine multipliesCbyQT.
- m
- The number of rows in the matrixC(m ≥ 0).
- n
- The number of columns in the matrixC(n ≥ 0).
- a
- Buffer holding array returned by sytrd.
- lda
- The leading dimension of a(max(1, r) ≤ lda).
- tau
- Buffer holding tau returned by sytrd. The dimension of tau must be at leastmax(1, r-1).
- c
- Buffer holding the matrixC. The second dimension of c must be at leastmax(1, n).
- ldc
- The leading dimension of c(max(1, n) ≤ ldc).
- scratchpad
- Buffer holding scratchpad memory to be used by the routine for storing intermediate results.
- scratchpad_size
- Size of scratchpad memory as a number of floating point elements of typeT. Size should not be less than the value returned by the ormtr_scratchpad_size function.
Output Parameters
- c
- Overwritten by the productQ*C,QT*C,C*Q, orC*QT(as specified by side and trans).
Exceptions
Exception | Description |
---|---|
mkl::lapack::exception | This exception is thrown when problems occur during calculations. You can obtain the info code of the problem using the info() method of the exception object: If info = -i , the i -th parameter had an illegal value.If info is equal to the value passed as scratchpad size, and detail() returns non-zero, then the passed scratchpad has an insufficient size, and the required size should not be less than the value returned by the detail() method of the exception object. |