Developer Reference

Contents

?gelq2

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

Syntax

lapack_int
LAPACKE_sgelq2
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
float
*
a
,
lapack_int
lda
,
float
*
tau
);
lapack_int
LAPACKE_dgelq2
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
double
*
a
,
lapack_int
lda
,
double
*
tau
);
lapack_int
LAPACKE_cgelq2
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
lapack_complex_float
*
a
,
lapack_int
lda
,
lapack_complex_float
*
tau
);
lapack_int
LAPACKE_zgelq2
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
lapack_complex_double
*
a
,
lapack_int
lda
,
lapack_complex_double
*
tau
);
Include Files
  • mkl.h
Description
The routine computes an
LQ
factorization of a real/complex
m
-by-
n
matrix
A
as
A
=
L
*
Q
.
The routine does not form the matrix
Q
explicitly. Instead,
Q
is represented as a product of min(
m
,
n
) elementary reflectors :
Q
=
H
(k) ...
H
(2)
H
(1)
(or
Q
=
H
(k)
H
...
H
(2)
H
H
(1)
H
for complex flavors), 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, the
j
-th (
i
+1
j
n
) component of vector
v
(for real functions) or its conjugate (for complex functions) is stored in
a
[
i
- 1 +
lda
*(
j
- 1)]
for column major layout or in
a
[
j
- 1 +
lda
*(
i
- 1)]
for row major layout.
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
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
Overwritten by the factorization data as follows:
on exit, the elements on and below the diagonal of the array
a
contain the
m
-by-min(
n
,
m
) lower trapezoidal matrix
L
(
L
is lower triangular if
n
m
); the elements above the diagonal, with the array
tau
, represent the orthogonal/unitary matrix
Q
as a product of min(
n
,
m
) 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.