1DGEQLF(1) LAPACK routine (version 3.2) DGEQLF(1)
2
3
4
6 DGEQLF - computes a QL factorization of a real M-by-N matrix A
7
9 SUBROUTINE DGEQLF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
10
11 INTEGER INFO, LDA, LWORK, M, N
12
13 DOUBLE PRECISION A( LDA, * ), TAU( * ), WORK( * )
14
16 DGEQLF computes a QL factorization of a real M-by-N matrix A: A = Q *
17 L.
18
20 M (input) INTEGER
21 The number of rows of the matrix A. M >= 0.
22
23 N (input) INTEGER
24 The number of columns of the matrix A. N >= 0.
25
26 A (input/output) DOUBLE PRECISION array, dimension (LDA,N)
27 On entry, the M-by-N matrix A. On exit, if m >= n, the lower
28 triangle of the subarray A(m-n+1:m,1:n) contains the N-by-N
29 lower triangular matrix L; if m <= n, the elements on and below
30 the (n-m)-th superdiagonal contain the M-by-N lower trapezoidal
31 matrix L; the remaining elements, with the array TAU, represent
32 the orthogonal matrix Q as a product of elementary reflectors
33 (see Further Details). LDA (input) INTEGER The leading
34 dimension of the array A. LDA >= max(1,M).
35
36 TAU (output) DOUBLE PRECISION array, dimension (min(M,N))
37 The scalar factors of the elementary reflectors (see Further
38 Details).
39
40 WORK (workspace/output) DOUBLE PRECISION array, dimension
41 (MAX(1,LWORK))
42 On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
43
44 LWORK (input) INTEGER
45 The dimension of the array WORK. LWORK >= max(1,N). For opti‐
46 mum performance LWORK >= N*NB, where NB is the optimal block‐
47 size. If LWORK = -1, then a workspace query is assumed; the
48 routine only calculates the optimal size of the WORK array,
49 returns this value as the first entry of the WORK array, and no
50 error message related to LWORK is issued by XERBLA.
51
52 INFO (output) INTEGER
53 = 0: successful exit
54 < 0: if INFO = -i, the i-th argument had an illegal value
55
57 The matrix Q is represented as a product of elementary reflectors
58 Q = H(k) . . . H(2) H(1), where k = min(m,n).
59 Each H(i) has the form
60 H(i) = I - tau * v * v'
61 where tau is a real scalar, and v is a real vector with
62 v(m-k+i+1:m) = 0 and v(m-k+i) = 1; v(1:m-k+i-1) is stored on exit in
63 A(1:m-k+i-1,n-k+i), and tau in TAU(i).
64
65
66
67 LAPACK routine (version 3.2) November 2008 DGEQLF(1)