LAPACK  3.10.0
LAPACK: Linear Algebra PACKage

◆ zerrlq()

subroutine zerrlq ( character*3  PATH,
integer  NUNIT 
)

ZERRLQ

Purpose:
 ZERRLQ tests the error exits for the COMPLEX*16 routines
 that use the LQ decomposition of a general matrix.
Parameters
[in]PATH
          PATH is CHARACTER*3
          The LAPACK path name for the routines to be tested.
[in]NUNIT
          NUNIT is INTEGER
          The unit number for output.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.

Definition at line 54 of file zerrlq.f.

55 *
56 * -- LAPACK test routine --
57 * -- LAPACK is a software package provided by Univ. of Tennessee, --
58 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
59 *
60 * .. Scalar Arguments ..
61  CHARACTER*3 PATH
62  INTEGER NUNIT
63 * ..
64 *
65 * =====================================================================
66 *
67 * .. Parameters ..
68  INTEGER NMAX
69  parameter( nmax = 2 )
70 * ..
71 * .. Local Scalars ..
72  INTEGER I, INFO, J
73 * ..
74 * .. Local Arrays ..
75  COMPLEX*16 A( NMAX, NMAX ), AF( NMAX, NMAX ), B( NMAX ),
76  $ W( NMAX ), X( NMAX )
77 * ..
78 * .. External Subroutines ..
79  EXTERNAL alaesm, chkxer, zgelq2, zgelqf, zgelqs, zungl2,
80  $ zunglq, zunml2, zunmlq
81 * ..
82 * .. Scalars in Common ..
83  LOGICAL LERR, OK
84  CHARACTER*32 SRNAMT
85  INTEGER INFOT, NOUT
86 * ..
87 * .. Common blocks ..
88  COMMON / infoc / infot, nout, ok, lerr
89  COMMON / srnamc / srnamt
90 * ..
91 * .. Intrinsic Functions ..
92  INTRINSIC dble, dcmplx
93 * ..
94 * .. Executable Statements ..
95 *
96  nout = nunit
97  WRITE( nout, fmt = * )
98 *
99 * Set the variables to innocuous values.
100 *
101  DO 20 j = 1, nmax
102  DO 10 i = 1, nmax
103  a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
104  $ -1.d0 / dble( i+j ) )
105  af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
106  $ -1.d0 / dble( i+j ) )
107  10 CONTINUE
108  b( j ) = 0.d0
109  w( j ) = 0.d0
110  x( j ) = 0.d0
111  20 CONTINUE
112  ok = .true.
113 *
114 * Error exits for LQ factorization
115 *
116 * ZGELQF
117 *
118  srnamt = 'ZGELQF'
119  infot = 1
120  CALL zgelqf( -1, 0, a, 1, b, w, 1, info )
121  CALL chkxer( 'ZGELQF', infot, nout, lerr, ok )
122  infot = 2
123  CALL zgelqf( 0, -1, a, 1, b, w, 1, info )
124  CALL chkxer( 'ZGELQF', infot, nout, lerr, ok )
125  infot = 4
126  CALL zgelqf( 2, 1, a, 1, b, w, 2, info )
127  CALL chkxer( 'ZGELQF', infot, nout, lerr, ok )
128  infot = 7
129  CALL zgelqf( 2, 1, a, 2, b, w, 1, info )
130  CALL chkxer( 'ZGELQF', infot, nout, lerr, ok )
131 *
132 * ZGELQ2
133 *
134  srnamt = 'ZGELQ2'
135  infot = 1
136  CALL zgelq2( -1, 0, a, 1, b, w, info )
137  CALL chkxer( 'ZGELQ2', infot, nout, lerr, ok )
138  infot = 2
139  CALL zgelq2( 0, -1, a, 1, b, w, info )
140  CALL chkxer( 'ZGELQ2', infot, nout, lerr, ok )
141  infot = 4
142  CALL zgelq2( 2, 1, a, 1, b, w, info )
143  CALL chkxer( 'ZGELQ2', infot, nout, lerr, ok )
144 *
145 * ZGELQS
146 *
147  srnamt = 'ZGELQS'
148  infot = 1
149  CALL zgelqs( -1, 0, 0, a, 1, x, b, 1, w, 1, info )
150  CALL chkxer( 'ZGELQS', infot, nout, lerr, ok )
151  infot = 2
152  CALL zgelqs( 0, -1, 0, a, 1, x, b, 1, w, 1, info )
153  CALL chkxer( 'ZGELQS', infot, nout, lerr, ok )
154  infot = 2
155  CALL zgelqs( 2, 1, 0, a, 2, x, b, 1, w, 1, info )
156  CALL chkxer( 'ZGELQS', infot, nout, lerr, ok )
157  infot = 3
158  CALL zgelqs( 0, 0, -1, a, 1, x, b, 1, w, 1, info )
159  CALL chkxer( 'ZGELQS', infot, nout, lerr, ok )
160  infot = 5
161  CALL zgelqs( 2, 2, 0, a, 1, x, b, 2, w, 1, info )
162  CALL chkxer( 'ZGELQS', infot, nout, lerr, ok )
163  infot = 8
164  CALL zgelqs( 1, 2, 0, a, 1, x, b, 1, w, 1, info )
165  CALL chkxer( 'ZGELQS', infot, nout, lerr, ok )
166  infot = 10
167  CALL zgelqs( 1, 1, 2, a, 1, x, b, 1, w, 1, info )
168  CALL chkxer( 'ZGELQS', infot, nout, lerr, ok )
169 *
170 * ZUNGLQ
171 *
172  srnamt = 'ZUNGLQ'
173  infot = 1
174  CALL zunglq( -1, 0, 0, a, 1, x, w, 1, info )
175  CALL chkxer( 'ZUNGLQ', infot, nout, lerr, ok )
176  infot = 2
177  CALL zunglq( 0, -1, 0, a, 1, x, w, 1, info )
178  CALL chkxer( 'ZUNGLQ', infot, nout, lerr, ok )
179  infot = 2
180  CALL zunglq( 2, 1, 0, a, 2, x, w, 2, info )
181  CALL chkxer( 'ZUNGLQ', infot, nout, lerr, ok )
182  infot = 3
183  CALL zunglq( 0, 0, -1, a, 1, x, w, 1, info )
184  CALL chkxer( 'ZUNGLQ', infot, nout, lerr, ok )
185  infot = 3
186  CALL zunglq( 1, 1, 2, a, 1, x, w, 1, info )
187  CALL chkxer( 'ZUNGLQ', infot, nout, lerr, ok )
188  infot = 5
189  CALL zunglq( 2, 2, 0, a, 1, x, w, 2, info )
190  CALL chkxer( 'ZUNGLQ', infot, nout, lerr, ok )
191  infot = 8
192  CALL zunglq( 2, 2, 0, a, 2, x, w, 1, info )
193  CALL chkxer( 'ZUNGLQ', infot, nout, lerr, ok )
194 *
195 * ZUNGL2
196 *
197  srnamt = 'ZUNGL2'
198  infot = 1
199  CALL zungl2( -1, 0, 0, a, 1, x, w, info )
200  CALL chkxer( 'ZUNGL2', infot, nout, lerr, ok )
201  infot = 2
202  CALL zungl2( 0, -1, 0, a, 1, x, w, info )
203  CALL chkxer( 'ZUNGL2', infot, nout, lerr, ok )
204  infot = 2
205  CALL zungl2( 2, 1, 0, a, 2, x, w, info )
206  CALL chkxer( 'ZUNGL2', infot, nout, lerr, ok )
207  infot = 3
208  CALL zungl2( 0, 0, -1, a, 1, x, w, info )
209  CALL chkxer( 'ZUNGL2', infot, nout, lerr, ok )
210  infot = 3
211  CALL zungl2( 1, 1, 2, a, 1, x, w, info )
212  CALL chkxer( 'ZUNGL2', infot, nout, lerr, ok )
213  infot = 5
214  CALL zungl2( 2, 2, 0, a, 1, x, w, info )
215  CALL chkxer( 'ZUNGL2', infot, nout, lerr, ok )
216 *
217 * ZUNMLQ
218 *
219  srnamt = 'ZUNMLQ'
220  infot = 1
221  CALL zunmlq( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
222  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
223  infot = 2
224  CALL zunmlq( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
225  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
226  infot = 3
227  CALL zunmlq( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, 1, info )
228  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
229  infot = 4
230  CALL zunmlq( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, 1, info )
231  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
232  infot = 5
233  CALL zunmlq( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, 1, info )
234  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
235  infot = 5
236  CALL zunmlq( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, 1, info )
237  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
238  infot = 5
239  CALL zunmlq( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, 1, info )
240  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
241  infot = 7
242  CALL zunmlq( 'L', 'N', 2, 0, 2, a, 1, x, af, 2, w, 1, info )
243  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
244  infot = 7
245  CALL zunmlq( 'R', 'N', 0, 2, 2, a, 1, x, af, 1, w, 1, info )
246  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
247  infot = 10
248  CALL zunmlq( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, 1, info )
249  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
250  infot = 12
251  CALL zunmlq( 'L', 'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
252  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
253  infot = 12
254  CALL zunmlq( 'R', 'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
255  CALL chkxer( 'ZUNMLQ', infot, nout, lerr, ok )
256 *
257 * ZUNML2
258 *
259  srnamt = 'ZUNML2'
260  infot = 1
261  CALL zunml2( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, info )
262  CALL chkxer( 'ZUNML2', infot, nout, lerr, ok )
263  infot = 2
264  CALL zunml2( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, info )
265  CALL chkxer( 'ZUNML2', infot, nout, lerr, ok )
266  infot = 3
267  CALL zunml2( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, info )
268  CALL chkxer( 'ZUNML2', infot, nout, lerr, ok )
269  infot = 4
270  CALL zunml2( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, info )
271  CALL chkxer( 'ZUNML2', infot, nout, lerr, ok )
272  infot = 5
273  CALL zunml2( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, info )
274  CALL chkxer( 'ZUNML2', infot, nout, lerr, ok )
275  infot = 5
276  CALL zunml2( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, info )
277  CALL chkxer( 'ZUNML2', infot, nout, lerr, ok )
278  infot = 5
279  CALL zunml2( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, info )
280  CALL chkxer( 'ZUNML2', infot, nout, lerr, ok )
281  infot = 7
282  CALL zunml2( 'L', 'N', 2, 1, 2, a, 1, x, af, 2, w, info )
283  CALL chkxer( 'ZUNML2', infot, nout, lerr, ok )
284  infot = 7
285  CALL zunml2( 'R', 'N', 1, 2, 2, a, 1, x, af, 1, w, info )
286  CALL chkxer( 'ZUNML2', infot, nout, lerr, ok )
287  infot = 10
288  CALL zunml2( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, info )
289  CALL chkxer( 'ZUNML2', infot, nout, lerr, ok )
290 *
291 * Print a summary line.
292 *
293  CALL alaesm( path, ok, nout )
294 *
295  RETURN
296 *
297 * End of ZERRLQ
298 *
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
Definition: cblat2.f:3196
subroutine alaesm(PATH, OK, NOUT)
ALAESM
Definition: alaesm.f:63
subroutine zgelqs(M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
ZGELQS
Definition: zgelqs.f:121
subroutine zgelqf(M, N, A, LDA, TAU, WORK, LWORK, INFO)
ZGELQF
Definition: zgelqf.f:143
subroutine zgelq2(M, N, A, LDA, TAU, WORK, INFO)
ZGELQ2 computes the LQ factorization of a general rectangular matrix using an unblocked algorithm.
Definition: zgelq2.f:129
subroutine zunmlq(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMLQ
Definition: zunmlq.f:167
subroutine zunglq(M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
ZUNGLQ
Definition: zunglq.f:127
subroutine zungl2(M, N, K, A, LDA, TAU, WORK, INFO)
ZUNGL2 generates all or part of the unitary matrix Q from an LQ factorization determined by cgelqf (u...
Definition: zungl2.f:113
subroutine zunml2(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO)
ZUNML2 multiplies a general matrix by the unitary matrix from a LQ factorization determined by cgelqf...
Definition: zunml2.f:159
Here is the call graph for this function:
Here is the caller graph for this function: