LAPACK 3.12.0
LAPACK: Linear Algebra PACKage
Loading...
Searching...
No Matches

◆ 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.

Definition at line 54 of file zerrql.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, zgeql2, zgeqlf, zgeqls, zung2l,
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 QL factorization
115*
116* ZGEQLF
117*
118 srnamt = 'ZGEQLF'
119 infot = 1
120 CALL zgeqlf( -1, 0, a, 1, b, w, 1, info )
121 CALL chkxer( 'ZGEQLF', infot, nout, lerr, ok )
122 infot = 2
123 CALL zgeqlf( 0, -1, a, 1, b, w, 1, info )
124 CALL chkxer( 'ZGEQLF', infot, nout, lerr, ok )
125 infot = 4
126 CALL zgeqlf( 2, 1, a, 1, b, w, 1, info )
127 CALL chkxer( 'ZGEQLF', infot, nout, lerr, ok )
128 infot = 7
129 CALL zgeqlf( 1, 2, a, 1, b, w, 1, info )
130 CALL chkxer( 'ZGEQLF', infot, nout, lerr, ok )
131*
132* ZGEQL2
133*
134 srnamt = 'ZGEQL2'
135 infot = 1
136 CALL zgeql2( -1, 0, a, 1, b, w, info )
137 CALL chkxer( 'ZGEQL2', infot, nout, lerr, ok )
138 infot = 2
139 CALL zgeql2( 0, -1, a, 1, b, w, info )
140 CALL chkxer( 'ZGEQL2', infot, nout, lerr, ok )
141 infot = 4
142 CALL zgeql2( 2, 1, a, 1, b, w, info )
143 CALL chkxer( 'ZGEQL2', infot, nout, lerr, ok )
144*
145* ZGEQLS
146*
147 srnamt = 'ZGEQLS'
148 infot = 1
149 CALL zgeqls( -1, 0, 0, a, 1, x, b, 1, w, 1, info )
150 CALL chkxer( 'ZGEQLS', infot, nout, lerr, ok )
151 infot = 2
152 CALL zgeqls( 0, -1, 0, a, 1, x, b, 1, w, 1, info )
153 CALL chkxer( 'ZGEQLS', infot, nout, lerr, ok )
154 infot = 2
155 CALL zgeqls( 1, 2, 0, a, 1, x, b, 1, w, 1, info )
156 CALL chkxer( 'ZGEQLS', infot, nout, lerr, ok )
157 infot = 3
158 CALL zgeqls( 0, 0, -1, a, 1, x, b, 1, w, 1, info )
159 CALL chkxer( 'ZGEQLS', infot, nout, lerr, ok )
160 infot = 5
161 CALL zgeqls( 2, 1, 0, a, 1, x, b, 2, w, 1, info )
162 CALL chkxer( 'ZGEQLS', infot, nout, lerr, ok )
163 infot = 8
164 CALL zgeqls( 2, 1, 0, a, 2, x, b, 1, w, 1, info )
165 CALL chkxer( 'ZGEQLS', infot, nout, lerr, ok )
166 infot = 10
167 CALL zgeqls( 1, 1, 2, a, 1, x, b, 1, w, 1, info )
168 CALL chkxer( 'ZGEQLS', infot, nout, lerr, ok )
169*
170* ZUNGQL
171*
172 srnamt = 'ZUNGQL'
173 infot = 1
174 CALL zungql( -1, 0, 0, a, 1, x, w, 1, info )
175 CALL chkxer( 'ZUNGQL', infot, nout, lerr, ok )
176 infot = 2
177 CALL zungql( 0, -1, 0, a, 1, x, w, 1, info )
178 CALL chkxer( 'ZUNGQL', infot, nout, lerr, ok )
179 infot = 2
180 CALL zungql( 1, 2, 0, a, 1, x, w, 2, info )
181 CALL chkxer( 'ZUNGQL', infot, nout, lerr, ok )
182 infot = 3
183 CALL zungql( 0, 0, -1, a, 1, x, w, 1, info )
184 CALL chkxer( 'ZUNGQL', infot, nout, lerr, ok )
185 infot = 3
186 CALL zungql( 1, 1, 2, a, 1, x, w, 1, info )
187 CALL chkxer( 'ZUNGQL', infot, nout, lerr, ok )
188 infot = 5
189 CALL zungql( 2, 1, 0, a, 1, x, w, 1, info )
190 CALL chkxer( 'ZUNGQL', infot, nout, lerr, ok )
191 infot = 8
192 CALL zungql( 2, 2, 0, a, 2, x, w, 1, info )
193 CALL chkxer( 'ZUNGQL', infot, nout, lerr, ok )
194*
195* ZUNG2L
196*
197 srnamt = 'ZUNG2L'
198 infot = 1
199 CALL zung2l( -1, 0, 0, a, 1, x, w, info )
200 CALL chkxer( 'ZUNG2L', infot, nout, lerr, ok )
201 infot = 2
202 CALL zung2l( 0, -1, 0, a, 1, x, w, info )
203 CALL chkxer( 'ZUNG2L', infot, nout, lerr, ok )
204 infot = 2
205 CALL zung2l( 1, 2, 0, a, 1, x, w, info )
206 CALL chkxer( 'ZUNG2L', infot, nout, lerr, ok )
207 infot = 3
208 CALL zung2l( 0, 0, -1, a, 1, x, w, info )
209 CALL chkxer( 'ZUNG2L', infot, nout, lerr, ok )
210 infot = 3
211 CALL zung2l( 2, 1, 2, a, 2, x, w, info )
212 CALL chkxer( 'ZUNG2L', infot, nout, lerr, ok )
213 infot = 5
214 CALL zung2l( 2, 1, 0, a, 1, x, w, info )
215 CALL chkxer( 'ZUNG2L', infot, nout, lerr, ok )
216*
217* ZUNMQL
218*
219 srnamt = 'ZUNMQL'
220 infot = 1
221 CALL zunmql( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
222 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
223 infot = 2
224 CALL zunmql( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
225 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
226 infot = 3
227 CALL zunmql( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, 1, info )
228 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
229 infot = 4
230 CALL zunmql( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, 1, info )
231 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
232 infot = 5
233 CALL zunmql( 'L', 'N', 0, 0, -1, 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, 1, 1, a, 1, x, af, 1, w, 1, info )
237 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
238 infot = 5
239 CALL zunmql( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, 1, info )
240 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
241 infot = 7
242 CALL zunmql( 'L', 'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
243 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
244 infot = 7
245 CALL zunmql( 'R', 'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
246 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
247 infot = 10
248 CALL zunmql( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, 1, info )
249 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
250 infot = 12
251 CALL zunmql( 'L', 'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
252 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
253 infot = 12
254 CALL zunmql( 'R', 'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
255 CALL chkxer( 'ZUNMQL', infot, nout, lerr, ok )
256*
257* ZUNM2L
258*
259 srnamt = 'ZUNM2L'
260 infot = 1
261 CALL zunm2l( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, info )
262 CALL chkxer( 'ZUNM2L', infot, nout, lerr, ok )
263 infot = 2
264 CALL zunm2l( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, info )
265 CALL chkxer( 'ZUNM2L', infot, nout, lerr, ok )
266 infot = 3
267 CALL zunm2l( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, info )
268 CALL chkxer( 'ZUNM2L', infot, nout, lerr, ok )
269 infot = 4
270 CALL zunm2l( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, info )
271 CALL chkxer( 'ZUNM2L', infot, nout, lerr, ok )
272 infot = 5
273 CALL zunm2l( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, info )
274 CALL chkxer( 'ZUNM2L', infot, nout, lerr, ok )
275 infot = 5
276 CALL zunm2l( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, info )
277 CALL chkxer( 'ZUNM2L', infot, nout, lerr, ok )
278 infot = 5
279 CALL zunm2l( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, info )
280 CALL chkxer( 'ZUNM2L', infot, nout, lerr, ok )
281 infot = 7
282 CALL zunm2l( 'L', 'N', 2, 1, 0, a, 1, x, af, 2, w, info )
283 CALL chkxer( 'ZUNM2L', infot, nout, lerr, ok )
284 infot = 7
285 CALL zunm2l( 'R', 'N', 1, 2, 0, a, 1, x, af, 1, w, info )
286 CALL chkxer( 'ZUNM2L', infot, nout, lerr, ok )
287 infot = 10
288 CALL zunm2l( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, info )
289 CALL chkxer( 'ZUNM2L', infot, nout, lerr, ok )
290*
291* Print a summary line.
292*
293 CALL alaesm( path, ok, nout )
294*
295 RETURN
296*
297* End of ZERRQL
298*
subroutine alaesm(path, ok, nout)
ALAESM
Definition alaesm.f:63
subroutine chkxer(srnamt, infot, nout, lerr, ok)
Definition cblat2.f:3224
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:123
subroutine zgeqlf(m, n, a, lda, tau, work, lwork, info)
ZGEQLF
Definition zgeqlf.f:138
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:114
subroutine zungql(m, n, k, a, lda, tau, work, lwork, info)
ZUNGQL
Definition zungql.f:128
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:159
subroutine zunmql(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
ZUNMQL
Definition zunmql.f:167
subroutine zgeqls(m, n, nrhs, a, lda, tau, b, ldb, work, lwork, info)
ZGEQLS
Definition zgeqls.f:122
Here is the call graph for this function:
Here is the caller graph for this function: