Developer Reference

  • 2021.1
  • 12/04/2020
  • Public Content
Contents

?gelqf

Computes the LQ factorization of a general m-by-n matrix.

Syntax

lapack_int
LAPACKE_sgelqf
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
float
*
a
,
lapack_int
lda
,
float
*
tau
);
lapack_int
LAPACKE_dgelqf
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
double
*
a
,
lapack_int
lda
,
double
*
tau
);
lapack_int
LAPACKE_cgelqf
(
int
matrix_layout
,
lapack_int
m
,
lapack_int
n
,
lapack_complex_float
*
a
,
lapack_int
lda
,
lapack_complex_float
*
tau
);
lapack_int
LAPACKE_zgelqf
(
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 forms the
LQ
factorization of a general
m
-by-
n
matrix
A
(seeOrthogonal Factorizations). No pivoting is performed.
The routine does not form the matrix
Q
explicitly. Instead,
Q
is represented as a product of min(
m
,
n
) elementary reflectors. Routines are provided to work with
Q
in this representation.
This routine supports the Progress Routine feature. See Progress Function for details.
Input Parameters
matrix_layout
Specifies whether matrix storage layout is row major (
LAPACK_ROW_MAJOR
) or column major (
LAPACK_COL_MAJOR
).
m
The number of rows in the matrix
A
(
m
0
).
n
The number of columns in
A
(
n
0
).
a
Array
a
of size max(1,
lda
*
n
) for column major layout and max(1,
lda
*
m
) for row major layout
contains the 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:
The elements on and below the diagonal of the array contain the
m
-by-min(
m
,
n
) lower trapezoidal matrix
L
(
L
is lower triangular if
m
n
); the elements above the diagonal, with the array
tau
, represent the orthogonal matrix
Q
as a product of elementary reflectors.
tau
Array, size at least
max(1, min(
m
,
n
))
.
Contains scalars that define elementary reflectors for the matrix
Q
(see Orthogonal Factorizations).
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 factorization is the exact factorization of a matrix
A
+
E
, where
||
E
||
2
=
O
(
ε
) ||
A
||
2
.
The approximate number of floating-point operations for real flavors is
(4/3)
n
3
if
m
=
n
,
(2/3)
n
2
(3
m
-
n
)
if
m
>
n
,
(2/3)
m
2
(3
n
-
m
)
if
m
<
n
.
The number of operations for complex flavors is 4 times greater.
To find the minimum-norm solution of an underdetermined least squares problem minimizing
||
A*x
-
b
||
2
for all columns
b
of a given matrix
B
, you can call the following:
?gelqf
(this routine)
to factorize
A
=
L*Q
;
trsm (a BLAS routine)
to solve
L*Y
=
B
for
Y
;
to compute
X
= (
Q
1
)
T
*Y
(for real matrices);
to compute
X
= (
Q
1
)
H
*Y
(for complex matrices).
(The columns of the computed
X
are the minimum-norm solution vectors
x
. Here
A
is an
m
-by-
n
matrix with
m
<
n
;
Q
1
denotes the first
m
columns of
Q
).
To compute the elements of
Q
explicitly, call
(for real matrices)
(for complex matrices).

Product and Performance Information

1

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