69 parameter( nmax = 4, lw = nmax )
71 parameter( zero = 0.0e0, one = 1.0e0 )
75 INTEGER I, INFO, J, NS, NT
78 INTEGER IQ( NMAX, NMAX ), IW( NMAX )
79 REAL A( NMAX, NMAX ), D( NMAX ), E( NMAX ),
80 $ Q( NMAX, NMAX ), S( NMAX ), TP( NMAX ),
81 $ TQ( NMAX ), U( NMAX, NMAX ),
82 $ V( NMAX, NMAX ), W( LW )
98 COMMON / infoc / infot, nout, ok, lerr
99 COMMON / srnamc / srnamt
107 WRITE( nout, fmt = * )
114 a( i, j ) = 1. / real( i+j )
122 IF( lsamen( 2, c2,
'BD' ) )
THEN
128 CALL sgebrd( -1, 0, a, 1, d, e, tq, tp, w, 1, info )
129 CALL chkxer(
'SGEBRD', infot, nout, lerr, ok )
131 CALL sgebrd( 0, -1, a, 1, d, e, tq, tp, w, 1, info )
132 CALL chkxer(
'SGEBRD', infot, nout, lerr, ok )
134 CALL sgebrd( 2, 1, a, 1, d, e, tq, tp, w, 2, info )
135 CALL chkxer(
'SGEBRD', infot, nout, lerr, ok )
137 CALL sgebrd( 2, 1, a, 2, d, e, tq, tp, w, 1, info )
138 CALL chkxer(
'SGEBRD', infot, nout, lerr, ok )
145 CALL sgebd2( -1, 0, a, 1, d, e, tq, tp, w, info )
146 CALL chkxer(
'SGEBD2', infot, nout, lerr, ok )
148 CALL sgebd2( 0, -1, a, 1, d, e, tq, tp, w, info )
149 CALL chkxer(
'SGEBD2', infot, nout, lerr, ok )
151 CALL sgebd2( 2, 1, a, 1, d, e, tq, tp, w, info )
152 CALL chkxer(
'SGEBD2', infot, nout, lerr, ok )
159 CALL sorgbr(
'/', 0, 0, 0, a, 1, tq, w, 1, info )
160 CALL chkxer(
'SORGBR', infot, nout, lerr, ok )
162 CALL sorgbr(
'Q', -1, 0, 0, a, 1, tq, w, 1, info )
163 CALL chkxer(
'SORGBR', infot, nout, lerr, ok )
165 CALL sorgbr(
'Q', 0, -1, 0, a, 1, tq, w, 1, info )
166 CALL chkxer(
'SORGBR', infot, nout, lerr, ok )
168 CALL sorgbr(
'Q', 0, 1, 0, a, 1, tq, w, 1, info )
169 CALL chkxer(
'SORGBR', infot, nout, lerr, ok )
171 CALL sorgbr(
'Q', 1, 0, 1, a, 1, tq, w, 1, info )
172 CALL chkxer(
'SORGBR', infot, nout, lerr, ok )
174 CALL sorgbr(
'P', 1, 0, 0, a, 1, tq, w, 1, info )
175 CALL chkxer(
'SORGBR', infot, nout, lerr, ok )
177 CALL sorgbr(
'P', 0, 1, 1, a, 1, tq, w, 1, info )
178 CALL chkxer(
'SORGBR', infot, nout, lerr, ok )
180 CALL sorgbr(
'Q', 0, 0, -1, a, 1, tq, w, 1, info )
181 CALL chkxer(
'SORGBR', infot, nout, lerr, ok )
183 CALL sorgbr(
'Q', 2, 1, 1, a, 1, tq, w, 1, info )
184 CALL chkxer(
'SORGBR', infot, nout, lerr, ok )
186 CALL sorgbr(
'Q', 2, 2, 1, a, 2, tq, w, 1, info )
187 CALL chkxer(
'SORGBR', infot, nout, lerr, ok )
194 CALL sormbr(
'/',
'L',
'T', 0, 0, 0, a, 1, tq, u, 1, w, 1,
196 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
198 CALL sormbr(
'Q',
'/',
'T', 0, 0, 0, a, 1, tq, u, 1, w, 1,
200 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
202 CALL sormbr(
'Q',
'L',
'/', 0, 0, 0, a, 1, tq, u, 1, w, 1,
204 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
206 CALL sormbr(
'Q',
'L',
'T', -1, 0, 0, a, 1, tq, u, 1, w, 1,
208 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
210 CALL sormbr(
'Q',
'L',
'T', 0, -1, 0, a, 1, tq, u, 1, w, 1,
212 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
214 CALL sormbr(
'Q',
'L',
'T', 0, 0, -1, a, 1, tq, u, 1, w, 1,
216 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
218 CALL sormbr(
'Q',
'L',
'T', 2, 0, 0, a, 1, tq, u, 2, w, 1,
220 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
222 CALL sormbr(
'Q',
'R',
'T', 0, 2, 0, a, 1, tq, u, 1, w, 1,
224 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
226 CALL sormbr(
'P',
'L',
'T', 2, 0, 2, a, 1, tq, u, 2, w, 1,
228 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
230 CALL sormbr(
'P',
'R',
'T', 0, 2, 2, a, 1, tq, u, 1, w, 1,
232 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
234 CALL sormbr(
'Q',
'R',
'T', 2, 0, 0, a, 1, tq, u, 1, w, 1,
236 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
238 CALL sormbr(
'Q',
'L',
'T', 0, 2, 0, a, 1, tq, u, 1, w, 1,
240 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
242 CALL sormbr(
'Q',
'R',
'T', 2, 0, 0, a, 1, tq, u, 2, w, 1,
244 CALL chkxer(
'SORMBR', infot, nout, lerr, ok )
251 CALL sbdsqr(
'/', 0, 0, 0, 0, d, e, v, 1, u, 1, a, 1, w, info )
252 CALL chkxer(
'SBDSQR', infot, nout, lerr, ok )
254 CALL sbdsqr(
'U', -1, 0, 0, 0, d, e, v, 1, u, 1, a, 1, w,
256 CALL chkxer(
'SBDSQR', infot, nout, lerr, ok )
258 CALL sbdsqr(
'U', 0, -1, 0, 0, d, e, v, 1, u, 1, a, 1, w,
260 CALL chkxer(
'SBDSQR', infot, nout, lerr, ok )
262 CALL sbdsqr(
'U', 0, 0, -1, 0, d, e, v, 1, u, 1, a, 1, w,
264 CALL chkxer(
'SBDSQR', infot, nout, lerr, ok )
266 CALL sbdsqr(
'U', 0, 0, 0, -1, d, e, v, 1, u, 1, a, 1, w,
268 CALL chkxer(
'SBDSQR', infot, nout, lerr, ok )
270 CALL sbdsqr(
'U', 2, 1, 0, 0, d, e, v, 1, u, 1, a, 1, w, info )
271 CALL chkxer(
'SBDSQR', infot, nout, lerr, ok )
273 CALL sbdsqr(
'U', 0, 0, 2, 0, d, e, v, 1, u, 1, a, 1, w, info )
274 CALL chkxer(
'SBDSQR', infot, nout, lerr, ok )
276 CALL sbdsqr(
'U', 2, 0, 0, 1, d, e, v, 1, u, 1, a, 1, w, info )
277 CALL chkxer(
'SBDSQR', infot, nout, lerr, ok )
284 CALL sbdsdc(
'/',
'N', 0, d, e, u, 1, v, 1, q, iq, w, iw,
286 CALL chkxer(
'SBDSDC', infot, nout, lerr, ok )
288 CALL sbdsdc(
'U',
'/', 0, d, e, u, 1, v, 1, q, iq, w, iw,
290 CALL chkxer(
'SBDSDC', infot, nout, lerr, ok )
292 CALL sbdsdc(
'U',
'N', -1, d, e, u, 1, v, 1, q, iq, w, iw,
294 CALL chkxer(
'SBDSDC', infot, nout, lerr, ok )
296 CALL sbdsdc(
'U',
'I', 2, d, e, u, 1, v, 1, q, iq, w, iw,
298 CALL chkxer(
'SBDSDC', infot, nout, lerr, ok )
300 CALL sbdsdc(
'U',
'I', 2, d, e, u, 2, v, 1, q, iq, w, iw,
302 CALL chkxer(
'SBDSDC', infot, nout, lerr, ok )
309 CALL sbdsvdx(
'X',
'N',
'A', 1, d, e, zero, one, 0, 0,
310 $ ns, s, q, 1, w, iw, info)
311 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
313 CALL sbdsvdx(
'U',
'X',
'A', 1, d, e, zero, one, 0, 0,
314 $ ns, s, q, 1, w, iw, info)
315 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
317 CALL sbdsvdx(
'U',
'V',
'X', 1, d, e, zero, one, 0, 0,
318 $ ns, s, q, 1, w, iw, info)
319 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
321 CALL sbdsvdx(
'U',
'V',
'A', -1, d, e, zero, one, 0, 0,
322 $ ns, s, q, 1, w, iw, info)
323 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
325 CALL sbdsvdx(
'U',
'V',
'V', 2, d, e, -one, zero, 0, 0,
326 $ ns, s, q, 1, w, iw, info)
327 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
329 CALL sbdsvdx(
'U',
'V',
'V', 2, d, e, one, zero, 0, 0,
330 $ ns, s, q, 1, w, iw, info)
331 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
333 CALL sbdsvdx(
'L',
'V',
'I', 2, d, e, zero, zero, 0, 2,
334 $ ns, s, q, 1, w, iw, info)
335 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
337 CALL sbdsvdx(
'L',
'V',
'I', 4, d, e, zero, zero, 5, 2,
338 $ ns, s, q, 1, w, iw, info)
339 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
341 CALL sbdsvdx(
'L',
'V',
'I', 4, d, e, zero, zero, 3, 2,
342 $ ns, s, q, 1, w, iw, info)
343 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
345 CALL sbdsvdx(
'L',
'V',
'I', 4, d, e, zero, zero, 3, 5,
346 $ ns, s, q, 1, w, iw, info)
347 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
349 CALL sbdsvdx(
'L',
'V',
'A', 4, d, e, zero, zero, 0, 0,
350 $ ns, s, q, 0, w, iw, info)
351 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
353 CALL sbdsvdx(
'L',
'V',
'A', 4, d, e, zero, zero, 0, 0,
354 $ ns, s, q, 2, w, iw, info)
355 CALL chkxer(
'SBDSVDX', infot, nout, lerr, ok )
362 WRITE( nout, fmt = 9999 )path, nt
364 WRITE( nout, fmt = 9998 )path
367 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits',
368 $
' (', i3,
' tests done)' )
369 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',