Developer Reference

Contents

?ungqr

Generates the complex unitary matrix Q of the QR factorization formed by
?geqrf
.

Syntax

lapack_int
LAPACKE_cungqr
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
lapack_int
k
,
lapack_complex_float
*
a
,
lapack_int
lda
,
const
lapack_complex_float
*
tau
);
lapack_int
LAPACKE_zungqr
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
lapack_int
k
,
lapack_complex_double
*
a
,
lapack_int
lda
,
const
lapack_complex_double
*
tau
);
Include Files
  • mkl.h
Description
The routine generates the whole or part of
m
-by-
m
unitary matrix
Q
of the
QR
factorization formed by the routines
?geqrf
or geqpf . Use this routine after a call to
cgeqrf
/
zgeqrf
or
cgeqpf
/
zgeqpf
.
Usually
Q
is determined from the
QR
factorization of an
m
by
p
matrix
A
with
m
p
. To compute the whole matrix
Q
, use:
LAPACKE_
?ungqr
(
matrix_layout
,
m
,
m
,
p
,
a
,
lda
,
tau
)
To compute the leading
p
columns of
Q
(which form an orthonormal basis in the space spanned by the columns of
A
):
LAPACKE_
?ungqr
(
matrix_layout
,
m
,
p
,
p
,
a
,
lda
,
tau
)
To compute the matrix
Q
k
of the
QR
factorization of the leading
k
columns of the matrix
A
:
LAPACKE_
?ungqr
(
matrix_layout
,
m
,
m
,
k
,
a
,
lda
,
tau
)
To compute the leading
k
columns of
Q
k
(which form an orthonormal basis in the space spanned by the leading
k
columns of the matrix
A
):
LAPACKE_
?ungqr
(
matrix_layout
,
m
,
k
,
k
,
a
,
lda
,
tau
)
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
m
The order of the unitary matrix
Q
(
m
0
).
n
The number of columns of
Q
to be computed
(0
n
m
).
k
The number of elementary reflectors whose product defines the matrix
Q
(0
k
n
).
a
,
tau
Arrays:
a
and
tau
are the arrays returned by
cgeqrf
/
zgeqrf
or
cgeqpf
/
zgeqpf
.
The size of
a
is max(1,
lda
*
n
) for column major layout and max(1,
lda
*
m
) for row major layout .
The size of
tau
must be at least max(1,
k
).
lda
The leading dimension of
a
; at least max(1,
m
)
for column major layout and max(1,
n
) for row major layout
.
Output Parameters
a
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
Q
differs from an exactly unitary matrix by a matrix
E
such that
||
E
||
2
=
O
(
ε
)*||
A
||
2
, where
ε
is the machine precision.
The total number of floating-point operations is approximately
16*
m
*
n
*
k
- 8*(
m
+
n
)*
k
2
+ (16/3)*
k
3
.
If
n
=
k
, the number is approximately
(8/3)*
n
2
*(3
m
-
n
)
.
The real counterpart of this routine is orgqr .

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804