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 17 kB

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