?ungtr
?ungtr
Generates the complex unitary matrix Q determined by .
?hetrd
Syntax
lapack_int
LAPACKE_cungtr
(
int
matrix_layout
,
char
uplo
,
lapack_int
n
,
lapack_complex_float
*
a
,
lapack_int
lda
,
const
lapack_complex_float
*
tau
);
lapack_int
LAPACKE_zungtr
(
int
matrix_layout
,
char
uplo
,
lapack_int
n
,
lapack_complex_double
*
a
,
lapack_int
lda
,
const
lapack_complex_double
*
tau
);
Include Files
- mkl.h
Description
The routine explicitly generates the when reducing a complex Hermitian matrix . Use this routine after a call to .
n
-by-n
unitary matrix Q
formed by ?hetrd
A
to tridiagonal form: A
= Q*T*Q
H
?hetrd
Input Parameters
- matrix_layout
- Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).
- uplo
- Must be'U'or'L'.Use the sameuploas supplied to?hetrd.
- n
- The order of the matrixQ().n≥0
- a,tau
- Arrays:a(size max(1,is the arraylda*n))aas returned by?hetrd.tauis the arraytauas returned by?hetrd.The dimension oftaumust be at least max(1,n-1).
- lda
- The leading dimension ofa; at least max(1,n).
Output Parameters
- a
- Overwritten by the unitary matrixQ.
Return Values
This function returns a value
info
.If , the execution is successful.
info
=0If , the
info
= -i
i
-th parameter had an illegal value.Application Notes
The computed matrix
Q
differs from an exactly unitary matrix by a matrix E
such that ||
, where ε is the machine precision.E
||2
= O
(ε
)The approximate number of floating-point operations is
(16/3)
.n
3
The real counterpart of this routine is orgtr.