72 parameter( nmax = 4, lw = nmax )
73 DOUBLE PRECISION ZERO, ONE
74 parameter( zero = 0.0d0, one = 1.0d0 )
78 INTEGER I, INFO, J, NS, NT
81 INTEGER IQ( NMAX, NMAX ), IW( NMAX )
82 DOUBLE PRECISION A( NMAX, NMAX ), D( NMAX ), E( NMAX ),
83 $ Q( NMAX, NMAX ), S( NMAX ), TP( NMAX ),
84 $ TQ( NMAX ), U( NMAX, NMAX ),
85 $ V( NMAX, NMAX ), W( LW )
101 COMMON / infoc / infot, nout, ok, lerr
102 COMMON / srnamc / srnamt
110 WRITE( nout, fmt = * )
117 a( i, j ) = 1.d0 / dble( i+j )
125 IF(
lsamen( 2, c2,
'BD' ) )
THEN
131 CALL dgebrd( -1, 0, a, 1, d, e, tq, tp, w, 1, info )
132 CALL chkxer(
'DGEBRD', infot, nout, lerr, ok )
134 CALL dgebrd( 0, -1, a, 1, d, e, tq, tp, w, 1, info )
135 CALL chkxer(
'DGEBRD', infot, nout, lerr, ok )
137 CALL dgebrd( 2, 1, a, 1, d, e, tq, tp, w, 2, info )
138 CALL chkxer(
'DGEBRD', infot, nout, lerr, ok )
140 CALL dgebrd( 2, 1, a, 2, d, e, tq, tp, w, 1, info )
141 CALL chkxer(
'DGEBRD', infot, nout, lerr, ok )
148 CALL dgebd2( -1, 0, a, 1, d, e, tq, tp, w, info )
149 CALL chkxer(
'DGEBD2', infot, nout, lerr, ok )
151 CALL dgebd2( 0, -1, a, 1, d, e, tq, tp, w, info )
152 CALL chkxer(
'DGEBD2', infot, nout, lerr, ok )
154 CALL dgebd2( 2, 1, a, 1, d, e, tq, tp, w, info )
155 CALL chkxer(
'DGEBD2', infot, nout, lerr, ok )
162 CALL dorgbr(
'/', 0, 0, 0, a, 1, tq, w, 1, info )
163 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
165 CALL dorgbr(
'Q', -1, 0, 0, a, 1, tq, w, 1, info )
166 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
168 CALL dorgbr(
'Q', 0, -1, 0, a, 1, tq, w, 1, info )
169 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
171 CALL dorgbr(
'Q', 0, 1, 0, a, 1, tq, w, 1, info )
172 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
174 CALL dorgbr(
'Q', 1, 0, 1, a, 1, tq, w, 1, info )
175 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
177 CALL dorgbr(
'P', 1, 0, 0, a, 1, tq, w, 1, info )
178 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
180 CALL dorgbr(
'P', 0, 1, 1, a, 1, tq, w, 1, info )
181 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
183 CALL dorgbr(
'Q', 0, 0, -1, a, 1, tq, w, 1, info )
184 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
186 CALL dorgbr(
'Q', 2, 1, 1, a, 1, tq, w, 1, info )
187 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
189 CALL dorgbr(
'Q', 2, 2, 1, a, 2, tq, w, 1, info )
190 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
197 CALL dormbr(
'/',
'L',
'T', 0, 0, 0, a, 1, tq, u, 1, w, 1,
199 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
201 CALL dormbr(
'Q',
'/',
'T', 0, 0, 0, a, 1, tq, u, 1, w, 1,
203 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
205 CALL dormbr(
'Q',
'L',
'/', 0, 0, 0, a, 1, tq, u, 1, w, 1,
207 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
209 CALL dormbr(
'Q',
'L',
'T', -1, 0, 0, a, 1, tq, u, 1, w, 1,
211 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
213 CALL dormbr(
'Q',
'L',
'T', 0, -1, 0, a, 1, tq, u, 1, w, 1,
215 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
217 CALL dormbr(
'Q',
'L',
'T', 0, 0, -1, a, 1, tq, u, 1, w, 1,
219 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
221 CALL dormbr(
'Q',
'L',
'T', 2, 0, 0, a, 1, tq, u, 2, w, 1,
223 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
225 CALL dormbr(
'Q',
'R',
'T', 0, 2, 0, a, 1, tq, u, 1, w, 1,
227 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
229 CALL dormbr(
'P',
'L',
'T', 2, 0, 2, a, 1, tq, u, 2, w, 1,
231 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
233 CALL dormbr(
'P',
'R',
'T', 0, 2, 2, a, 1, tq, u, 1, w, 1,
235 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
237 CALL dormbr(
'Q',
'R',
'T', 2, 0, 0, a, 1, tq, u, 1, w, 1,
239 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
241 CALL dormbr(
'Q',
'L',
'T', 0, 2, 0, a, 1, tq, u, 1, w, 1,
243 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
245 CALL dormbr(
'Q',
'R',
'T', 2, 0, 0, a, 1, tq, u, 2, w, 1,
247 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
254 CALL dbdsqr(
'/', 0, 0, 0, 0, d, e, v, 1, u, 1, a, 1, w, info )
255 CALL chkxer(
'DBDSQR', infot, nout, lerr, ok )
257 CALL dbdsqr(
'U', -1, 0, 0, 0, d, e, v, 1, u, 1, a, 1, w,
259 CALL chkxer(
'DBDSQR', infot, nout, lerr, ok )
261 CALL dbdsqr(
'U', 0, -1, 0, 0, d, e, v, 1, u, 1, a, 1, w,
263 CALL chkxer(
'DBDSQR', infot, nout, lerr, ok )
265 CALL dbdsqr(
'U', 0, 0, -1, 0, d, e, v, 1, u, 1, a, 1, w,
267 CALL chkxer(
'DBDSQR', infot, nout, lerr, ok )
269 CALL dbdsqr(
'U', 0, 0, 0, -1, d, e, v, 1, u, 1, a, 1, w,
271 CALL chkxer(
'DBDSQR', infot, nout, lerr, ok )
273 CALL dbdsqr(
'U', 2, 1, 0, 0, d, e, v, 1, u, 1, a, 1, w, info )
274 CALL chkxer(
'DBDSQR', infot, nout, lerr, ok )
276 CALL dbdsqr(
'U', 0, 0, 2, 0, d, e, v, 1, u, 1, a, 1, w, info )
277 CALL chkxer(
'DBDSQR', infot, nout, lerr, ok )
279 CALL dbdsqr(
'U', 2, 0, 0, 1, d, e, v, 1, u, 1, a, 1, w, info )
280 CALL chkxer(
'DBDSQR', infot, nout, lerr, ok )
287 CALL dbdsdc(
'/',
'N', 0, d, e, u, 1, v, 1, q, iq, w, iw,
289 CALL chkxer(
'DBDSDC', infot, nout, lerr, ok )
291 CALL dbdsdc(
'U',
'/', 0, d, e, u, 1, v, 1, q, iq, w, iw,
293 CALL chkxer(
'DBDSDC', infot, nout, lerr, ok )
295 CALL dbdsdc(
'U',
'N', -1, d, e, u, 1, v, 1, q, iq, w, iw,
297 CALL chkxer(
'DBDSDC', infot, nout, lerr, ok )
299 CALL dbdsdc(
'U',
'I', 2, d, e, u, 1, v, 1, q, iq, w, iw,
301 CALL chkxer(
'DBDSDC', infot, nout, lerr, ok )
303 CALL dbdsdc(
'U',
'I', 2, d, e, u, 2, v, 1, q, iq, w, iw,
305 CALL chkxer(
'DBDSDC', infot, nout, lerr, ok )
312 CALL dbdsvdx(
'X',
'N',
'A', 1, d, e, zero, one, 0, 0,
313 $ ns, s, q, 1, w, iw, info)
314 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
316 CALL dbdsvdx(
'U',
'X',
'A', 1, d, e, zero, one, 0, 0,
317 $ ns, s, q, 1, w, iw, info)
318 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
320 CALL dbdsvdx(
'U',
'V',
'X', 1, d, e, zero, one, 0, 0,
321 $ ns, s, q, 1, w, iw, info)
322 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
324 CALL dbdsvdx(
'U',
'V',
'A', -1, d, e, zero, one, 0, 0,
325 $ ns, s, q, 1, w, iw, info)
326 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
328 CALL dbdsvdx(
'U',
'V',
'V', 2, d, e, -one, zero, 0, 0,
329 $ ns, s, q, 1, w, iw, info)
330 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
332 CALL dbdsvdx(
'U',
'V',
'V', 2, d, e, one, zero, 0, 0,
333 $ ns, s, q, 1, w, iw, info)
334 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
336 CALL dbdsvdx(
'L',
'V',
'I', 2, d, e, zero, zero, 0, 2,
337 $ ns, s, q, 1, w, iw, info)
338 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
340 CALL dbdsvdx(
'L',
'V',
'I', 4, d, e, zero, zero, 5, 2,
341 $ ns, s, q, 1, w, iw, info)
342 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
344 CALL dbdsvdx(
'L',
'V',
'I', 4, d, e, zero, zero, 3, 2,
345 $ ns, s, q, 1, w, iw, info)
346 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
348 CALL dbdsvdx(
'L',
'V',
'I', 4, d, e, zero, zero, 3, 5,
349 $ ns, s, q, 1, w, iw, info)
350 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
352 CALL dbdsvdx(
'L',
'V',
'A', 4, d, e, zero, zero, 0, 0,
353 $ ns, s, q, 0, w, iw, info)
354 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
356 CALL dbdsvdx(
'L',
'V',
'A', 4, d, e, zero, zero, 0, 0,
357 $ ns, s, q, 2, w, iw, info)
358 CALL chkxer(
'DBDSVDX', infot, nout, lerr, ok )
365 WRITE( nout, fmt = 9999 )path, nt
367 WRITE( nout, fmt = 9998 )path
370 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits',
371 $
' (', i3,
' tests done)' )
372 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',