LAPACK  3.8.0
LAPACK: Linear Algebra PACKage

◆ zerrql()

subroutine zerrql ( character*3  PATH,
integer  NUNIT 
)

ZERRQL

Purpose:
 ZERRQL tests the error exits for the COMPLEX*16 routines
 that use the QL 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.
Date
December 2016

Definition at line 57 of file zerrql.f.

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