Contents

# ?geqr2

Computes the QR factorization of a general rectangular matrix using an unblocked algorithm.

## Syntax

Include Files
• mkl.h
Description
The routine computes a
QR
factorization of a real/complex
m
-by-
n
matrix
A
as
A
=
Q
*
R
.
The routine does not form the matrix
Q
Q
is represented as a product of min(
m
,
n
) elementary reflectors :
Q
=
H
(1)
*H
(2)* ...
*H
(k)
, where
k
= min(
m
,
n
)
Each
H
(i) has the form
H
(i) =
I
-
tau
*
v
*
v
T
for real flavors, or
H
(i) =
I
-
tau
*
v
*
v
H
for complex flavors
where
tau
is a real/complex scalar stored in
tau
[
i
]
, and
v
is a real/complex vector with
v
1:i-1
= 0
and
v
i
= 1
.
On exit,
v
i+1:
m
is stored in
a
(i+1:
m
, i)
.
Input Parameters
A
<datatype>
placeholder, if present, is used for the C interface data types in the C interface section above. See C Interface Conventions for the C interface principal conventions and type definitions.
m
The number of rows in the matrix
A
(
m
0
).
n
The number of columns in
A
(
n
0
).
a
Array, size at least
max(1,
lda
*
n
)
for column major and
max(1,
lda
*
m
)
for row major layout. Array
a
contains the
m
-by-
n
matrix
A
.
lda
a
; at least max(1,
m
)
for column major layout and max(1,
n
) for row major layout
.
Output Parameters
a
Overwritten by the factorization data as follows:
on exit, the elements on and above the diagonal of the array
a
contain the min(
n
,
m
)-by-
n
upper trapezoidal matrix
R
(
R
is upper triangular if
m
n
); the elements below the diagonal, with the array
tau
, represent the orthogonal/unitary matrix
Q
as a product of elementary reflectors.
tau
Array, size at least
max(1, min(
m
,
n
))
.
Contains scalar factors of the elementary reflectors.
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.
If
info
= -1011
, memory allocation error occurred.

#### Product and Performance Information

1

Performance varies by use, configuration and other factors. Learn more at www.Intel.com/PerformanceIndex.