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