pub unsafe extern "C" fn cusolverDnDormtr(
handle: cusolverDnHandle_t,
side: cublasSideMode_t,
uplo: cublasFillMode_t,
trans: cublasOperation_t,
m: c_int,
n: c_int,
A: *mut f64,
lda: c_int,
tau: *mut f64,
C: *mut f64,
ldc: c_int,
work: *mut f64,
lwork: c_int,
info: *mut c_int,
) -> cusolverStatus_tExpand description
These helper functions calculate the size of work buffers needed.
The S and D data types are real valued single and double precision, respectively.
The C and Z data types are complex valued single and double precision, respectively.
This function overwrites $m \times n$ matrix C by:
$$
C =
\begin{cases}
\operatorname{op}(Q) * C & \text{if } side = \text{CUBLAS_SIDE_LEFT} \
C * \operatorname{op}(Q) & \text{if } side = \text{CUBLAS_SIDE_RIGHT}
\end{cases}
$$
where Q is a unitary matrix formed by a sequence of elementary reflection vectors from sytrd.
The operation on Q is defined by:
$$
\operatorname{op}(Q) =
\begin{cases}
Q & \text{if } transa = \text{CUBLAS_OP_N} \
Q^T & \text{if } transa = \text{CUBLAS_OP_T} \
Q^H & \text{if } transa = \text{CUBLAS_OP_C}
\end{cases}
$$
The user has to provide working space which is pointed by input parameter work. The input parameter lwork is size of the working space, and it is returned by ormtr_bufferSize(). Please note that the size in bytes of the working space is equal to sizeof(<type>) * lwork.
If output parameter devInfo = -i (less than zero), the i-th parameter is wrong (not counting handle).