69 parameter( nmax = 4, lw = nmax )
70 DOUBLE PRECISION ZERO, ONE
71 parameter( zero = 0.0d0, one = 1.0d0 )
75 INTEGER I, INFO, J, NS, NT
78 INTEGER IQ( NMAX, NMAX ), IW( NMAX )
79 DOUBLE PRECISION ( NMAX, NMAX ), D( NMAX ), E( NMAX ),
80 $ Q( NMAX, NMAX ), S( NMAX ), TP( NMAX ),
81 $ TQ( NMAX ), ( 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 / dble( i+j )
122 IF( lsamen( 2, c2,
'BD' ) )
THEN
128 CALL dgebrd( -1, 0, a, 1, d, e, tq, tp, w, 1, info )
129 CALL chkxer(
'DGEBRD', infot, nout, lerr, ok )
131 CALL dgebrd( 0, -1, a, 1, d, e, tq, tp, w, 1, info )
132 CALL chkxer(
'DGEBRD', infot, nout, lerr, ok )
134 CALL dgebrd( 2, 1, a, 1, d, e, tq, tp, w, 2, info )
135 CALL chkxer(
'DGEBRD', infot, nout, lerr, ok )
137 CALL dgebrd( 2, 1, a, 2, d, e, tq, tp, w, 1, info )
138 CALL chkxer(
'DGEBRD', infot, nout, lerr, ok )
145 CALL dgebd2( -1, 0, a, 1, d, e, tq, tp, w, info )
146 CALL chkxer(
'DGEBD2', infot, nout, lerr, ok )
148 CALL dgebd2( 0, -1, a, 1, d, e, tq, tp, w, info )
149 CALL chkxer(
'DGEBD2', infot, nout, lerr, ok )
151 CALL dgebd2( 2, 1, a, 1, d, e, tq, tp, w, info )
152 CALL chkxer(
'DGEBD2', infot, nout, lerr, ok )
159 CALL dorgbr(
'/', 0, 0, 0, a, 1, tq, w, 1, info )
160 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
162 CALL dorgbr(
'Q', -1, 0, 0, a, 1, tq, w, 1, info )
163 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
165 CALL dorgbr(
'Q', 0, -1, 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', 1, 0, 1, a, 1, tq, w, 1, info )
172 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
174 CALL dorgbr(
'P', 1, 0, 0, a, 1, tq, w, 1, info )
175 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
177 CALL dorgbr(
'P', 0, 1, 1, a, 1, tq, w, 1, info )
178 CALL chkxer(
'DORGBR', infot, nout, lerr, ok )
180 CALL dorgbr( 'q
', 0, 0, -1, A, 1, TQ, W, 1, INFO )
181 CALL CHKXER( 'dorgbr', INFOT, NOUT, LERR, OK )
183 CALL DORGBR( 'q
', 2, 1, 1, A, 1, TQ, W, 1, INFO )
184 CALL CHKXER( 'dorgbr', INFOT, NOUT, LERR, OK )
186 CALL DORGBR( 'q
', 2, 2, 1, A, 2, TQ, W, 1, INFO )
187 CALL CHKXER( 'dorgbr', INFOT, NOUT, LERR, OK )
194 CALL DORMBR( '/
', 'l
', 't
', 0, 0, 0, A, 1, TQ, U, 1, W, 1,
196 CALL CHKXER( 'dormbr', infot, nout, lerr, ok )
198 CALL dormbr(
'Q',
'/',
'T', 0, 0, 0, a, 1, tq, u, 1, w, 1,
200 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
202 CALL dormbr(
'Q',
'L',
'/', 0, 0, 0, a, 1, tq, u, 1, w, 1,
204 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
206 CALL dormbr(
'Q',
'L',
'T', -1, 0, 0, a, 1, tq, u, 1, w, 1,
208 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
210 CALL dormbr(
'Q',
'L',
'T', 0, -1, 0, a, 1, tq, u, 1, w, 1,
212 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
214 CALL dormbr(
'Q',
'L',
'T', 0, 0, -1, a, 1, tq, u, 1, w, 1,
216 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
218 CALL dormbr(
'Q',
'L',
'T', 2, 0, 0, a, 1, tq, u, 2, w, 1,
220 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
222 CALL dormbr(
'Q',
'R',
'T', 0, 2, 0, a, 1, tq, u, 1, w, 1,
224 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
226 CALL dormbr(
'P',
'L',
'T', 2, 0, 2, a, 1, tq, u, 2, w, 1,
228 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
230 CALL dormbr(
'P',
'R',
'T', 0, 2, 2, a, 1, tq, u, 1, w, 1,
232 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
234 CALL dormbr(
'Q',
'R',
'T', 2, 0, 0, a, 1, tq, u, 1, w, 1,
236 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
238 CALL dormbr(
'Q',
'L',
'T', 0, 2, 0, a, 1, tq, u, 1, w, 1,
240 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
242 CALL dormbr(
'Q',
'R',
'T', 2, 0, 0, a, 1, tq, u, 2, w, 1,
244 CALL chkxer(
'DORMBR', infot, nout, lerr, ok )
251 CALL dbdsqr( '/
', 0, 0, 0, 0, D, E, V, 1, U, 1, A, 1, W, INFO )
252 CALL CHKXER( 'dbdsqr', INFOT, NOUT, LERR, OK )
254 CALL DBDSQR( 'u
', -1, 0, 0, 0, D, E, V, 1, U, 1, A, 1, W,
256 CALL CHKXER( 'dbdsqr', INFOT, NOUT, LERR, OK )
258 CALL DBDSQR( 'u
', 0, -1, 0, 0, D, E, V, 1, U, 1, A, 1, W,
260 CALL CHKXER( 'dbdsqr', INFOT, NOUT, LERR, OK )
262 CALL DBDSQR( 'u
', 0, 0, -1, 0, D, E, V, 1, U, 1, A, 1, W,
264 CALL CHKXER( 'dbdsqr', INFOT, NOUT, LERR, OK )
266 CALL DBDSQR( 'u
', 0, 0, 0, -1, D, E, V, 1, U, 1, A, 1, W,
268 CALL CHKXER( 'dbdsqr', INFOT, NOUT, LERR, OK )
270 CALL DBDSQR( 'u
', 2, 1, 0, 0, D, E, V, 1, U, 1, A, 1, W, INFO )
271 CALL CHKXER( 'dbdsqr', INFOT, NOUT, LERR, OK )
273 CALL DBDSQR( 'u
', 0, 0, 2, 0, D, E, V, 1, U, 1, A, 1, W, INFO )
274 CALL CHKXER( 'dbdsqr', INFOT, NOUT, LERR, OK )
276 CALL DBDSQR( 'u
', 2, 0, 0, 1, D, E, V, 1, U, 1, A, 1, W, INFO )
277 CALL CHKXER( 'dbdsqr', INFOT, NOUT, LERR, OK )
284 CALL DBDSDC( '/
', 'n
', 0, D, E, U, 1, V, 1, Q, IQ, W, IW,
286 CALL CHKXER( 'dbdsdc', INFOT, NOUT, LERR, OK )
288 CALL DBDSDC( 'u
', '/
', 0, D, E, U, 1, V, 1, Q, IQ, W, IW,
290 CALL CHKXER( 'dbdsdc', INFOT, NOUT, LERR, OK )
292 CALL DBDSDC( 'u
', 'n
', -1, D, E, U, 1, V, 1, Q, IQ, W, IW,
294 CALL CHKXER( 'dbdsdc', INFOT, NOUT, LERR, OK )
296 CALL DBDSDC( 'u
', 'i
', 2, D, E, U, 1, V, 1, Q, IQ, W, IW,
298 CALL CHKXER( 'dbdsdc', INFOT, NOUT, LERR, OK )
300 CALL DBDSDC( 'u
', 'i
', 2, D, E, U, 2, V, 1, Q, IQ, W, IW,
302 CALL CHKXER( 'dbdsdc', INFOT, NOUT, LERR, OK )
309 CALL DBDSVDX( 'x
', 'n
', 'a
', 1, D, E, ZERO, ONE, 0, 0,
310 $ NS, S, Q, 1, W, IW, INFO)
311 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
313 CALL DBDSVDX( 'u
', 'x
', 'a
', 1, D, E, ZERO, ONE, 0, 0,
314 $ NS, S, Q, 1, W, IW, INFO)
315 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
317 CALL DBDSVDX( 'u
', 'v
', 'x
', 1, D, E, ZERO, ONE, 0, 0,
318 $ NS, S, Q, 1, W, IW, INFO)
319 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
321 CALL DBDSVDX( 'u
', 'v
', 'a
', -1, D, E, ZERO, ONE, 0, 0,
322 $ NS, S, Q, 1, W, IW, INFO)
323 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
325 CALL DBDSVDX( 'u
', 'v
', 'v
', 2, D, E, -ONE, ZERO, 0, 0,
326 $ NS, S, Q, 1, W, IW, INFO)
327 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
329 CALL DBDSVDX( 'u
', 'v
', 'v
', 2, D, E, ONE, ZERO, 0, 0,
330 $ NS, S, Q, 1, W, IW, INFO)
331 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
333 CALL DBDSVDX( 'l
', 'v
', 'i
', 2, D, E, ZERO, ZERO, 0, 2,
334 $ NS, S, Q, 1, W, IW, INFO)
335 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
337 CALL DBDSVDX( 'l
', 'v
', 'i
', 4, D, E, ZERO, ZERO, 5, 2,
338 $ NS, S, Q, 1, W, IW, INFO)
339 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
341 CALL DBDSVDX( 'l
', 'v
', 'i
', 4, D, E, ZERO, ZERO, 3, 2,
342 $ NS, S, Q, 1, W, IW, INFO)
343 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
345 CALL DBDSVDX( 'l
', 'v
', 'i
', 4, D, E, ZERO, ZERO, 3, 5,
346 $ NS, S, Q, 1, W, IW, INFO)
347 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
349 CALL DBDSVDX( 'l
', 'v
', 'a
', 4, D, E, ZERO, ZERO, 0, 0,
350 $ NS, S, Q, 0, W, IW, INFO)
351 CALL CHKXER( 'dbdsvdx', INFOT, NOUT, LERR, OK )
353 CALL DBDSVDX( 'l
', 'v
', 'a
', 4, D, E, ZERO, ZERO, 0, 0,
354 $ NS, S, Q, 2, W, IW, INFO)
355 CALL CHKXER( 'dbdsvdx', 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
',