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