?gelqf
?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 matrixA().m≥0
- n
- The number of columns inA().n≥0
- a
- Arrayaof size max(1,contains the matrixlda*n) for column major layout and max(1,lda*m) for row major layoutA.
- lda
- The leading dimension ofa; 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 them-by-min(m,n) lower trapezoidal matrixL(Lis lower triangular ifm≤n); the elements above the diagonal, with the arraytau, represent the orthogonal matrixQas a product of elementary reflectors.
- tau
- Array, size at leastmax(1, min(.m,n))Contains scalars that define elementary reflectors for the matrixQ(see Orthogonal Factorizations).
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 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)n3
- if,m=n
- (2/3)n2(3m-n)
- if,m>n
- (2/3)m2(3n-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
||
for all columns A*x
- b
||2
b
of a given matrix B
, you can call the following:(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