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

◆ zerrqr()

subroutine zerrqr ( character*3  path,
integer  nunit 
)

ZERRQR

Purpose:
 ZERRQR tests the error exits for the COMPLEX*16 routines
 that use the QR 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 zerrqr.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, zgeqr2, zgeqr2p, zgeqrf,
81 $ zunmqr
82* ..
83* .. Scalars in Common ..
84 LOGICAL LERR, OK
85 CHARACTER*32 SRNAMT
86 INTEGER INFOT, NOUT
87* ..
88* .. Common blocks ..
89 COMMON / infoc / infot, nout, ok, lerr
90 COMMON / srnamc / srnamt
91* ..
92* .. Intrinsic Functions ..
93 INTRINSIC dble, dcmplx
94* ..
95* .. Executable Statements ..
96*
97 nout = nunit
98 WRITE( nout, fmt = * )
99*
100* Set the variables to innocuous values.
101*
102 DO 20 j = 1, nmax
103 DO 10 i = 1, nmax
104 a( i, j ) = dcmplx( 1.d0 / dble( i+j ),
105 $ -1.d0 / dble( i+j ) )
106 af( i, j ) = dcmplx( 1.d0 / dble( i+j ),
107 $ -1.d0 / dble( i+j ) )
108 10 CONTINUE
109 b( j ) = 0.d0
110 w( j ) = 0.d0
111 x( j ) = 0.d0
112 20 CONTINUE
113 ok = .true.
114*
115* Error exits for QR factorization
116*
117* ZGEQRF
118*
119 srnamt = 'ZGEQRF'
120 infot = 1
121 CALL zgeqrf( -1, 0, a, 1, b, w, 1, info )
122 CALL chkxer( 'ZGEQRF', infot, nout, lerr, ok )
123 infot = 2
124 CALL zgeqrf( 0, -1, a, 1, b, w, 1, info )
125 CALL chkxer( 'ZGEQRF', infot, nout, lerr, ok )
126 infot = 4
127 CALL zgeqrf( 2, 1, a, 1, b, w, 1, info )
128 CALL chkxer( 'ZGEQRF', infot, nout, lerr, ok )
129 infot = 7
130 CALL zgeqrf( 1, 2, a, 1, b, w, 1, info )
131 CALL chkxer( 'ZGEQRF', infot, nout, lerr, ok )
132*
133* ZGEQRFP
134*
135 srnamt = 'ZGEQRFP'
136 infot = 1
137 CALL zgeqrfp( -1, 0, a, 1, b, w, 1, info )
138 CALL chkxer( 'ZGEQRFP', infot, nout, lerr, ok )
139 infot = 2
140 CALL zgeqrfp( 0, -1, a, 1, b, w, 1, info )
141 CALL chkxer( 'ZGEQRFP', infot, nout, lerr, ok )
142 infot = 4
143 CALL zgeqrfp( 2, 1, a, 1, b, w, 1, info )
144 CALL chkxer( 'ZGEQRFP', infot, nout, lerr, ok )
145 infot = 7
146 CALL zgeqrfp( 1, 2, a, 1, b, w, 1, info )
147 CALL chkxer( 'ZGEQRFP', infot, nout, lerr, ok )
148*
149* ZGEQR2
150*
151 srnamt = 'ZGEQR2'
152 infot = 1
153 CALL zgeqr2( -1, 0, a, 1, b, w, info )
154 CALL chkxer( 'ZGEQR2', infot, nout, lerr, ok )
155 infot = 2
156 CALL zgeqr2( 0, -1, a, 1, b, w, info )
157 CALL chkxer( 'ZGEQR2', infot, nout, lerr, ok )
158 infot = 4
159 CALL zgeqr2( 2, 1, a, 1, b, w, info )
160 CALL chkxer( 'ZGEQR2', infot, nout, lerr, ok )
161*
162* ZGEQR2P
163*
164 srnamt = 'ZGEQR2P'
165 infot = 1
166 CALL zgeqr2p( -1, 0, a, 1, b, w, info )
167 CALL chkxer( 'ZGEQR2P', infot, nout, lerr, ok )
168 infot = 2
169 CALL zgeqr2p( 0, -1, a, 1, b, w, info )
170 CALL chkxer( 'ZGEQR2P', infot, nout, lerr, ok )
171 infot = 4
172 CALL zgeqr2p( 2, 1, a, 1, b, w, info )
173 CALL chkxer( 'ZGEQR2P', infot, nout, lerr, ok )
174*
175* ZUNGQR
176*
177 srnamt = 'ZUNGQR'
178 infot = 1
179 CALL zungqr( -1, 0, 0, a, 1, x, w, 1, info )
180 CALL chkxer( 'ZUNGQR', infot, nout, lerr, ok )
181 infot = 2
182 CALL zungqr( 0, -1, 0, a, 1, x, w, 1, info )
183 CALL chkxer( 'ZUNGQR', infot, nout, lerr, ok )
184 infot = 2
185 CALL zungqr( 1, 2, 0, a, 1, x, w, 2, info )
186 CALL chkxer( 'ZUNGQR', infot, nout, lerr, ok )
187 infot = 3
188 CALL zungqr( 0, 0, -1, a, 1, x, w, 1, info )
189 CALL chkxer( 'ZUNGQR', infot, nout, lerr, ok )
190 infot = 3
191 CALL zungqr( 1, 1, 2, a, 1, x, w, 1, info )
192 CALL chkxer( 'ZUNGQR', infot, nout, lerr, ok )
193 infot = 5
194 CALL zungqr( 2, 2, 0, a, 1, x, w, 2, info )
195 CALL chkxer( 'ZUNGQR', infot, nout, lerr, ok )
196 infot = 8
197 CALL zungqr( 2, 2, 0, a, 2, x, w, 1, info )
198 CALL chkxer( 'ZUNGQR', infot, nout, lerr, ok )
199*
200* ZUNG2R
201*
202 srnamt = 'ZUNG2R'
203 infot = 1
204 CALL zung2r( -1, 0, 0, a, 1, x, w, info )
205 CALL chkxer( 'ZUNG2R', infot, nout, lerr, ok )
206 infot = 2
207 CALL zung2r( 0, -1, 0, a, 1, x, w, info )
208 CALL chkxer( 'ZUNG2R', infot, nout, lerr, ok )
209 infot = 2
210 CALL zung2r( 1, 2, 0, a, 1, x, w, info )
211 CALL chkxer( 'ZUNG2R', infot, nout, lerr, ok )
212 infot = 3
213 CALL zung2r( 0, 0, -1, a, 1, x, w, info )
214 CALL chkxer( 'ZUNG2R', infot, nout, lerr, ok )
215 infot = 3
216 CALL zung2r( 2, 1, 2, a, 2, x, w, info )
217 CALL chkxer( 'ZUNG2R', infot, nout, lerr, ok )
218 infot = 5
219 CALL zung2r( 2, 1, 0, a, 1, x, w, info )
220 CALL chkxer( 'ZUNG2R', infot, nout, lerr, ok )
221*
222* ZUNMQR
223*
224 srnamt = 'ZUNMQR'
225 infot = 1
226 CALL zunmqr( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
227 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
228 infot = 2
229 CALL zunmqr( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, 1, info )
230 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
231 infot = 3
232 CALL zunmqr( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, 1, info )
233 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
234 infot = 4
235 CALL zunmqr( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, 1, info )
236 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
237 infot = 5
238 CALL zunmqr( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, 1, info )
239 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
240 infot = 5
241 CALL zunmqr( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, 1, info )
242 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
243 infot = 5
244 CALL zunmqr( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, 1, info )
245 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
246 infot = 7
247 CALL zunmqr( 'L', 'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
248 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
249 infot = 7
250 CALL zunmqr( 'R', 'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
251 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
252 infot = 10
253 CALL zunmqr( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, 1, info )
254 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
255 infot = 12
256 CALL zunmqr( 'L', 'N', 1, 2, 0, a, 1, x, af, 1, w, 1, info )
257 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
258 infot = 12
259 CALL zunmqr( 'R', 'N', 2, 1, 0, a, 1, x, af, 2, w, 1, info )
260 CALL chkxer( 'ZUNMQR', infot, nout, lerr, ok )
261*
262* ZUNM2R
263*
264 srnamt = 'ZUNM2R'
265 infot = 1
266 CALL zunm2r( '/', 'N', 0, 0, 0, a, 1, x, af, 1, w, info )
267 CALL chkxer( 'ZUNM2R', infot, nout, lerr, ok )
268 infot = 2
269 CALL zunm2r( 'L', '/', 0, 0, 0, a, 1, x, af, 1, w, info )
270 CALL chkxer( 'ZUNM2R', infot, nout, lerr, ok )
271 infot = 3
272 CALL zunm2r( 'L', 'N', -1, 0, 0, a, 1, x, af, 1, w, info )
273 CALL chkxer( 'ZUNM2R', infot, nout, lerr, ok )
274 infot = 4
275 CALL zunm2r( 'L', 'N', 0, -1, 0, a, 1, x, af, 1, w, info )
276 CALL chkxer( 'ZUNM2R', infot, nout, lerr, ok )
277 infot = 5
278 CALL zunm2r( 'L', 'N', 0, 0, -1, a, 1, x, af, 1, w, info )
279 CALL chkxer( 'ZUNM2R', infot, nout, lerr, ok )
280 infot = 5
281 CALL zunm2r( 'L', 'N', 0, 1, 1, a, 1, x, af, 1, w, info )
282 CALL chkxer( 'ZUNM2R', infot, nout, lerr, ok )
283 infot = 5
284 CALL zunm2r( 'R', 'N', 1, 0, 1, a, 1, x, af, 1, w, info )
285 CALL chkxer( 'ZUNM2R', infot, nout, lerr, ok )
286 infot = 7
287 CALL zunm2r( 'L', 'N', 2, 1, 0, a, 1, x, af, 2, w, info )
288 CALL chkxer( 'ZUNM2R', infot, nout, lerr, ok )
289 infot = 7
290 CALL zunm2r( 'R', 'N', 1, 2, 0, a, 1, x, af, 1, w, info )
291 CALL chkxer( 'ZUNM2R', infot, nout, lerr, ok )
292 infot = 10
293 CALL zunm2r( 'L', 'N', 2, 1, 0, a, 2, x, af, 1, w, info )
294 CALL chkxer( 'ZUNM2R', infot, nout, lerr, ok )
295*
296* Print a summary line.
297*
298 CALL alaesm( path, ok, nout )
299*
300 RETURN
301*
302* End of ZERRQR
303*
subroutine alaesm(path, ok, nout)
ALAESM
Definition alaesm.f:63
subroutine chkxer(srnamt, infot, nout, lerr, ok)
Definition cblat2.f:3224
subroutine zgeqr2(m, n, a, lda, tau, work, info)
ZGEQR2 computes the QR factorization of a general rectangular matrix using an unblocked algorithm.
Definition zgeqr2.f:130
subroutine zgeqr2p(m, n, a, lda, tau, work, info)
ZGEQR2P computes the QR factorization of a general rectangular matrix with non-negative diagonal elem...
Definition zgeqr2p.f:134
subroutine zgeqrf(m, n, a, lda, tau, work, lwork, info)
ZGEQRF
Definition zgeqrf.f:146
subroutine zgeqrfp(m, n, a, lda, tau, work, lwork, info)
ZGEQRFP
Definition zgeqrfp.f:149
subroutine zung2r(m, n, k, a, lda, tau, work, info)
ZUNG2R
Definition zung2r.f:114
subroutine zungqr(m, n, k, a, lda, tau, work, lwork, info)
ZUNGQR
Definition zungqr.f:128
subroutine zunm2r(side, trans, m, n, k, a, lda, tau, c, ldc, work, info)
ZUNM2R multiplies a general matrix by the unitary matrix from a QR factorization determined by cgeqrf...
Definition zunm2r.f:159
subroutine zunmqr(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
ZUNMQR
Definition zunmqr.f:167
Here is the call graph for this function:
Here is the caller graph for this function: