68 parameter( nmax = 4, lw = nmax )
72 INTEGER I, INFO, J, NT
75 REAL D( NMAX ), E( NMAX ), RW( 4*NMAX )
76 COMPLEX 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. / real( i+j )
116 IF( lsamen( 2, c2,
'BD' ) )
THEN
122 CALL cgebrd( -1, 0, a, 1, d, e, tq, tp, w, 1, info )
123 CALL chkxer(
'CGEBRD', infot, nout, lerr, ok )
125 CALL cgebrd( 0, -1, a, 1, d, e, tq, tp, w, 1, info )
126 CALL chkxer(
'CGEBRD', infot, nout, lerr, ok )
128 CALL cgebrd( 2, 1, a, 1, d, e, tq, tp, w, 2, info )
129 CALL chkxer(
'CGEBRD', infot, nout, lerr, ok )
131 CALL cgebrd( 2, 1, a, 2, d, e, tq, tp, w, 1, info )
132 CALL chkxer(
'CGEBRD', infot, nout, lerr, ok )
139 CALL cungbr(
'/', 0, 0, 0, a, 1, tq, w, 1, info )
140 CALL chkxer(
'CUNGBR', infot, nout, lerr, ok )
142 CALL cungbr(
'Q', -1, 0, 0, a, 1, tq, w, 1, info )
143 CALL chkxer(
'CUNGBR', infot, nout, lerr, ok )
145 CALL cungbr(
'Q', 0, -1, 0, a, 1, tq, w, 1, info )
146 CALL chkxer(
'CUNGBR', infot, nout, lerr, ok )
148 CALL cungbr(
'Q', 0, 1, 0, a, 1, tq, w, 1, info )
149 CALL chkxer(
'CUNGBR', infot, nout, lerr, ok )
151 CALL cungbr(
'Q', 1, 0, 1, a, 1, tq, w, 1, info )
152 CALL chkxer(
'CUNGBR', infot, nout, lerr, ok )
154 CALL cungbr(
'P', 1, 0, 0, a, 1, tq, w, 1, info )
155 CALL chkxer(
'CUNGBR', infot, nout, lerr, ok )
157 CALL cungbr(
'P', 0, 1, 1, a, 1, tq, w, 1, info )
158 CALL chkxer(
'CUNGBR', infot, nout, lerr, ok )
160 CALL cungbr(
'Q', 0, 0, -1, a, 1, tq, w, 1, info )
161 CALL chkxer(
'CUNGBR', infot, nout, lerr, ok )
163 CALL cungbr(
'Q', 2, 1, 1, a, 1, tq, w, 1, info )
164 CALL chkxer(
'CUNGBR', infot, nout, lerr, ok )
166 CALL cungbr(
'Q', 2, 2, 1, a, 2, tq, w, 1, info )
167 CALL chkxer(
'CUNGBR', infot, nout, lerr, ok )
174 CALL cunmbr(
'/',
'L',
'T', 0, 0, 0, a, 1, tq, u, 1, w, 1,
176 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
178 CALL cunmbr(
'Q',
'/',
'T', 0, 0, 0, a, 1, tq, u, 1, w, 1,
180 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
182 CALL cunmbr(
'Q',
'L',
'/', 0, 0, 0, a, 1, tq, u, 1, w, 1,
184 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
186 CALL cunmbr(
'Q',
'L',
'C', -1, 0, 0, a, 1, tq, u, 1, w, 1,
188 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
190 CALL cunmbr(
'Q',
'L',
'C', 0, -1, 0, a, 1, tq, u, 1, w, 1,
192 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
194 CALL cunmbr(
'Q',
'L',
'C', 0, 0, -1, a, 1, tq, u, 1, w, 1,
196 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
198 CALL cunmbr(
'Q',
'L',
'C', 2, 0, 0, a, 1, tq, u, 2, w, 1,
200 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
202 CALL cunmbr(
'Q',
'R',
'C', 0, 2, 0, a, 1, tq, u, 1, w, 1,
204 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
206 CALL cunmbr(
'P',
'L',
'C', 2, 0, 2, a, 1, tq, u, 2, w, 1,
208 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
210 CALL cunmbr(
'P',
'R',
'C', 0, 2, 2, a, 1, tq, u, 1, w, 1,
212 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
214 CALL cunmbr(
'Q',
'R',
'C', 2, 0, 0, a, 1, tq, u, 1, w, 1,
216 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
218 CALL cunmbr(
'Q',
'L',
'C', 0, 2, 0, a, 1, tq, u, 1, w, 0,
220 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
222 CALL cunmbr(
'Q',
'R',
'C', 2, 0, 0, a, 1, tq, u, 2, w, 0,
224 CALL chkxer(
'CUNMBR', infot, nout, lerr, ok )
231 CALL cbdsqr(
'/', 0, 0, 0, 0, d, e, v, 1, u, 1, a, 1, rw,
233 CALL chkxer(
'CBDSQR', infot, nout, lerr, ok )
235 CALL cbdsqr(
'U', -1, 0, 0, 0, d, e, v, 1, u, 1, a, 1, rw,
237 CALL chkxer(
'CBDSQR', infot, nout, lerr, ok )
239 CALL cbdsqr(
'U', 0, -1, 0, 0, d, e, v, 1, u, 1, a, 1, rw,
241 CALL chkxer(
'CBDSQR', infot, nout, lerr, ok )
243 CALL cbdsqr(
'U', 0, 0, -1, 0, d, e, v, 1, u, 1, a, 1, rw,
245 CALL chkxer(
'CBDSQR', infot, nout, lerr, ok )
247 CALL cbdsqr(
'U', 0, 0, 0, -1, d, e, v, 1, u, 1, a, 1, rw,
249 CALL chkxer(
'CBDSQR', infot, nout, lerr, ok )
251 CALL cbdsqr(
'U', 2, 1, 0, 0, d, e, v, 1, u, 1, a, 1, rw,
253 CALL chkxer(
'CBDSQR', infot, nout, lerr, ok )
255 CALL cbdsqr(
'U', 0, 0, 2, 0, d, e, v, 1, u, 1, a, 1, rw,
257 CALL chkxer(
'CBDSQR', infot, nout, lerr, ok )
259 CALL cbdsqr(
'U', 2, 0, 0, 1, d, e, v, 1, u, 1, a, 1, rw,
261 CALL chkxer(
'CBDSQR', 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 cerrbd(PATH, NUNIT)
CERRBD
subroutine cungbr(VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO)
CUNGBR
subroutine cgebrd(M, N, A, LDA, D, E, TAUQ, TAUP, WORK, LWORK, INFO)
CGEBRD
subroutine cunmbr(VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMBR
subroutine cbdsqr(UPLO, N, NCVT, NRU, NCC, D, E, VT, LDVT, U, LDU, C, LDC, RWORK, INFO)
CBDSQR