72 parameter( nmax = 4, lw = nmax )
76 INTEGER i, info,
j, nt
79 INTEGER iq( nmax, nmax ), iw( nmax )
80 DOUBLE PRECISION a( nmax, nmax ), d( nmax ), e( nmax ),
81 $ q( nmax, nmax ), tp( nmax ), tq( nmax ),
82 $ u( nmax, nmax ), 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 WRITE( nout, fmt = 9999 )path, nt
311 WRITE( nout, fmt = 9998 )path
314 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits',
315 $
' (', i3,
' tests done)' )
316 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',
subroutine dbdsdc(UPLO, COMPQ, N, D, E, U, LDU, VT, LDVT, Q, IQ, WORK, IWORK, INFO)
DBDSDC
subroutine dormbr(VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
DORMBR
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine dgebrd(M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK, INFO)
DGEBRD
logical function lsamen(N, CA, CB)
LSAMEN
subroutine dorgbr(VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
DORGBR
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
subroutine dgebd2(M, N, A, LDA, D, E, TAUQ, TAUP, WORK, INFO)
DGEBD2 reduces a general matrix to bidiagonal form using an unblocked algorithm.
subroutine dbdsqr(UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, WORK, INFO)
DBDSQR
subroutine derrbd(PATH, NUNIT)
DERRBD