68 parameter( nmax = 4, lw = nmax )
72 INTEGER I, INFO, J, NT
75 DOUBLE PRECISION D( NMAX ), E( NMAX ), RW( 4*NMAX )
76 COMPLEX*16 A( NMAX, NMAX ), TP( NMAX ), TQ( NMAX ),
77 $ U( NMAX, NMAX ), V( NMAX, NMAX ), W( LW )
92 COMMON / infoc / infot, nout, ok, lerr
93 COMMON / srnamc / srnamt
101 WRITE( nout, fmt = * )
108 a( i, j ) = 1.d0 / dble( i+j )
116 IF( lsamen( 2, c2,
'BD' ) )
THEN
122 CALL zgebrd( -1, 0, a, 1, d, e, tq, tp, w, 1, info )
123 CALL chkxer(
'ZGEBRD', infot, nout, lerr, ok )
125 CALL zgebrd( 0, -1, a, 1, d, e, tq, tp, w, 1, info )
126 CALL chkxer(
'ZGEBRD', infot, nout, lerr, ok )
128 CALL zgebrd( 2, 1, a, 1, d, e, tq, tp, w, 2, info )
129 CALL chkxer(
'ZGEBRD', infot, nout, lerr, ok )
131 CALL zgebrd( 2, 1, a, 2, d, e, tq, tp, w, 1, info )
132 CALL chkxer(
'ZGEBRD', infot, nout, lerr, ok )
139 CALL zungbr(
'/', 0, 0, 0, a, 1, tq, w, 1, info )
140 CALL chkxer(
'ZUNGBR', infot, nout, lerr, ok )
142 CALL zungbr(
'Q', -1, 0, 0, a, 1, tq, w, 1, info )
143 CALL chkxer(
'ZUNGBR', infot, nout, lerr, ok )
145 CALL zungbr(
'Q', 0, -1, 0, a, 1, tq, w, 1, info )
146 CALL chkxer(
'ZUNGBR', infot, nout, lerr, ok )
148 CALL zungbr(
'Q', 0, 1, 0, a, 1, tq, w, 1, info )
149 CALL chkxer(
'ZUNGBR', infot, nout, lerr, ok )
151 CALL zungbr(
'Q', 1, 0, 1, a, 1, tq, w, 1, info )
152 CALL chkxer(
'ZUNGBR', infot, nout, lerr, ok )
154 CALL zungbr(
'P', 1, 0, 0, a, 1, tq, w, 1, info )
155 CALL chkxer(
'ZUNGBR', infot, nout, lerr, ok )
157 CALL zungbr(
'P', 0, 1, 1, a, 1, tq, w, 1, info )
158 CALL chkxer(
'ZUNGBR', infot, nout, lerr, ok )
160 CALL zungbr(
'Q', 0, 0, -1, a, 1, tq, w, 1, info )
161 CALL chkxer(
'ZUNGBR', infot, nout, lerr, ok )
163 CALL zungbr(
'Q', 2, 1, 1, a, 1, tq, w, 1, info )
164 CALL chkxer(
'ZUNGBR', infot, nout, lerr, ok )
166 CALL zungbr(
'Q', 2, 2, 1, a, 2, tq, w, 1, info )
167 CALL chkxer(
'ZUNGBR', infot, nout, lerr, ok )
174 CALL zunmbr(
'/',
'L',
'T', 0, 0, 0, a, 1, tq, u, 1, w, 1,
176 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
178 CALL zunmbr(
'Q',
'/',
'T', 0, 0, 0, a, 1, tq, u, 1, w, 1,
180 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
182 CALL zunmbr(
'Q',
'L',
'/', 0, 0, 0, a, 1, tq, u, 1, w, 1,
184 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
186 CALL zunmbr(
'Q',
'L',
'C', -1, 0, 0, a, 1, tq, u, 1, w, 1,
188 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
190 CALL zunmbr(
'Q',
'L',
'C', 0, -1, 0, a, 1, tq, u, 1, w, 1,
192 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
194 CALL zunmbr(
'Q',
'L',
'C', 0, 0, -1, a, 1, tq, u, 1, w, 1,
196 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
198 CALL zunmbr(
'Q',
'L',
'C', 2, 0, 0, a, 1, tq, u, 2, w, 1,
200 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
202 CALL zunmbr(
'Q',
'R',
'C', 0, 2, 0, a, 1, tq, u, 1, w, 1,
204 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
206 CALL zunmbr(
'P',
'L',
'C', 2, 0, 2, a, 1, tq, u, 2, w, 1,
208 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
210 CALL zunmbr(
'P',
'R',
'C', 0, 2, 2, a, 1, tq, u, 1, w, 1,
212 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
214 CALL zunmbr(
'Q',
'R',
'C', 2, 0, 0, a, 1, tq, u, 1, w, 1,
216 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
218 CALL zunmbr(
'Q',
'L',
'C', 0, 2, 0, a, 1, tq, u, 1, w, 0,
220 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
222 CALL zunmbr(
'Q',
'R',
'C', 2, 0, 0, a, 1, tq, u, 2, w, 0,
224 CALL chkxer(
'ZUNMBR', infot, nout, lerr, ok )
231 CALL zbdsqr(
'/', 0, 0, 0, 0, d, e, v, 1, u, 1, a, 1, rw,
233 CALL chkxer(
'ZBDSQR', infot, nout, lerr, ok )
235 CALL zbdsqr(
'U', -1, 0, 0, 0, d, e, v, 1, u, 1, a, 1, rw,
237 CALL chkxer(
'ZBDSQR', infot, nout, lerr, ok )
239 CALL zbdsqr(
'U', 0, -1, 0, 0, d, e, v, 1, u, 1, a, 1, rw,
241 CALL chkxer(
'ZBDSQR', infot, nout, lerr, ok )
243 CALL zbdsqr(
'U', 0, 0, -1, 0, d, e, v, 1, u, 1, a, 1, rw,
245 CALL chkxer(
'ZBDSQR', infot, nout, lerr, ok )
247 CALL zbdsqr(
'U', 0, 0, 0, -1, d, e, v, 1, u, 1, a, 1, rw,
249 CALL chkxer(
'ZBDSQR', infot, nout, lerr, ok )
251 CALL zbdsqr(
'U', 2, 1, 0, 0, d, e, v, 1, u, 1, a, 1, rw,
253 CALL chkxer(
'ZBDSQR', infot, nout, lerr, ok )
255 CALL zbdsqr(
'U', 0, 0, 2, 0, d, e, v, 1, u, 1, a, 1, rw,
257 CALL chkxer(
'ZBDSQR', infot, nout, lerr, ok )
259 CALL zbdsqr(
'U', 2, 0, 0, 1, d, e, v, 1, u, 1, a, 1, rw,
261 CALL chkxer(
'ZBDSQR', infot, nout, lerr, ok )
268 WRITE( nout, fmt = 9999 )path, nt
270 WRITE( nout, fmt = 9998 )path
273 9999
FORMAT( 1x, a3,
' routines passed the tests of the error exits (',
274 $ i3,
' tests done)' )
275 9998
FORMAT(
' *** ', a3,
' routines failed the tests of the error ',
subroutine chkxer(SRNAMT, INFOT, NOUT, LERR, OK)
subroutine zerrbd(PATH, NUNIT)
ZERRBD
subroutine zungbr(VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
ZUNGBR
subroutine zgebrd(M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK, INFO)
ZGEBRD
subroutine zbdsqr(UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, RWORK, INFO)
ZBDSQR
subroutine zunmbr(VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMBR