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.d0 / 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
',