You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

aladhd.f 19 kB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520
  1. *> \brief \b ALADHD
  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 ALADHD( 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. *> ALADHD prints header information for the driver routines test paths.
  25. *> \endverbatim
  26. *
  27. * Arguments:
  28. * ==========
  29. *
  30. *> \param[in] IOUNIT
  31. *> \verbatim
  32. *> IOUNIT is INTEGER
  33. *> The unit number to which the header information should be
  34. *> printed.
  35. *> \endverbatim
  36. *>
  37. *> \param[in] PATH
  38. *> \verbatim
  39. *> PATH is CHARACTER*3
  40. *> The name of the path for which the header information is to
  41. *> be printed. Current paths are
  42. *> _GE: General matrices
  43. *> _GB: General band
  44. *> _GT: General Tridiagonal
  45. *> _PO: Symmetric or Hermitian positive definite
  46. *> _PS: Symmetric or Hermitian positive semi-definite
  47. *> _PP: Symmetric or Hermitian positive definite packed
  48. *> _PB: Symmetric or Hermitian positive definite band
  49. *> _PT: Symmetric or Hermitian positive definite tridiagonal
  50. *> _SY: Symmetric indefinite,
  51. *> with partial (Bunch-Kaufman) pivoting
  52. *> _SR: Symmetric indefinite,
  53. *> with rook (bounded Bunch-Kaufman) pivoting
  54. *> _SK: Symmetric indefinite,
  55. *> with rook (bounded Bunch-Kaufman) pivoting
  56. *> ( new storage format for factors:
  57. *> L and diagonal of D is stored in A,
  58. *> subdiagonal of D is stored in E )
  59. *> _SP: Symmetric indefinite packed,
  60. *> with partial (Bunch-Kaufman) pivoting
  61. *> _HA: (complex) Hermitian ,
  62. *> Assen Algorithm
  63. *> _HE: (complex) Hermitian indefinite,
  64. *> with partial (Bunch-Kaufman) pivoting
  65. *> _HR: (complex) Hermitian indefinite,
  66. *> with rook (bounded Bunch-Kaufman) pivoting
  67. *> _HK: (complex) Hermitian indefinite,
  68. *> with rook (bounded Bunch-Kaufman) pivoting
  69. *> ( new storage format for factors:
  70. *> L and diagonal of D is stored in A,
  71. *> subdiagonal of D is stored in E )
  72. *> _HP: (complex) Hermitian indefinite packed,
  73. *> with partial (Bunch-Kaufman) pivoting
  74. *> The first character must be one of S, D, C, or Z (C or Z only
  75. *> if complex).
  76. *> \endverbatim
  77. *
  78. * Authors:
  79. * ========
  80. *
  81. *> \author Univ. of Tennessee
  82. *> \author Univ. of California Berkeley
  83. *> \author Univ. of Colorado Denver
  84. *> \author NAG Ltd.
  85. *
  86. *> \date December 2016
  87. *
  88. *> \ingroup aux_lin
  89. *
  90. * =====================================================================
  91. SUBROUTINE ALADHD( IOUNIT, PATH )
  92. *
  93. * -- LAPACK test routine (version 3.7.0) --
  94. * -- LAPACK is a software package provided by Univ. of Tennessee, --
  95. * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
  96. * December 2016
  97. *
  98. * .. Scalar Arguments ..
  99. CHARACTER*3 PATH
  100. INTEGER IOUNIT
  101. * ..
  102. *
  103. * =====================================================================
  104. *
  105. * .. Local Scalars ..
  106. LOGICAL CORZ, SORD
  107. CHARACTER C1, C3
  108. CHARACTER*2 P2
  109. CHARACTER*9 SYM
  110. * ..
  111. * .. External Functions ..
  112. LOGICAL LSAME, LSAMEN
  113. EXTERNAL LSAME, LSAMEN
  114. * ..
  115. * .. Executable Statements ..
  116. *
  117. IF( IOUNIT.LE.0 )
  118. $ RETURN
  119. C1 = PATH( 1: 1 )
  120. C3 = PATH( 3: 3 )
  121. P2 = PATH( 2: 3 )
  122. SORD = LSAME( C1, 'S' ) .OR. LSAME( C1, 'D' )
  123. CORZ = LSAME( C1, 'C' ) .OR. LSAME( C1, 'Z' )
  124. IF( .NOT.( SORD .OR. CORZ ) )
  125. $ RETURN
  126. *
  127. IF( LSAMEN( 2, P2, 'GE' ) ) THEN
  128. *
  129. * GE: General dense
  130. *
  131. WRITE( IOUNIT, FMT = 9999 )PATH
  132. WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  133. WRITE( IOUNIT, FMT = 9989 )
  134. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  135. WRITE( IOUNIT, FMT = 9981 )1
  136. WRITE( IOUNIT, FMT = 9980 )2
  137. WRITE( IOUNIT, FMT = 9979 )3
  138. WRITE( IOUNIT, FMT = 9978 )4
  139. WRITE( IOUNIT, FMT = 9977 )5
  140. WRITE( IOUNIT, FMT = 9976 )6
  141. WRITE( IOUNIT, FMT = 9972 )7
  142. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  143. *
  144. ELSE IF( LSAMEN( 2, P2, 'GB' ) ) THEN
  145. *
  146. * GB: General band
  147. *
  148. WRITE( IOUNIT, FMT = 9998 )PATH
  149. WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  150. WRITE( IOUNIT, FMT = 9988 )
  151. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  152. WRITE( IOUNIT, FMT = 9981 )1
  153. WRITE( IOUNIT, FMT = 9980 )2
  154. WRITE( IOUNIT, FMT = 9979 )3
  155. WRITE( IOUNIT, FMT = 9978 )4
  156. WRITE( IOUNIT, FMT = 9977 )5
  157. WRITE( IOUNIT, FMT = 9976 )6
  158. WRITE( IOUNIT, FMT = 9972 )7
  159. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  160. *
  161. ELSE IF( LSAMEN( 2, P2, 'GT' ) ) THEN
  162. *
  163. * GT: General tridiagonal
  164. *
  165. WRITE( IOUNIT, FMT = 9997 )PATH
  166. WRITE( IOUNIT, FMT = 9987 )
  167. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  168. WRITE( IOUNIT, FMT = 9981 )1
  169. WRITE( IOUNIT, FMT = 9980 )2
  170. WRITE( IOUNIT, FMT = 9979 )3
  171. WRITE( IOUNIT, FMT = 9978 )4
  172. WRITE( IOUNIT, FMT = 9977 )5
  173. WRITE( IOUNIT, FMT = 9976 )6
  174. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  175. *
  176. ELSE IF( LSAMEN( 2, P2, 'PO' ) .OR. LSAMEN( 2, P2, 'PP' )
  177. $ .OR. LSAMEN( 2, P2, 'PS' ) ) THEN
  178. *
  179. * PO: Positive definite full
  180. * PS: Positive definite full
  181. * PP: Positive definite packed
  182. *
  183. IF( SORD ) THEN
  184. SYM = 'Symmetric'
  185. ELSE
  186. SYM = 'Hermitian'
  187. END IF
  188. IF( LSAME( C3, 'O' ) ) THEN
  189. WRITE( IOUNIT, FMT = 9996 )PATH, SYM
  190. ELSE
  191. WRITE( IOUNIT, FMT = 9995 )PATH, SYM
  192. END IF
  193. WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  194. WRITE( IOUNIT, FMT = 9985 )PATH
  195. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  196. WRITE( IOUNIT, FMT = 9975 )1
  197. WRITE( IOUNIT, FMT = 9980 )2
  198. WRITE( IOUNIT, FMT = 9979 )3
  199. WRITE( IOUNIT, FMT = 9978 )4
  200. WRITE( IOUNIT, FMT = 9977 )5
  201. WRITE( IOUNIT, FMT = 9976 )6
  202. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  203. *
  204. ELSE IF( LSAMEN( 2, P2, 'PB' ) ) THEN
  205. *
  206. * PB: Positive definite band
  207. *
  208. IF( SORD ) THEN
  209. WRITE( IOUNIT, FMT = 9994 )PATH, 'Symmetric'
  210. ELSE
  211. WRITE( IOUNIT, FMT = 9994 )PATH, 'Hermitian'
  212. END IF
  213. WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  214. WRITE( IOUNIT, FMT = 9984 )PATH
  215. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  216. WRITE( IOUNIT, FMT = 9975 )1
  217. WRITE( IOUNIT, FMT = 9980 )2
  218. WRITE( IOUNIT, FMT = 9979 )3
  219. WRITE( IOUNIT, FMT = 9978 )4
  220. WRITE( IOUNIT, FMT = 9977 )5
  221. WRITE( IOUNIT, FMT = 9976 )6
  222. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  223. *
  224. ELSE IF( LSAMEN( 2, P2, 'PT' ) ) THEN
  225. *
  226. * PT: Positive definite tridiagonal
  227. *
  228. IF( SORD ) THEN
  229. WRITE( IOUNIT, FMT = 9993 )PATH, 'Symmetric'
  230. ELSE
  231. WRITE( IOUNIT, FMT = 9993 )PATH, 'Hermitian'
  232. END IF
  233. WRITE( IOUNIT, FMT = 9986 )
  234. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  235. WRITE( IOUNIT, FMT = 9973 )1
  236. WRITE( IOUNIT, FMT = 9980 )2
  237. WRITE( IOUNIT, FMT = 9979 )3
  238. WRITE( IOUNIT, FMT = 9978 )4
  239. WRITE( IOUNIT, FMT = 9977 )5
  240. WRITE( IOUNIT, FMT = 9976 )6
  241. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  242. *
  243. ELSE IF( LSAMEN( 2, P2, 'SY' ) .OR. LSAMEN( 2, P2, 'SP' ) ) THEN
  244. *
  245. * SY: Symmetric indefinite full
  246. * with partial (Bunch-Kaufman) pivoting algorithm
  247. * SP: Symmetric indefinite packed
  248. * with partial (Bunch-Kaufman) pivoting algorithm
  249. *
  250. IF( LSAME( C3, 'Y' ) ) THEN
  251. WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
  252. ELSE
  253. WRITE( IOUNIT, FMT = 9991 )PATH, 'Symmetric'
  254. END IF
  255. WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  256. IF( SORD ) THEN
  257. WRITE( IOUNIT, FMT = 9983 )
  258. ELSE
  259. WRITE( IOUNIT, FMT = 9982 )
  260. END IF
  261. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  262. WRITE( IOUNIT, FMT = 9974 )1
  263. WRITE( IOUNIT, FMT = 9980 )2
  264. WRITE( IOUNIT, FMT = 9979 )3
  265. WRITE( IOUNIT, FMT = 9977 )4
  266. WRITE( IOUNIT, FMT = 9978 )5
  267. WRITE( IOUNIT, FMT = 9976 )6
  268. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  269. *
  270. ELSE IF( LSAMEN( 2, P2, 'SR' ) .OR. LSAMEN( 2, P2, 'SK') ) THEN
  271. *
  272. * SR: Symmetric indefinite full,
  273. * with rook (bounded Bunch-Kaufman) pivoting algorithm
  274. *
  275. * SK: Symmetric indefinite full,
  276. * with rook (bounded Bunch-Kaufman) pivoting algorithm,
  277. * ( new storage format for factors:
  278. * L and diagonal of D is stored in A,
  279. * subdiagonal of D is stored in E )
  280. *
  281. WRITE( IOUNIT, FMT = 9992 )PATH, 'Symmetric'
  282. *
  283. WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  284. IF( SORD ) THEN
  285. WRITE( IOUNIT, FMT = 9983 )
  286. ELSE
  287. WRITE( IOUNIT, FMT = 9982 )
  288. END IF
  289. *
  290. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  291. WRITE( IOUNIT, FMT = 9974 )1
  292. WRITE( IOUNIT, FMT = 9980 )2
  293. WRITE( IOUNIT, FMT = 9979 )3
  294. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  295. *
  296. ELSE IF( LSAMEN( 2, P2, 'HA' ) ) THEN
  297. *
  298. * HA: Hermitian
  299. * Aasen algorithm
  300. WRITE( IOUNIT, FMT = 9971 )PATH, 'Hermitian'
  301. *
  302. WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  303. WRITE( IOUNIT, FMT = 9983 )
  304. *
  305. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  306. WRITE( IOUNIT, FMT = 9974 )1
  307. WRITE( IOUNIT, FMT = 9980 )2
  308. WRITE( IOUNIT, FMT = 9979 )3
  309. WRITE( IOUNIT, FMT = 9977 )4
  310. WRITE( IOUNIT, FMT = 9978 )5
  311. WRITE( IOUNIT, FMT = 9976 )6
  312. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  313. ELSE IF( LSAMEN( 2, P2, 'HE' ) .OR.
  314. $ LSAMEN( 2, P2, 'HP' ) ) THEN
  315. *
  316. * HE: Hermitian indefinite full
  317. * with partial (Bunch-Kaufman) pivoting algorithm
  318. * HP: Hermitian indefinite packed
  319. * with partial (Bunch-Kaufman) pivoting algorithm
  320. *
  321. IF( LSAME( C3, 'E' ) ) THEN
  322. WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
  323. ELSE
  324. WRITE( IOUNIT, FMT = 9991 )PATH, 'Hermitian'
  325. END IF
  326. *
  327. WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  328. WRITE( IOUNIT, FMT = 9983 )
  329. *
  330. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  331. WRITE( IOUNIT, FMT = 9974 )1
  332. WRITE( IOUNIT, FMT = 9980 )2
  333. WRITE( IOUNIT, FMT = 9979 )3
  334. WRITE( IOUNIT, FMT = 9977 )4
  335. WRITE( IOUNIT, FMT = 9978 )5
  336. WRITE( IOUNIT, FMT = 9976 )6
  337. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  338. *
  339. ELSE IF( LSAMEN( 2, P2, 'HR' ) .OR. LSAMEN( 2, P2, 'HK' ) ) THEN
  340. *
  341. * HR: Hermitian indefinite full,
  342. * with rook (bounded Bunch-Kaufman) pivoting algorithm
  343. *
  344. * HK: Hermitian indefinite full,
  345. * with rook (bounded Bunch-Kaufman) pivoting algorithm,
  346. * ( new storage format for factors:
  347. * L and diagonal of D is stored in A,
  348. * subdiagonal of D is stored in E )
  349. *
  350. WRITE( IOUNIT, FMT = 9992 )PATH, 'Hermitian'
  351. *
  352. WRITE( IOUNIT, FMT = '( '' Matrix types:'' )' )
  353. WRITE( IOUNIT, FMT = 9983 )
  354. *
  355. WRITE( IOUNIT, FMT = '( '' Test ratios:'' )' )
  356. WRITE( IOUNIT, FMT = 9974 )1
  357. WRITE( IOUNIT, FMT = 9980 )2
  358. WRITE( IOUNIT, FMT = 9979 )3
  359. WRITE( IOUNIT, FMT = '( '' Messages:'' )' )
  360. *
  361. ELSE
  362. *
  363. * Print error message if no header is available.
  364. *
  365. WRITE( IOUNIT, FMT = 9990 )PATH
  366. END IF
  367. *
  368. * First line of header
  369. *
  370. 9999 FORMAT( / 1X, A3, ' drivers: General dense matrices' )
  371. 9998 FORMAT( / 1X, A3, ' drivers: General band matrices' )
  372. 9997 FORMAT( / 1X, A3, ' drivers: General tridiagonal' )
  373. 9996 FORMAT( / 1X, A3, ' drivers: ', A9,
  374. $ ' positive definite matrices' )
  375. 9995 FORMAT( / 1X, A3, ' drivers: ', A9,
  376. $ ' positive definite packed matrices' )
  377. 9994 FORMAT( / 1X, A3, ' drivers: ', A9,
  378. $ ' positive definite band matrices' )
  379. 9993 FORMAT( / 1X, A3, ' drivers: ', A9,
  380. $ ' positive definite tridiagonal' )
  381. 9971 FORMAT( / 1X, A3, ' drivers: ', A9, ' indefinite matrices',
  382. $ ', "Aasen" Algorithm' )
  383. 9992 FORMAT( / 1X, A3, ' drivers: ', A9, ' indefinite matrices',
  384. $ ', "rook" (bounded Bunch-Kaufman) pivoting' )
  385. 9991 FORMAT( / 1X, A3, ' drivers: ', A9,
  386. $ ' indefinite packed matrices',
  387. $ ', partial (Bunch-Kaufman) pivoting' )
  388. 9891 FORMAT( / 1X, A3, ' drivers: ', A9,
  389. $ ' indefinite packed matrices',
  390. $ ', "rook" (bounded Bunch-Kaufman) pivoting' )
  391. 9990 FORMAT( / 1X, A3, ': No header available' )
  392. *
  393. * GE matrix types
  394. *
  395. 9989 FORMAT( 4X, '1. Diagonal', 24X, '7. Last n/2 columns zero', / 4X,
  396. $ '2. Upper triangular', 16X,
  397. $ '8. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
  398. $ '3. Lower triangular', 16X, '9. Random, CNDNUM = 0.1/EPS',
  399. $ / 4X, '4. Random, CNDNUM = 2', 13X,
  400. $ '10. Scaled near underflow', / 4X, '5. First column zero',
  401. $ 14X, '11. Scaled near overflow', / 4X,
  402. $ '6. Last column zero' )
  403. *
  404. * GB matrix types
  405. *
  406. 9988 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
  407. $ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
  408. $ '2. First column zero', 15X, '6. Random, CNDNUM = 0.1/EPS',
  409. $ / 4X, '3. Last column zero', 16X,
  410. $ '7. Scaled near underflow', / 4X,
  411. $ '4. Last n/2 columns zero', 11X, '8. Scaled near overflow' )
  412. *
  413. * GT matrix types
  414. *
  415. 9987 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
  416. $ / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
  417. $ / 4X, '2. Random, CNDNUM = 2', 14X, '8. First column zero',
  418. $ / 4X, '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
  419. $ '9. Last column zero', / 4X, '4. Random, CNDNUM = 0.1/EPS',
  420. $ 7X, '10. Last n/2 columns zero', / 4X,
  421. $ '5. Scaled near underflow', 10X,
  422. $ '11. Scaled near underflow', / 4X,
  423. $ '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
  424. *
  425. * PT matrix types
  426. *
  427. 9986 FORMAT( ' Matrix types (1-6 have specified condition numbers):',
  428. $ / 4X, '1. Diagonal', 24X, '7. Random, unspecified CNDNUM',
  429. $ / 4X, '2. Random, CNDNUM = 2', 14X,
  430. $ '8. First row and column zero', / 4X,
  431. $ '3. Random, CNDNUM = sqrt(0.1/EPS)', 2X,
  432. $ '9. Last row and column zero', / 4X,
  433. $ '4. Random, CNDNUM = 0.1/EPS', 7X,
  434. $ '10. Middle row and column zero', / 4X,
  435. $ '5. Scaled near underflow', 10X,
  436. $ '11. Scaled near underflow', / 4X,
  437. $ '6. Scaled near overflow', 11X, '12. Scaled near overflow' )
  438. *
  439. * PO, PP matrix types
  440. *
  441. 9985 FORMAT( 4X, '1. Diagonal', 24X,
  442. $ '6. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
  443. $ '2. Random, CNDNUM = 2', 14X, '7. Random, CNDNUM = 0.1/EPS',
  444. $ / 3X, '*3. First row and column zero', 7X,
  445. $ '8. Scaled near underflow', / 3X,
  446. $ '*4. Last row and column zero', 8X,
  447. $ '9. Scaled near overflow', / 3X,
  448. $ '*5. Middle row and column zero', / 3X,
  449. $ '(* - tests error exits from ', A3,
  450. $ 'TRF, no test ratios are computed)' )
  451. *
  452. * PB matrix types
  453. *
  454. 9984 FORMAT( 4X, '1. Random, CNDNUM = 2', 14X,
  455. $ '5. Random, CNDNUM = sqrt(0.1/EPS)', / 3X,
  456. $ '*2. First row and column zero', 7X,
  457. $ '6. Random, CNDNUM = 0.1/EPS', / 3X,
  458. $ '*3. Last row and column zero', 8X,
  459. $ '7. Scaled near underflow', / 3X,
  460. $ '*4. Middle row and column zero', 6X,
  461. $ '8. Scaled near overflow', / 3X,
  462. $ '(* - tests error exits from ', A3,
  463. $ 'TRF, no test ratios are computed)' )
  464. *
  465. * SSY, SSP, CHE, CHP matrix types
  466. *
  467. 9983 FORMAT( 4X, '1. Diagonal', 24X,
  468. $ '6. Last n/2 rows and columns zero', / 4X,
  469. $ '2. Random, CNDNUM = 2', 14X,
  470. $ '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
  471. $ '3. First row and column zero', 7X,
  472. $ '8. Random, CNDNUM = 0.1/EPS', / 4X,
  473. $ '4. Last row and column zero', 8X,
  474. $ '9. Scaled near underflow', / 4X,
  475. $ '5. Middle row and column zero', 5X,
  476. $ '10. Scaled near overflow' )
  477. *
  478. * CSY, CSP matrix types
  479. *
  480. 9982 FORMAT( 4X, '1. Diagonal', 24X,
  481. $ '7. Random, CNDNUM = sqrt(0.1/EPS)', / 4X,
  482. $ '2. Random, CNDNUM = 2', 14X, '8. Random, CNDNUM = 0.1/EPS',
  483. $ / 4X, '3. First row and column zero', 7X,
  484. $ '9. Scaled near underflow', / 4X,
  485. $ '4. Last row and column zero', 7X,
  486. $ '10. Scaled near overflow', / 4X,
  487. $ '5. Middle row and column zero', 5X,
  488. $ '11. Block diagonal matrix', / 4X,
  489. $ '6. Last n/2 rows and columns zero' )
  490. *
  491. * Test ratios
  492. *
  493. 9981 FORMAT( 3X, I2, ': norm( L * U - A ) / ( N * norm(A) * EPS )' )
  494. 9980 FORMAT( 3X, I2, ': norm( B - A * X ) / ',
  495. $ '( norm(A) * norm(X) * EPS )' )
  496. 9979 FORMAT( 3X, I2, ': norm( X - XACT ) / ',
  497. $ '( norm(XACT) * CNDNUM * EPS )' )
  498. 9978 FORMAT( 3X, I2, ': norm( X - XACT ) / ',
  499. $ '( norm(XACT) * (error bound) )' )
  500. 9977 FORMAT( 3X, I2, ': (backward error) / EPS' )
  501. 9976 FORMAT( 3X, I2, ': RCOND * CNDNUM - 1.0' )
  502. 9975 FORMAT( 3X, I2, ': norm( U'' * U - A ) / ( N * norm(A) * EPS )',
  503. $ ', or', / 7X, 'norm( L * L'' - A ) / ( N * norm(A) * EPS )'
  504. $ )
  505. 9974 FORMAT( 3X, I2, ': norm( U*D*U'' - A ) / ( N * norm(A) * EPS )',
  506. $ ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
  507. $ )
  508. 9973 FORMAT( 3X, I2, ': norm( U''*D*U - A ) / ( N * norm(A) * EPS )',
  509. $ ', or', / 7X, 'norm( L*D*L'' - A ) / ( N * norm(A) * EPS )'
  510. $ )
  511. 9972 FORMAT( 3X, I2, ': abs( WORK(1) - RPVGRW ) /',
  512. $ ' ( max( WORK(1), RPVGRW ) * EPS )' )
  513. *
  514. RETURN
  515. *
  516. * End of ALADHD
  517. *
  518. END