LAPACK  3.4.2
LAPACK: Linear Algebra PACKage
 All Files Functions Groups
dlahd2.f
Go to the documentation of this file.
1 *> \brief \b DLAHD2
2 *
3 * =========== DOCUMENTATION ===========
4 *
5 * Online html documentation available at
6 * http://www.netlib.org/lapack/explore-html/
7 *
8 * Definition:
9 * ===========
10 *
11 * SUBROUTINE DLAHD2( IOUNIT, PATH )
12 *
13 * .. Scalar Arguments ..
14 * CHARACTER*3 PATH
15 * INTEGER IOUNIT
16 * ..
17 *
18 *
19 *> \par Purpose:
20 * =============
21 *>
22 *> \verbatim
23 *>
24 *> DLAHD2 prints header information for the different test paths.
25 *> \endverbatim
26 *
27 * Arguments:
28 * ==========
29 *
30 *> \param[in] IOUNIT
31 *> \verbatim
32 *> IOUNIT is INTEGER.
33 *> On entry, IOUNIT specifies the unit number to which the
34 *> header information should be printed.
35 *> \endverbatim
36 *>
37 *> \param[in] PATH
38 *> \verbatim
39 *> PATH is CHARACTER*3.
40 *> On entry, PATH contains the name of the path for which the
41 *> header information is to be printed. Current paths are
42 *>
43 *> DHS, ZHS: Non-symmetric eigenproblem.
44 *> DST, ZST: Symmetric eigenproblem.
45 *> DSG, ZSG: Symmetric Generalized eigenproblem.
46 *> DBD, ZBD: Singular Value Decomposition (SVD)
47 *> DBB, ZBB: General Banded reduction to bidiagonal form
48 *>
49 *> These paths also are supplied in double precision (replace
50 *> leading S by D and leading C by Z in path names).
51 *> \endverbatim
52 *
53 * Authors:
54 * ========
55 *
56 *> \author Univ. of Tennessee
57 *> \author Univ. of California Berkeley
58 *> \author Univ. of Colorado Denver
59 *> \author NAG Ltd.
60 *
61 *> \date November 2011
62 *
63 *> \ingroup double_eig
64 *
65 * =====================================================================
66  SUBROUTINE dlahd2( IOUNIT, PATH )
67 *
68 * -- LAPACK test routine (version 3.4.0) --
69 * -- LAPACK is a software package provided by Univ. of Tennessee, --
70 * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
71 * November 2011
72 *
73 * .. Scalar Arguments ..
74  CHARACTER*3 path
75  INTEGER iounit
76 * ..
77 *
78 * =====================================================================
79 *
80 * .. Local Scalars ..
81  LOGICAL corz, sord
82  CHARACTER*2 c2
83  INTEGER j
84 * ..
85 * .. External Functions ..
86  LOGICAL lsame, lsamen
87  EXTERNAL lsame, lsamen
88 * ..
89 * .. Executable Statements ..
90 *
91  IF( iounit.LE.0 )
92  $ return
93  sord = lsame( path, 'S' ) .OR. lsame( path, 'D' )
94  corz = lsame( path, 'C' ) .OR. lsame( path, 'Z' )
95  IF( .NOT.sord .AND. .NOT.corz ) THEN
96  WRITE( iounit, fmt = 9999 )path
97  END IF
98  c2 = path( 2: 3 )
99 *
100  IF( lsamen( 2, c2, 'HS' ) ) THEN
101  IF( sord ) THEN
102 *
103 * Real Non-symmetric Eigenvalue Problem:
104 *
105  WRITE( iounit, fmt = 9998 )path
106 *
107 * Matrix types
108 *
109  WRITE( iounit, fmt = 9988 )
110  WRITE( iounit, fmt = 9987 )
111  WRITE( iounit, fmt = 9986 )'pairs ', 'pairs ', 'prs.',
112  $ 'prs.'
113  WRITE( iounit, fmt = 9985 )
114 *
115 * Tests performed
116 *
117  WRITE( iounit, fmt = 9984 )'orthogonal', '''=transpose',
118  $ ( '''', j = 1, 6 )
119 *
120  ELSE
121 *
122 * Complex Non-symmetric Eigenvalue Problem:
123 *
124  WRITE( iounit, fmt = 9997 )path
125 *
126 * Matrix types
127 *
128  WRITE( iounit, fmt = 9988 )
129  WRITE( iounit, fmt = 9987 )
130  WRITE( iounit, fmt = 9986 )'e.vals', 'e.vals', 'e.vs',
131  $ 'e.vs'
132  WRITE( iounit, fmt = 9985 )
133 *
134 * Tests performed
135 *
136  WRITE( iounit, fmt = 9984 )'unitary', '*=conj.transp.',
137  $ ( '*', j = 1, 6 )
138  END IF
139 *
140  ELSE IF( lsamen( 2, c2, 'ST' ) ) THEN
141 *
142  IF( sord ) THEN
143 *
144 * Real Symmetric Eigenvalue Problem:
145 *
146  WRITE( iounit, fmt = 9996 )path
147 *
148 * Matrix types
149 *
150  WRITE( iounit, fmt = 9983 )
151  WRITE( iounit, fmt = 9982 )
152  WRITE( iounit, fmt = 9981 )'Symmetric'
153 *
154 * Tests performed
155 *
156  WRITE( iounit, fmt = 9968 )
157 *
158  ELSE
159 *
160 * Complex Hermitian Eigenvalue Problem:
161 *
162  WRITE( iounit, fmt = 9995 )path
163 *
164 * Matrix types
165 *
166  WRITE( iounit, fmt = 9983 )
167  WRITE( iounit, fmt = 9982 )
168  WRITE( iounit, fmt = 9981 )'Hermitian'
169 *
170 * Tests performed
171 *
172  WRITE( iounit, fmt = 9967 )
173  END IF
174 *
175  ELSE IF( lsamen( 2, c2, 'SG' ) ) THEN
176 *
177  IF( sord ) THEN
178 *
179 * Real Symmetric Generalized Eigenvalue Problem:
180 *
181  WRITE( iounit, fmt = 9992 )path
182 *
183 * Matrix types
184 *
185  WRITE( iounit, fmt = 9980 )
186  WRITE( iounit, fmt = 9979 )
187  WRITE( iounit, fmt = 9978 )'Symmetric'
188 *
189 * Tests performed
190 *
191  WRITE( iounit, fmt = 9977 )
192  WRITE( iounit, fmt = 9976 )
193 *
194  ELSE
195 *
196 * Complex Hermitian Generalized Eigenvalue Problem:
197 *
198  WRITE( iounit, fmt = 9991 )path
199 *
200 * Matrix types
201 *
202  WRITE( iounit, fmt = 9980 )
203  WRITE( iounit, fmt = 9979 )
204  WRITE( iounit, fmt = 9978 )'Hermitian'
205 *
206 * Tests performed
207 *
208  WRITE( iounit, fmt = 9975 )
209  WRITE( iounit, fmt = 9974 )
210 *
211  END IF
212 *
213  ELSE IF( lsamen( 2, c2, 'BD' ) ) THEN
214 *
215  IF( sord ) THEN
216 *
217 * Real Singular Value Decomposition:
218 *
219  WRITE( iounit, fmt = 9994 )path
220 *
221 * Matrix types
222 *
223  WRITE( iounit, fmt = 9973 )
224 *
225 * Tests performed
226 *
227  WRITE( iounit, fmt = 9972 )'orthogonal'
228  WRITE( iounit, fmt = 9971 )
229  ELSE
230 *
231 * Complex Singular Value Decomposition:
232 *
233  WRITE( iounit, fmt = 9993 )path
234 *
235 * Matrix types
236 *
237  WRITE( iounit, fmt = 9973 )
238 *
239 * Tests performed
240 *
241  WRITE( iounit, fmt = 9972 )'unitary '
242  WRITE( iounit, fmt = 9971 )
243  END IF
244 *
245  ELSE IF( lsamen( 2, c2, 'BB' ) ) THEN
246 *
247  IF( sord ) THEN
248 *
249 * Real General Band reduction to bidiagonal form:
250 *
251  WRITE( iounit, fmt = 9990 )path
252 *
253 * Matrix types
254 *
255  WRITE( iounit, fmt = 9970 )
256 *
257 * Tests performed
258 *
259  WRITE( iounit, fmt = 9969 )'orthogonal'
260  ELSE
261 *
262 * Complex Band reduction to bidiagonal form:
263 *
264  WRITE( iounit, fmt = 9989 )path
265 *
266 * Matrix types
267 *
268  WRITE( iounit, fmt = 9970 )
269 *
270 * Tests performed
271 *
272  WRITE( iounit, fmt = 9969 )'unitary '
273  END IF
274 *
275  ELSE
276 *
277  WRITE( iounit, fmt = 9999 )path
278  return
279  END IF
280 *
281  return
282 *
283  9999 format( 1x, a3, ': no header available' )
284  9998 format( / 1x, a3, ' -- Real Non-symmetric eigenvalue problem' )
285  9997 format( / 1x, a3, ' -- Complex Non-symmetric eigenvalue problem' )
286  9996 format( / 1x, a3, ' -- Real Symmetric eigenvalue problem' )
287  9995 format( / 1x, a3, ' -- Complex Hermitian eigenvalue problem' )
288  9994 format( / 1x, a3, ' -- Real Singular Value Decomposition' )
289  9993 format( / 1x, a3, ' -- Complex Singular Value Decomposition' )
290  9992 format( / 1x, a3, ' -- Real Symmetric Generalized eigenvalue ',
291  $ 'problem' )
292  9991 format( / 1x, a3, ' -- Complex Hermitian Generalized eigenvalue ',
293  $ 'problem' )
294  9990 format( / 1x, a3, ' -- Real Band reduc. to bidiagonal form' )
295  9989 format( / 1x, a3, ' -- Complex Band reduc. to bidiagonal form' )
296 *
297  9988 format( ' Matrix types (see xCHKHS for details): ' )
298 *
299  9987 format( / ' Special Matrices:', / ' 1=Zero matrix. ',
300  $ ' ', ' 5=Diagonal: geometr. spaced entries.',
301  $ / ' 2=Identity matrix. ', ' 6=Diagona',
302  $ 'l: clustered entries.', / ' 3=Transposed Jordan block. ',
303  $ ' ', ' 7=Diagonal: large, evenly spaced.', / ' ',
304  $ '4=Diagonal: evenly spaced entries. ', ' 8=Diagonal: s',
305  $ 'mall, evenly spaced.' )
306  9986 format( ' Dense, Non-Symmetric Matrices:', / ' 9=Well-cond., ev',
307  $ 'enly spaced eigenvals.', ' 14=Ill-cond., geomet. spaced e',
308  $ 'igenals.', / ' 10=Well-cond., geom. spaced eigenvals. ',
309  $ ' 15=Ill-conditioned, clustered e.vals.', / ' 11=Well-cond',
310  $ 'itioned, clustered e.vals. ', ' 16=Ill-cond., random comp',
311  $ 'lex ', a6, / ' 12=Well-cond., random complex ', a6, ' ',
312  $ ' 17=Ill-cond., large rand. complx ', a4, / ' 13=Ill-condi',
313  $ 'tioned, evenly spaced. ', ' 18=Ill-cond., small rand.',
314  $ ' complx ', a4 )
315  9985 format( ' 19=Matrix with random O(1) entries. ', ' 21=Matrix ',
316  $ 'with small random entries.', / ' 20=Matrix with large ran',
317  $ 'dom entries. ' )
318  9984 format( / ' Tests performed: ', '(H is Hessenberg, T is Schur,',
319  $ ' U and Z are ', a, ',', / 20x, a, ', W is a diagonal matr',
320  $ 'ix of eigenvalues,', / 20x, 'L and R are the left and rig',
321  $ 'ht eigenvector matrices)', / ' 1 = | A - U H U', a1, ' |',
322  $ ' / ( |A| n ulp ) ', ' 2 = | I - U U', a1, ' | / ',
323  $ '( n ulp )', / ' 3 = | H - Z T Z', a1, ' | / ( |H| n ulp ',
324  $ ') ', ' 4 = | I - Z Z', a1, ' | / ( n ulp )',
325  $ / ' 5 = | A - UZ T (UZ)', a1, ' | / ( |A| n ulp ) ',
326  $ ' 6 = | I - UZ (UZ)', a1, ' | / ( n ulp )', / ' 7 = | T(',
327  $ 'e.vects.) - T(no e.vects.) | / ( |T| ulp )', / ' 8 = | W',
328  $ '(e.vects.) - W(no e.vects.) | / ( |W| ulp )', / ' 9 = | ',
329  $ 'TR - RW | / ( |T| |R| ulp ) ', ' 10 = | LT - WL | / (',
330  $ ' |T| |L| ulp )', / ' 11= |HX - XW| / (|H| |X| ulp) (inv.',
331  $ 'it)', ' 12= |YH - WY| / (|H| |Y| ulp) (inv.it)' )
332 *
333 * Symmetric/Hermitian eigenproblem
334 *
335  9983 format( ' Matrix types (see xDRVST for details): ' )
336 *
337  9982 format( / ' Special Matrices:', / ' 1=Zero matrix. ',
338  $ ' ', ' 5=Diagonal: clustered entries.', / ' 2=',
339  $ 'Identity matrix. ', ' 6=Diagonal: lar',
340  $ 'ge, evenly spaced.', / ' 3=Diagonal: evenly spaced entri',
341  $ 'es. ', ' 7=Diagonal: small, evenly spaced.', / ' 4=D',
342  $ 'iagonal: geometr. spaced entries.' )
343  9981 format( ' Dense ', a, ' Matrices:', / ' 8=Evenly spaced eigen',
344  $ 'vals. ', ' 12=Small, evenly spaced eigenvals.',
345  $ / ' 9=Geometrically spaced eigenvals. ', ' 13=Matrix ',
346  $ 'with random O(1) entries.', / ' 10=Clustered eigenvalues.',
347  $ ' ', ' 14=Matrix with large random entries.',
348  $ / ' 11=Large, evenly spaced eigenvals. ', ' 15=Matrix ',
349  $ 'with small random entries.' )
350 *
351 * Symmetric/Hermitian Generalized eigenproblem
352 *
353  9980 format( ' Matrix types (see xDRVSG for details): ' )
354 *
355  9979 format( / ' Special Matrices:', / ' 1=Zero matrix. ',
356  $ ' ', ' 5=Diagonal: clustered entries.', / ' 2=',
357  $ 'Identity matrix. ', ' 6=Diagonal: lar',
358  $ 'ge, evenly spaced.', / ' 3=Diagonal: evenly spaced entri',
359  $ 'es. ', ' 7=Diagonal: small, evenly spaced.', / ' 4=D',
360  $ 'iagonal: geometr. spaced entries.' )
361  9978 format( ' Dense or Banded ', a, ' Matrices: ',
362  $ / ' 8=Evenly spaced eigenvals. ',
363  $ ' 15=Matrix with small random entries.',
364  $ / ' 9=Geometrically spaced eigenvals. ',
365  $ ' 16=Evenly spaced eigenvals, KA=1, KB=1.',
366  $ / ' 10=Clustered eigenvalues. ',
367  $ ' 17=Evenly spaced eigenvals, KA=2, KB=1.',
368  $ / ' 11=Large, evenly spaced eigenvals. ',
369  $ ' 18=Evenly spaced eigenvals, KA=2, KB=2.',
370  $ / ' 12=Small, evenly spaced eigenvals. ',
371  $ ' 19=Evenly spaced eigenvals, KA=3, KB=1.',
372  $ / ' 13=Matrix with random O(1) entries. ',
373  $ ' 20=Evenly spaced eigenvals, KA=3, KB=2.',
374  $ / ' 14=Matrix with large random entries.',
375  $ ' 21=Evenly spaced eigenvals, KA=3, KB=3.' )
376  9977 format( / ' Tests performed: ',
377  $ / '( For each pair (A,B), where A is of the given type ',
378  $ / ' and B is a random well-conditioned matrix. D is ',
379  $ / ' diagonal, and Z is orthogonal. )',
380  $ / ' 1 = DSYGV, with ITYPE=1 and UPLO=''U'':',
381  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
382  $ / ' 2 = DSPGV, with ITYPE=1 and UPLO=''U'':',
383  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
384  $ / ' 3 = DSBGV, with ITYPE=1 and UPLO=''U'':',
385  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
386  $ / ' 4 = DSYGV, with ITYPE=1 and UPLO=''L'':',
387  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
388  $ / ' 5 = DSPGV, with ITYPE=1 and UPLO=''L'':',
389  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
390  $ / ' 6 = DSBGV, with ITYPE=1 and UPLO=''L'':',
391  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ' )
392  9976 format( ' 7 = DSYGV, with ITYPE=2 and UPLO=''U'':',
393  $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
394  $ / ' 8 = DSPGV, with ITYPE=2 and UPLO=''U'':',
395  $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
396  $ / ' 9 = DSPGV, with ITYPE=2 and UPLO=''L'':',
397  $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
398  $ / '10 = DSPGV, with ITYPE=2 and UPLO=''L'':',
399  $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
400  $ / '11 = DSYGV, with ITYPE=3 and UPLO=''U'':',
401  $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
402  $ / '12 = DSPGV, with ITYPE=3 and UPLO=''U'':',
403  $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
404  $ / '13 = DSYGV, with ITYPE=3 and UPLO=''L'':',
405  $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
406  $ / '14 = DSPGV, with ITYPE=3 and UPLO=''L'':',
407  $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ' )
408  9975 format( / ' Tests performed: ',
409  $ / '( For each pair (A,B), where A is of the given type ',
410  $ / ' and B is a random well-conditioned matrix. D is ',
411  $ / ' diagonal, and Z is unitary. )',
412  $ / ' 1 = ZHEGV, with ITYPE=1 and UPLO=''U'':',
413  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
414  $ / ' 2 = ZHPGV, with ITYPE=1 and UPLO=''U'':',
415  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
416  $ / ' 3 = ZHBGV, with ITYPE=1 and UPLO=''U'':',
417  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
418  $ / ' 4 = ZHEGV, with ITYPE=1 and UPLO=''L'':',
419  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
420  $ / ' 5 = ZHPGV, with ITYPE=1 and UPLO=''L'':',
421  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ',
422  $ / ' 6 = ZHBGV, with ITYPE=1 and UPLO=''L'':',
423  $ ' | A Z - B Z D | / ( |A| |Z| n ulp ) ' )
424  9974 format( ' 7 = ZHEGV, with ITYPE=2 and UPLO=''U'':',
425  $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
426  $ / ' 8 = ZHPGV, with ITYPE=2 and UPLO=''U'':',
427  $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
428  $ / ' 9 = ZHPGV, with ITYPE=2 and UPLO=''L'':',
429  $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
430  $ / '10 = ZHPGV, with ITYPE=2 and UPLO=''L'':',
431  $ ' | A B Z - Z D | / ( |A| |Z| n ulp ) ',
432  $ / '11 = ZHEGV, with ITYPE=3 and UPLO=''U'':',
433  $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
434  $ / '12 = ZHPGV, with ITYPE=3 and UPLO=''U'':',
435  $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
436  $ / '13 = ZHEGV, with ITYPE=3 and UPLO=''L'':',
437  $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ',
438  $ / '14 = ZHPGV, with ITYPE=3 and UPLO=''L'':',
439  $ ' | B A Z - Z D | / ( |A| |Z| n ulp ) ' )
440 *
441 * Singular Value Decomposition
442 *
443  9973 format( ' Matrix types (see xCHKBD for details):',
444  $ / ' Diagonal matrices:', / ' 1: Zero', 28x,
445  $ ' 5: Clustered entries', / ' 2: Identity', 24x,
446  $ ' 6: Large, evenly spaced entries',
447  $ / ' 3: Evenly spaced entries', 11x,
448  $ ' 7: Small, evenly spaced entries',
449  $ / ' 4: Geometrically spaced entries',
450  $ / ' General matrices:', / ' 8: Evenly spaced sing. vals.',
451  $ 7x, '12: Small, evenly spaced sing vals',
452  $ / ' 9: Geometrically spaced sing vals ',
453  $ '13: Random, O(1) entries', / ' 10: Clustered sing. vals.',
454  $ 11x, '14: Random, scaled near overflow',
455  $ / ' 11: Large, evenly spaced sing vals ',
456  $ '15: Random, scaled near underflow' )
457 *
458  9972 format( / ' Test ratios: ',
459  $ '(B: bidiagonal, S: diagonal, Q, P, U, and V: ', a10, / 16x,
460  $ 'X: m x nrhs, Y = Q'' X, and Z = U'' Y)',
461  $ / ' 1: norm( A - Q B P'' ) / ( norm(A) max(m,n) ulp )',
462  $ / ' 2: norm( I - Q'' Q ) / ( m ulp )',
463  $ / ' 3: norm( I - P'' P ) / ( n ulp )',
464  $ / ' 4: norm( B - U S V'' ) / ( norm(B) min(m,n) ulp )', /
465  $ ' 5: norm( Y - U Z ) / ( norm(Z) max(min(m,n),k) ulp )'
466  $ , / ' 6: norm( I - U'' U ) / ( min(m,n) ulp )',
467  $ / ' 7: norm( I - V'' V ) / ( min(m,n) ulp )' )
468  9971 format( ' 8: Test ordering of S (0 if nondecreasing, 1/ulp ',
469  $ ' otherwise)', /
470  $ ' 9: norm( S - S2 ) / ( norm(S) ulp ),',
471  $ ' where S2 is computed', / 44x,
472  $ 'without computing U and V''',
473  $ / ' 10: Sturm sequence test ',
474  $ '(0 if sing. vals of B within THRESH of S)',
475  $ / ' 11: norm( A - (QU) S (V'' P'') ) / ',
476  $ '( norm(A) max(m,n) ulp )', /
477  $ ' 12: norm( X - (QU) Z ) / ( |X| max(M,k) ulp )',
478  $ / ' 13: norm( I - (QU)''(QU) ) / ( M ulp )',
479  $ / ' 14: norm( I - (V'' P'') (P V) ) / ( N ulp )' )
480 *
481 * Band reduction to bidiagonal form
482 *
483  9970 format( ' Matrix types (see xCHKBB for details):',
484  $ / ' Diagonal matrices:', / ' 1: Zero', 28x,
485  $ ' 5: Clustered entries', / ' 2: Identity', 24x,
486  $ ' 6: Large, evenly spaced entries',
487  $ / ' 3: Evenly spaced entries', 11x,
488  $ ' 7: Small, evenly spaced entries',
489  $ / ' 4: Geometrically spaced entries',
490  $ / ' General matrices:', / ' 8: Evenly spaced sing. vals.',
491  $ 7x, '12: Small, evenly spaced sing vals',
492  $ / ' 9: Geometrically spaced sing vals ',
493  $ '13: Random, O(1) entries', / ' 10: Clustered sing. vals.',
494  $ 11x, '14: Random, scaled near overflow',
495  $ / ' 11: Large, evenly spaced sing vals ',
496  $ '15: Random, scaled near underflow' )
497 *
498  9969 format( / ' Test ratios: ', '(B: upper bidiagonal, Q and P: ',
499  $ a10, / 16x, 'C: m x nrhs, PT = P'', Y = Q'' C)',
500  $ / ' 1: norm( A - Q B PT ) / ( norm(A) max(m,n) ulp )',
501  $ / ' 2: norm( I - Q'' Q ) / ( m ulp )',
502  $ / ' 3: norm( I - PT PT'' ) / ( n ulp )',
503  $ / ' 4: norm( Y - Q'' C ) / ( norm(Y) max(m,nrhs) ulp )' )
504  9968 format( / ' Tests performed: See sdrvst.f' )
505  9967 format( / ' Tests performed: See cdrvst.f' )
506 *
507 * End of DLAHD2
508 *
509  END