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

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