Developer Reference

  • 2020.2
  • 07/15/2020
  • Public Content
Contents

?geql2

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

Syntax

call sgeql2
(
m
,
n
,
a
,
lda
,
tau
,
work
,
info
)
call dgeql2
(
m
,
n
,
a
,
lda
,
tau
,
work
,
info
)
call cgeql2
(
m
,
n
,
a
,
lda
,
tau
,
work
,
info
)
call zgeql2
(
m
,
n
,
a
,
lda
,
tau
,
work
,
info
)
Include Files
  • mkl.fi
Description
The routine computes a
QL
factorization of a real/complex
m
-by-
n
matrix
A
as
A
=
Q
*
L
.
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)
, 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
(
m
-k+i+1:
m
) = 0
and
v
(
m
-k+i) = 1
.
On exit,
v
(1:
m
-k+i-1)
is stored in
a
(1:
m
-k+i-1,
n
-k+i)
.
Input Parameters
m
INTEGER
. The number of rows in the matrix
A
(
m
0
).
n
INTEGER
. The number of columns in
A
(
n
0
).
a
,
work
REAL
for
sgeql2
DOUBLE PRECISION
for
dgeql2
COMPLEX
for
cgeql2
DOUBLE COMPLEX
for
zgeql2
.
Arrays:
a
(
lda
,*)
contains the
m
-by-
n
matrix
A
.
The second dimension of
a
must be at least
max(1,
n
)
.
work
(
m
) is a workspace array.
lda
INTEGER
. The leading dimension of
a
; at least
max(1,
m
)
.
Output Parameters
a
Overwritten by the factorization data as follows:
on exit, if
m
n
, the lower triangle of the subarray
a
(
m
-
n
+1:
m
, 1:
n
)
contains the
n
-by-
n
lower triangular matrix
L
; if
m
<
n
, the elements on and below the (
n
-
m
)th superdiagonal contain the
m
-by-
n
lower trapezoidal matrix
L
; the remaining elements, with the array
tau
, represent the orthogonal/unitary matrix
Q
as a product of elementary reflectors.
tau
REAL
for
sgeql2
DOUBLE PRECISION
for
dgeql2
COMPLEX
for
cgeql2
DOUBLE COMPLEX
for
zgeql2
.
Array,
DIMENSION
at least
max(1, min(