ormtr#
Multiplies a real matrix by the real orthogonal matrix \(Q\) determined by sytrd.
Description
ormtr supports the following precisions.
T
float
double
The routine multiplies a real matrix \(C\) by \(Q\) or \(Q^{T}\), where \(Q\) is the orthogonal matrix \(Q\) formed by:ref:onemkl_lapack_sytrd when reducing a real symmetric matrix \(A\) to tridiagonal form: \(A = QTQ^T\). Use this routine after a call to sytrd.
Depending on the parameters side and trans, the routine can form one of the matrix products \(QC\), \(Q^TC\), \(CQ\), or \(CQ^T\) (overwriting the result on \(C\)).
ormtr (Buffer Version)#
Syntax
namespace oneapi::mkl::lapack {
void ormtr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo upper_lower, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, sycl::buffer<T,1> &a, std::int64_t lda, sycl::buffer<T,1> &tau, sycl::buffer<T,1> &c, std::int64_t ldc, sycl::buffer<T,1> &scratchpad, std::int64_t scratchpad_size)
}
Input Parameters
In the descriptions below, r denotes the order of \(Q\):
\(r = m\) |
if |
|---|---|
\(r = n\) |
if |
- queue
The queue where the routine should be executed.
- side
Must be either
side::leftorside::right.If
side = side::left, \(Q\) or \(Q^{T}\) is applied to \(C\) from the left.If
side = side::right, \(Q\) or \(Q^{T}\) is applied to \(C\) from the right.- upper_lower
Must be either
uplo::upperoruplo::lower. Uses the sameupper_loweras supplied to sytrd.- trans
Must be either
transpose::nontransortranspose::trans.If
trans = transpose::nontrans, the routine multiplies \(C\) by \(Q\).If
trans = transpose::trans, the routine multiplies \(C\) by \(Q^{T}\).- m
The number of rows in the matrix \(C\) \((m \ge 0)\).
- n
The number of columns in the matrix \(C\) \((n \ge 0)\).
- a
The buffer
aas returned by sytrd.- lda
The leading dimension of
a\((\max(1, r) \le \text{lda})\).- tau
The buffer
tauas returned bya sytrd. The dimension oftaumust be at least \(\max(1, r-1)\).- c
The buffer
ccontains the matrix \(C\). The second dimension ofcmust be at least \(\max(1, n)\).- ldc
The leading dimension of
c\((\max(1, n) \le \text{ldc})\).- scratchpad_size
Size of scratchpad memory as a number of floating point elements of type
T. Size should not be less than the value returned by ormtr_scratchpad_size function.
Output Parameters
- c
Overwritten by the product \(QC\), \(Q^TC\), \(CQ\), or \(CQ^T\) (as specified by
sideandtrans).- scratchpad
Buffer holding scratchpad memory to be used by routine for storing intermediate results.
ormtr (USM Version)#
Syntax
namespace oneapi::mkl::lapack {
sycl::event ormtr(sycl::queue &queue, oneapi::mkl::side side, oneapi::mkl::uplo upper_lower, oneapi::mkl::transpose trans, std::int64_t m, std::int64_t n, T *a, std::int64_t lda, T *tau, T *c, std::int64_t ldc, T *scratchpad, std::int64_t scratchpad_size, const std::vector<sycl::event> &events = {})
}
Input Parameters
In the descriptions below, r denotes the order of \(Q\):
\(r = m\) |
if |
|---|---|
\(r = n\) |
if |
- queue
The queue where the routine should be executed.
- side
Must be either
side::leftorside::right.If
side = side::left, \(Q\) or \(Q^{T}\) is applied to \(C\) from the left.If
side = side::right, \(Q\) or \(Q^{T}\) is applied to \(C\) from the right.- upper_lower
Must be either
uplo::upperoruplo::lower. Uses the sameupper_loweras supplied to sytrd.- trans
Must be either
transpose::nontransortranspose::trans.If
trans = transpose::nontrans, the routine multiplies \(C\) by \(Q\).If
trans = transpose::trans, the routine multiplies \(C\) by \(Q^{T}\).- m
The number of rows in the matrix \(C\) \((m \ge 0)\).
- n
The number of columns in the matrix \(C\) \((n \ge 0)\).
- a
The pointer to
aas returned by sytrd.- lda
The leading dimension of
a\((\max(1, r) \le \text{lda})\).- tau
The buffer
tauas returned by sytrd. The dimension oftaumust be at least \(\max(1, r-1)\).- c
The pointer to memory containing the matrix \(C\). The second dimension of
cmust be at least \(\max(1, n)\).- ldc
The leading dimension of
c\((\max(1, n) \le \text{ldc})\).- scratchpad_size
Size of scratchpad memory as a number of floating point elements of type
T. Size should not be less than the value returned by ormtr_scratchpad_size function.- events
List of events to wait for before starting computation. Defaults to empty list.
Output Parameters
- c
Overwritten by the product \(QC\), \(Q^TC\), \(CQ\), or \(CQ^T\) (as specified by
sideandtrans).- scratchpad
Pointer to scratchpad memory to be used by routine for storing intermediate results.
Return Values
Output event to wait on to ensure computation is complete.
Parent topic: LAPACK Singular Value and Eigenvalue Problem Routines