Developer Reference for Intel® oneAPI Math Kernel Library for C
?unmtr
Multiplies a complex matrix by the complex unitary matrix Q determined by ?hetrd.
Syntax
lapack_int LAPACKE_cunmtr (int matrix_layout, char side, char uplo, char trans, lapack_int m, lapack_int n, const lapack_complex_float* a, lapack_int lda, const lapack_complex_float* tau, lapack_complex_float* c, lapack_int ldc);
lapack_int LAPACKE_zunmtr (int matrix_layout, char side, char uplo, char trans, lapack_int m, lapack_int n, const lapack_complex_double* a, lapack_int lda, const lapack_complex_double* tau, lapack_complex_double* c, lapack_int ldc);
Include Files
- mkl.h
Description
The routine multiplies a complex matrix C by Q or QH, where Q is the unitary matrix Q formed by ?hetrd when reducing a complex Hermitian matrix A to tridiagonal form: A = Q*T*QH. Use this routine after a call to ?hetrd.
Depending on the parameters side and trans, the routine can form one of the matrix products Q*C, QH*C, C*Q, or C*QH (overwriting the result on C).
Input Parameters
In the descriptions below, r denotes the order of Q:
If side = 'L', r = m; if side = 'R', r = n.
- matrix_layout
-  
     Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR). 
- side
-  
     Must be either 'L' or 'R'. If side = 'L', Q or QH is applied to C from the left. If side = 'R', Q or QH is applied to C from the right. 
- uplo
-  
     Must be 'U' or 'L'. Use the same uplo as supplied to ?hetrd. 
- trans
-  
     Must be either 'N' or 'T'. If trans = 'N', the routine multiplies C by Q. If trans = 'C', the routine multiplies C by QH. 
- m
-  
     The number of rows in the matrix C (m≥ 0). 
- n
-  
     The number of columns in C (n≥ 0). 
- a, c, tau
-  
     a (size max(1, lda*r)) and tau are the arrays returned by ?hetrd. The dimension of tau must be at least max(1, r-1). c(size max(1, ldc*n) for column major layout and max(1, ldc*m) for row major layout) contains the matrix C. 
- lda
-  
     The leading dimension of a; lda≥ max(1, r). 
- ldc
-  
     The leading dimension of c; ldc≥ max(1, n) for column major layout and ldc≥ max(1, m) for row major layout . 
Output Parameters
- c
-  
     Overwritten by the product Q*C, QH*C, C*Q, or C*QH (as specified by side and trans). 
Return Values
This function returns a value info.
If info=0, the execution is successful.
If info = -i, the i-th parameter had an illegal value.
Application Notes
The computed product differs from the exact product by a matrix E such that ||E||2 = O(ε)*||C||2, where ε is the machine precision.
The total number of floating-point operations is approximately 8*m2*n if side = 'L' or 8*n2*m if side = 'R'.
The real counterpart of this routine is ormtr.