ruby-lapack 1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3419) hide show
  1. data/COPYING +56 -0
  2. data/GPL +340 -0
  3. data/README.rdoc +61 -0
  4. data/Rakefile +115 -0
  5. data/dev/common.rb +9 -0
  6. data/dev/defs/cbbcsd +297 -0
  7. data/dev/defs/cbdsqr +196 -0
  8. data/dev/defs/cgbbrd +174 -0
  9. data/dev/defs/cgbcon +114 -0
  10. data/dev/defs/cgbequ +121 -0
  11. data/dev/defs/cgbequb +128 -0
  12. data/dev/defs/cgbrfs +182 -0
  13. data/dev/defs/cgbrfsx +418 -0
  14. data/dev/defs/cgbsv +134 -0
  15. data/dev/defs/cgbsvx +356 -0
  16. data/dev/defs/cgbsvxx +539 -0
  17. data/dev/defs/cgbtf2 +110 -0
  18. data/dev/defs/cgbtrf +109 -0
  19. data/dev/defs/cgbtrs +106 -0
  20. data/dev/defs/cgebak +95 -0
  21. data/dev/defs/cgebal +125 -0
  22. data/dev/defs/cgebd2 +162 -0
  23. data/dev/defs/cgebrd +178 -0
  24. data/dev/defs/cgecon +90 -0
  25. data/dev/defs/cgeequ +107 -0
  26. data/dev/defs/cgeequb +114 -0
  27. data/dev/defs/cgees +169 -0
  28. data/dev/defs/cgeesx +209 -0
  29. data/dev/defs/cgeev +154 -0
  30. data/dev/defs/cgeevx +263 -0
  31. data/dev/defs/cgegs +204 -0
  32. data/dev/defs/cgegv +261 -0
  33. data/dev/defs/cgehd2 +115 -0
  34. data/dev/defs/cgehrd +136 -0
  35. data/dev/defs/cgelq2 +89 -0
  36. data/dev/defs/cgelqf +113 -0
  37. data/dev/defs/cgels +157 -0
  38. data/dev/defs/cgelsd +211 -0
  39. data/dev/defs/cgelss +156 -0
  40. data/dev/defs/cgelsx +155 -0
  41. data/dev/defs/cgelsy +188 -0
  42. data/dev/defs/cgeql2 +91 -0
  43. data/dev/defs/cgeqlf +116 -0
  44. data/dev/defs/cgeqp3 +127 -0
  45. data/dev/defs/cgeqpf +118 -0
  46. data/dev/defs/cgeqr2 +89 -0
  47. data/dev/defs/cgeqr2p +89 -0
  48. data/dev/defs/cgeqrf +114 -0
  49. data/dev/defs/cgeqrfp +114 -0
  50. data/dev/defs/cgerfs +164 -0
  51. data/dev/defs/cgerfsx +394 -0
  52. data/dev/defs/cgerq2 +91 -0
  53. data/dev/defs/cgerqf +116 -0
  54. data/dev/defs/cgesc2 +87 -0
  55. data/dev/defs/cgesdd +203 -0
  56. data/dev/defs/cgesv +97 -0
  57. data/dev/defs/cgesvd +195 -0
  58. data/dev/defs/cgesvx +333 -0
  59. data/dev/defs/cgesvxx +519 -0
  60. data/dev/defs/cgetc2 +82 -0
  61. data/dev/defs/cgetf2 +76 -0
  62. data/dev/defs/cgetrf +76 -0
  63. data/dev/defs/cgetri +86 -0
  64. data/dev/defs/cgetrs +91 -0
  65. data/dev/defs/cggbak +119 -0
  66. data/dev/defs/cggbal +144 -0
  67. data/dev/defs/cgges +247 -0
  68. data/dev/defs/cggesx +311 -0
  69. data/dev/defs/cggev +197 -0
  70. data/dev/defs/cggevx +353 -0
  71. data/dev/defs/cggglm +160 -0
  72. data/dev/defs/cgghrd +171 -0
  73. data/dev/defs/cgglse +157 -0
  74. data/dev/defs/cggqrf +195 -0
  75. data/dev/defs/cggrqf +194 -0
  76. data/dev/defs/cggsvd +324 -0
  77. data/dev/defs/cggsvp +240 -0
  78. data/dev/defs/cgtcon +112 -0
  79. data/dev/defs/cgtrfs +193 -0
  80. data/dev/defs/cgtsv +97 -0
  81. data/dev/defs/cgtsvx +275 -0
  82. data/dev/defs/cgttrf +97 -0
  83. data/dev/defs/cgttrs +119 -0
  84. data/dev/defs/cgtts2 +108 -0
  85. data/dev/defs/chbev +124 -0
  86. data/dev/defs/chbevd +194 -0
  87. data/dev/defs/chbevx +234 -0
  88. data/dev/defs/chbgst +137 -0
  89. data/dev/defs/chbgv +163 -0
  90. data/dev/defs/chbgvd +231 -0
  91. data/dev/defs/chbgvx +265 -0
  92. data/dev/defs/chbtrd +132 -0
  93. data/dev/defs/checon +91 -0
  94. data/dev/defs/cheequb +87 -0
  95. data/dev/defs/cheev +111 -0
  96. data/dev/defs/cheevd +178 -0
  97. data/dev/defs/cheevr +325 -0
  98. data/dev/defs/cheevx +225 -0
  99. data/dev/defs/chegs2 +96 -0
  100. data/dev/defs/chegst +96 -0
  101. data/dev/defs/chegv +155 -0
  102. data/dev/defs/chegvd +222 -0
  103. data/dev/defs/chegvx +270 -0
  104. data/dev/defs/cherfs +170 -0
  105. data/dev/defs/cherfsx +380 -0
  106. data/dev/defs/chesv +147 -0
  107. data/dev/defs/chesvx +261 -0
  108. data/dev/defs/chesvxx +481 -0
  109. data/dev/defs/chetd2 +143 -0
  110. data/dev/defs/chetf2 +141 -0
  111. data/dev/defs/chetrd +162 -0
  112. data/dev/defs/chetrf +151 -0
  113. data/dev/defs/chetri +83 -0
  114. data/dev/defs/chetrs +90 -0
  115. data/dev/defs/chetrs2 +97 -0
  116. data/dev/defs/chfrk +138 -0
  117. data/dev/defs/chgeqz +258 -0
  118. data/dev/defs/chla_transtype +32 -0
  119. data/dev/defs/chpcon +85 -0
  120. data/dev/defs/chpev +110 -0
  121. data/dev/defs/chpevd +179 -0
  122. data/dev/defs/chpevx +204 -0
  123. data/dev/defs/chpgst +80 -0
  124. data/dev/defs/chpgv +145 -0
  125. data/dev/defs/chpgvd +221 -0
  126. data/dev/defs/chpgvx +247 -0
  127. data/dev/defs/chprfs +156 -0
  128. data/dev/defs/chpsv +134 -0
  129. data/dev/defs/chpsvx +248 -0
  130. data/dev/defs/chptrd +118 -0
  131. data/dev/defs/chptrf +120 -0
  132. data/dev/defs/chptri +77 -0
  133. data/dev/defs/chptrs +84 -0
  134. data/dev/defs/chsein +217 -0
  135. data/dev/defs/chseqr +263 -0
  136. data/dev/defs/cla_gbamv +154 -0
  137. data/dev/defs/cla_gbrcond_c +146 -0
  138. data/dev/defs/cla_gbrcond_x +140 -0
  139. data/dev/defs/cla_gbrfsx_extended +391 -0
  140. data/dev/defs/cla_gbrpvgrw +94 -0
  141. data/dev/defs/cla_geamv +142 -0
  142. data/dev/defs/cla_gercond_c +128 -0
  143. data/dev/defs/cla_gercond_x +122 -0
  144. data/dev/defs/cla_gerfsx_extended +376 -0
  145. data/dev/defs/cla_heamv +142 -0
  146. data/dev/defs/cla_hercond_c +125 -0
  147. data/dev/defs/cla_hercond_x +119 -0
  148. data/dev/defs/cla_herfsx_extended +375 -0
  149. data/dev/defs/cla_herpvgrw +105 -0
  150. data/dev/defs/cla_lin_berr +79 -0
  151. data/dev/defs/cla_porcond_c +116 -0
  152. data/dev/defs/cla_porcond_x +110 -0
  153. data/dev/defs/cla_porfsx_extended +366 -0
  154. data/dev/defs/cla_porpvgrw +85 -0
  155. data/dev/defs/cla_rpvgrw +76 -0
  156. data/dev/defs/cla_syamv +142 -0
  157. data/dev/defs/cla_syrcond_c +125 -0
  158. data/dev/defs/cla_syrcond_x +119 -0
  159. data/dev/defs/cla_syrfsx_extended +375 -0
  160. data/dev/defs/cla_syrpvgrw +105 -0
  161. data/dev/defs/cla_wwaddw +53 -0
  162. data/dev/defs/clabrd +187 -0
  163. data/dev/defs/clacgv +44 -0
  164. data/dev/defs/clacn2 +91 -0
  165. data/dev/defs/clacon +75 -0
  166. data/dev/defs/clacp2 +78 -0
  167. data/dev/defs/clacpy +78 -0
  168. data/dev/defs/clacrm +88 -0
  169. data/dev/defs/clacrt +73 -0
  170. data/dev/defs/cladiv +37 -0
  171. data/dev/defs/claed0 +121 -0
  172. data/dev/defs/claed7 +237 -0
  173. data/dev/defs/claed8 +211 -0
  174. data/dev/defs/claein +117 -0
  175. data/dev/defs/claesy +81 -0
  176. data/dev/defs/claev2 +83 -0
  177. data/dev/defs/clag2z +73 -0
  178. data/dev/defs/clags2 +116 -0
  179. data/dev/defs/clagtm +115 -0
  180. data/dev/defs/clahef +127 -0
  181. data/dev/defs/clahqr +159 -0
  182. data/dev/defs/clahr2 +153 -0
  183. data/dev/defs/clahrd +141 -0
  184. data/dev/defs/claic1 +101 -0
  185. data/dev/defs/clals0 +251 -0
  186. data/dev/defs/clalsa +267 -0
  187. data/dev/defs/clalsd +160 -0
  188. data/dev/defs/clangb +92 -0
  189. data/dev/defs/clange +84 -0
  190. data/dev/defs/clangt +77 -0
  191. data/dev/defs/clanhb +99 -0
  192. data/dev/defs/clanhe +93 -0
  193. data/dev/defs/clanhf +211 -0
  194. data/dev/defs/clanhp +85 -0
  195. data/dev/defs/clanhs +78 -0
  196. data/dev/defs/clanht +69 -0
  197. data/dev/defs/clansb +97 -0
  198. data/dev/defs/clansp +83 -0
  199. data/dev/defs/clansy +92 -0
  200. data/dev/defs/clantb +108 -0
  201. data/dev/defs/clantp +93 -0
  202. data/dev/defs/clantr +109 -0
  203. data/dev/defs/clapll +67 -0
  204. data/dev/defs/clapmr +73 -0
  205. data/dev/defs/clapmt +73 -0
  206. data/dev/defs/claqgb +124 -0
  207. data/dev/defs/claqge +107 -0
  208. data/dev/defs/claqhb +105 -0
  209. data/dev/defs/claqhe +98 -0
  210. data/dev/defs/claqhp +89 -0
  211. data/dev/defs/claqp2 +115 -0
  212. data/dev/defs/claqps +146 -0
  213. data/dev/defs/claqr0 +203 -0
  214. data/dev/defs/claqr1 +66 -0
  215. data/dev/defs/claqr2 +243 -0
  216. data/dev/defs/claqr3 +238 -0
  217. data/dev/defs/claqr4 +203 -0
  218. data/dev/defs/claqr5 +221 -0
  219. data/dev/defs/claqsb +105 -0
  220. data/dev/defs/claqsp +89 -0
  221. data/dev/defs/claqsy +98 -0
  222. data/dev/defs/clar1v +199 -0
  223. data/dev/defs/clar2v +88 -0
  224. data/dev/defs/clarcm +88 -0
  225. data/dev/defs/clarf +97 -0
  226. data/dev/defs/clarfb +139 -0
  227. data/dev/defs/clarfg +71 -0
  228. data/dev/defs/clarfgp +69 -0
  229. data/dev/defs/clarft +133 -0
  230. data/dev/defs/clarfx +88 -0
  231. data/dev/defs/clargv +88 -0
  232. data/dev/defs/clarnv +63 -0
  233. data/dev/defs/clarrv +259 -0
  234. data/dev/defs/clarscl2 +61 -0
  235. data/dev/defs/clartg +66 -0
  236. data/dev/defs/clartv +82 -0
  237. data/dev/defs/clarz +111 -0
  238. data/dev/defs/clarzb +150 -0
  239. data/dev/defs/clarzt +151 -0
  240. data/dev/defs/clascl +102 -0
  241. data/dev/defs/clascl2 +61 -0
  242. data/dev/defs/claset +77 -0
  243. data/dev/defs/clasr +169 -0
  244. data/dev/defs/classq +71 -0
  245. data/dev/defs/claswp +81 -0
  246. data/dev/defs/clasyf +127 -0
  247. data/dev/defs/clatbs +206 -0
  248. data/dev/defs/clatdf +133 -0
  249. data/dev/defs/clatps +193 -0
  250. data/dev/defs/clatrd +168 -0
  251. data/dev/defs/clatrs +202 -0
  252. data/dev/defs/clatrz +106 -0
  253. data/dev/defs/clatzm +124 -0
  254. data/dev/defs/clauu2 +68 -0
  255. data/dev/defs/clauum +68 -0
  256. data/dev/defs/cpbcon +99 -0
  257. data/dev/defs/cpbequ +96 -0
  258. data/dev/defs/cpbrfs +166 -0
  259. data/dev/defs/cpbstf +116 -0
  260. data/dev/defs/cpbsv +136 -0
  261. data/dev/defs/cpbsvx +314 -0
  262. data/dev/defs/cpbtf2 +105 -0
  263. data/dev/defs/cpbtrf +103 -0
  264. data/dev/defs/cpbtrs +98 -0
  265. data/dev/defs/cpftrf +183 -0
  266. data/dev/defs/cpftri +175 -0
  267. data/dev/defs/cpftrs +185 -0
  268. data/dev/defs/cpocon +87 -0
  269. data/dev/defs/cpoequ +80 -0
  270. data/dev/defs/cpoequb +80 -0
  271. data/dev/defs/cporfs +160 -0
  272. data/dev/defs/cporfsx +371 -0
  273. data/dev/defs/cposv +105 -0
  274. data/dev/defs/cposvx +281 -0
  275. data/dev/defs/cposvxx +471 -0
  276. data/dev/defs/cpotf2 +75 -0
  277. data/dev/defs/cpotrf +73 -0
  278. data/dev/defs/cpotri +67 -0
  279. data/dev/defs/cpotrs +79 -0
  280. data/dev/defs/cppcon +85 -0
  281. data/dev/defs/cppequ +82 -0
  282. data/dev/defs/cpprfs +146 -0
  283. data/dev/defs/cppsv +115 -0
  284. data/dev/defs/cppsvx +283 -0
  285. data/dev/defs/cpptrf +81 -0
  286. data/dev/defs/cpptri +58 -0
  287. data/dev/defs/cpptrs +84 -0
  288. data/dev/defs/cpstf2 +108 -0
  289. data/dev/defs/cpstrf +108 -0
  290. data/dev/defs/cptcon +84 -0
  291. data/dev/defs/cpteqr +116 -0
  292. data/dev/defs/cptrfs +161 -0
  293. data/dev/defs/cptsv +89 -0
  294. data/dev/defs/cptsvx +210 -0
  295. data/dev/defs/cpttrf +59 -0
  296. data/dev/defs/cpttrs +98 -0
  297. data/dev/defs/cptts2 +89 -0
  298. data/dev/defs/crot +72 -0
  299. data/dev/defs/cspcon +85 -0
  300. data/dev/defs/cspmv +121 -0
  301. data/dev/defs/cspr +98 -0
  302. data/dev/defs/csprfs +156 -0
  303. data/dev/defs/cspsv +134 -0
  304. data/dev/defs/cspsvx +248 -0
  305. data/dev/defs/csptrf +121 -0
  306. data/dev/defs/csptri +77 -0
  307. data/dev/defs/csptrs +84 -0
  308. data/dev/defs/csrscl +49 -0
  309. data/dev/defs/cstedc +191 -0
  310. data/dev/defs/cstegr +233 -0
  311. data/dev/defs/cstein +159 -0
  312. data/dev/defs/cstemr +302 -0
  313. data/dev/defs/csteqr +103 -0
  314. data/dev/defs/csycon +91 -0
  315. data/dev/defs/csyconv +90 -0
  316. data/dev/defs/csyequb +104 -0
  317. data/dev/defs/csymv +126 -0
  318. data/dev/defs/csyr +102 -0
  319. data/dev/defs/csyrfs +170 -0
  320. data/dev/defs/csyrfsx +380 -0
  321. data/dev/defs/csysv +149 -0
  322. data/dev/defs/csysvx +261 -0
  323. data/dev/defs/csysvxx +485 -0
  324. data/dev/defs/csyswapr +70 -0
  325. data/dev/defs/csytf2 +140 -0
  326. data/dev/defs/csytrf +156 -0
  327. data/dev/defs/csytri +83 -0
  328. data/dev/defs/csytri2 +110 -0
  329. data/dev/defs/csytri2x +90 -0
  330. data/dev/defs/csytrs +90 -0
  331. data/dev/defs/csytrs2 +97 -0
  332. data/dev/defs/ctbcon +109 -0
  333. data/dev/defs/ctbrfs +164 -0
  334. data/dev/defs/ctbtrs +113 -0
  335. data/dev/defs/ctfsm +259 -0
  336. data/dev/defs/ctftri +183 -0
  337. data/dev/defs/ctfttp +172 -0
  338. data/dev/defs/ctfttr +182 -0
  339. data/dev/defs/ctgevc +194 -0
  340. data/dev/defs/ctgex2 +158 -0
  341. data/dev/defs/ctgexc +176 -0
  342. data/dev/defs/ctgsen +406 -0
  343. data/dev/defs/ctgsja +344 -0
  344. data/dev/defs/ctgsna +282 -0
  345. data/dev/defs/ctgsy2 +235 -0
  346. data/dev/defs/ctgsyl +273 -0
  347. data/dev/defs/ctpcon +95 -0
  348. data/dev/defs/ctprfs +150 -0
  349. data/dev/defs/ctptri +79 -0
  350. data/dev/defs/ctptrs +98 -0
  351. data/dev/defs/ctpttf +172 -0
  352. data/dev/defs/ctpttr +73 -0
  353. data/dev/defs/ctrcon +103 -0
  354. data/dev/defs/ctrevc +188 -0
  355. data/dev/defs/ctrexc +99 -0
  356. data/dev/defs/ctrrfs +158 -0
  357. data/dev/defs/ctrsen +234 -0
  358. data/dev/defs/ctrsna +223 -0
  359. data/dev/defs/ctrsyl +126 -0
  360. data/dev/defs/ctrti2 +76 -0
  361. data/dev/defs/ctrtri +75 -0
  362. data/dev/defs/ctrtrs +107 -0
  363. data/dev/defs/ctrttf +181 -0
  364. data/dev/defs/ctrttp +72 -0
  365. data/dev/defs/ctzrqf +104 -0
  366. data/dev/defs/ctzrzf +128 -0
  367. data/dev/defs/cunbdb +270 -0
  368. data/dev/defs/cuncsd +283 -0
  369. data/dev/defs/cung2l +85 -0
  370. data/dev/defs/cung2r +85 -0
  371. data/dev/defs/cungbr +129 -0
  372. data/dev/defs/cunghr +97 -0
  373. data/dev/defs/cungl2 +84 -0
  374. data/dev/defs/cunglq +100 -0
  375. data/dev/defs/cungql +101 -0
  376. data/dev/defs/cungqr +101 -0
  377. data/dev/defs/cungr2 +85 -0
  378. data/dev/defs/cungrq +101 -0
  379. data/dev/defs/cungtr +95 -0
  380. data/dev/defs/cunm2l +130 -0
  381. data/dev/defs/cunm2r +130 -0
  382. data/dev/defs/cunmbr +179 -0
  383. data/dev/defs/cunmhr +157 -0
  384. data/dev/defs/cunml2 +130 -0
  385. data/dev/defs/cunmlq +143 -0
  386. data/dev/defs/cunmql +143 -0
  387. data/dev/defs/cunmqr +143 -0
  388. data/dev/defs/cunmr2 +130 -0
  389. data/dev/defs/cunmr3 +152 -0
  390. data/dev/defs/cunmrq +143 -0
  391. data/dev/defs/cunmrz +157 -0
  392. data/dev/defs/cunmtr +152 -0
  393. data/dev/defs/cupgtr +87 -0
  394. data/dev/defs/cupmtr +120 -0
  395. data/dev/defs/dbbcsd +297 -0
  396. data/dev/defs/dbdsdc +194 -0
  397. data/dev/defs/dbdsqr +203 -0
  398. data/dev/defs/ddisna +84 -0
  399. data/dev/defs/dgbbrd +167 -0
  400. data/dev/defs/dgbcon +114 -0
  401. data/dev/defs/dgbequ +121 -0
  402. data/dev/defs/dgbequb +128 -0
  403. data/dev/defs/dgbrfs +182 -0
  404. data/dev/defs/dgbrfsx +418 -0
  405. data/dev/defs/dgbsv +134 -0
  406. data/dev/defs/dgbsvx +353 -0
  407. data/dev/defs/dgbsvxx +536 -0
  408. data/dev/defs/dgbtf2 +110 -0
  409. data/dev/defs/dgbtrf +109 -0
  410. data/dev/defs/dgbtrs +106 -0
  411. data/dev/defs/dgebak +95 -0
  412. data/dev/defs/dgebal +125 -0
  413. data/dev/defs/dgebd2 +162 -0
  414. data/dev/defs/dgebrd +178 -0
  415. data/dev/defs/dgecon +90 -0
  416. data/dev/defs/dgeequ +107 -0
  417. data/dev/defs/dgeequb +114 -0
  418. data/dev/defs/dgees +188 -0
  419. data/dev/defs/dgeesx +251 -0
  420. data/dev/defs/dgeev +166 -0
  421. data/dev/defs/dgeevx +282 -0
  422. data/dev/defs/dgegs +207 -0
  423. data/dev/defs/dgegv +286 -0
  424. data/dev/defs/dgehd2 +115 -0
  425. data/dev/defs/dgehrd +136 -0
  426. data/dev/defs/dgejsv +862 -0
  427. data/dev/defs/dgelq2 +89 -0
  428. data/dev/defs/dgelqf +113 -0
  429. data/dev/defs/dgels +158 -0
  430. data/dev/defs/dgelsd +193 -0
  431. data/dev/defs/dgelss +149 -0
  432. data/dev/defs/dgelsx +148 -0
  433. data/dev/defs/dgelsy +181 -0
  434. data/dev/defs/dgeql2 +91 -0
  435. data/dev/defs/dgeqlf +116 -0
  436. data/dev/defs/dgeqp3 +120 -0
  437. data/dev/defs/dgeqpf +111 -0
  438. data/dev/defs/dgeqr2 +89 -0
  439. data/dev/defs/dgeqr2p +89 -0
  440. data/dev/defs/dgeqrf +114 -0
  441. data/dev/defs/dgeqrfp +114 -0
  442. data/dev/defs/dgerfs +164 -0
  443. data/dev/defs/dgerfsx +394 -0
  444. data/dev/defs/dgerq2 +91 -0
  445. data/dev/defs/dgerqf +116 -0
  446. data/dev/defs/dgesc2 +86 -0
  447. data/dev/defs/dgesdd +197 -0
  448. data/dev/defs/dgesv +97 -0
  449. data/dev/defs/dgesvd +188 -0
  450. data/dev/defs/dgesvj +308 -0
  451. data/dev/defs/dgesvx +333 -0
  452. data/dev/defs/dgesvxx +516 -0
  453. data/dev/defs/dgetc2 +82 -0
  454. data/dev/defs/dgetf2 +76 -0
  455. data/dev/defs/dgetrf +76 -0
  456. data/dev/defs/dgetri +86 -0
  457. data/dev/defs/dgetrs +91 -0
  458. data/dev/defs/dggbak +119 -0
  459. data/dev/defs/dggbal +145 -0
  460. data/dev/defs/dgges +261 -0
  461. data/dev/defs/dggesx +342 -0
  462. data/dev/defs/dggev +206 -0
  463. data/dev/defs/dggevx +371 -0
  464. data/dev/defs/dggglm +160 -0
  465. data/dev/defs/dgghrd +174 -0
  466. data/dev/defs/dgglse +157 -0
  467. data/dev/defs/dggqrf +195 -0
  468. data/dev/defs/dggrqf +194 -0
  469. data/dev/defs/dggsvd +319 -0
  470. data/dev/defs/dggsvp +233 -0
  471. data/dev/defs/dgsvj0 +200 -0
  472. data/dev/defs/dgsvj1 +220 -0
  473. data/dev/defs/dgtcon +119 -0
  474. data/dev/defs/dgtrfs +193 -0
  475. data/dev/defs/dgtsv +100 -0
  476. data/dev/defs/dgtsvx +275 -0
  477. data/dev/defs/dgttrf +97 -0
  478. data/dev/defs/dgttrs +119 -0
  479. data/dev/defs/dgtts2 +106 -0
  480. data/dev/defs/dhgeqz +282 -0
  481. data/dev/defs/dhsein +234 -0
  482. data/dev/defs/dhseqr +279 -0
  483. data/dev/defs/disnan +29 -0
  484. data/dev/defs/dla_gbamv +152 -0
  485. data/dev/defs/dla_gbrcond +152 -0
  486. data/dev/defs/dla_gbrfsx_extended +393 -0
  487. data/dev/defs/dla_gbrpvgrw +90 -0
  488. data/dev/defs/dla_geamv +142 -0
  489. data/dev/defs/dla_gercond +134 -0
  490. data/dev/defs/dla_gerfsx_extended +379 -0
  491. data/dev/defs/dla_lin_berr +78 -0
  492. data/dev/defs/dla_porcond +122 -0
  493. data/dev/defs/dla_porfsx_extended +366 -0
  494. data/dev/defs/dla_porpvgrw +81 -0
  495. data/dev/defs/dla_rpvgrw +72 -0
  496. data/dev/defs/dla_syamv +142 -0
  497. data/dev/defs/dla_syrcond +131 -0
  498. data/dev/defs/dla_syrfsx_extended +375 -0
  499. data/dev/defs/dla_syrpvgrw +101 -0
  500. data/dev/defs/dla_wwaddw +53 -0
  501. data/dev/defs/dlabad +43 -0
  502. data/dev/defs/dlabrd +186 -0
  503. data/dev/defs/dlacn2 +96 -0
  504. data/dev/defs/dlacon +80 -0
  505. data/dev/defs/dlacpy +78 -0
  506. data/dev/defs/dladiv +57 -0
  507. data/dev/defs/dlae2 +66 -0
  508. data/dev/defs/dlaebz +292 -0
  509. data/dev/defs/dlaed0 +147 -0
  510. data/dev/defs/dlaed1 +141 -0
  511. data/dev/defs/dlaed2 +194 -0
  512. data/dev/defs/dlaed3 +167 -0
  513. data/dev/defs/dlaed4 +113 -0
  514. data/dev/defs/dlaed5 +78 -0
  515. data/dev/defs/dlaed6 +101 -0
  516. data/dev/defs/dlaed7 +241 -0
  517. data/dev/defs/dlaed8 +227 -0
  518. data/dev/defs/dlaed9 +137 -0
  519. data/dev/defs/dlaeda +147 -0
  520. data/dev/defs/dlaein +141 -0
  521. data/dev/defs/dlaev2 +83 -0
  522. data/dev/defs/dlaexc +107 -0
  523. data/dev/defs/dlag2 +123 -0
  524. data/dev/defs/dlag2s +81 -0
  525. data/dev/defs/dlags2 +108 -0
  526. data/dev/defs/dlagtf +128 -0
  527. data/dev/defs/dlagtm +115 -0
  528. data/dev/defs/dlagts +135 -0
  529. data/dev/defs/dlagv2 +128 -0
  530. data/dev/defs/dlahqr +172 -0
  531. data/dev/defs/dlahr2 +153 -0
  532. data/dev/defs/dlahrd +141 -0
  533. data/dev/defs/dlaic1 +101 -0
  534. data/dev/defs/dlaln2 +187 -0
  535. data/dev/defs/dlals0 +250 -0
  536. data/dev/defs/dlalsa +268 -0
  537. data/dev/defs/dlalsd +152 -0
  538. data/dev/defs/dlamrg +66 -0
  539. data/dev/defs/dlaneg +87 -0
  540. data/dev/defs/dlangb +93 -0
  541. data/dev/defs/dlange +84 -0
  542. data/dev/defs/dlangt +77 -0
  543. data/dev/defs/dlanhs +78 -0
  544. data/dev/defs/dlansb +97 -0
  545. data/dev/defs/dlansf +178 -0
  546. data/dev/defs/dlansp +83 -0
  547. data/dev/defs/dlanst +69 -0
  548. data/dev/defs/dlansy +92 -0
  549. data/dev/defs/dlantb +108 -0
  550. data/dev/defs/dlantp +93 -0
  551. data/dev/defs/dlantr +109 -0
  552. data/dev/defs/dlanv2 +84 -0
  553. data/dev/defs/dlapll +69 -0
  554. data/dev/defs/dlapmr +73 -0
  555. data/dev/defs/dlapmt +73 -0
  556. data/dev/defs/dlapy2 +30 -0
  557. data/dev/defs/dlapy3 +34 -0
  558. data/dev/defs/dlaqgb +124 -0
  559. data/dev/defs/dlaqge +107 -0
  560. data/dev/defs/dlaqp2 +115 -0
  561. data/dev/defs/dlaqps +146 -0
  562. data/dev/defs/dlaqr0 +225 -0
  563. data/dev/defs/dlaqr1 +79 -0
  564. data/dev/defs/dlaqr2 +252 -0
  565. data/dev/defs/dlaqr3 +247 -0
  566. data/dev/defs/dlaqr4 +225 -0
  567. data/dev/defs/dlaqr5 +230 -0
  568. data/dev/defs/dlaqsb +105 -0
  569. data/dev/defs/dlaqsp +89 -0
  570. data/dev/defs/dlaqsy +98 -0
  571. data/dev/defs/dlaqtr +134 -0
  572. data/dev/defs/dlar1v +199 -0
  573. data/dev/defs/dlar2v +86 -0
  574. data/dev/defs/dlarf +93 -0
  575. data/dev/defs/dlarfb +139 -0
  576. data/dev/defs/dlarfg +71 -0
  577. data/dev/defs/dlarfgp +69 -0
  578. data/dev/defs/dlarft +133 -0
  579. data/dev/defs/dlarfx +89 -0
  580. data/dev/defs/dlargv +74 -0
  581. data/dev/defs/dlarnv +61 -0
  582. data/dev/defs/dlarra +106 -0
  583. data/dev/defs/dlarrb +167 -0
  584. data/dev/defs/dlarrc +99 -0
  585. data/dev/defs/dlarrd +290 -0
  586. data/dev/defs/dlarre +265 -0
  587. data/dev/defs/dlarrf +168 -0
  588. data/dev/defs/dlarrj +138 -0
  589. data/dev/defs/dlarrk +108 -0
  590. data/dev/defs/dlarrr +62 -0
  591. data/dev/defs/dlarrv +259 -0
  592. data/dev/defs/dlarscl2 +61 -0
  593. data/dev/defs/dlartg +64 -0
  594. data/dev/defs/dlartgp +62 -0
  595. data/dev/defs/dlartgs +57 -0
  596. data/dev/defs/dlartv +82 -0
  597. data/dev/defs/dlaruv +59 -0
  598. data/dev/defs/dlarz +109 -0
  599. data/dev/defs/dlarzb +150 -0
  600. data/dev/defs/dlarzt +151 -0
  601. data/dev/defs/dlas2 +71 -0
  602. data/dev/defs/dlascl +102 -0
  603. data/dev/defs/dlascl2 +61 -0
  604. data/dev/defs/dlasd0 +133 -0
  605. data/dev/defs/dlasd1 +180 -0
  606. data/dev/defs/dlasd2 +254 -0
  607. data/dev/defs/dlasd3 +213 -0
  608. data/dev/defs/dlasd4 +123 -0
  609. data/dev/defs/dlasd5 +88 -0
  610. data/dev/defs/dlasd6 +300 -0
  611. data/dev/defs/dlasd7 +264 -0
  612. data/dev/defs/dlasd8 +144 -0
  613. data/dev/defs/dlasda +276 -0
  614. data/dev/defs/dlasdq +187 -0
  615. data/dev/defs/dlasdt +76 -0
  616. data/dev/defs/dlaset +81 -0
  617. data/dev/defs/dlasq1 +75 -0
  618. data/dev/defs/dlasq2 +73 -0
  619. data/dev/defs/dlasq3 +141 -0
  620. data/dev/defs/dlasq4 +107 -0
  621. data/dev/defs/dlasq5 +100 -0
  622. data/dev/defs/dlasq6 +90 -0
  623. data/dev/defs/dlasr +169 -0
  624. data/dev/defs/dlasrt +53 -0
  625. data/dev/defs/dlassq +68 -0
  626. data/dev/defs/dlasv2 +100 -0
  627. data/dev/defs/dlaswp +81 -0
  628. data/dev/defs/dlasy2 +145 -0
  629. data/dev/defs/dlasyf +126 -0
  630. data/dev/defs/dlat2s +83 -0
  631. data/dev/defs/dlatbs +206 -0
  632. data/dev/defs/dlatdf +131 -0
  633. data/dev/defs/dlatps +192 -0
  634. data/dev/defs/dlatrd +168 -0
  635. data/dev/defs/dlatrs +202 -0
  636. data/dev/defs/dlatrz +106 -0
  637. data/dev/defs/dlatzm +123 -0
  638. data/dev/defs/dlauu2 +68 -0
  639. data/dev/defs/dlauum +68 -0
  640. data/dev/defs/dopgtr +87 -0
  641. data/dev/defs/dopmtr +120 -0
  642. data/dev/defs/dorbdb +270 -0
  643. data/dev/defs/dorcsd +264 -0
  644. data/dev/defs/dorg2l +85 -0
  645. data/dev/defs/dorg2r +85 -0
  646. data/dev/defs/dorgbr +129 -0
  647. data/dev/defs/dorghr +97 -0
  648. data/dev/defs/dorgl2 +84 -0
  649. data/dev/defs/dorglq +100 -0
  650. data/dev/defs/dorgql +101 -0
  651. data/dev/defs/dorgqr +101 -0
  652. data/dev/defs/dorgr2 +85 -0
  653. data/dev/defs/dorgrq +101 -0
  654. data/dev/defs/dorgtr +95 -0
  655. data/dev/defs/dorm2l +130 -0
  656. data/dev/defs/dorm2r +130 -0
  657. data/dev/defs/dormbr +176 -0
  658. data/dev/defs/dormhr +157 -0
  659. data/dev/defs/dorml2 +130 -0
  660. data/dev/defs/dormlq +143 -0
  661. data/dev/defs/dormql +143 -0
  662. data/dev/defs/dormqr +143 -0
  663. data/dev/defs/dormr2 +130 -0
  664. data/dev/defs/dormr3 +152 -0
  665. data/dev/defs/dormrq +143 -0
  666. data/dev/defs/dormrz +157 -0
  667. data/dev/defs/dormtr +152 -0
  668. data/dev/defs/dpbcon +98 -0
  669. data/dev/defs/dpbequ +96 -0
  670. data/dev/defs/dpbrfs +166 -0
  671. data/dev/defs/dpbstf +115 -0
  672. data/dev/defs/dpbsv +136 -0
  673. data/dev/defs/dpbsvx +314 -0
  674. data/dev/defs/dpbtf2 +105 -0
  675. data/dev/defs/dpbtrf +103 -0
  676. data/dev/defs/dpbtrs +98 -0
  677. data/dev/defs/dpftrf +161 -0
  678. data/dev/defs/dpftri +154 -0
  679. data/dev/defs/dpftrs +164 -0
  680. data/dev/defs/dpocon +87 -0
  681. data/dev/defs/dpoequ +80 -0
  682. data/dev/defs/dpoequb +80 -0
  683. data/dev/defs/dporfs +160 -0
  684. data/dev/defs/dporfsx +370 -0
  685. data/dev/defs/dposv +105 -0
  686. data/dev/defs/dposvx +281 -0
  687. data/dev/defs/dposvxx +468 -0
  688. data/dev/defs/dpotf2 +75 -0
  689. data/dev/defs/dpotrf +73 -0
  690. data/dev/defs/dpotri +67 -0
  691. data/dev/defs/dpotrs +79 -0
  692. data/dev/defs/dppcon +85 -0
  693. data/dev/defs/dppequ +82 -0
  694. data/dev/defs/dpprfs +146 -0
  695. data/dev/defs/dppsv +115 -0
  696. data/dev/defs/dppsvx +283 -0
  697. data/dev/defs/dpptrf +81 -0
  698. data/dev/defs/dpptri +58 -0
  699. data/dev/defs/dpptrs +84 -0
  700. data/dev/defs/dpstf2 +108 -0
  701. data/dev/defs/dpstrf +108 -0
  702. data/dev/defs/dptcon +84 -0
  703. data/dev/defs/dpteqr +117 -0
  704. data/dev/defs/dptrfs +141 -0
  705. data/dev/defs/dptsv +89 -0
  706. data/dev/defs/dptsvx +203 -0
  707. data/dev/defs/dpttrf +59 -0
  708. data/dev/defs/dpttrs +88 -0
  709. data/dev/defs/dptts2 +77 -0
  710. data/dev/defs/drscl +49 -0
  711. data/dev/defs/dsbev +117 -0
  712. data/dev/defs/dsbevd +169 -0
  713. data/dev/defs/dsbevx +231 -0
  714. data/dev/defs/dsbgst +130 -0
  715. data/dev/defs/dsbgv +156 -0
  716. data/dev/defs/dsbgvd +206 -0
  717. data/dev/defs/dsbgvx +259 -0
  718. data/dev/defs/dsbtrd +132 -0
  719. data/dev/defs/dsfrk +134 -0
  720. data/dev/defs/dsgesv +170 -0
  721. data/dev/defs/dspcon +92 -0
  722. data/dev/defs/dspev +103 -0
  723. data/dev/defs/dspevd +155 -0
  724. data/dev/defs/dspevx +197 -0
  725. data/dev/defs/dspgst +80 -0
  726. data/dev/defs/dspgv +139 -0
  727. data/dev/defs/dspgvd +188 -0
  728. data/dev/defs/dspgvx +241 -0
  729. data/dev/defs/dsposv +173 -0
  730. data/dev/defs/dsprfs +156 -0
  731. data/dev/defs/dspsv +134 -0
  732. data/dev/defs/dspsvx +249 -0
  733. data/dev/defs/dsptrd +118 -0
  734. data/dev/defs/dsptrf +120 -0
  735. data/dev/defs/dsptri +77 -0
  736. data/dev/defs/dsptrs +84 -0
  737. data/dev/defs/dstebz +229 -0
  738. data/dev/defs/dstedc +165 -0
  739. data/dev/defs/dstegr +233 -0
  740. data/dev/defs/dstein +152 -0
  741. data/dev/defs/dstemr +285 -0
  742. data/dev/defs/dsteqr +103 -0
  743. data/dev/defs/dsterf +54 -0
  744. data/dev/defs/dstev +88 -0
  745. data/dev/defs/dstevd +138 -0
  746. data/dev/defs/dstevr +273 -0
  747. data/dev/defs/dstevx +193 -0
  748. data/dev/defs/dsycon +98 -0
  749. data/dev/defs/dsyconv +90 -0
  750. data/dev/defs/dsyequb +104 -0
  751. data/dev/defs/dsyev +104 -0
  752. data/dev/defs/dsyevd +157 -0
  753. data/dev/defs/dsyevr +300 -0
  754. data/dev/defs/dsyevx +218 -0
  755. data/dev/defs/dsygs2 +96 -0
  756. data/dev/defs/dsygst +96 -0
  757. data/dev/defs/dsygv +148 -0
  758. data/dev/defs/dsygvd +197 -0
  759. data/dev/defs/dsygvx +263 -0
  760. data/dev/defs/dsyrfs +170 -0
  761. data/dev/defs/dsyrfsx +380 -0
  762. data/dev/defs/dsysv +149 -0
  763. data/dev/defs/dsysvx +261 -0
  764. data/dev/defs/dsysvxx +481 -0
  765. data/dev/defs/dsyswapr +70 -0
  766. data/dev/defs/dsytd2 +142 -0
  767. data/dev/defs/dsytf2 +143 -0
  768. data/dev/defs/dsytrd +162 -0
  769. data/dev/defs/dsytrf +156 -0
  770. data/dev/defs/dsytri +83 -0
  771. data/dev/defs/dsytri2 +110 -0
  772. data/dev/defs/dsytri2x +90 -0
  773. data/dev/defs/dsytrs +90 -0
  774. data/dev/defs/dsytrs2 +97 -0
  775. data/dev/defs/dtbcon +109 -0
  776. data/dev/defs/dtbrfs +164 -0
  777. data/dev/defs/dtbtrs +113 -0
  778. data/dev/defs/dtfsm +243 -0
  779. data/dev/defs/dtftri +163 -0
  780. data/dev/defs/dtfttp +151 -0
  781. data/dev/defs/dtfttr +176 -0
  782. data/dev/defs/dtgevc +265 -0
  783. data/dev/defs/dtgex2 +191 -0
  784. data/dev/defs/dtgexc +190 -0
  785. data/dev/defs/dtgsen +422 -0
  786. data/dev/defs/dtgsja +343 -0
  787. data/dev/defs/dtgsna +354 -0
  788. data/dev/defs/dtgsy2 +252 -0
  789. data/dev/defs/dtgsyl +274 -0
  790. data/dev/defs/dtpcon +95 -0
  791. data/dev/defs/dtprfs +150 -0
  792. data/dev/defs/dtptri +79 -0
  793. data/dev/defs/dtptrs +98 -0
  794. data/dev/defs/dtpttf +151 -0
  795. data/dev/defs/dtpttr +73 -0
  796. data/dev/defs/dtrcon +103 -0
  797. data/dev/defs/dtrevc +191 -0
  798. data/dev/defs/dtrexc +113 -0
  799. data/dev/defs/dtrrfs +158 -0
  800. data/dev/defs/dtrsen +284 -0
  801. data/dev/defs/dtrsna +239 -0
  802. data/dev/defs/dtrsyl +133 -0
  803. data/dev/defs/dtrti2 +76 -0
  804. data/dev/defs/dtrtri +75 -0
  805. data/dev/defs/dtrtrs +107 -0
  806. data/dev/defs/dtrttf +171 -0
  807. data/dev/defs/dtrttp +72 -0
  808. data/dev/defs/dtzrqf +104 -0
  809. data/dev/defs/dtzrzf +128 -0
  810. data/dev/defs/dzsum1 +49 -0
  811. data/dev/defs/icmax1 +55 -0
  812. data/dev/defs/ieeeck +49 -0
  813. data/dev/defs/ilaclc +46 -0
  814. data/dev/defs/ilaclr +46 -0
  815. data/dev/defs/iladiag +30 -0
  816. data/dev/defs/iladlc +46 -0
  817. data/dev/defs/iladlr +46 -0
  818. data/dev/defs/ilaenv +133 -0
  819. data/dev/defs/ilaprec +33 -0
  820. data/dev/defs/ilaslc +46 -0
  821. data/dev/defs/ilaslr +46 -0
  822. data/dev/defs/ilatrans +32 -0
  823. data/dev/defs/ilauplo +30 -0
  824. data/dev/defs/ilaver +35 -0
  825. data/dev/defs/ilazlc +46 -0
  826. data/dev/defs/ilazlr +46 -0
  827. data/dev/defs/iparmq +177 -0
  828. data/dev/defs/izmax1 +55 -0
  829. data/dev/defs/lsamen +50 -0
  830. data/dev/defs/sbbcsd +297 -0
  831. data/dev/defs/sbdsdc +192 -0
  832. data/dev/defs/sbdsqr +203 -0
  833. data/dev/defs/scsum1 +49 -0
  834. data/dev/defs/sdisna +84 -0
  835. data/dev/defs/sgbbrd +167 -0
  836. data/dev/defs/sgbcon +114 -0
  837. data/dev/defs/sgbequ +121 -0
  838. data/dev/defs/sgbequb +128 -0
  839. data/dev/defs/sgbrfs +182 -0
  840. data/dev/defs/sgbrfsx +419 -0
  841. data/dev/defs/sgbsv +134 -0
  842. data/dev/defs/sgbsvx +356 -0
  843. data/dev/defs/sgbsvxx +539 -0
  844. data/dev/defs/sgbtf2 +110 -0
  845. data/dev/defs/sgbtrf +109 -0
  846. data/dev/defs/sgbtrs +106 -0
  847. data/dev/defs/sgebak +95 -0
  848. data/dev/defs/sgebal +125 -0
  849. data/dev/defs/sgebd2 +162 -0
  850. data/dev/defs/sgebrd +178 -0
  851. data/dev/defs/sgecon +90 -0
  852. data/dev/defs/sgeequ +107 -0
  853. data/dev/defs/sgeequb +114 -0
  854. data/dev/defs/sgees +188 -0
  855. data/dev/defs/sgeesx +251 -0
  856. data/dev/defs/sgeev +166 -0
  857. data/dev/defs/sgeevx +282 -0
  858. data/dev/defs/sgegs +207 -0
  859. data/dev/defs/sgegv +286 -0
  860. data/dev/defs/sgehd2 +115 -0
  861. data/dev/defs/sgehrd +136 -0
  862. data/dev/defs/sgejsv +860 -0
  863. data/dev/defs/sgelq2 +89 -0
  864. data/dev/defs/sgelqf +113 -0
  865. data/dev/defs/sgels +158 -0
  866. data/dev/defs/sgelsd +194 -0
  867. data/dev/defs/sgelss +149 -0
  868. data/dev/defs/sgelsx +148 -0
  869. data/dev/defs/sgelsy +181 -0
  870. data/dev/defs/sgeql2 +91 -0
  871. data/dev/defs/sgeqlf +116 -0
  872. data/dev/defs/sgeqp3 +120 -0
  873. data/dev/defs/sgeqpf +111 -0
  874. data/dev/defs/sgeqr2 +89 -0
  875. data/dev/defs/sgeqr2p +89 -0
  876. data/dev/defs/sgeqrf +114 -0
  877. data/dev/defs/sgeqrfp +114 -0
  878. data/dev/defs/sgerfs +164 -0
  879. data/dev/defs/sgerfsx +394 -0
  880. data/dev/defs/sgerq2 +91 -0
  881. data/dev/defs/sgerqf +116 -0
  882. data/dev/defs/sgesc2 +86 -0
  883. data/dev/defs/sgesdd +197 -0
  884. data/dev/defs/sgesv +97 -0
  885. data/dev/defs/sgesvd +188 -0
  886. data/dev/defs/sgesvj +304 -0
  887. data/dev/defs/sgesvx +333 -0
  888. data/dev/defs/sgesvxx +519 -0
  889. data/dev/defs/sgetc2 +82 -0
  890. data/dev/defs/sgetf2 +76 -0
  891. data/dev/defs/sgetrf +76 -0
  892. data/dev/defs/sgetri +86 -0
  893. data/dev/defs/sgetrs +91 -0
  894. data/dev/defs/sggbak +119 -0
  895. data/dev/defs/sggbal +144 -0
  896. data/dev/defs/sgges +261 -0
  897. data/dev/defs/sggesx +342 -0
  898. data/dev/defs/sggev +206 -0
  899. data/dev/defs/sggevx +371 -0
  900. data/dev/defs/sggglm +160 -0
  901. data/dev/defs/sgghrd +174 -0
  902. data/dev/defs/sgglse +157 -0
  903. data/dev/defs/sggqrf +195 -0
  904. data/dev/defs/sggrqf +194 -0
  905. data/dev/defs/sggsvd +319 -0
  906. data/dev/defs/sggsvp +233 -0
  907. data/dev/defs/sgsvj0 +200 -0
  908. data/dev/defs/sgsvj1 +220 -0
  909. data/dev/defs/sgtcon +119 -0
  910. data/dev/defs/sgtrfs +193 -0
  911. data/dev/defs/sgtsv +100 -0
  912. data/dev/defs/sgtsvx +275 -0
  913. data/dev/defs/sgttrf +97 -0
  914. data/dev/defs/sgttrs +119 -0
  915. data/dev/defs/sgtts2 +106 -0
  916. data/dev/defs/shgeqz +282 -0
  917. data/dev/defs/shsein +234 -0
  918. data/dev/defs/shseqr +279 -0
  919. data/dev/defs/sisnan +29 -0
  920. data/dev/defs/sla_gbamv +152 -0
  921. data/dev/defs/sla_gbrcond +152 -0
  922. data/dev/defs/sla_gbrfsx_extended +391 -0
  923. data/dev/defs/sla_gbrpvgrw +90 -0
  924. data/dev/defs/sla_geamv +142 -0
  925. data/dev/defs/sla_gercond +134 -0
  926. data/dev/defs/sla_gerfsx_extended +376 -0
  927. data/dev/defs/sla_lin_berr +78 -0
  928. data/dev/defs/sla_porcond +122 -0
  929. data/dev/defs/sla_porfsx_extended +363 -0
  930. data/dev/defs/sla_porpvgrw +81 -0
  931. data/dev/defs/sla_rpvgrw +72 -0
  932. data/dev/defs/sla_syamv +142 -0
  933. data/dev/defs/sla_syrcond +131 -0
  934. data/dev/defs/sla_syrfsx_extended +372 -0
  935. data/dev/defs/sla_syrpvgrw +101 -0
  936. data/dev/defs/sla_wwaddw +53 -0
  937. data/dev/defs/slabad +43 -0
  938. data/dev/defs/slabrd +186 -0
  939. data/dev/defs/slacn2 +96 -0
  940. data/dev/defs/slacon +80 -0
  941. data/dev/defs/slacpy +78 -0
  942. data/dev/defs/sladiv +57 -0
  943. data/dev/defs/slae2 +66 -0
  944. data/dev/defs/slaebz +292 -0
  945. data/dev/defs/slaed0 +147 -0
  946. data/dev/defs/slaed1 +141 -0
  947. data/dev/defs/slaed2 +194 -0
  948. data/dev/defs/slaed3 +167 -0
  949. data/dev/defs/slaed4 +113 -0
  950. data/dev/defs/slaed5 +78 -0
  951. data/dev/defs/slaed6 +101 -0
  952. data/dev/defs/slaed7 +241 -0
  953. data/dev/defs/slaed8 +227 -0
  954. data/dev/defs/slaed9 +137 -0
  955. data/dev/defs/slaeda +147 -0
  956. data/dev/defs/slaein +141 -0
  957. data/dev/defs/slaev2 +83 -0
  958. data/dev/defs/slaexc +107 -0
  959. data/dev/defs/slag2 +123 -0
  960. data/dev/defs/slag2d +74 -0
  961. data/dev/defs/slags2 +108 -0
  962. data/dev/defs/slagtf +128 -0
  963. data/dev/defs/slagtm +115 -0
  964. data/dev/defs/slagts +135 -0
  965. data/dev/defs/slagv2 +128 -0
  966. data/dev/defs/slahqr +172 -0
  967. data/dev/defs/slahr2 +153 -0
  968. data/dev/defs/slahrd +142 -0
  969. data/dev/defs/slaic1 +101 -0
  970. data/dev/defs/slaln2 +187 -0
  971. data/dev/defs/slals0 +250 -0
  972. data/dev/defs/slalsa +268 -0
  973. data/dev/defs/slalsd +150 -0
  974. data/dev/defs/slamrg +66 -0
  975. data/dev/defs/slaneg +87 -0
  976. data/dev/defs/slangb +93 -0
  977. data/dev/defs/slange +84 -0
  978. data/dev/defs/slangt +77 -0
  979. data/dev/defs/slanhs +78 -0
  980. data/dev/defs/slansb +97 -0
  981. data/dev/defs/slansf +179 -0
  982. data/dev/defs/slansp +83 -0
  983. data/dev/defs/slanst +69 -0
  984. data/dev/defs/slansy +92 -0
  985. data/dev/defs/slantb +108 -0
  986. data/dev/defs/slantp +93 -0
  987. data/dev/defs/slantr +109 -0
  988. data/dev/defs/slanv2 +84 -0
  989. data/dev/defs/slapll +69 -0
  990. data/dev/defs/slapmr +73 -0
  991. data/dev/defs/slapmt +73 -0
  992. data/dev/defs/slapy2 +30 -0
  993. data/dev/defs/slapy3 +34 -0
  994. data/dev/defs/slaqgb +124 -0
  995. data/dev/defs/slaqge +107 -0
  996. data/dev/defs/slaqp2 +115 -0
  997. data/dev/defs/slaqps +146 -0
  998. data/dev/defs/slaqr0 +225 -0
  999. data/dev/defs/slaqr1 +79 -0
  1000. data/dev/defs/slaqr2 +252 -0
  1001. data/dev/defs/slaqr3 +247 -0
  1002. data/dev/defs/slaqr4 +225 -0
  1003. data/dev/defs/slaqr5 +230 -0
  1004. data/dev/defs/slaqsb +105 -0
  1005. data/dev/defs/slaqsp +89 -0
  1006. data/dev/defs/slaqsy +98 -0
  1007. data/dev/defs/slaqtr +134 -0
  1008. data/dev/defs/slar1v +199 -0
  1009. data/dev/defs/slar2v +86 -0
  1010. data/dev/defs/slarf +93 -0
  1011. data/dev/defs/slarfb +139 -0
  1012. data/dev/defs/slarfg +71 -0
  1013. data/dev/defs/slarfgp +69 -0
  1014. data/dev/defs/slarft +133 -0
  1015. data/dev/defs/slarfx +89 -0
  1016. data/dev/defs/slargv +74 -0
  1017. data/dev/defs/slarnv +61 -0
  1018. data/dev/defs/slarra +106 -0
  1019. data/dev/defs/slarrb +167 -0
  1020. data/dev/defs/slarrc +99 -0
  1021. data/dev/defs/slarrd +290 -0
  1022. data/dev/defs/slarre +265 -0
  1023. data/dev/defs/slarrf +165 -0
  1024. data/dev/defs/slarrj +138 -0
  1025. data/dev/defs/slarrk +108 -0
  1026. data/dev/defs/slarrr +62 -0
  1027. data/dev/defs/slarrv +259 -0
  1028. data/dev/defs/slarscl2 +61 -0
  1029. data/dev/defs/slartg +64 -0
  1030. data/dev/defs/slartgp +62 -0
  1031. data/dev/defs/slartgs +57 -0
  1032. data/dev/defs/slartv +82 -0
  1033. data/dev/defs/slaruv +59 -0
  1034. data/dev/defs/slarz +109 -0
  1035. data/dev/defs/slarzb +150 -0
  1036. data/dev/defs/slarzt +151 -0
  1037. data/dev/defs/slas2 +71 -0
  1038. data/dev/defs/slascl +102 -0
  1039. data/dev/defs/slascl2 +61 -0
  1040. data/dev/defs/slasd0 +131 -0
  1041. data/dev/defs/slasd1 +179 -0
  1042. data/dev/defs/slasd2 +254 -0
  1043. data/dev/defs/slasd3 +213 -0
  1044. data/dev/defs/slasd4 +123 -0
  1045. data/dev/defs/slasd5 +88 -0
  1046. data/dev/defs/slasd6 +300 -0
  1047. data/dev/defs/slasd7 +264 -0
  1048. data/dev/defs/slasd8 +144 -0
  1049. data/dev/defs/slasda +275 -0
  1050. data/dev/defs/slasdq +187 -0
  1051. data/dev/defs/slasdt +76 -0
  1052. data/dev/defs/slaset +81 -0
  1053. data/dev/defs/slasq1 +75 -0
  1054. data/dev/defs/slasq2 +73 -0
  1055. data/dev/defs/slasq3 +141 -0
  1056. data/dev/defs/slasq4 +107 -0
  1057. data/dev/defs/slasq5 +100 -0
  1058. data/dev/defs/slasq6 +90 -0
  1059. data/dev/defs/slasr +169 -0
  1060. data/dev/defs/slasrt +53 -0
  1061. data/dev/defs/slassq +68 -0
  1062. data/dev/defs/slasv2 +100 -0
  1063. data/dev/defs/slaswp +81 -0
  1064. data/dev/defs/slasy2 +145 -0
  1065. data/dev/defs/slasyf +126 -0
  1066. data/dev/defs/slatbs +206 -0
  1067. data/dev/defs/slatdf +131 -0
  1068. data/dev/defs/slatps +192 -0
  1069. data/dev/defs/slatrd +168 -0
  1070. data/dev/defs/slatrs +202 -0
  1071. data/dev/defs/slatrz +106 -0
  1072. data/dev/defs/slatzm +123 -0
  1073. data/dev/defs/slauu2 +68 -0
  1074. data/dev/defs/slauum +68 -0
  1075. data/dev/defs/sopgtr +87 -0
  1076. data/dev/defs/sopmtr +120 -0
  1077. data/dev/defs/sorbdb +270 -0
  1078. data/dev/defs/sorcsd +264 -0
  1079. data/dev/defs/sorg2l +85 -0
  1080. data/dev/defs/sorg2r +85 -0
  1081. data/dev/defs/sorgbr +129 -0
  1082. data/dev/defs/sorghr +97 -0
  1083. data/dev/defs/sorgl2 +84 -0
  1084. data/dev/defs/sorglq +100 -0
  1085. data/dev/defs/sorgql +101 -0
  1086. data/dev/defs/sorgqr +101 -0
  1087. data/dev/defs/sorgr2 +85 -0
  1088. data/dev/defs/sorgrq +101 -0
  1089. data/dev/defs/sorgtr +95 -0
  1090. data/dev/defs/sorm2l +130 -0
  1091. data/dev/defs/sorm2r +130 -0
  1092. data/dev/defs/sormbr +176 -0
  1093. data/dev/defs/sormhr +157 -0
  1094. data/dev/defs/sorml2 +130 -0
  1095. data/dev/defs/sormlq +143 -0
  1096. data/dev/defs/sormql +143 -0
  1097. data/dev/defs/sormqr +143 -0
  1098. data/dev/defs/sormr2 +130 -0
  1099. data/dev/defs/sormr3 +152 -0
  1100. data/dev/defs/sormrq +143 -0
  1101. data/dev/defs/sormrz +157 -0
  1102. data/dev/defs/sormtr +152 -0
  1103. data/dev/defs/spbcon +98 -0
  1104. data/dev/defs/spbequ +96 -0
  1105. data/dev/defs/spbrfs +166 -0
  1106. data/dev/defs/spbstf +115 -0
  1107. data/dev/defs/spbsv +136 -0
  1108. data/dev/defs/spbsvx +314 -0
  1109. data/dev/defs/spbtf2 +105 -0
  1110. data/dev/defs/spbtrf +103 -0
  1111. data/dev/defs/spbtrs +98 -0
  1112. data/dev/defs/spftrf +161 -0
  1113. data/dev/defs/spftri +154 -0
  1114. data/dev/defs/spftrs +164 -0
  1115. data/dev/defs/spocon +87 -0
  1116. data/dev/defs/spoequ +80 -0
  1117. data/dev/defs/spoequb +80 -0
  1118. data/dev/defs/sporfs +160 -0
  1119. data/dev/defs/sporfsx +370 -0
  1120. data/dev/defs/sposv +105 -0
  1121. data/dev/defs/sposvx +281 -0
  1122. data/dev/defs/sposvxx +471 -0
  1123. data/dev/defs/spotf2 +75 -0
  1124. data/dev/defs/spotrf +73 -0
  1125. data/dev/defs/spotri +67 -0
  1126. data/dev/defs/spotrs +79 -0
  1127. data/dev/defs/sppcon +85 -0
  1128. data/dev/defs/sppequ +82 -0
  1129. data/dev/defs/spprfs +146 -0
  1130. data/dev/defs/sppsv +115 -0
  1131. data/dev/defs/sppsvx +283 -0
  1132. data/dev/defs/spptrf +81 -0
  1133. data/dev/defs/spptri +58 -0
  1134. data/dev/defs/spptrs +84 -0
  1135. data/dev/defs/spstf2 +108 -0
  1136. data/dev/defs/spstrf +108 -0
  1137. data/dev/defs/sptcon +84 -0
  1138. data/dev/defs/spteqr +117 -0
  1139. data/dev/defs/sptrfs +141 -0
  1140. data/dev/defs/sptsv +89 -0
  1141. data/dev/defs/sptsvx +203 -0
  1142. data/dev/defs/spttrf +59 -0
  1143. data/dev/defs/spttrs +88 -0
  1144. data/dev/defs/sptts2 +77 -0
  1145. data/dev/defs/srscl +49 -0
  1146. data/dev/defs/ssbev +117 -0
  1147. data/dev/defs/ssbevd +169 -0
  1148. data/dev/defs/ssbevx +231 -0
  1149. data/dev/defs/ssbgst +130 -0
  1150. data/dev/defs/ssbgv +156 -0
  1151. data/dev/defs/ssbgvd +206 -0
  1152. data/dev/defs/ssbgvx +259 -0
  1153. data/dev/defs/ssbtrd +132 -0
  1154. data/dev/defs/ssfrk +134 -0
  1155. data/dev/defs/sspcon +92 -0
  1156. data/dev/defs/sspev +103 -0
  1157. data/dev/defs/sspevd +154 -0
  1158. data/dev/defs/sspevx +197 -0
  1159. data/dev/defs/sspgst +80 -0
  1160. data/dev/defs/sspgv +139 -0
  1161. data/dev/defs/sspgvd +188 -0
  1162. data/dev/defs/sspgvx +241 -0
  1163. data/dev/defs/ssprfs +156 -0
  1164. data/dev/defs/sspsv +134 -0
  1165. data/dev/defs/sspsvx +249 -0
  1166. data/dev/defs/ssptrd +118 -0
  1167. data/dev/defs/ssptrf +120 -0
  1168. data/dev/defs/ssptri +77 -0
  1169. data/dev/defs/ssptrs +84 -0
  1170. data/dev/defs/sstebz +229 -0
  1171. data/dev/defs/sstedc +164 -0
  1172. data/dev/defs/sstegr +233 -0
  1173. data/dev/defs/sstein +152 -0
  1174. data/dev/defs/sstemr +285 -0
  1175. data/dev/defs/ssteqr +103 -0
  1176. data/dev/defs/ssterf +54 -0
  1177. data/dev/defs/sstev +88 -0
  1178. data/dev/defs/sstevd +138 -0
  1179. data/dev/defs/sstevr +275 -0
  1180. data/dev/defs/sstevx +193 -0
  1181. data/dev/defs/ssycon +98 -0
  1182. data/dev/defs/ssyconv +90 -0
  1183. data/dev/defs/ssyequb +104 -0
  1184. data/dev/defs/ssyev +104 -0
  1185. data/dev/defs/ssyevd +157 -0
  1186. data/dev/defs/ssyevr +302 -0
  1187. data/dev/defs/ssyevx +218 -0
  1188. data/dev/defs/ssygs2 +96 -0
  1189. data/dev/defs/ssygst +96 -0
  1190. data/dev/defs/ssygv +148 -0
  1191. data/dev/defs/ssygvd +197 -0
  1192. data/dev/defs/ssygvx +263 -0
  1193. data/dev/defs/ssyrfs +170 -0
  1194. data/dev/defs/ssyrfsx +380 -0
  1195. data/dev/defs/ssysv +149 -0
  1196. data/dev/defs/ssysvx +261 -0
  1197. data/dev/defs/ssysvxx +484 -0
  1198. data/dev/defs/ssyswapr +70 -0
  1199. data/dev/defs/ssytd2 +142 -0
  1200. data/dev/defs/ssytf2 +143 -0
  1201. data/dev/defs/ssytrd +162 -0
  1202. data/dev/defs/ssytrf +156 -0
  1203. data/dev/defs/ssytri +83 -0
  1204. data/dev/defs/ssytri2 +110 -0
  1205. data/dev/defs/ssytri2x +90 -0
  1206. data/dev/defs/ssytrs +90 -0
  1207. data/dev/defs/ssytrs2 +97 -0
  1208. data/dev/defs/stbcon +109 -0
  1209. data/dev/defs/stbrfs +164 -0
  1210. data/dev/defs/stbtrs +113 -0
  1211. data/dev/defs/stfsm +243 -0
  1212. data/dev/defs/stftri +163 -0
  1213. data/dev/defs/stfttp +151 -0
  1214. data/dev/defs/stfttr +174 -0
  1215. data/dev/defs/stgevc +265 -0
  1216. data/dev/defs/stgex2 +191 -0
  1217. data/dev/defs/stgexc +190 -0
  1218. data/dev/defs/stgsen +421 -0
  1219. data/dev/defs/stgsja +343 -0
  1220. data/dev/defs/stgsna +354 -0
  1221. data/dev/defs/stgsy2 +252 -0
  1222. data/dev/defs/stgsyl +274 -0
  1223. data/dev/defs/stpcon +95 -0
  1224. data/dev/defs/stprfs +150 -0
  1225. data/dev/defs/stptri +79 -0
  1226. data/dev/defs/stptrs +98 -0
  1227. data/dev/defs/stpttf +151 -0
  1228. data/dev/defs/stpttr +73 -0
  1229. data/dev/defs/strcon +103 -0
  1230. data/dev/defs/strevc +191 -0
  1231. data/dev/defs/strexc +113 -0
  1232. data/dev/defs/strrfs +158 -0
  1233. data/dev/defs/strsen +284 -0
  1234. data/dev/defs/strsna +239 -0
  1235. data/dev/defs/strsyl +133 -0
  1236. data/dev/defs/strti2 +76 -0
  1237. data/dev/defs/strtri +75 -0
  1238. data/dev/defs/strtrs +107 -0
  1239. data/dev/defs/strttf +171 -0
  1240. data/dev/defs/strttp +72 -0
  1241. data/dev/defs/stzrqf +104 -0
  1242. data/dev/defs/stzrzf +128 -0
  1243. data/dev/defs/xerbla +40 -0
  1244. data/dev/defs/xerbla_array +65 -0
  1245. data/dev/defs/zbbcsd +297 -0
  1246. data/dev/defs/zbdsqr +196 -0
  1247. data/dev/defs/zcgesv +176 -0
  1248. data/dev/defs/zcposv +182 -0
  1249. data/dev/defs/zdrscl +49 -0
  1250. data/dev/defs/zgbbrd +174 -0
  1251. data/dev/defs/zgbcon +114 -0
  1252. data/dev/defs/zgbequ +121 -0
  1253. data/dev/defs/zgbequb +128 -0
  1254. data/dev/defs/zgbrfs +182 -0
  1255. data/dev/defs/zgbrfsx +418 -0
  1256. data/dev/defs/zgbsv +134 -0
  1257. data/dev/defs/zgbsvx +356 -0
  1258. data/dev/defs/zgbsvxx +536 -0
  1259. data/dev/defs/zgbtf2 +110 -0
  1260. data/dev/defs/zgbtrf +109 -0
  1261. data/dev/defs/zgbtrs +106 -0
  1262. data/dev/defs/zgebak +95 -0
  1263. data/dev/defs/zgebal +125 -0
  1264. data/dev/defs/zgebd2 +162 -0
  1265. data/dev/defs/zgebrd +178 -0
  1266. data/dev/defs/zgecon +90 -0
  1267. data/dev/defs/zgeequ +107 -0
  1268. data/dev/defs/zgeequb +114 -0
  1269. data/dev/defs/zgees +170 -0
  1270. data/dev/defs/zgeesx +209 -0
  1271. data/dev/defs/zgeev +154 -0
  1272. data/dev/defs/zgeevx +263 -0
  1273. data/dev/defs/zgegs +205 -0
  1274. data/dev/defs/zgegv +261 -0
  1275. data/dev/defs/zgehd2 +115 -0
  1276. data/dev/defs/zgehrd +136 -0
  1277. data/dev/defs/zgelq2 +89 -0
  1278. data/dev/defs/zgelqf +113 -0
  1279. data/dev/defs/zgels +157 -0
  1280. data/dev/defs/zgelsd +211 -0
  1281. data/dev/defs/zgelss +156 -0
  1282. data/dev/defs/zgelsx +155 -0
  1283. data/dev/defs/zgelsy +188 -0
  1284. data/dev/defs/zgeql2 +91 -0
  1285. data/dev/defs/zgeqlf +116 -0
  1286. data/dev/defs/zgeqp3 +127 -0
  1287. data/dev/defs/zgeqpf +118 -0
  1288. data/dev/defs/zgeqr2 +89 -0
  1289. data/dev/defs/zgeqr2p +89 -0
  1290. data/dev/defs/zgeqrf +114 -0
  1291. data/dev/defs/zgeqrfp +114 -0
  1292. data/dev/defs/zgerfs +164 -0
  1293. data/dev/defs/zgerfsx +394 -0
  1294. data/dev/defs/zgerq2 +91 -0
  1295. data/dev/defs/zgerqf +116 -0
  1296. data/dev/defs/zgesc2 +87 -0
  1297. data/dev/defs/zgesdd +203 -0
  1298. data/dev/defs/zgesv +97 -0
  1299. data/dev/defs/zgesvd +195 -0
  1300. data/dev/defs/zgesvx +333 -0
  1301. data/dev/defs/zgesvxx +516 -0
  1302. data/dev/defs/zgetc2 +82 -0
  1303. data/dev/defs/zgetf2 +76 -0
  1304. data/dev/defs/zgetrf +76 -0
  1305. data/dev/defs/zgetri +86 -0
  1306. data/dev/defs/zgetrs +91 -0
  1307. data/dev/defs/zggbak +119 -0
  1308. data/dev/defs/zggbal +144 -0
  1309. data/dev/defs/zgges +247 -0
  1310. data/dev/defs/zggesx +311 -0
  1311. data/dev/defs/zggev +197 -0
  1312. data/dev/defs/zggevx +353 -0
  1313. data/dev/defs/zggglm +160 -0
  1314. data/dev/defs/zgghrd +171 -0
  1315. data/dev/defs/zgglse +157 -0
  1316. data/dev/defs/zggqrf +195 -0
  1317. data/dev/defs/zggrqf +194 -0
  1318. data/dev/defs/zggsvd +324 -0
  1319. data/dev/defs/zggsvp +240 -0
  1320. data/dev/defs/zgtcon +112 -0
  1321. data/dev/defs/zgtrfs +193 -0
  1322. data/dev/defs/zgtsv +97 -0
  1323. data/dev/defs/zgtsvx +275 -0
  1324. data/dev/defs/zgttrf +97 -0
  1325. data/dev/defs/zgttrs +119 -0
  1326. data/dev/defs/zgtts2 +108 -0
  1327. data/dev/defs/zhbev +124 -0
  1328. data/dev/defs/zhbevd +194 -0
  1329. data/dev/defs/zhbevx +234 -0
  1330. data/dev/defs/zhbgst +137 -0
  1331. data/dev/defs/zhbgv +163 -0
  1332. data/dev/defs/zhbgvd +231 -0
  1333. data/dev/defs/zhbgvx +265 -0
  1334. data/dev/defs/zhbtrd +132 -0
  1335. data/dev/defs/zhecon +91 -0
  1336. data/dev/defs/zheequb +87 -0
  1337. data/dev/defs/zheev +111 -0
  1338. data/dev/defs/zheevd +178 -0
  1339. data/dev/defs/zheevr +325 -0
  1340. data/dev/defs/zheevx +225 -0
  1341. data/dev/defs/zhegs2 +96 -0
  1342. data/dev/defs/zhegst +96 -0
  1343. data/dev/defs/zhegv +155 -0
  1344. data/dev/defs/zhegvd +222 -0
  1345. data/dev/defs/zhegvx +270 -0
  1346. data/dev/defs/zherfs +170 -0
  1347. data/dev/defs/zherfsx +380 -0
  1348. data/dev/defs/zhesv +147 -0
  1349. data/dev/defs/zhesvx +261 -0
  1350. data/dev/defs/zhesvxx +478 -0
  1351. data/dev/defs/zhetd2 +143 -0
  1352. data/dev/defs/zhetf2 +141 -0
  1353. data/dev/defs/zhetrd +162 -0
  1354. data/dev/defs/zhetrf +151 -0
  1355. data/dev/defs/zhetri +83 -0
  1356. data/dev/defs/zhetrs +90 -0
  1357. data/dev/defs/zhetrs2 +97 -0
  1358. data/dev/defs/zhfrk +138 -0
  1359. data/dev/defs/zhgeqz +258 -0
  1360. data/dev/defs/zhpcon +85 -0
  1361. data/dev/defs/zhpev +110 -0
  1362. data/dev/defs/zhpevd +180 -0
  1363. data/dev/defs/zhpevx +204 -0
  1364. data/dev/defs/zhpgst +80 -0
  1365. data/dev/defs/zhpgv +145 -0
  1366. data/dev/defs/zhpgvd +221 -0
  1367. data/dev/defs/zhpgvx +247 -0
  1368. data/dev/defs/zhprfs +156 -0
  1369. data/dev/defs/zhpsv +134 -0
  1370. data/dev/defs/zhpsvx +248 -0
  1371. data/dev/defs/zhptrd +118 -0
  1372. data/dev/defs/zhptrf +120 -0
  1373. data/dev/defs/zhptri +77 -0
  1374. data/dev/defs/zhptrs +84 -0
  1375. data/dev/defs/zhsein +217 -0
  1376. data/dev/defs/zhseqr +263 -0
  1377. data/dev/defs/zla_gbamv +154 -0
  1378. data/dev/defs/zla_gbrcond_c +146 -0
  1379. data/dev/defs/zla_gbrcond_x +140 -0
  1380. data/dev/defs/zla_gbrfsx_extended +391 -0
  1381. data/dev/defs/zla_gbrpvgrw +94 -0
  1382. data/dev/defs/zla_geamv +142 -0
  1383. data/dev/defs/zla_gercond_c +128 -0
  1384. data/dev/defs/zla_gercond_x +122 -0
  1385. data/dev/defs/zla_gerfsx_extended +378 -0
  1386. data/dev/defs/zla_heamv +142 -0
  1387. data/dev/defs/zla_hercond_c +125 -0
  1388. data/dev/defs/zla_hercond_x +119 -0
  1389. data/dev/defs/zla_herfsx_extended +375 -0
  1390. data/dev/defs/zla_herpvgrw +105 -0
  1391. data/dev/defs/zla_lin_berr +79 -0
  1392. data/dev/defs/zla_porcond_c +116 -0
  1393. data/dev/defs/zla_porcond_x +110 -0
  1394. data/dev/defs/zla_porfsx_extended +366 -0
  1395. data/dev/defs/zla_porpvgrw +85 -0
  1396. data/dev/defs/zla_rpvgrw +76 -0
  1397. data/dev/defs/zla_syamv +142 -0
  1398. data/dev/defs/zla_syrcond_c +125 -0
  1399. data/dev/defs/zla_syrcond_x +119 -0
  1400. data/dev/defs/zla_syrfsx_extended +375 -0
  1401. data/dev/defs/zla_syrpvgrw +105 -0
  1402. data/dev/defs/zla_wwaddw +53 -0
  1403. data/dev/defs/zlabrd +187 -0
  1404. data/dev/defs/zlacgv +44 -0
  1405. data/dev/defs/zlacn2 +91 -0
  1406. data/dev/defs/zlacon +75 -0
  1407. data/dev/defs/zlacp2 +78 -0
  1408. data/dev/defs/zlacpy +78 -0
  1409. data/dev/defs/zlacrm +88 -0
  1410. data/dev/defs/zlacrt +73 -0
  1411. data/dev/defs/zladiv +37 -0
  1412. data/dev/defs/zlaed0 +121 -0
  1413. data/dev/defs/zlaed7 +237 -0
  1414. data/dev/defs/zlaed8 +211 -0
  1415. data/dev/defs/zlaein +117 -0
  1416. data/dev/defs/zlaesy +81 -0
  1417. data/dev/defs/zlaev2 +83 -0
  1418. data/dev/defs/zlag2c +82 -0
  1419. data/dev/defs/zlags2 +116 -0
  1420. data/dev/defs/zlagtm +115 -0
  1421. data/dev/defs/zlahef +127 -0
  1422. data/dev/defs/zlahqr +159 -0
  1423. data/dev/defs/zlahr2 +153 -0
  1424. data/dev/defs/zlahrd +141 -0
  1425. data/dev/defs/zlaic1 +101 -0
  1426. data/dev/defs/zlals0 +251 -0
  1427. data/dev/defs/zlalsa +267 -0
  1428. data/dev/defs/zlalsd +160 -0
  1429. data/dev/defs/zlangb +92 -0
  1430. data/dev/defs/zlange +84 -0
  1431. data/dev/defs/zlangt +77 -0
  1432. data/dev/defs/zlanhb +99 -0
  1433. data/dev/defs/zlanhe +93 -0
  1434. data/dev/defs/zlanhf +211 -0
  1435. data/dev/defs/zlanhp +85 -0
  1436. data/dev/defs/zlanhs +78 -0
  1437. data/dev/defs/zlanht +69 -0
  1438. data/dev/defs/zlansb +97 -0
  1439. data/dev/defs/zlansp +83 -0
  1440. data/dev/defs/zlansy +92 -0
  1441. data/dev/defs/zlantb +108 -0
  1442. data/dev/defs/zlantp +93 -0
  1443. data/dev/defs/zlantr +109 -0
  1444. data/dev/defs/zlapll +67 -0
  1445. data/dev/defs/zlapmr +73 -0
  1446. data/dev/defs/zlapmt +73 -0
  1447. data/dev/defs/zlaqgb +124 -0
  1448. data/dev/defs/zlaqge +107 -0
  1449. data/dev/defs/zlaqhb +105 -0
  1450. data/dev/defs/zlaqhe +98 -0
  1451. data/dev/defs/zlaqhp +89 -0
  1452. data/dev/defs/zlaqp2 +115 -0
  1453. data/dev/defs/zlaqps +141 -0
  1454. data/dev/defs/zlaqr0 +203 -0
  1455. data/dev/defs/zlaqr1 +66 -0
  1456. data/dev/defs/zlaqr2 +243 -0
  1457. data/dev/defs/zlaqr3 +238 -0
  1458. data/dev/defs/zlaqr4 +203 -0
  1459. data/dev/defs/zlaqr5 +221 -0
  1460. data/dev/defs/zlaqsb +105 -0
  1461. data/dev/defs/zlaqsp +89 -0
  1462. data/dev/defs/zlaqsy +98 -0
  1463. data/dev/defs/zlar1v +199 -0
  1464. data/dev/defs/zlar2v +88 -0
  1465. data/dev/defs/zlarcm +88 -0
  1466. data/dev/defs/zlarf +97 -0
  1467. data/dev/defs/zlarfb +139 -0
  1468. data/dev/defs/zlarfg +71 -0
  1469. data/dev/defs/zlarfgp +69 -0
  1470. data/dev/defs/zlarft +133 -0
  1471. data/dev/defs/zlarfx +88 -0
  1472. data/dev/defs/zlargv +88 -0
  1473. data/dev/defs/zlarnv +63 -0
  1474. data/dev/defs/zlarrv +259 -0
  1475. data/dev/defs/zlarscl2 +61 -0
  1476. data/dev/defs/zlartg +66 -0
  1477. data/dev/defs/zlartv +82 -0
  1478. data/dev/defs/zlarz +111 -0
  1479. data/dev/defs/zlarzb +150 -0
  1480. data/dev/defs/zlarzt +151 -0
  1481. data/dev/defs/zlascl +102 -0
  1482. data/dev/defs/zlascl2 +61 -0
  1483. data/dev/defs/zlaset +77 -0
  1484. data/dev/defs/zlasr +169 -0
  1485. data/dev/defs/zlassq +71 -0
  1486. data/dev/defs/zlaswp +81 -0
  1487. data/dev/defs/zlasyf +127 -0
  1488. data/dev/defs/zlat2c +85 -0
  1489. data/dev/defs/zlatbs +206 -0
  1490. data/dev/defs/zlatdf +133 -0
  1491. data/dev/defs/zlatps +193 -0
  1492. data/dev/defs/zlatrd +168 -0
  1493. data/dev/defs/zlatrs +202 -0
  1494. data/dev/defs/zlatrz +106 -0
  1495. data/dev/defs/zlatzm +124 -0
  1496. data/dev/defs/zlauu2 +68 -0
  1497. data/dev/defs/zlauum +68 -0
  1498. data/dev/defs/zpbcon +99 -0
  1499. data/dev/defs/zpbequ +96 -0
  1500. data/dev/defs/zpbrfs +166 -0
  1501. data/dev/defs/zpbstf +116 -0
  1502. data/dev/defs/zpbsv +136 -0
  1503. data/dev/defs/zpbsvx +314 -0
  1504. data/dev/defs/zpbtf2 +105 -0
  1505. data/dev/defs/zpbtrf +103 -0
  1506. data/dev/defs/zpbtrs +98 -0
  1507. data/dev/defs/zpftrf +182 -0
  1508. data/dev/defs/zpftri +175 -0
  1509. data/dev/defs/zpftrs +185 -0
  1510. data/dev/defs/zpocon +87 -0
  1511. data/dev/defs/zpoequ +80 -0
  1512. data/dev/defs/zpoequb +80 -0
  1513. data/dev/defs/zporfs +160 -0
  1514. data/dev/defs/zporfsx +370 -0
  1515. data/dev/defs/zposv +105 -0
  1516. data/dev/defs/zposvx +281 -0
  1517. data/dev/defs/zposvxx +468 -0
  1518. data/dev/defs/zpotf2 +75 -0
  1519. data/dev/defs/zpotrf +73 -0
  1520. data/dev/defs/zpotri +67 -0
  1521. data/dev/defs/zpotrs +79 -0
  1522. data/dev/defs/zppcon +85 -0
  1523. data/dev/defs/zppequ +82 -0
  1524. data/dev/defs/zpprfs +146 -0
  1525. data/dev/defs/zppsv +115 -0
  1526. data/dev/defs/zppsvx +283 -0
  1527. data/dev/defs/zpptrf +81 -0
  1528. data/dev/defs/zpptri +58 -0
  1529. data/dev/defs/zpptrs +84 -0
  1530. data/dev/defs/zpstf2 +108 -0
  1531. data/dev/defs/zpstrf +108 -0
  1532. data/dev/defs/zptcon +84 -0
  1533. data/dev/defs/zpteqr +116 -0
  1534. data/dev/defs/zptrfs +161 -0
  1535. data/dev/defs/zptsv +89 -0
  1536. data/dev/defs/zptsvx +210 -0
  1537. data/dev/defs/zpttrf +59 -0
  1538. data/dev/defs/zpttrs +98 -0
  1539. data/dev/defs/zptts2 +89 -0
  1540. data/dev/defs/zrot +72 -0
  1541. data/dev/defs/zspcon +85 -0
  1542. data/dev/defs/zspmv +119 -0
  1543. data/dev/defs/zspr +98 -0
  1544. data/dev/defs/zsprfs +156 -0
  1545. data/dev/defs/zspsv +134 -0
  1546. data/dev/defs/zspsvx +248 -0
  1547. data/dev/defs/zsptrf +121 -0
  1548. data/dev/defs/zsptri +77 -0
  1549. data/dev/defs/zsptrs +84 -0
  1550. data/dev/defs/zstedc +192 -0
  1551. data/dev/defs/zstegr +233 -0
  1552. data/dev/defs/zstein +159 -0
  1553. data/dev/defs/zstemr +302 -0
  1554. data/dev/defs/zsteqr +103 -0
  1555. data/dev/defs/zsycon +91 -0
  1556. data/dev/defs/zsyconv +90 -0
  1557. data/dev/defs/zsyequb +104 -0
  1558. data/dev/defs/zsymv +126 -0
  1559. data/dev/defs/zsyr +102 -0
  1560. data/dev/defs/zsyrfs +170 -0
  1561. data/dev/defs/zsyrfsx +380 -0
  1562. data/dev/defs/zsysv +149 -0
  1563. data/dev/defs/zsysvx +261 -0
  1564. data/dev/defs/zsysvxx +482 -0
  1565. data/dev/defs/zsyswapr +70 -0
  1566. data/dev/defs/zsytf2 +140 -0
  1567. data/dev/defs/zsytrf +156 -0
  1568. data/dev/defs/zsytri +83 -0
  1569. data/dev/defs/zsytri2 +111 -0
  1570. data/dev/defs/zsytri2x +90 -0
  1571. data/dev/defs/zsytrs +90 -0
  1572. data/dev/defs/zsytrs2 +97 -0
  1573. data/dev/defs/ztbcon +109 -0
  1574. data/dev/defs/ztbrfs +164 -0
  1575. data/dev/defs/ztbtrs +113 -0
  1576. data/dev/defs/ztfsm +259 -0
  1577. data/dev/defs/ztftri +183 -0
  1578. data/dev/defs/ztfttp +172 -0
  1579. data/dev/defs/ztfttr +182 -0
  1580. data/dev/defs/ztgevc +194 -0
  1581. data/dev/defs/ztgex2 +158 -0
  1582. data/dev/defs/ztgexc +176 -0
  1583. data/dev/defs/ztgsen +406 -0
  1584. data/dev/defs/ztgsja +344 -0
  1585. data/dev/defs/ztgsna +282 -0
  1586. data/dev/defs/ztgsy2 +235 -0
  1587. data/dev/defs/ztgsyl +273 -0
  1588. data/dev/defs/ztpcon +95 -0
  1589. data/dev/defs/ztprfs +150 -0
  1590. data/dev/defs/ztptri +79 -0
  1591. data/dev/defs/ztptrs +98 -0
  1592. data/dev/defs/ztpttf +172 -0
  1593. data/dev/defs/ztpttr +73 -0
  1594. data/dev/defs/ztrcon +103 -0
  1595. data/dev/defs/ztrevc +188 -0
  1596. data/dev/defs/ztrexc +99 -0
  1597. data/dev/defs/ztrrfs +158 -0
  1598. data/dev/defs/ztrsen +234 -0
  1599. data/dev/defs/ztrsna +223 -0
  1600. data/dev/defs/ztrsyl +126 -0
  1601. data/dev/defs/ztrti2 +76 -0
  1602. data/dev/defs/ztrtri +75 -0
  1603. data/dev/defs/ztrtrs +107 -0
  1604. data/dev/defs/ztrttf +181 -0
  1605. data/dev/defs/ztrttp +72 -0
  1606. data/dev/defs/ztzrqf +104 -0
  1607. data/dev/defs/ztzrzf +128 -0
  1608. data/dev/defs/zunbdb +270 -0
  1609. data/dev/defs/zuncsd +283 -0
  1610. data/dev/defs/zung2l +85 -0
  1611. data/dev/defs/zung2r +85 -0
  1612. data/dev/defs/zungbr +129 -0
  1613. data/dev/defs/zunghr +97 -0
  1614. data/dev/defs/zungl2 +84 -0
  1615. data/dev/defs/zunglq +100 -0
  1616. data/dev/defs/zungql +101 -0
  1617. data/dev/defs/zungqr +101 -0
  1618. data/dev/defs/zungr2 +85 -0
  1619. data/dev/defs/zungrq +101 -0
  1620. data/dev/defs/zungtr +95 -0
  1621. data/dev/defs/zunm2l +130 -0
  1622. data/dev/defs/zunm2r +130 -0
  1623. data/dev/defs/zunmbr +177 -0
  1624. data/dev/defs/zunmhr +157 -0
  1625. data/dev/defs/zunml2 +130 -0
  1626. data/dev/defs/zunmlq +143 -0
  1627. data/dev/defs/zunmql +143 -0
  1628. data/dev/defs/zunmqr +143 -0
  1629. data/dev/defs/zunmr2 +130 -0
  1630. data/dev/defs/zunmr3 +152 -0
  1631. data/dev/defs/zunmrq +143 -0
  1632. data/dev/defs/zunmrz +157 -0
  1633. data/dev/defs/zunmtr +152 -0
  1634. data/dev/defs/zupgtr +87 -0
  1635. data/dev/defs/zupmtr +120 -0
  1636. data/dev/make_csrc.rb +857 -0
  1637. data/dev/mkdoc.rb +265 -0
  1638. data/dev/parse.rb +1972 -0
  1639. data/doc/bd.html +16 -0
  1640. data/doc/c.html +36 -0
  1641. data/doc/cbd.html +161 -0
  1642. data/doc/cgb.html +1865 -0
  1643. data/doc/cge.html +5261 -0
  1644. data/doc/cgg.html +2027 -0
  1645. data/doc/cgt.html +711 -0
  1646. data/doc/chb.html +1031 -0
  1647. data/doc/che.html +3165 -0
  1648. data/doc/chg.html +201 -0
  1649. data/doc/chp.html +1696 -0
  1650. data/doc/chs.html +386 -0
  1651. data/doc/cpb.html +994 -0
  1652. data/doc/cpo.html +1520 -0
  1653. data/doc/cpp.html +770 -0
  1654. data/doc/cpt.html +706 -0
  1655. data/doc/csp.html +905 -0
  1656. data/doc/cst.html +742 -0
  1657. data/doc/csy.html +2194 -0
  1658. data/doc/ctb.html +284 -0
  1659. data/doc/ctg.html +1544 -0
  1660. data/doc/ctp.html +553 -0
  1661. data/doc/ctr.html +1281 -0
  1662. data/doc/ctz.html +211 -0
  1663. data/doc/cun.html +2553 -0
  1664. data/doc/cup.html +166 -0
  1665. data/doc/d.html +35 -0
  1666. data/doc/dbd.html +304 -0
  1667. data/doc/ddi.html +87 -0
  1668. data/doc/dgb.html +1857 -0
  1669. data/doc/dge.html +7267 -0
  1670. data/doc/dgg.html +2102 -0
  1671. data/doc/dgt.html +713 -0
  1672. data/doc/dhg.html +225 -0
  1673. data/doc/dhs.html +414 -0
  1674. data/doc/di.html +14 -0
  1675. data/doc/dop.html +166 -0
  1676. data/doc/dor.html +2540 -0
  1677. data/doc/dpb.html +992 -0
  1678. data/doc/dpo.html +1517 -0
  1679. data/doc/dpp.html +770 -0
  1680. data/doc/dpt.html +675 -0
  1681. data/doc/dsb.html +995 -0
  1682. data/doc/dsp.html +1777 -0
  1683. data/doc/dst.html +1422 -0
  1684. data/doc/dsy.html +3433 -0
  1685. data/doc/dtb.html +284 -0
  1686. data/doc/dtg.html +1730 -0
  1687. data/doc/dtp.html +532 -0
  1688. data/doc/dtr.html +1346 -0
  1689. data/doc/dtz.html +211 -0
  1690. data/doc/gb.html +16 -0
  1691. data/doc/ge.html +16 -0
  1692. data/doc/gg.html +16 -0
  1693. data/doc/gt.html +16 -0
  1694. data/doc/hb.html +14 -0
  1695. data/doc/he.html +14 -0
  1696. data/doc/hg.html +16 -0
  1697. data/doc/hp.html +14 -0
  1698. data/doc/hs.html +16 -0
  1699. data/doc/index.html +53 -0
  1700. data/doc/op.html +14 -0
  1701. data/doc/or.html +14 -0
  1702. data/doc/others.html +1142 -0
  1703. data/doc/pb.html +16 -0
  1704. data/doc/po.html +16 -0
  1705. data/doc/pp.html +16 -0
  1706. data/doc/pt.html +16 -0
  1707. data/doc/s.html +35 -0
  1708. data/doc/sb.html +14 -0
  1709. data/doc/sbd.html +303 -0
  1710. data/doc/sdi.html +87 -0
  1711. data/doc/sgb.html +1863 -0
  1712. data/doc/sge.html +7263 -0
  1713. data/doc/sgg.html +2102 -0
  1714. data/doc/sgt.html +713 -0
  1715. data/doc/shg.html +225 -0
  1716. data/doc/shs.html +414 -0
  1717. data/doc/sop.html +166 -0
  1718. data/doc/sor.html +2540 -0
  1719. data/doc/sp.html +16 -0
  1720. data/doc/spb.html +992 -0
  1721. data/doc/spo.html +1520 -0
  1722. data/doc/spp.html +770 -0
  1723. data/doc/spt.html +675 -0
  1724. data/doc/ssb.html +995 -0
  1725. data/doc/ssp.html +1647 -0
  1726. data/doc/sst.html +1423 -0
  1727. data/doc/ssy.html +3438 -0
  1728. data/doc/st.html +16 -0
  1729. data/doc/stb.html +284 -0
  1730. data/doc/stg.html +1729 -0
  1731. data/doc/stp.html +532 -0
  1732. data/doc/str.html +1346 -0
  1733. data/doc/stz.html +211 -0
  1734. data/doc/sy.html +16 -0
  1735. data/doc/tb.html +16 -0
  1736. data/doc/tg.html +16 -0
  1737. data/doc/tp.html +16 -0
  1738. data/doc/tr.html +16 -0
  1739. data/doc/tz.html +16 -0
  1740. data/doc/un.html +14 -0
  1741. data/doc/up.html +14 -0
  1742. data/doc/z.html +36 -0
  1743. data/doc/zbd.html +161 -0
  1744. data/doc/zgb.html +1862 -0
  1745. data/doc/zge.html +5258 -0
  1746. data/doc/zgg.html +2027 -0
  1747. data/doc/zgt.html +711 -0
  1748. data/doc/zhb.html +1031 -0
  1749. data/doc/zhe.html +3162 -0
  1750. data/doc/zhg.html +201 -0
  1751. data/doc/zhp.html +1697 -0
  1752. data/doc/zhs.html +386 -0
  1753. data/doc/zpb.html +994 -0
  1754. data/doc/zpo.html +1517 -0
  1755. data/doc/zpp.html +770 -0
  1756. data/doc/zpt.html +706 -0
  1757. data/doc/zsp.html +905 -0
  1758. data/doc/zst.html +743 -0
  1759. data/doc/zsy.html +2191 -0
  1760. data/doc/ztb.html +284 -0
  1761. data/doc/ztg.html +1544 -0
  1762. data/doc/ztp.html +553 -0
  1763. data/doc/ztr.html +1281 -0
  1764. data/doc/ztz.html +211 -0
  1765. data/doc/zun.html +2553 -0
  1766. data/doc/zup.html +166 -0
  1767. data/ext/cbbcsd.c +279 -0
  1768. data/ext/cbdsqr.c +178 -0
  1769. data/ext/cgbbrd.c +153 -0
  1770. data/ext/cgbcon.c +94 -0
  1771. data/ext/cgbequ.c +94 -0
  1772. data/ext/cgbequb.c +92 -0
  1773. data/ext/cgbrfs.c +157 -0
  1774. data/ext/cgbrfsx.c +245 -0
  1775. data/ext/cgbsv.c +111 -0
  1776. data/ext/cgbsvx.c +282 -0
  1777. data/ext/cgbsvxx.c +285 -0
  1778. data/ext/cgbtf2.c +89 -0
  1779. data/ext/cgbtrf.c +89 -0
  1780. data/ext/cgbtrs.c +107 -0
  1781. data/ext/cgebak.c +97 -0
  1782. data/ext/cgebal.c +87 -0
  1783. data/ext/cgebd2.c +108 -0
  1784. data/ext/cgebrd.c +123 -0
  1785. data/ext/cgecon.c +74 -0
  1786. data/ext/cgeequ.c +84 -0
  1787. data/ext/cgeequb.c +84 -0
  1788. data/ext/cgees.c +138 -0
  1789. data/ext/cgeesx.c +148 -0
  1790. data/ext/cgeev.c +128 -0
  1791. data/ext/cgeevx.c +169 -0
  1792. data/ext/cgegs.c +162 -0
  1793. data/ext/cgegv.c +167 -0
  1794. data/ext/cgehd2.c +88 -0
  1795. data/ext/cgehrd.c +103 -0
  1796. data/ext/cgelq2.c +82 -0
  1797. data/ext/cgelqf.c +99 -0
  1798. data/ext/cgels.c +133 -0
  1799. data/ext/cgelsd.c +150 -0
  1800. data/ext/cgelss.c +147 -0
  1801. data/ext/cgelsx.c +135 -0
  1802. data/ext/cgelsy.c +162 -0
  1803. data/ext/cgeql2.c +84 -0
  1804. data/ext/cgeqlf.c +99 -0
  1805. data/ext/cgeqp3.c +125 -0
  1806. data/ext/cgeqpf.c +110 -0
  1807. data/ext/cgeqr2.c +84 -0
  1808. data/ext/cgeqr2p.c +84 -0
  1809. data/ext/cgeqrf.c +99 -0
  1810. data/ext/cgeqrfp.c +99 -0
  1811. data/ext/cgerfs.c +149 -0
  1812. data/ext/cgerfsx.c +215 -0
  1813. data/ext/cgerq2.c +82 -0
  1814. data/ext/cgerqf.c +99 -0
  1815. data/ext/cgesc2.c +104 -0
  1816. data/ext/cgesdd.c +131 -0
  1817. data/ext/cgesv.c +103 -0
  1818. data/ext/cgesvd.c +142 -0
  1819. data/ext/cgesvx.c +274 -0
  1820. data/ext/cgesvxx.c +277 -0
  1821. data/ext/cgetc2.c +85 -0
  1822. data/ext/cgetf2.c +81 -0
  1823. data/ext/cgetrf.c +81 -0
  1824. data/ext/cgetri.c +99 -0
  1825. data/ext/cgetrs.c +99 -0
  1826. data/ext/cggbak.c +109 -0
  1827. data/ext/cggbal.c +124 -0
  1828. data/ext/cgges.c +188 -0
  1829. data/ext/cggesx.c +226 -0
  1830. data/ext/cggev.c +167 -0
  1831. data/ext/cggevx.c +222 -0
  1832. data/ext/cggglm.c +152 -0
  1833. data/ext/cgghrd.c +163 -0
  1834. data/ext/cgglse.c +167 -0
  1835. data/ext/cggqrf.c +133 -0
  1836. data/ext/cggrqf.c +137 -0
  1837. data/ext/cggsvd.c +180 -0
  1838. data/ext/cggsvp.c +170 -0
  1839. data/ext/cgtcon.c +117 -0
  1840. data/ext/cgtrfs.c +205 -0
  1841. data/ext/cgtsv.c +138 -0
  1842. data/ext/cgtsvx.c +252 -0
  1843. data/ext/cgttrf.c +128 -0
  1844. data/ext/cgttrs.c +133 -0
  1845. data/ext/cgtts2.c +130 -0
  1846. data/ext/chbev.c +106 -0
  1847. data/ext/chbevd.c +154 -0
  1848. data/ext/chbevx.c +156 -0
  1849. data/ext/chbgst.c +116 -0
  1850. data/ext/chbgv.c +136 -0
  1851. data/ext/chbgvd.c +184 -0
  1852. data/ext/chbgvx.c +185 -0
  1853. data/ext/chbtrd.c +126 -0
  1854. data/ext/checon.c +83 -0
  1855. data/ext/cheequb.c +78 -0
  1856. data/ext/cheev.c +106 -0
  1857. data/ext/cheevd.c +139 -0
  1858. data/ext/cheevr.c +186 -0
  1859. data/ext/cheevx.c +156 -0
  1860. data/ext/chegs2.c +91 -0
  1861. data/ext/chegst.c +91 -0
  1862. data/ext/chegv.c +136 -0
  1863. data/ext/chegvd.c +169 -0
  1864. data/ext/chegvx.c +186 -0
  1865. data/ext/cherfs.c +149 -0
  1866. data/ext/cherfsx.c +214 -0
  1867. data/ext/chesv.c +119 -0
  1868. data/ext/chesvx.c +179 -0
  1869. data/ext/chesvxx.c +254 -0
  1870. data/ext/chetd2.c +97 -0
  1871. data/ext/chetf2.c +81 -0
  1872. data/ext/chetrd.c +109 -0
  1873. data/ext/chetrf.c +93 -0
  1874. data/ext/chetri.c +88 -0
  1875. data/ext/chetrs.c +99 -0
  1876. data/ext/chetrs2.c +102 -0
  1877. data/ext/chfrk.c +105 -0
  1878. data/ext/chgeqz.c +204 -0
  1879. data/ext/chla_transtype.c +47 -0
  1880. data/ext/chpcon.c +81 -0
  1881. data/ext/chpev.c +101 -0
  1882. data/ext/chpevd.c +149 -0
  1883. data/ext/chpevx.c +140 -0
  1884. data/ext/chpgst.c +90 -0
  1885. data/ext/chpgv.c +128 -0
  1886. data/ext/chpgvd.c +166 -0
  1887. data/ext/chpgvx.c +166 -0
  1888. data/ext/chprfs.c +145 -0
  1889. data/ext/chpsv.c +106 -0
  1890. data/ext/chpsvx.c +159 -0
  1891. data/ext/chptrd.c +96 -0
  1892. data/ext/chptrf.c +80 -0
  1893. data/ext/chptri.c +85 -0
  1894. data/ext/chptrs.c +97 -0
  1895. data/ext/chsein.c +181 -0
  1896. data/ext/chseqr.c +141 -0
  1897. data/ext/cla_gbamv.c +123 -0
  1898. data/ext/cla_gbrcond_c.c +138 -0
  1899. data/ext/cla_gbrcond_x.c +134 -0
  1900. data/ext/cla_gbrfsx_extended.c +291 -0
  1901. data/ext/cla_gbrpvgrw.c +83 -0
  1902. data/ext/cla_geamv.c +113 -0
  1903. data/ext/cla_gercond_c.c +130 -0
  1904. data/ext/cla_gercond_x.c +126 -0
  1905. data/ext/cla_gerfsx_extended.c +277 -0
  1906. data/ext/cla_heamv.c +112 -0
  1907. data/ext/cla_hercond_c.c +130 -0
  1908. data/ext/cla_hercond_x.c +126 -0
  1909. data/ext/cla_herfsx_extended.c +279 -0
  1910. data/ext/cla_herpvgrw.c +103 -0
  1911. data/ext/cla_lin_berr.c +80 -0
  1912. data/ext/cla_porcond_c.c +118 -0
  1913. data/ext/cla_porcond_x.c +114 -0
  1914. data/ext/cla_porfsx_extended.c +267 -0
  1915. data/ext/cla_porpvgrw.c +91 -0
  1916. data/ext/cla_rpvgrw.c +75 -0
  1917. data/ext/cla_syamv.c +111 -0
  1918. data/ext/cla_syrcond_c.c +130 -0
  1919. data/ext/cla_syrcond_x.c +126 -0
  1920. data/ext/cla_syrfsx_extended.c +279 -0
  1921. data/ext/cla_syrpvgrw.c +103 -0
  1922. data/ext/cla_wwaddw.c +98 -0
  1923. data/ext/clabrd.c +128 -0
  1924. data/ext/clacgv.c +71 -0
  1925. data/ext/clacn2.c +99 -0
  1926. data/ext/clacon.c +76 -0
  1927. data/ext/clacp2.c +73 -0
  1928. data/ext/clacpy.c +73 -0
  1929. data/ext/clacrm.c +86 -0
  1930. data/ext/clacrt.c +104 -0
  1931. data/ext/cladiv.c +53 -0
  1932. data/ext/claed0.c +130 -0
  1933. data/ext/claed7.c +243 -0
  1934. data/ext/claed8.c +194 -0
  1935. data/ext/claein.c +109 -0
  1936. data/ext/claesy.c +70 -0
  1937. data/ext/claev2.c +67 -0
  1938. data/ext/clag2z.c +72 -0
  1939. data/ext/clags2.c +88 -0
  1940. data/ext/clagtm.c +128 -0
  1941. data/ext/clahef.c +93 -0
  1942. data/ext/clahqr.c +131 -0
  1943. data/ext/clahr2.c +108 -0
  1944. data/ext/clahrd.c +108 -0
  1945. data/ext/claic1.c +86 -0
  1946. data/ext/clals0.c +197 -0
  1947. data/ext/clalsa.c +266 -0
  1948. data/ext/clalsd.c +141 -0
  1949. data/ext/clangb.c +72 -0
  1950. data/ext/clange.c +70 -0
  1951. data/ext/clangt.c +83 -0
  1952. data/ext/clanhb.c +74 -0
  1953. data/ext/clanhe.c +68 -0
  1954. data/ext/clanhf.c +76 -0
  1955. data/ext/clanhp.c +70 -0
  1956. data/ext/clanhs.c +66 -0
  1957. data/ext/clanht.c +71 -0
  1958. data/ext/clansb.c +74 -0
  1959. data/ext/clansp.c +70 -0
  1960. data/ext/clansy.c +68 -0
  1961. data/ext/clantb.c +76 -0
  1962. data/ext/clantp.c +76 -0
  1963. data/ext/clantr.c +78 -0
  1964. data/ext/clapll.c +101 -0
  1965. data/ext/clapmr.c +93 -0
  1966. data/ext/clapmt.c +97 -0
  1967. data/ext/claqgb.c +113 -0
  1968. data/ext/claqge.c +105 -0
  1969. data/ext/claqhb.c +93 -0
  1970. data/ext/claqhe.c +93 -0
  1971. data/ext/claqhp.c +90 -0
  1972. data/ext/claqp2.c +154 -0
  1973. data/ext/claqps.c +204 -0
  1974. data/ext/claqr0.c +141 -0
  1975. data/ext/claqr1.c +72 -0
  1976. data/ext/claqr2.c +170 -0
  1977. data/ext/claqr3.c +170 -0
  1978. data/ext/claqr4.c +141 -0
  1979. data/ext/claqr5.c +175 -0
  1980. data/ext/claqsb.c +97 -0
  1981. data/ext/claqsp.c +90 -0
  1982. data/ext/claqsy.c +93 -0
  1983. data/ext/clar1v.c +169 -0
  1984. data/ext/clar2v.c +145 -0
  1985. data/ext/clarcm.c +82 -0
  1986. data/ext/clarf.c +98 -0
  1987. data/ext/clarfb.c +119 -0
  1988. data/ext/clarfg.c +80 -0
  1989. data/ext/clarfgp.c +80 -0
  1990. data/ext/clarft.c +101 -0
  1991. data/ext/clarfx.c +90 -0
  1992. data/ext/clargv.c +110 -0
  1993. data/ext/clarnv.c +79 -0
  1994. data/ext/clarrv.c +267 -0
  1995. data/ext/clarscl2.c +78 -0
  1996. data/ext/clartg.c +59 -0
  1997. data/ext/clartv.c +126 -0
  1998. data/ext/clarz.c +102 -0
  1999. data/ext/clarzb.c +123 -0
  2000. data/ext/clarzt.c +101 -0
  2001. data/ext/clascl.c +93 -0
  2002. data/ext/clascl2.c +78 -0
  2003. data/ext/claset.c +84 -0
  2004. data/ext/clasr.c +106 -0
  2005. data/ext/classq.c +66 -0
  2006. data/ext/claswp.c +90 -0
  2007. data/ext/clasyf.c +93 -0
  2008. data/ext/clatbs.c +126 -0
  2009. data/ext/clatdf.c +115 -0
  2010. data/ext/clatps.c +120 -0
  2011. data/ext/clatrd.c +101 -0
  2012. data/ext/clatrs.c +122 -0
  2013. data/ext/clatrz.c +83 -0
  2014. data/ext/clatzm.c +128 -0
  2015. data/ext/clauu2.c +73 -0
  2016. data/ext/clauum.c +73 -0
  2017. data/ext/cpbcon.c +78 -0
  2018. data/ext/cpbequ.c +79 -0
  2019. data/ext/cpbrfs.c +141 -0
  2020. data/ext/cpbstf.c +77 -0
  2021. data/ext/cpbsv.c +103 -0
  2022. data/ext/cpbsvx.c +197 -0
  2023. data/ext/cpbtf2.c +77 -0
  2024. data/ext/cpbtrf.c +77 -0
  2025. data/ext/cpbtrs.c +91 -0
  2026. data/ext/cpftrf.c +78 -0
  2027. data/ext/cpftri.c +78 -0
  2028. data/ext/cpftrs.c +93 -0
  2029. data/ext/cpocon.c +74 -0
  2030. data/ext/cpoequ.c +71 -0
  2031. data/ext/cpoequb.c +71 -0
  2032. data/ext/cporfs.c +137 -0
  2033. data/ext/cporfsx.c +202 -0
  2034. data/ext/cposv.c +99 -0
  2035. data/ext/cposvx.c +193 -0
  2036. data/ext/cposvxx.c +231 -0
  2037. data/ext/cpotf2.c +73 -0
  2038. data/ext/cpotrf.c +73 -0
  2039. data/ext/cpotri.c +73 -0
  2040. data/ext/cpotrs.c +87 -0
  2041. data/ext/cppcon.c +74 -0
  2042. data/ext/cppequ.c +75 -0
  2043. data/ext/cpprfs.c +135 -0
  2044. data/ext/cppsv.c +100 -0
  2045. data/ext/cppsvx.c +187 -0
  2046. data/ext/cpptrf.c +74 -0
  2047. data/ext/cpptri.c +74 -0
  2048. data/ext/cpptrs.c +89 -0
  2049. data/ext/cpstf2.c +91 -0
  2050. data/ext/cpstrf.c +91 -0
  2051. data/ext/cptcon.c +77 -0
  2052. data/ext/cpteqr.c +122 -0
  2053. data/ext/cptrfs.c +157 -0
  2054. data/ext/cptsv.c +115 -0
  2055. data/ext/cptsvx.c +167 -0
  2056. data/ext/cpttrf.c +89 -0
  2057. data/ext/cpttrs.c +97 -0
  2058. data/ext/cptts2.c +94 -0
  2059. data/ext/crot.c +103 -0
  2060. data/ext/cspcon.c +81 -0
  2061. data/ext/cspmv.c +111 -0
  2062. data/ext/cspr.c +92 -0
  2063. data/ext/csprfs.c +145 -0
  2064. data/ext/cspsv.c +106 -0
  2065. data/ext/cspsvx.c +159 -0
  2066. data/ext/csptrf.c +80 -0
  2067. data/ext/csptri.c +85 -0
  2068. data/ext/csptrs.c +97 -0
  2069. data/ext/csrscl.c +75 -0
  2070. data/ext/cstedc.c +173 -0
  2071. data/ext/cstegr.c +184 -0
  2072. data/ext/cstein.c +130 -0
  2073. data/ext/cstemr.c +189 -0
  2074. data/ext/csteqr.c +122 -0
  2075. data/ext/csycon.c +83 -0
  2076. data/ext/csyconv.c +80 -0
  2077. data/ext/csyequb.c +78 -0
  2078. data/ext/csymv.c +111 -0
  2079. data/ext/csyr.c +91 -0
  2080. data/ext/csyrfs.c +149 -0
  2081. data/ext/csyrfsx.c +214 -0
  2082. data/ext/csysv.c +125 -0
  2083. data/ext/csysvx.c +179 -0
  2084. data/ext/csysvxx.c +254 -0
  2085. data/ext/csyswapr.c +78 -0
  2086. data/ext/csytf2.c +81 -0
  2087. data/ext/csytrf.c +93 -0
  2088. data/ext/csytri.c +88 -0
  2089. data/ext/csytri2.c +104 -0
  2090. data/ext/csytri2x.c +92 -0
  2091. data/ext/csytrs.c +99 -0
  2092. data/ext/csytrs2.c +102 -0
  2093. data/ext/ctbcon.c +82 -0
  2094. data/ext/ctbrfs.c +123 -0
  2095. data/ext/ctbtrs.c +99 -0
  2096. data/ext/ctfsm.c +107 -0
  2097. data/ext/ctftri.c +82 -0
  2098. data/ext/ctfttp.c +75 -0
  2099. data/ext/ctfttr.c +76 -0
  2100. data/ext/ctgevc.c +152 -0
  2101. data/ext/ctgex2.c +167 -0
  2102. data/ext/ctgexc.c +168 -0
  2103. data/ext/ctgsen.c +240 -0
  2104. data/ext/ctgsja.c +223 -0
  2105. data/ext/ctgsna.c +160 -0
  2106. data/ext/ctgsy2.c +172 -0
  2107. data/ext/ctgsyl.c +186 -0
  2108. data/ext/ctpcon.c +78 -0
  2109. data/ext/ctprfs.c +119 -0
  2110. data/ext/ctptri.c +78 -0
  2111. data/ext/ctptrs.c +97 -0
  2112. data/ext/ctpttf.c +75 -0
  2113. data/ext/ctpttr.c +72 -0
  2114. data/ext/ctrcon.c +78 -0
  2115. data/ext/ctrevc.c +150 -0
  2116. data/ext/ctrexc.c +107 -0
  2117. data/ext/ctrrfs.c +119 -0
  2118. data/ext/ctrsen.c +150 -0
  2119. data/ext/ctrsna.c +133 -0
  2120. data/ext/ctrsyl.c +112 -0
  2121. data/ext/ctrti2.c +77 -0
  2122. data/ext/ctrtri.c +77 -0
  2123. data/ext/ctrtrs.c +95 -0
  2124. data/ext/ctrttf.c +73 -0
  2125. data/ext/ctrttp.c +69 -0
  2126. data/ext/ctzrqf.c +79 -0
  2127. data/ext/ctzrzf.c +97 -0
  2128. data/ext/cunbdb.c +228 -0
  2129. data/ext/cuncsd.c +200 -0
  2130. data/ext/cung2l.c +88 -0
  2131. data/ext/cung2r.c +88 -0
  2132. data/ext/cungbr.c +111 -0
  2133. data/ext/cunghr.c +107 -0
  2134. data/ext/cungl2.c +86 -0
  2135. data/ext/cunglq.c +103 -0
  2136. data/ext/cungql.c +103 -0
  2137. data/ext/cungqr.c +103 -0
  2138. data/ext/cungr2.c +86 -0
  2139. data/ext/cungrq.c +103 -0
  2140. data/ext/cungtr.c +103 -0
  2141. data/ext/cunm2l.c +110 -0
  2142. data/ext/cunm2r.c +110 -0
  2143. data/ext/cunmbr.c +135 -0
  2144. data/ext/cunmhr.c +129 -0
  2145. data/ext/cunml2.c +106 -0
  2146. data/ext/cunmlq.c +121 -0
  2147. data/ext/cunmql.c +125 -0
  2148. data/ext/cunmqr.c +125 -0
  2149. data/ext/cunmr2.c +106 -0
  2150. data/ext/cunmr3.c +110 -0
  2151. data/ext/cunmrq.c +121 -0
  2152. data/ext/cunmrz.c +125 -0
  2153. data/ext/cunmtr.c +125 -0
  2154. data/ext/cupgtr.c +87 -0
  2155. data/ext/cupmtr.c +112 -0
  2156. data/ext/dbbcsd.c +283 -0
  2157. data/ext/dbdsdc.c +147 -0
  2158. data/ext/dbdsqr.c +178 -0
  2159. data/ext/ddisna.c +71 -0
  2160. data/ext/dgbbrd.c +150 -0
  2161. data/ext/dgbcon.c +94 -0
  2162. data/ext/dgbequ.c +94 -0
  2163. data/ext/dgbequb.c +92 -0
  2164. data/ext/dgbrfs.c +157 -0
  2165. data/ext/dgbrfsx.c +245 -0
  2166. data/ext/dgbsv.c +111 -0
  2167. data/ext/dgbsvx.c +282 -0
  2168. data/ext/dgbsvxx.c +285 -0
  2169. data/ext/dgbtf2.c +89 -0
  2170. data/ext/dgbtrf.c +89 -0
  2171. data/ext/dgbtrs.c +107 -0
  2172. data/ext/dgebak.c +97 -0
  2173. data/ext/dgebal.c +87 -0
  2174. data/ext/dgebd2.c +108 -0
  2175. data/ext/dgebrd.c +123 -0
  2176. data/ext/dgecon.c +74 -0
  2177. data/ext/dgeequ.c +84 -0
  2178. data/ext/dgeequb.c +84 -0
  2179. data/ext/dgees.c +144 -0
  2180. data/ext/dgeesx.c +166 -0
  2181. data/ext/dgeev.c +133 -0
  2182. data/ext/dgeevx.c +177 -0
  2183. data/ext/dgegs.c +167 -0
  2184. data/ext/dgegv.c +167 -0
  2185. data/ext/dgehd2.c +88 -0
  2186. data/ext/dgehrd.c +103 -0
  2187. data/ext/dgejsv.c +155 -0
  2188. data/ext/dgelq2.c +82 -0
  2189. data/ext/dgelqf.c +99 -0
  2190. data/ext/dgels.c +133 -0
  2191. data/ext/dgelsd.c +145 -0
  2192. data/ext/dgelss.c +144 -0
  2193. data/ext/dgelsx.c +132 -0
  2194. data/ext/dgelsy.c +159 -0
  2195. data/ext/dgeql2.c +84 -0
  2196. data/ext/dgeqlf.c +99 -0
  2197. data/ext/dgeqp3.c +122 -0
  2198. data/ext/dgeqpf.c +107 -0
  2199. data/ext/dgeqr2.c +84 -0
  2200. data/ext/dgeqr2p.c +84 -0
  2201. data/ext/dgeqrf.c +99 -0
  2202. data/ext/dgeqrfp.c +99 -0
  2203. data/ext/dgerfs.c +149 -0
  2204. data/ext/dgerfsx.c +215 -0
  2205. data/ext/dgerq2.c +82 -0
  2206. data/ext/dgerqf.c +99 -0
  2207. data/ext/dgesc2.c +104 -0
  2208. data/ext/dgesdd.c +128 -0
  2209. data/ext/dgesv.c +103 -0
  2210. data/ext/dgesvd.c +139 -0
  2211. data/ext/dgesvj.c +152 -0
  2212. data/ext/dgesvx.c +274 -0
  2213. data/ext/dgesvxx.c +277 -0
  2214. data/ext/dgetc2.c +85 -0
  2215. data/ext/dgetf2.c +81 -0
  2216. data/ext/dgetrf.c +81 -0
  2217. data/ext/dgetri.c +99 -0
  2218. data/ext/dgetrs.c +99 -0
  2219. data/ext/dggbak.c +109 -0
  2220. data/ext/dggbal.c +124 -0
  2221. data/ext/dgges.c +194 -0
  2222. data/ext/dggesx.c +227 -0
  2223. data/ext/dggev.c +167 -0
  2224. data/ext/dggevx.c +225 -0
  2225. data/ext/dggglm.c +152 -0
  2226. data/ext/dgghrd.c +163 -0
  2227. data/ext/dgglse.c +167 -0
  2228. data/ext/dggqrf.c +133 -0
  2229. data/ext/dggrqf.c +137 -0
  2230. data/ext/dggsvd.c +177 -0
  2231. data/ext/dggsvp.c +167 -0
  2232. data/ext/dgsvj0.c +178 -0
  2233. data/ext/dgsvj1.c +182 -0
  2234. data/ext/dgtcon.c +120 -0
  2235. data/ext/dgtrfs.c +205 -0
  2236. data/ext/dgtsv.c +138 -0
  2237. data/ext/dgtsvx.c +252 -0
  2238. data/ext/dgttrf.c +128 -0
  2239. data/ext/dgttrs.c +133 -0
  2240. data/ext/dgtts2.c +130 -0
  2241. data/ext/dhgeqz.c +209 -0
  2242. data/ext/dhsein.c +201 -0
  2243. data/ext/dhseqr.c +149 -0
  2244. data/ext/disnan.c +47 -0
  2245. data/ext/dla_gbamv.c +125 -0
  2246. data/ext/dla_gbrcond.c +138 -0
  2247. data/ext/dla_gbrfsx_extended.c +289 -0
  2248. data/ext/dla_gbrpvgrw.c +83 -0
  2249. data/ext/dla_geamv.c +115 -0
  2250. data/ext/dla_gercond.c +130 -0
  2251. data/ext/dla_gerfsx_extended.c +277 -0
  2252. data/ext/dla_lin_berr.c +80 -0
  2253. data/ext/dla_porcond.c +118 -0
  2254. data/ext/dla_porfsx_extended.c +267 -0
  2255. data/ext/dla_porpvgrw.c +91 -0
  2256. data/ext/dla_rpvgrw.c +75 -0
  2257. data/ext/dla_syamv.c +109 -0
  2258. data/ext/dla_syrcond.c +130 -0
  2259. data/ext/dla_syrfsx_extended.c +279 -0
  2260. data/ext/dla_syrpvgrw.c +103 -0
  2261. data/ext/dla_wwaddw.c +98 -0
  2262. data/ext/dlabad.c +50 -0
  2263. data/ext/dlabrd.c +128 -0
  2264. data/ext/dlacn2.c +102 -0
  2265. data/ext/dlacon.c +79 -0
  2266. data/ext/dlacpy.c +73 -0
  2267. data/ext/dladiv.c +62 -0
  2268. data/ext/dlae2.c +58 -0
  2269. data/ext/dlaebz.c +214 -0
  2270. data/ext/dlaed0.c +123 -0
  2271. data/ext/dlaed1.c +129 -0
  2272. data/ext/dlaed2.c +185 -0
  2273. data/ext/dlaed3.c +157 -0
  2274. data/ext/dlaed4.c +86 -0
  2275. data/ext/dlaed5.c +83 -0
  2276. data/ext/dlaed6.c +86 -0
  2277. data/ext/dlaed7.c +244 -0
  2278. data/ext/dlaed8.c +202 -0
  2279. data/ext/dlaed9.c +107 -0
  2280. data/ext/dlaeda.c +156 -0
  2281. data/ext/dlaein.c +139 -0
  2282. data/ext/dlaev2.c +64 -0
  2283. data/ext/dlaexc.c +114 -0
  2284. data/ext/dlag2.c +87 -0
  2285. data/ext/dlag2s.c +72 -0
  2286. data/ext/dlags2.c +86 -0
  2287. data/ext/dlagtf.c +136 -0
  2288. data/ext/dlagtm.c +128 -0
  2289. data/ext/dlagts.c +135 -0
  2290. data/ext/dlagv2.c +128 -0
  2291. data/ext/dlahqr.c +139 -0
  2292. data/ext/dlahr2.c +108 -0
  2293. data/ext/dlahrd.c +108 -0
  2294. data/ext/dlaic1.c +85 -0
  2295. data/ext/dlaln2.c +116 -0
  2296. data/ext/dlals0.c +197 -0
  2297. data/ext/dlalsa.c +266 -0
  2298. data/ext/dlalsd.c +138 -0
  2299. data/ext/dlamrg.c +76 -0
  2300. data/ext/dlaneg.c +79 -0
  2301. data/ext/dlangb.c +74 -0
  2302. data/ext/dlange.c +70 -0
  2303. data/ext/dlangt.c +83 -0
  2304. data/ext/dlanhs.c +66 -0
  2305. data/ext/dlansb.c +74 -0
  2306. data/ext/dlansf.c +76 -0
  2307. data/ext/dlansp.c +72 -0
  2308. data/ext/dlanst.c +71 -0
  2309. data/ext/dlansy.c +70 -0
  2310. data/ext/dlantb.c +78 -0
  2311. data/ext/dlantp.c +76 -0
  2312. data/ext/dlantr.c +78 -0
  2313. data/ext/dlanv2.c +78 -0
  2314. data/ext/dlapll.c +101 -0
  2315. data/ext/dlapmr.c +93 -0
  2316. data/ext/dlapmt.c +97 -0
  2317. data/ext/dlapy2.c +51 -0
  2318. data/ext/dlapy3.c +55 -0
  2319. data/ext/dlaqgb.c +113 -0
  2320. data/ext/dlaqge.c +105 -0
  2321. data/ext/dlaqp2.c +154 -0
  2322. data/ext/dlaqps.c +204 -0
  2323. data/ext/dlaqr0.c +149 -0
  2324. data/ext/dlaqr1.c +78 -0
  2325. data/ext/dlaqr2.c +178 -0
  2326. data/ext/dlaqr3.c +178 -0
  2327. data/ext/dlaqr4.c +149 -0
  2328. data/ext/dlaqr5.c +196 -0
  2329. data/ext/dlaqsb.c +97 -0
  2330. data/ext/dlaqsp.c +90 -0
  2331. data/ext/dlaqsy.c +93 -0
  2332. data/ext/dlaqtr.c +110 -0
  2333. data/ext/dlar1v.c +169 -0
  2334. data/ext/dlar2v.c +145 -0
  2335. data/ext/dlarf.c +97 -0
  2336. data/ext/dlarfb.c +119 -0
  2337. data/ext/dlarfg.c +79 -0
  2338. data/ext/dlarfgp.c +79 -0
  2339. data/ext/dlarft.c +101 -0
  2340. data/ext/dlarfx.c +89 -0
  2341. data/ext/dlargv.c +110 -0
  2342. data/ext/dlarnv.c +79 -0
  2343. data/ext/dlarra.c +120 -0
  2344. data/ext/dlarrb.c +174 -0
  2345. data/ext/dlarrc.c +92 -0
  2346. data/ext/dlarrd.c +186 -0
  2347. data/ext/dlarre.c +217 -0
  2348. data/ext/dlarrf.c +172 -0
  2349. data/ext/dlarrj.c +143 -0
  2350. data/ext/dlarrk.c +93 -0
  2351. data/ext/dlarrr.c +78 -0
  2352. data/ext/dlarrv.c +267 -0
  2353. data/ext/dlarscl2.c +78 -0
  2354. data/ext/dlartg.c +57 -0
  2355. data/ext/dlartgp.c +57 -0
  2356. data/ext/dlartgs.c +58 -0
  2357. data/ext/dlartv.c +126 -0
  2358. data/ext/dlaruv.c +75 -0
  2359. data/ext/dlarz.c +101 -0
  2360. data/ext/dlarzb.c +123 -0
  2361. data/ext/dlarzt.c +101 -0
  2362. data/ext/dlas2.c +58 -0
  2363. data/ext/dlascl.c +93 -0
  2364. data/ext/dlascl2.c +78 -0
  2365. data/ext/dlasd0.c +116 -0
  2366. data/ext/dlasd1.c +158 -0
  2367. data/ext/dlasd2.c +224 -0
  2368. data/ext/dlasd3.c +198 -0
  2369. data/ext/dlasd4.c +89 -0
  2370. data/ext/dlasd5.c +86 -0
  2371. data/ext/dlasd6.c +232 -0
  2372. data/ext/dlasd7.c +221 -0
  2373. data/ext/dlasd8.c +169 -0
  2374. data/ext/dlasda.c +217 -0
  2375. data/ext/dlasdq.c +182 -0
  2376. data/ext/dlasdt.c +78 -0
  2377. data/ext/dlaset.c +82 -0
  2378. data/ext/dlasq1.c +92 -0
  2379. data/ext/dlasq2.c +70 -0
  2380. data/ext/dlasq3.c +134 -0
  2381. data/ext/dlasq4.c +103 -0
  2382. data/ext/dlasq5.c +90 -0
  2383. data/ext/dlasq6.c +82 -0
  2384. data/ext/dlasr.c +106 -0
  2385. data/ext/dlasrt.c +70 -0
  2386. data/ext/dlassq.c +66 -0
  2387. data/ext/dlasv2.c +70 -0
  2388. data/ext/dlaswp.c +90 -0
  2389. data/ext/dlasy2.c +122 -0
  2390. data/ext/dlasyf.c +93 -0
  2391. data/ext/dlat2s.c +72 -0
  2392. data/ext/dlatbs.c +126 -0
  2393. data/ext/dlatdf.c +115 -0
  2394. data/ext/dlatps.c +120 -0
  2395. data/ext/dlatrd.c +101 -0
  2396. data/ext/dlatrs.c +122 -0
  2397. data/ext/dlatrz.c +83 -0
  2398. data/ext/dlatzm.c +127 -0
  2399. data/ext/dlauu2.c +73 -0
  2400. data/ext/dlauum.c +73 -0
  2401. data/ext/dopgtr.c +87 -0
  2402. data/ext/dopmtr.c +112 -0
  2403. data/ext/dorbdb.c +228 -0
  2404. data/ext/dorcsd.c +193 -0
  2405. data/ext/dorg2l.c +88 -0
  2406. data/ext/dorg2r.c +88 -0
  2407. data/ext/dorgbr.c +111 -0
  2408. data/ext/dorghr.c +107 -0
  2409. data/ext/dorgl2.c +86 -0
  2410. data/ext/dorglq.c +103 -0
  2411. data/ext/dorgql.c +103 -0
  2412. data/ext/dorgqr.c +103 -0
  2413. data/ext/dorgr2.c +86 -0
  2414. data/ext/dorgrq.c +103 -0
  2415. data/ext/dorgtr.c +103 -0
  2416. data/ext/dorm2l.c +110 -0
  2417. data/ext/dorm2r.c +110 -0
  2418. data/ext/dormbr.c +135 -0
  2419. data/ext/dormhr.c +129 -0
  2420. data/ext/dorml2.c +106 -0
  2421. data/ext/dormlq.c +121 -0
  2422. data/ext/dormql.c +125 -0
  2423. data/ext/dormqr.c +125 -0
  2424. data/ext/dormr2.c +106 -0
  2425. data/ext/dormr3.c +110 -0
  2426. data/ext/dormrq.c +121 -0
  2427. data/ext/dormrz.c +125 -0
  2428. data/ext/dormtr.c +125 -0
  2429. data/ext/dpbcon.c +78 -0
  2430. data/ext/dpbequ.c +79 -0
  2431. data/ext/dpbrfs.c +141 -0
  2432. data/ext/dpbstf.c +77 -0
  2433. data/ext/dpbsv.c +103 -0
  2434. data/ext/dpbsvx.c +197 -0
  2435. data/ext/dpbtf2.c +77 -0
  2436. data/ext/dpbtrf.c +77 -0
  2437. data/ext/dpbtrs.c +91 -0
  2438. data/ext/dpftrf.c +78 -0
  2439. data/ext/dpftri.c +78 -0
  2440. data/ext/dpftrs.c +93 -0
  2441. data/ext/dpocon.c +74 -0
  2442. data/ext/dpoequ.c +71 -0
  2443. data/ext/dpoequb.c +71 -0
  2444. data/ext/dporfs.c +137 -0
  2445. data/ext/dporfsx.c +202 -0
  2446. data/ext/dposv.c +99 -0
  2447. data/ext/dposvx.c +193 -0
  2448. data/ext/dposvxx.c +231 -0
  2449. data/ext/dpotf2.c +73 -0
  2450. data/ext/dpotrf.c +73 -0
  2451. data/ext/dpotri.c +73 -0
  2452. data/ext/dpotrs.c +87 -0
  2453. data/ext/dppcon.c +74 -0
  2454. data/ext/dppequ.c +75 -0
  2455. data/ext/dpprfs.c +135 -0
  2456. data/ext/dppsv.c +100 -0
  2457. data/ext/dppsvx.c +187 -0
  2458. data/ext/dpptrf.c +74 -0
  2459. data/ext/dpptri.c +74 -0
  2460. data/ext/dpptrs.c +89 -0
  2461. data/ext/dpstf2.c +91 -0
  2462. data/ext/dpstrf.c +91 -0
  2463. data/ext/dptcon.c +77 -0
  2464. data/ext/dpteqr.c +122 -0
  2465. data/ext/dptrfs.c +150 -0
  2466. data/ext/dptsv.c +115 -0
  2467. data/ext/dptsvx.c +164 -0
  2468. data/ext/dpttrf.c +89 -0
  2469. data/ext/dpttrs.c +93 -0
  2470. data/ext/dptts2.c +90 -0
  2471. data/ext/drscl.c +75 -0
  2472. data/ext/dsbev.c +103 -0
  2473. data/ext/dsbevd.c +136 -0
  2474. data/ext/dsbevx.c +153 -0
  2475. data/ext/dsbgst.c +113 -0
  2476. data/ext/dsbgv.c +133 -0
  2477. data/ext/dsbgvd.c +166 -0
  2478. data/ext/dsbgvx.c +193 -0
  2479. data/ext/dsbtrd.c +126 -0
  2480. data/ext/dsfrk.c +105 -0
  2481. data/ext/dsgesv.c +111 -0
  2482. data/ext/dspcon.c +84 -0
  2483. data/ext/dspev.c +98 -0
  2484. data/ext/dspevd.c +131 -0
  2485. data/ext/dspevx.c +137 -0
  2486. data/ext/dspgst.c +90 -0
  2487. data/ext/dspgv.c +125 -0
  2488. data/ext/dspgvd.c +158 -0
  2489. data/ext/dspgvx.c +164 -0
  2490. data/ext/dsposv.c +107 -0
  2491. data/ext/dsprfs.c +145 -0
  2492. data/ext/dspsv.c +106 -0
  2493. data/ext/dspsvx.c +159 -0
  2494. data/ext/dsptrd.c +96 -0
  2495. data/ext/dsptrf.c +80 -0
  2496. data/ext/dsptri.c +85 -0
  2497. data/ext/dsptrs.c +97 -0
  2498. data/ext/dstebz.c +131 -0
  2499. data/ext/dstedc.c +155 -0
  2500. data/ext/dstegr.c +184 -0
  2501. data/ext/dstein.c +130 -0
  2502. data/ext/dstemr.c +189 -0
  2503. data/ext/dsteqr.c +122 -0
  2504. data/ext/dsterf.c +89 -0
  2505. data/ext/dstev.c +107 -0
  2506. data/ext/dstevd.c +140 -0
  2507. data/ext/dstevr.c +184 -0
  2508. data/ext/dstevx.c +154 -0
  2509. data/ext/dsycon.c +86 -0
  2510. data/ext/dsyconv.c +80 -0
  2511. data/ext/dsyequb.c +78 -0
  2512. data/ext/dsyev.c +103 -0
  2513. data/ext/dsyevd.c +121 -0
  2514. data/ext/dsyevr.c +168 -0
  2515. data/ext/dsyevx.c +153 -0
  2516. data/ext/dsygs2.c +91 -0
  2517. data/ext/dsygst.c +91 -0
  2518. data/ext/dsygv.c +133 -0
  2519. data/ext/dsygvd.c +151 -0
  2520. data/ext/dsygvx.c +183 -0
  2521. data/ext/dsyrfs.c +149 -0
  2522. data/ext/dsyrfsx.c +214 -0
  2523. data/ext/dsysv.c +125 -0
  2524. data/ext/dsysvx.c +179 -0
  2525. data/ext/dsysvxx.c +254 -0
  2526. data/ext/dsyswapr.c +78 -0
  2527. data/ext/dsytd2.c +97 -0
  2528. data/ext/dsytf2.c +81 -0
  2529. data/ext/dsytrd.c +109 -0
  2530. data/ext/dsytrf.c +93 -0
  2531. data/ext/dsytri.c +88 -0
  2532. data/ext/dsytri2.c +104 -0
  2533. data/ext/dsytri2x.c +92 -0
  2534. data/ext/dsytrs.c +99 -0
  2535. data/ext/dsytrs2.c +102 -0
  2536. data/ext/dtbcon.c +82 -0
  2537. data/ext/dtbrfs.c +123 -0
  2538. data/ext/dtbtrs.c +99 -0
  2539. data/ext/dtfsm.c +106 -0
  2540. data/ext/dtftri.c +82 -0
  2541. data/ext/dtfttp.c +75 -0
  2542. data/ext/dtfttr.c +76 -0
  2543. data/ext/dtgevc.c +149 -0
  2544. data/ext/dtgex2.c +176 -0
  2545. data/ext/dtgexc.c +183 -0
  2546. data/ext/dtgsen.c +248 -0
  2547. data/ext/dtgsja.c +223 -0
  2548. data/ext/dtgsna.c +160 -0
  2549. data/ext/dtgsy2.c +178 -0
  2550. data/ext/dtgsyl.c +186 -0
  2551. data/ext/dtpcon.c +78 -0
  2552. data/ext/dtprfs.c +119 -0
  2553. data/ext/dtptri.c +78 -0
  2554. data/ext/dtptrs.c +97 -0
  2555. data/ext/dtpttf.c +75 -0
  2556. data/ext/dtpttr.c +72 -0
  2557. data/ext/dtrcon.c +78 -0
  2558. data/ext/dtrevc.c +146 -0
  2559. data/ext/dtrexc.c +112 -0
  2560. data/ext/dtrrfs.c +119 -0
  2561. data/ext/dtrsen.c +165 -0
  2562. data/ext/dtrsna.c +133 -0
  2563. data/ext/dtrsyl.c +112 -0
  2564. data/ext/dtrti2.c +77 -0
  2565. data/ext/dtrtri.c +77 -0
  2566. data/ext/dtrtrs.c +95 -0
  2567. data/ext/dtrttf.c +73 -0
  2568. data/ext/dtrttp.c +69 -0
  2569. data/ext/dtzrqf.c +79 -0
  2570. data/ext/dtzrzf.c +97 -0
  2571. data/ext/dzsum1.c +59 -0
  2572. data/ext/extconf.rb +136 -0
  2573. data/ext/f2c_minimal.h +36 -0
  2574. data/ext/icmax1.c +59 -0
  2575. data/ext/ieeeck.c +55 -0
  2576. data/ext/ilaclc.c +61 -0
  2577. data/ext/ilaclr.c +61 -0
  2578. data/ext/iladiag.c +47 -0
  2579. data/ext/iladlc.c +61 -0
  2580. data/ext/iladlr.c +61 -0
  2581. data/ext/ilaenv.c +71 -0
  2582. data/ext/ilaprec.c +47 -0
  2583. data/ext/ilaslc.c +61 -0
  2584. data/ext/ilaslr.c +61 -0
  2585. data/ext/ilatrans.c +47 -0
  2586. data/ext/ilauplo.c +47 -0
  2587. data/ext/ilaver.c +49 -0
  2588. data/ext/ilazlc.c +61 -0
  2589. data/ext/ilazlr.c +61 -0
  2590. data/ext/iparmq.c +71 -0
  2591. data/ext/izmax1.c +59 -0
  2592. data/ext/lsamen.c +55 -0
  2593. data/ext/rb_lapack.c +3279 -0
  2594. data/ext/rb_lapack.h +18 -0
  2595. data/ext/sbbcsd.c +283 -0
  2596. data/ext/sbdsdc.c +153 -0
  2597. data/ext/sbdsqr.c +178 -0
  2598. data/ext/scsum1.c +59 -0
  2599. data/ext/sdisna.c +71 -0
  2600. data/ext/sgbbrd.c +150 -0
  2601. data/ext/sgbcon.c +94 -0
  2602. data/ext/sgbequ.c +94 -0
  2603. data/ext/sgbequb.c +92 -0
  2604. data/ext/sgbrfs.c +157 -0
  2605. data/ext/sgbrfsx.c +245 -0
  2606. data/ext/sgbsv.c +111 -0
  2607. data/ext/sgbsvx.c +282 -0
  2608. data/ext/sgbsvxx.c +285 -0
  2609. data/ext/sgbtf2.c +89 -0
  2610. data/ext/sgbtrf.c +89 -0
  2611. data/ext/sgbtrs.c +107 -0
  2612. data/ext/sgebak.c +97 -0
  2613. data/ext/sgebal.c +87 -0
  2614. data/ext/sgebd2.c +108 -0
  2615. data/ext/sgebrd.c +123 -0
  2616. data/ext/sgecon.c +74 -0
  2617. data/ext/sgeequ.c +84 -0
  2618. data/ext/sgeequb.c +84 -0
  2619. data/ext/sgees.c +144 -0
  2620. data/ext/sgeesx.c +166 -0
  2621. data/ext/sgeev.c +133 -0
  2622. data/ext/sgeevx.c +177 -0
  2623. data/ext/sgegs.c +167 -0
  2624. data/ext/sgegv.c +167 -0
  2625. data/ext/sgehd2.c +88 -0
  2626. data/ext/sgehrd.c +103 -0
  2627. data/ext/sgejsv.c +155 -0
  2628. data/ext/sgelq2.c +82 -0
  2629. data/ext/sgelqf.c +99 -0
  2630. data/ext/sgels.c +133 -0
  2631. data/ext/sgelsd.c +145 -0
  2632. data/ext/sgelss.c +144 -0
  2633. data/ext/sgelsx.c +132 -0
  2634. data/ext/sgelsy.c +159 -0
  2635. data/ext/sgeql2.c +84 -0
  2636. data/ext/sgeqlf.c +99 -0
  2637. data/ext/sgeqp3.c +122 -0
  2638. data/ext/sgeqpf.c +107 -0
  2639. data/ext/sgeqr2.c +84 -0
  2640. data/ext/sgeqr2p.c +84 -0
  2641. data/ext/sgeqrf.c +99 -0
  2642. data/ext/sgeqrfp.c +99 -0
  2643. data/ext/sgerfs.c +149 -0
  2644. data/ext/sgerfsx.c +215 -0
  2645. data/ext/sgerq2.c +82 -0
  2646. data/ext/sgerqf.c +99 -0
  2647. data/ext/sgesc2.c +104 -0
  2648. data/ext/sgesdd.c +128 -0
  2649. data/ext/sgesv.c +103 -0
  2650. data/ext/sgesvd.c +139 -0
  2651. data/ext/sgesvj.c +152 -0
  2652. data/ext/sgesvx.c +274 -0
  2653. data/ext/sgesvxx.c +277 -0
  2654. data/ext/sgetc2.c +85 -0
  2655. data/ext/sgetf2.c +81 -0
  2656. data/ext/sgetrf.c +81 -0
  2657. data/ext/sgetri.c +99 -0
  2658. data/ext/sgetrs.c +99 -0
  2659. data/ext/sggbak.c +109 -0
  2660. data/ext/sggbal.c +124 -0
  2661. data/ext/sgges.c +194 -0
  2662. data/ext/sggesx.c +227 -0
  2663. data/ext/sggev.c +167 -0
  2664. data/ext/sggevx.c +225 -0
  2665. data/ext/sggglm.c +152 -0
  2666. data/ext/sgghrd.c +163 -0
  2667. data/ext/sgglse.c +167 -0
  2668. data/ext/sggqrf.c +133 -0
  2669. data/ext/sggrqf.c +137 -0
  2670. data/ext/sggsvd.c +177 -0
  2671. data/ext/sggsvp.c +167 -0
  2672. data/ext/sgsvj0.c +178 -0
  2673. data/ext/sgsvj1.c +182 -0
  2674. data/ext/sgtcon.c +120 -0
  2675. data/ext/sgtrfs.c +205 -0
  2676. data/ext/sgtsv.c +138 -0
  2677. data/ext/sgtsvx.c +252 -0
  2678. data/ext/sgttrf.c +128 -0
  2679. data/ext/sgttrs.c +133 -0
  2680. data/ext/sgtts2.c +130 -0
  2681. data/ext/shgeqz.c +209 -0
  2682. data/ext/shsein.c +201 -0
  2683. data/ext/shseqr.c +149 -0
  2684. data/ext/sisnan.c +47 -0
  2685. data/ext/sla_gbamv.c +125 -0
  2686. data/ext/sla_gbrcond.c +138 -0
  2687. data/ext/sla_gbrfsx_extended.c +287 -0
  2688. data/ext/sla_gbrpvgrw.c +83 -0
  2689. data/ext/sla_geamv.c +115 -0
  2690. data/ext/sla_gercond.c +130 -0
  2691. data/ext/sla_gerfsx_extended.c +279 -0
  2692. data/ext/sla_lin_berr.c +80 -0
  2693. data/ext/sla_porcond.c +118 -0
  2694. data/ext/sla_porfsx_extended.c +267 -0
  2695. data/ext/sla_porpvgrw.c +91 -0
  2696. data/ext/sla_rpvgrw.c +75 -0
  2697. data/ext/sla_syamv.c +112 -0
  2698. data/ext/sla_syrcond.c +130 -0
  2699. data/ext/sla_syrfsx_extended.c +279 -0
  2700. data/ext/sla_syrpvgrw.c +103 -0
  2701. data/ext/sla_wwaddw.c +98 -0
  2702. data/ext/slabad.c +50 -0
  2703. data/ext/slabrd.c +128 -0
  2704. data/ext/slacn2.c +102 -0
  2705. data/ext/slacon.c +79 -0
  2706. data/ext/slacpy.c +73 -0
  2707. data/ext/sladiv.c +62 -0
  2708. data/ext/slae2.c +58 -0
  2709. data/ext/slaebz.c +214 -0
  2710. data/ext/slaed0.c +123 -0
  2711. data/ext/slaed1.c +129 -0
  2712. data/ext/slaed2.c +185 -0
  2713. data/ext/slaed3.c +157 -0
  2714. data/ext/slaed4.c +86 -0
  2715. data/ext/slaed5.c +83 -0
  2716. data/ext/slaed6.c +86 -0
  2717. data/ext/slaed7.c +244 -0
  2718. data/ext/slaed8.c +202 -0
  2719. data/ext/slaed9.c +107 -0
  2720. data/ext/slaeda.c +156 -0
  2721. data/ext/slaein.c +139 -0
  2722. data/ext/slaev2.c +64 -0
  2723. data/ext/slaexc.c +114 -0
  2724. data/ext/slag2.c +87 -0
  2725. data/ext/slag2d.c +72 -0
  2726. data/ext/slags2.c +86 -0
  2727. data/ext/slagtf.c +136 -0
  2728. data/ext/slagtm.c +128 -0
  2729. data/ext/slagts.c +135 -0
  2730. data/ext/slagv2.c +128 -0
  2731. data/ext/slahqr.c +139 -0
  2732. data/ext/slahr2.c +108 -0
  2733. data/ext/slahrd.c +110 -0
  2734. data/ext/slaic1.c +85 -0
  2735. data/ext/slaln2.c +116 -0
  2736. data/ext/slals0.c +197 -0
  2737. data/ext/slalsa.c +266 -0
  2738. data/ext/slalsd.c +138 -0
  2739. data/ext/slamrg.c +76 -0
  2740. data/ext/slaneg.c +79 -0
  2741. data/ext/slangb.c +74 -0
  2742. data/ext/slange.c +70 -0
  2743. data/ext/slangt.c +83 -0
  2744. data/ext/slanhs.c +66 -0
  2745. data/ext/slansb.c +74 -0
  2746. data/ext/slansf.c +74 -0
  2747. data/ext/slansp.c +72 -0
  2748. data/ext/slanst.c +71 -0
  2749. data/ext/slansy.c +70 -0
  2750. data/ext/slantb.c +78 -0
  2751. data/ext/slantp.c +76 -0
  2752. data/ext/slantr.c +78 -0
  2753. data/ext/slanv2.c +78 -0
  2754. data/ext/slapll.c +101 -0
  2755. data/ext/slapmr.c +93 -0
  2756. data/ext/slapmt.c +97 -0
  2757. data/ext/slapy2.c +51 -0
  2758. data/ext/slapy3.c +55 -0
  2759. data/ext/slaqgb.c +113 -0
  2760. data/ext/slaqge.c +105 -0
  2761. data/ext/slaqp2.c +154 -0
  2762. data/ext/slaqps.c +204 -0
  2763. data/ext/slaqr0.c +149 -0
  2764. data/ext/slaqr1.c +78 -0
  2765. data/ext/slaqr2.c +178 -0
  2766. data/ext/slaqr3.c +178 -0
  2767. data/ext/slaqr4.c +149 -0
  2768. data/ext/slaqr5.c +196 -0
  2769. data/ext/slaqsb.c +97 -0
  2770. data/ext/slaqsp.c +90 -0
  2771. data/ext/slaqsy.c +93 -0
  2772. data/ext/slaqtr.c +110 -0
  2773. data/ext/slar1v.c +169 -0
  2774. data/ext/slar2v.c +145 -0
  2775. data/ext/slarf.c +97 -0
  2776. data/ext/slarfb.c +119 -0
  2777. data/ext/slarfg.c +79 -0
  2778. data/ext/slarfgp.c +79 -0
  2779. data/ext/slarft.c +101 -0
  2780. data/ext/slarfx.c +89 -0
  2781. data/ext/slargv.c +110 -0
  2782. data/ext/slarnv.c +79 -0
  2783. data/ext/slarra.c +120 -0
  2784. data/ext/slarrb.c +174 -0
  2785. data/ext/slarrc.c +92 -0
  2786. data/ext/slarrd.c +186 -0
  2787. data/ext/slarre.c +217 -0
  2788. data/ext/slarrf.c +172 -0
  2789. data/ext/slarrj.c +143 -0
  2790. data/ext/slarrk.c +93 -0
  2791. data/ext/slarrr.c +78 -0
  2792. data/ext/slarrv.c +267 -0
  2793. data/ext/slarscl2.c +78 -0
  2794. data/ext/slartg.c +57 -0
  2795. data/ext/slartgp.c +57 -0
  2796. data/ext/slartgs.c +58 -0
  2797. data/ext/slartv.c +126 -0
  2798. data/ext/slaruv.c +75 -0
  2799. data/ext/slarz.c +101 -0
  2800. data/ext/slarzb.c +123 -0
  2801. data/ext/slarzt.c +101 -0
  2802. data/ext/slas2.c +58 -0
  2803. data/ext/slascl.c +93 -0
  2804. data/ext/slascl2.c +78 -0
  2805. data/ext/slasd0.c +116 -0
  2806. data/ext/slasd1.c +156 -0
  2807. data/ext/slasd2.c +224 -0
  2808. data/ext/slasd3.c +208 -0
  2809. data/ext/slasd4.c +89 -0
  2810. data/ext/slasd5.c +86 -0
  2811. data/ext/slasd6.c +232 -0
  2812. data/ext/slasd7.c +221 -0
  2813. data/ext/slasd8.c +169 -0
  2814. data/ext/slasda.c +217 -0
  2815. data/ext/slasdq.c +182 -0
  2816. data/ext/slasdt.c +78 -0
  2817. data/ext/slaset.c +82 -0
  2818. data/ext/slasq1.c +92 -0
  2819. data/ext/slasq2.c +70 -0
  2820. data/ext/slasq3.c +134 -0
  2821. data/ext/slasq4.c +103 -0
  2822. data/ext/slasq5.c +90 -0
  2823. data/ext/slasq6.c +82 -0
  2824. data/ext/slasr.c +106 -0
  2825. data/ext/slasrt.c +70 -0
  2826. data/ext/slassq.c +66 -0
  2827. data/ext/slasv2.c +70 -0
  2828. data/ext/slaswp.c +90 -0
  2829. data/ext/slasy2.c +122 -0
  2830. data/ext/slasyf.c +93 -0
  2831. data/ext/slatbs.c +126 -0
  2832. data/ext/slatdf.c +115 -0
  2833. data/ext/slatps.c +120 -0
  2834. data/ext/slatrd.c +101 -0
  2835. data/ext/slatrs.c +122 -0
  2836. data/ext/slatrz.c +83 -0
  2837. data/ext/slatzm.c +127 -0
  2838. data/ext/slauu2.c +73 -0
  2839. data/ext/slauum.c +73 -0
  2840. data/ext/sopgtr.c +87 -0
  2841. data/ext/sopmtr.c +112 -0
  2842. data/ext/sorbdb.c +228 -0
  2843. data/ext/sorcsd.c +193 -0
  2844. data/ext/sorg2l.c +88 -0
  2845. data/ext/sorg2r.c +88 -0
  2846. data/ext/sorgbr.c +111 -0
  2847. data/ext/sorghr.c +107 -0
  2848. data/ext/sorgl2.c +86 -0
  2849. data/ext/sorglq.c +103 -0
  2850. data/ext/sorgql.c +103 -0
  2851. data/ext/sorgqr.c +103 -0
  2852. data/ext/sorgr2.c +86 -0
  2853. data/ext/sorgrq.c +103 -0
  2854. data/ext/sorgtr.c +103 -0
  2855. data/ext/sorm2l.c +110 -0
  2856. data/ext/sorm2r.c +110 -0
  2857. data/ext/sormbr.c +135 -0
  2858. data/ext/sormhr.c +129 -0
  2859. data/ext/sorml2.c +106 -0
  2860. data/ext/sormlq.c +121 -0
  2861. data/ext/sormql.c +125 -0
  2862. data/ext/sormqr.c +125 -0
  2863. data/ext/sormr2.c +106 -0
  2864. data/ext/sormr3.c +110 -0
  2865. data/ext/sormrq.c +121 -0
  2866. data/ext/sormrz.c +125 -0
  2867. data/ext/sormtr.c +125 -0
  2868. data/ext/spbcon.c +78 -0
  2869. data/ext/spbequ.c +79 -0
  2870. data/ext/spbrfs.c +141 -0
  2871. data/ext/spbstf.c +77 -0
  2872. data/ext/spbsv.c +103 -0
  2873. data/ext/spbsvx.c +197 -0
  2874. data/ext/spbtf2.c +77 -0
  2875. data/ext/spbtrf.c +77 -0
  2876. data/ext/spbtrs.c +91 -0
  2877. data/ext/spftrf.c +78 -0
  2878. data/ext/spftri.c +78 -0
  2879. data/ext/spftrs.c +93 -0
  2880. data/ext/spocon.c +74 -0
  2881. data/ext/spoequ.c +71 -0
  2882. data/ext/spoequb.c +71 -0
  2883. data/ext/sporfs.c +137 -0
  2884. data/ext/sporfsx.c +202 -0
  2885. data/ext/sposv.c +99 -0
  2886. data/ext/sposvx.c +193 -0
  2887. data/ext/sposvxx.c +231 -0
  2888. data/ext/spotf2.c +73 -0
  2889. data/ext/spotrf.c +73 -0
  2890. data/ext/spotri.c +73 -0
  2891. data/ext/spotrs.c +87 -0
  2892. data/ext/sppcon.c +74 -0
  2893. data/ext/sppequ.c +75 -0
  2894. data/ext/spprfs.c +135 -0
  2895. data/ext/sppsv.c +100 -0
  2896. data/ext/sppsvx.c +187 -0
  2897. data/ext/spptrf.c +74 -0
  2898. data/ext/spptri.c +74 -0
  2899. data/ext/spptrs.c +89 -0
  2900. data/ext/spstf2.c +91 -0
  2901. data/ext/spstrf.c +91 -0
  2902. data/ext/sptcon.c +77 -0
  2903. data/ext/spteqr.c +122 -0
  2904. data/ext/sptrfs.c +150 -0
  2905. data/ext/sptsv.c +115 -0
  2906. data/ext/sptsvx.c +164 -0
  2907. data/ext/spttrf.c +89 -0
  2908. data/ext/spttrs.c +93 -0
  2909. data/ext/sptts2.c +90 -0
  2910. data/ext/srscl.c +75 -0
  2911. data/ext/ssbev.c +103 -0
  2912. data/ext/ssbevd.c +136 -0
  2913. data/ext/ssbevx.c +153 -0
  2914. data/ext/ssbgst.c +113 -0
  2915. data/ext/ssbgv.c +133 -0
  2916. data/ext/ssbgvd.c +166 -0
  2917. data/ext/ssbgvx.c +193 -0
  2918. data/ext/ssbtrd.c +126 -0
  2919. data/ext/ssfrk.c +105 -0
  2920. data/ext/sspcon.c +84 -0
  2921. data/ext/sspev.c +98 -0
  2922. data/ext/sspevd.c +131 -0
  2923. data/ext/sspevx.c +137 -0
  2924. data/ext/sspgst.c +90 -0
  2925. data/ext/sspgv.c +125 -0
  2926. data/ext/sspgvd.c +158 -0
  2927. data/ext/sspgvx.c +164 -0
  2928. data/ext/ssprfs.c +145 -0
  2929. data/ext/sspsv.c +106 -0
  2930. data/ext/sspsvx.c +159 -0
  2931. data/ext/ssptrd.c +96 -0
  2932. data/ext/ssptrf.c +80 -0
  2933. data/ext/ssptri.c +85 -0
  2934. data/ext/ssptrs.c +97 -0
  2935. data/ext/sstebz.c +131 -0
  2936. data/ext/sstedc.c +155 -0
  2937. data/ext/sstegr.c +184 -0
  2938. data/ext/sstein.c +130 -0
  2939. data/ext/sstemr.c +189 -0
  2940. data/ext/ssteqr.c +122 -0
  2941. data/ext/ssterf.c +89 -0
  2942. data/ext/sstev.c +107 -0
  2943. data/ext/sstevd.c +140 -0
  2944. data/ext/sstevr.c +184 -0
  2945. data/ext/sstevx.c +154 -0
  2946. data/ext/ssycon.c +86 -0
  2947. data/ext/ssyconv.c +80 -0
  2948. data/ext/ssyequb.c +78 -0
  2949. data/ext/ssyev.c +103 -0
  2950. data/ext/ssyevd.c +121 -0
  2951. data/ext/ssyevr.c +168 -0
  2952. data/ext/ssyevx.c +153 -0
  2953. data/ext/ssygs2.c +91 -0
  2954. data/ext/ssygst.c +91 -0
  2955. data/ext/ssygv.c +133 -0
  2956. data/ext/ssygvd.c +151 -0
  2957. data/ext/ssygvx.c +187 -0
  2958. data/ext/ssyrfs.c +149 -0
  2959. data/ext/ssyrfsx.c +214 -0
  2960. data/ext/ssysv.c +125 -0
  2961. data/ext/ssysvx.c +179 -0
  2962. data/ext/ssysvxx.c +254 -0
  2963. data/ext/ssyswapr.c +78 -0
  2964. data/ext/ssytd2.c +97 -0
  2965. data/ext/ssytf2.c +81 -0
  2966. data/ext/ssytrd.c +109 -0
  2967. data/ext/ssytrf.c +93 -0
  2968. data/ext/ssytri.c +88 -0
  2969. data/ext/ssytri2.c +123 -0
  2970. data/ext/ssytri2x.c +92 -0
  2971. data/ext/ssytrs.c +99 -0
  2972. data/ext/ssytrs2.c +102 -0
  2973. data/ext/stbcon.c +82 -0
  2974. data/ext/stbrfs.c +123 -0
  2975. data/ext/stbtrs.c +99 -0
  2976. data/ext/stfsm.c +108 -0
  2977. data/ext/stftri.c +82 -0
  2978. data/ext/stfttp.c +75 -0
  2979. data/ext/stfttr.c +76 -0
  2980. data/ext/stgevc.c +149 -0
  2981. data/ext/stgex2.c +180 -0
  2982. data/ext/stgexc.c +187 -0
  2983. data/ext/stgsen.c +248 -0
  2984. data/ext/stgsja.c +223 -0
  2985. data/ext/stgsna.c +160 -0
  2986. data/ext/stgsy2.c +178 -0
  2987. data/ext/stgsyl.c +186 -0
  2988. data/ext/stpcon.c +78 -0
  2989. data/ext/stprfs.c +119 -0
  2990. data/ext/stptri.c +78 -0
  2991. data/ext/stptrs.c +97 -0
  2992. data/ext/stpttf.c +75 -0
  2993. data/ext/stpttr.c +72 -0
  2994. data/ext/strcon.c +78 -0
  2995. data/ext/strevc.c +146 -0
  2996. data/ext/strexc.c +112 -0
  2997. data/ext/strrfs.c +119 -0
  2998. data/ext/strsen.c +165 -0
  2999. data/ext/strsna.c +133 -0
  3000. data/ext/strsyl.c +112 -0
  3001. data/ext/strti2.c +77 -0
  3002. data/ext/strtri.c +77 -0
  3003. data/ext/strtrs.c +95 -0
  3004. data/ext/strttf.c +73 -0
  3005. data/ext/strttp.c +69 -0
  3006. data/ext/stzrqf.c +79 -0
  3007. data/ext/stzrzf.c +97 -0
  3008. data/ext/xerbla.c +48 -0
  3009. data/ext/xerbla_array.c +49 -0
  3010. data/ext/zbbcsd.c +279 -0
  3011. data/ext/zbdsqr.c +178 -0
  3012. data/ext/zcgesv.c +114 -0
  3013. data/ext/zcposv.c +110 -0
  3014. data/ext/zdrscl.c +75 -0
  3015. data/ext/zgbbrd.c +153 -0
  3016. data/ext/zgbcon.c +94 -0
  3017. data/ext/zgbequ.c +94 -0
  3018. data/ext/zgbequb.c +92 -0
  3019. data/ext/zgbrfs.c +157 -0
  3020. data/ext/zgbrfsx.c +245 -0
  3021. data/ext/zgbsv.c +111 -0
  3022. data/ext/zgbsvx.c +282 -0
  3023. data/ext/zgbsvxx.c +285 -0
  3024. data/ext/zgbtf2.c +89 -0
  3025. data/ext/zgbtrf.c +89 -0
  3026. data/ext/zgbtrs.c +107 -0
  3027. data/ext/zgebak.c +97 -0
  3028. data/ext/zgebal.c +87 -0
  3029. data/ext/zgebd2.c +108 -0
  3030. data/ext/zgebrd.c +123 -0
  3031. data/ext/zgecon.c +74 -0
  3032. data/ext/zgeequ.c +84 -0
  3033. data/ext/zgeequb.c +84 -0
  3034. data/ext/zgees.c +138 -0
  3035. data/ext/zgeesx.c +148 -0
  3036. data/ext/zgeev.c +128 -0
  3037. data/ext/zgeevx.c +169 -0
  3038. data/ext/zgegs.c +162 -0
  3039. data/ext/zgegv.c +167 -0
  3040. data/ext/zgehd2.c +88 -0
  3041. data/ext/zgehrd.c +103 -0
  3042. data/ext/zgelq2.c +82 -0
  3043. data/ext/zgelqf.c +99 -0
  3044. data/ext/zgels.c +133 -0
  3045. data/ext/zgelsd.c +150 -0
  3046. data/ext/zgelss.c +147 -0
  3047. data/ext/zgelsx.c +135 -0
  3048. data/ext/zgelsy.c +162 -0
  3049. data/ext/zgeql2.c +84 -0
  3050. data/ext/zgeqlf.c +99 -0
  3051. data/ext/zgeqp3.c +125 -0
  3052. data/ext/zgeqpf.c +110 -0
  3053. data/ext/zgeqr2.c +84 -0
  3054. data/ext/zgeqr2p.c +84 -0
  3055. data/ext/zgeqrf.c +99 -0
  3056. data/ext/zgeqrfp.c +99 -0
  3057. data/ext/zgerfs.c +149 -0
  3058. data/ext/zgerfsx.c +215 -0
  3059. data/ext/zgerq2.c +82 -0
  3060. data/ext/zgerqf.c +99 -0
  3061. data/ext/zgesc2.c +104 -0
  3062. data/ext/zgesdd.c +131 -0
  3063. data/ext/zgesv.c +103 -0
  3064. data/ext/zgesvd.c +142 -0
  3065. data/ext/zgesvx.c +274 -0
  3066. data/ext/zgesvxx.c +277 -0
  3067. data/ext/zgetc2.c +85 -0
  3068. data/ext/zgetf2.c +81 -0
  3069. data/ext/zgetrf.c +81 -0
  3070. data/ext/zgetri.c +99 -0
  3071. data/ext/zgetrs.c +99 -0
  3072. data/ext/zggbak.c +109 -0
  3073. data/ext/zggbal.c +124 -0
  3074. data/ext/zgges.c +188 -0
  3075. data/ext/zggesx.c +226 -0
  3076. data/ext/zggev.c +167 -0
  3077. data/ext/zggevx.c +222 -0
  3078. data/ext/zggglm.c +152 -0
  3079. data/ext/zgghrd.c +163 -0
  3080. data/ext/zgglse.c +167 -0
  3081. data/ext/zggqrf.c +133 -0
  3082. data/ext/zggrqf.c +137 -0
  3083. data/ext/zggsvd.c +180 -0
  3084. data/ext/zggsvp.c +170 -0
  3085. data/ext/zgtcon.c +117 -0
  3086. data/ext/zgtrfs.c +205 -0
  3087. data/ext/zgtsv.c +138 -0
  3088. data/ext/zgtsvx.c +252 -0
  3089. data/ext/zgttrf.c +128 -0
  3090. data/ext/zgttrs.c +133 -0
  3091. data/ext/zgtts2.c +130 -0
  3092. data/ext/zhbev.c +106 -0
  3093. data/ext/zhbevd.c +154 -0
  3094. data/ext/zhbevx.c +156 -0
  3095. data/ext/zhbgst.c +116 -0
  3096. data/ext/zhbgv.c +136 -0
  3097. data/ext/zhbgvd.c +184 -0
  3098. data/ext/zhbgvx.c +185 -0
  3099. data/ext/zhbtrd.c +126 -0
  3100. data/ext/zhecon.c +83 -0
  3101. data/ext/zheequb.c +78 -0
  3102. data/ext/zheev.c +106 -0
  3103. data/ext/zheevd.c +139 -0
  3104. data/ext/zheevr.c +186 -0
  3105. data/ext/zheevx.c +156 -0
  3106. data/ext/zhegs2.c +91 -0
  3107. data/ext/zhegst.c +91 -0
  3108. data/ext/zhegv.c +136 -0
  3109. data/ext/zhegvd.c +169 -0
  3110. data/ext/zhegvx.c +186 -0
  3111. data/ext/zherfs.c +149 -0
  3112. data/ext/zherfsx.c +214 -0
  3113. data/ext/zhesv.c +119 -0
  3114. data/ext/zhesvx.c +179 -0
  3115. data/ext/zhesvxx.c +254 -0
  3116. data/ext/zhetd2.c +97 -0
  3117. data/ext/zhetf2.c +81 -0
  3118. data/ext/zhetrd.c +109 -0
  3119. data/ext/zhetrf.c +93 -0
  3120. data/ext/zhetri.c +88 -0
  3121. data/ext/zhetrs.c +99 -0
  3122. data/ext/zhetrs2.c +102 -0
  3123. data/ext/zhfrk.c +105 -0
  3124. data/ext/zhgeqz.c +204 -0
  3125. data/ext/zhpcon.c +81 -0
  3126. data/ext/zhpev.c +101 -0
  3127. data/ext/zhpevd.c +149 -0
  3128. data/ext/zhpevx.c +140 -0
  3129. data/ext/zhpgst.c +90 -0
  3130. data/ext/zhpgv.c +128 -0
  3131. data/ext/zhpgvd.c +166 -0
  3132. data/ext/zhpgvx.c +166 -0
  3133. data/ext/zhprfs.c +145 -0
  3134. data/ext/zhpsv.c +106 -0
  3135. data/ext/zhpsvx.c +159 -0
  3136. data/ext/zhptrd.c +96 -0
  3137. data/ext/zhptrf.c +80 -0
  3138. data/ext/zhptri.c +85 -0
  3139. data/ext/zhptrs.c +97 -0
  3140. data/ext/zhsein.c +181 -0
  3141. data/ext/zhseqr.c +141 -0
  3142. data/ext/zla_gbamv.c +123 -0
  3143. data/ext/zla_gbrcond_c.c +138 -0
  3144. data/ext/zla_gbrcond_x.c +134 -0
  3145. data/ext/zla_gbrfsx_extended.c +291 -0
  3146. data/ext/zla_gbrpvgrw.c +83 -0
  3147. data/ext/zla_geamv.c +115 -0
  3148. data/ext/zla_gercond_c.c +130 -0
  3149. data/ext/zla_gercond_x.c +126 -0
  3150. data/ext/zla_gerfsx_extended.c +277 -0
  3151. data/ext/zla_heamv.c +112 -0
  3152. data/ext/zla_hercond_c.c +130 -0
  3153. data/ext/zla_hercond_x.c +126 -0
  3154. data/ext/zla_herfsx_extended.c +279 -0
  3155. data/ext/zla_herpvgrw.c +103 -0
  3156. data/ext/zla_lin_berr.c +80 -0
  3157. data/ext/zla_porcond_c.c +118 -0
  3158. data/ext/zla_porcond_x.c +114 -0
  3159. data/ext/zla_porfsx_extended.c +267 -0
  3160. data/ext/zla_porpvgrw.c +91 -0
  3161. data/ext/zla_rpvgrw.c +75 -0
  3162. data/ext/zla_syamv.c +112 -0
  3163. data/ext/zla_syrcond_c.c +130 -0
  3164. data/ext/zla_syrcond_x.c +126 -0
  3165. data/ext/zla_syrfsx_extended.c +279 -0
  3166. data/ext/zla_syrpvgrw.c +103 -0
  3167. data/ext/zla_wwaddw.c +98 -0
  3168. data/ext/zlabrd.c +128 -0
  3169. data/ext/zlacgv.c +71 -0
  3170. data/ext/zlacn2.c +99 -0
  3171. data/ext/zlacon.c +76 -0
  3172. data/ext/zlacp2.c +73 -0
  3173. data/ext/zlacpy.c +73 -0
  3174. data/ext/zlacrm.c +86 -0
  3175. data/ext/zlacrt.c +104 -0
  3176. data/ext/zladiv.c +53 -0
  3177. data/ext/zlaed0.c +130 -0
  3178. data/ext/zlaed7.c +243 -0
  3179. data/ext/zlaed8.c +194 -0
  3180. data/ext/zlaein.c +109 -0
  3181. data/ext/zlaesy.c +70 -0
  3182. data/ext/zlaev2.c +67 -0
  3183. data/ext/zlag2c.c +72 -0
  3184. data/ext/zlags2.c +88 -0
  3185. data/ext/zlagtm.c +128 -0
  3186. data/ext/zlahef.c +93 -0
  3187. data/ext/zlahqr.c +131 -0
  3188. data/ext/zlahr2.c +108 -0
  3189. data/ext/zlahrd.c +108 -0
  3190. data/ext/zlaic1.c +86 -0
  3191. data/ext/zlals0.c +197 -0
  3192. data/ext/zlalsa.c +266 -0
  3193. data/ext/zlalsd.c +141 -0
  3194. data/ext/zlangb.c +72 -0
  3195. data/ext/zlange.c +70 -0
  3196. data/ext/zlangt.c +83 -0
  3197. data/ext/zlanhb.c +74 -0
  3198. data/ext/zlanhe.c +70 -0
  3199. data/ext/zlanhf.c +76 -0
  3200. data/ext/zlanhp.c +72 -0
  3201. data/ext/zlanhs.c +66 -0
  3202. data/ext/zlanht.c +71 -0
  3203. data/ext/zlansb.c +74 -0
  3204. data/ext/zlansp.c +72 -0
  3205. data/ext/zlansy.c +70 -0
  3206. data/ext/zlantb.c +78 -0
  3207. data/ext/zlantp.c +76 -0
  3208. data/ext/zlantr.c +78 -0
  3209. data/ext/zlapll.c +101 -0
  3210. data/ext/zlapmr.c +93 -0
  3211. data/ext/zlapmt.c +97 -0
  3212. data/ext/zlaqgb.c +113 -0
  3213. data/ext/zlaqge.c +105 -0
  3214. data/ext/zlaqhb.c +93 -0
  3215. data/ext/zlaqhe.c +93 -0
  3216. data/ext/zlaqhp.c +90 -0
  3217. data/ext/zlaqp2.c +154 -0
  3218. data/ext/zlaqps.c +204 -0
  3219. data/ext/zlaqr0.c +149 -0
  3220. data/ext/zlaqr1.c +72 -0
  3221. data/ext/zlaqr2.c +170 -0
  3222. data/ext/zlaqr3.c +170 -0
  3223. data/ext/zlaqr4.c +143 -0
  3224. data/ext/zlaqr5.c +175 -0
  3225. data/ext/zlaqsb.c +97 -0
  3226. data/ext/zlaqsp.c +90 -0
  3227. data/ext/zlaqsy.c +93 -0
  3228. data/ext/zlar1v.c +169 -0
  3229. data/ext/zlar2v.c +145 -0
  3230. data/ext/zlarcm.c +82 -0
  3231. data/ext/zlarf.c +98 -0
  3232. data/ext/zlarfb.c +119 -0
  3233. data/ext/zlarfg.c +80 -0
  3234. data/ext/zlarfgp.c +80 -0
  3235. data/ext/zlarft.c +101 -0
  3236. data/ext/zlarfx.c +90 -0
  3237. data/ext/zlargv.c +110 -0
  3238. data/ext/zlarnv.c +79 -0
  3239. data/ext/zlarrv.c +267 -0
  3240. data/ext/zlarscl2.c +78 -0
  3241. data/ext/zlartg.c +59 -0
  3242. data/ext/zlartv.c +126 -0
  3243. data/ext/zlarz.c +102 -0
  3244. data/ext/zlarzb.c +123 -0
  3245. data/ext/zlarzt.c +101 -0
  3246. data/ext/zlascl.c +93 -0
  3247. data/ext/zlascl2.c +78 -0
  3248. data/ext/zlaset.c +84 -0
  3249. data/ext/zlasr.c +106 -0
  3250. data/ext/zlassq.c +66 -0
  3251. data/ext/zlaswp.c +90 -0
  3252. data/ext/zlasyf.c +93 -0
  3253. data/ext/zlat2c.c +72 -0
  3254. data/ext/zlatbs.c +126 -0
  3255. data/ext/zlatdf.c +115 -0
  3256. data/ext/zlatps.c +120 -0
  3257. data/ext/zlatrd.c +101 -0
  3258. data/ext/zlatrs.c +122 -0
  3259. data/ext/zlatrz.c +83 -0
  3260. data/ext/zlatzm.c +128 -0
  3261. data/ext/zlauu2.c +73 -0
  3262. data/ext/zlauum.c +73 -0
  3263. data/ext/zpbcon.c +78 -0
  3264. data/ext/zpbequ.c +79 -0
  3265. data/ext/zpbrfs.c +141 -0
  3266. data/ext/zpbstf.c +77 -0
  3267. data/ext/zpbsv.c +103 -0
  3268. data/ext/zpbsvx.c +197 -0
  3269. data/ext/zpbtf2.c +77 -0
  3270. data/ext/zpbtrf.c +77 -0
  3271. data/ext/zpbtrs.c +91 -0
  3272. data/ext/zpftrf.c +78 -0
  3273. data/ext/zpftri.c +78 -0
  3274. data/ext/zpftrs.c +93 -0
  3275. data/ext/zpocon.c +74 -0
  3276. data/ext/zpoequ.c +71 -0
  3277. data/ext/zpoequb.c +71 -0
  3278. data/ext/zporfs.c +137 -0
  3279. data/ext/zporfsx.c +202 -0
  3280. data/ext/zposv.c +99 -0
  3281. data/ext/zposvx.c +193 -0
  3282. data/ext/zposvxx.c +231 -0
  3283. data/ext/zpotf2.c +73 -0
  3284. data/ext/zpotrf.c +73 -0
  3285. data/ext/zpotri.c +73 -0
  3286. data/ext/zpotrs.c +87 -0
  3287. data/ext/zppcon.c +74 -0
  3288. data/ext/zppequ.c +75 -0
  3289. data/ext/zpprfs.c +135 -0
  3290. data/ext/zppsv.c +100 -0
  3291. data/ext/zppsvx.c +187 -0
  3292. data/ext/zpptrf.c +74 -0
  3293. data/ext/zpptri.c +74 -0
  3294. data/ext/zpptrs.c +89 -0
  3295. data/ext/zpstf2.c +91 -0
  3296. data/ext/zpstrf.c +91 -0
  3297. data/ext/zptcon.c +77 -0
  3298. data/ext/zpteqr.c +122 -0
  3299. data/ext/zptrfs.c +157 -0
  3300. data/ext/zptsv.c +119 -0
  3301. data/ext/zptsvx.c +167 -0
  3302. data/ext/zpttrf.c +89 -0
  3303. data/ext/zpttrs.c +97 -0
  3304. data/ext/zptts2.c +94 -0
  3305. data/ext/zrot.c +103 -0
  3306. data/ext/zspcon.c +81 -0
  3307. data/ext/zspmv.c +113 -0
  3308. data/ext/zspr.c +92 -0
  3309. data/ext/zsprfs.c +145 -0
  3310. data/ext/zspsv.c +106 -0
  3311. data/ext/zspsvx.c +159 -0
  3312. data/ext/zsptrf.c +80 -0
  3313. data/ext/zsptri.c +85 -0
  3314. data/ext/zsptrs.c +97 -0
  3315. data/ext/zstedc.c +173 -0
  3316. data/ext/zstegr.c +184 -0
  3317. data/ext/zstein.c +130 -0
  3318. data/ext/zstemr.c +189 -0
  3319. data/ext/zsteqr.c +122 -0
  3320. data/ext/zsycon.c +83 -0
  3321. data/ext/zsyconv.c +80 -0
  3322. data/ext/zsyequb.c +78 -0
  3323. data/ext/zsymv.c +111 -0
  3324. data/ext/zsyr.c +91 -0
  3325. data/ext/zsyrfs.c +149 -0
  3326. data/ext/zsyrfsx.c +214 -0
  3327. data/ext/zsysv.c +125 -0
  3328. data/ext/zsysvx.c +179 -0
  3329. data/ext/zsysvxx.c +254 -0
  3330. data/ext/zsyswapr.c +78 -0
  3331. data/ext/zsytf2.c +81 -0
  3332. data/ext/zsytrf.c +93 -0
  3333. data/ext/zsytri.c +88 -0
  3334. data/ext/zsytri2.c +100 -0
  3335. data/ext/zsytri2x.c +92 -0
  3336. data/ext/zsytrs.c +99 -0
  3337. data/ext/zsytrs2.c +102 -0
  3338. data/ext/ztbcon.c +82 -0
  3339. data/ext/ztbrfs.c +123 -0
  3340. data/ext/ztbtrs.c +99 -0
  3341. data/ext/ztfsm.c +107 -0
  3342. data/ext/ztftri.c +82 -0
  3343. data/ext/ztfttp.c +75 -0
  3344. data/ext/ztfttr.c +76 -0
  3345. data/ext/ztgevc.c +152 -0
  3346. data/ext/ztgex2.c +167 -0
  3347. data/ext/ztgexc.c +168 -0
  3348. data/ext/ztgsen.c +240 -0
  3349. data/ext/ztgsja.c +223 -0
  3350. data/ext/ztgsna.c +160 -0
  3351. data/ext/ztgsy2.c +172 -0
  3352. data/ext/ztgsyl.c +186 -0
  3353. data/ext/ztpcon.c +78 -0
  3354. data/ext/ztprfs.c +119 -0
  3355. data/ext/ztptri.c +78 -0
  3356. data/ext/ztptrs.c +97 -0
  3357. data/ext/ztpttf.c +75 -0
  3358. data/ext/ztpttr.c +72 -0
  3359. data/ext/ztrcon.c +78 -0
  3360. data/ext/ztrevc.c +150 -0
  3361. data/ext/ztrexc.c +107 -0
  3362. data/ext/ztrrfs.c +119 -0
  3363. data/ext/ztrsen.c +150 -0
  3364. data/ext/ztrsna.c +133 -0
  3365. data/ext/ztrsyl.c +112 -0
  3366. data/ext/ztrti2.c +77 -0
  3367. data/ext/ztrtri.c +77 -0
  3368. data/ext/ztrtrs.c +95 -0
  3369. data/ext/ztrttf.c +73 -0
  3370. data/ext/ztrttp.c +69 -0
  3371. data/ext/ztzrqf.c +79 -0
  3372. data/ext/ztzrzf.c +97 -0
  3373. data/ext/zunbdb.c +228 -0
  3374. data/ext/zuncsd.c +200 -0
  3375. data/ext/zung2l.c +88 -0
  3376. data/ext/zung2r.c +88 -0
  3377. data/ext/zungbr.c +111 -0
  3378. data/ext/zunghr.c +107 -0
  3379. data/ext/zungl2.c +86 -0
  3380. data/ext/zunglq.c +103 -0
  3381. data/ext/zungql.c +103 -0
  3382. data/ext/zungqr.c +103 -0
  3383. data/ext/zungr2.c +86 -0
  3384. data/ext/zungrq.c +103 -0
  3385. data/ext/zungtr.c +103 -0
  3386. data/ext/zunm2l.c +110 -0
  3387. data/ext/zunm2r.c +110 -0
  3388. data/ext/zunmbr.c +135 -0
  3389. data/ext/zunmhr.c +129 -0
  3390. data/ext/zunml2.c +106 -0
  3391. data/ext/zunmlq.c +121 -0
  3392. data/ext/zunmql.c +125 -0
  3393. data/ext/zunmqr.c +125 -0
  3394. data/ext/zunmr2.c +106 -0
  3395. data/ext/zunmr3.c +110 -0
  3396. data/ext/zunmrq.c +121 -0
  3397. data/ext/zunmrz.c +125 -0
  3398. data/ext/zunmtr.c +125 -0
  3399. data/ext/zupgtr.c +87 -0
  3400. data/ext/zupmtr.c +112 -0
  3401. data/lib/numru/lapack.rb +51 -0
  3402. data/samples/dsyevr.rb +25 -0
  3403. data/tests/eig/ge/test_gesdd.rb +90 -0
  3404. data/tests/eig/ge/test_gesvd.rb +99 -0
  3405. data/tests/eig/gg/test_ggev.rb +124 -0
  3406. data/tests/eig/gg/test_ggsvd.rb +76 -0
  3407. data/tests/eig/sb/test_sbev.rb +39 -0
  3408. data/tests/lapack_test.rb +50 -0
  3409. data/tests/lin/gb/test_gbsv.rb +46 -0
  3410. data/tests/lin/gb/test_gbsvx.rb +56 -0
  3411. data/tests/lin/ge/test_gels.rb +63 -0
  3412. data/tests/lin/ge/test_gelsd.rb +54 -0
  3413. data/tests/lin/ge/test_gelss.rb +73 -0
  3414. data/tests/lin/ge/test_gelsy.rb +73 -0
  3415. data/tests/lin/ge/test_gesv.rb +43 -0
  3416. data/tests/lin/ge/test_gesvx.rb +52 -0
  3417. data/tests/lin/gt/test_gtsv.rb +39 -0
  3418. data/tests/test_all.rb +7 -0
  3419. metadata +3513 -0
data/doc/che.html ADDED
@@ -0,0 +1,3165 @@
1
+ <HTML>
2
+ <HEAD>
3
+ <TITLE>COMPLEX routines for (complex) Hermitian matrix</TITLE>
4
+ </HEAD>
5
+ <BODY>
6
+ <A NAME="top"></A>
7
+ <H1>COMPLEX routines for (complex) Hermitian matrix</H1>
8
+ <UL>
9
+ <LI><A HREF="#checon">checon</A></LI>
10
+ <LI><A HREF="#cheequb">cheequb</A></LI>
11
+ <LI><A HREF="#cheev">cheev</A></LI>
12
+ <LI><A HREF="#cheevd">cheevd</A></LI>
13
+ <LI><A HREF="#cheevr">cheevr</A></LI>
14
+ <LI><A HREF="#cheevx">cheevx</A></LI>
15
+ <LI><A HREF="#chegs2">chegs2</A></LI>
16
+ <LI><A HREF="#chegst">chegst</A></LI>
17
+ <LI><A HREF="#chegv">chegv</A></LI>
18
+ <LI><A HREF="#chegvd">chegvd</A></LI>
19
+ <LI><A HREF="#chegvx">chegvx</A></LI>
20
+ <LI><A HREF="#cherfs">cherfs</A></LI>
21
+ <LI><A HREF="#cherfsx">cherfsx</A></LI>
22
+ <LI><A HREF="#chesv">chesv</A></LI>
23
+ <LI><A HREF="#chesvx">chesvx</A></LI>
24
+ <LI><A HREF="#chesvxx">chesvxx</A></LI>
25
+ <LI><A HREF="#chetd2">chetd2</A></LI>
26
+ <LI><A HREF="#chetf2">chetf2</A></LI>
27
+ <LI><A HREF="#chetrd">chetrd</A></LI>
28
+ <LI><A HREF="#chetrf">chetrf</A></LI>
29
+ <LI><A HREF="#chetri">chetri</A></LI>
30
+ <LI><A HREF="#chetrs">chetrs</A></LI>
31
+ <LI><A HREF="#chetrs2">chetrs2</A></LI>
32
+ </UL>
33
+
34
+ <A NAME="checon"></A>
35
+ <H2>checon</H2>
36
+ <PRE>
37
+ USAGE:
38
+ rcond, info = NumRu::Lapack.checon( uplo, a, ipiv, anorm, [:usage => usage, :help => help])
39
+
40
+
41
+ FORTRAN MANUAL
42
+ SUBROUTINE CHECON( UPLO, N, A, LDA, IPIV, ANORM, RCOND, WORK, INFO )
43
+
44
+ * Purpose
45
+ * =======
46
+ *
47
+ * CHECON estimates the reciprocal of the condition number of a complex
48
+ * Hermitian matrix A using the factorization A = U*D*U**H or
49
+ * A = L*D*L**H computed by CHETRF.
50
+ *
51
+ * An estimate is obtained for norm(inv(A)), and the reciprocal of the
52
+ * condition number is computed as RCOND = 1 / (ANORM * norm(inv(A))).
53
+ *
54
+
55
+ * Arguments
56
+ * =========
57
+ *
58
+ * UPLO (input) CHARACTER*1
59
+ * Specifies whether the details of the factorization are stored
60
+ * as an upper or lower triangular matrix.
61
+ * = 'U': Upper triangular, form is A = U*D*U**H;
62
+ * = 'L': Lower triangular, form is A = L*D*L**H.
63
+ *
64
+ * N (input) INTEGER
65
+ * The order of the matrix A. N >= 0.
66
+ *
67
+ * A (input) COMPLEX array, dimension (LDA,N)
68
+ * The block diagonal matrix D and the multipliers used to
69
+ * obtain the factor U or L as computed by CHETRF.
70
+ *
71
+ * LDA (input) INTEGER
72
+ * The leading dimension of the array A. LDA >= max(1,N).
73
+ *
74
+ * IPIV (input) INTEGER array, dimension (N)
75
+ * Details of the interchanges and the block structure of D
76
+ * as determined by CHETRF.
77
+ *
78
+ * ANORM (input) REAL
79
+ * The 1-norm of the original matrix A.
80
+ *
81
+ * RCOND (output) REAL
82
+ * The reciprocal of the condition number of the matrix A,
83
+ * computed as RCOND = 1/(ANORM * AINVNM), where AINVNM is an
84
+ * estimate of the 1-norm of inv(A) computed in this routine.
85
+ *
86
+ * WORK (workspace) COMPLEX array, dimension (2*N)
87
+ *
88
+ * INFO (output) INTEGER
89
+ * = 0: successful exit
90
+ * < 0: if INFO = -i, the i-th argument had an illegal value
91
+ *
92
+
93
+ * =====================================================================
94
+ *
95
+
96
+
97
+ </PRE>
98
+ <A HREF="#top">go to the page top</A>
99
+
100
+ <A NAME="cheequb"></A>
101
+ <H2>cheequb</H2>
102
+ <PRE>
103
+ USAGE:
104
+ s, scond, amax, info = NumRu::Lapack.cheequb( uplo, a, [:usage => usage, :help => help])
105
+
106
+
107
+ FORTRAN MANUAL
108
+ SUBROUTINE CHEEQUB( UPLO, N, A, LDA, S, SCOND, AMAX, WORK, INFO )
109
+
110
+ * Purpose
111
+ * =======
112
+ *
113
+ * CSYEQUB computes row and column scalings intended to equilibrate a
114
+ * symmetric matrix A and reduce its condition number
115
+ * (with respect to the two-norm). S contains the scale factors,
116
+ * S(i) = 1/sqrt(A(i,i)), chosen so that the scaled matrix B with
117
+ * elements B(i,j) = S(i)*A(i,j)*S(j) has ones on the diagonal. This
118
+ * choice of S puts the condition number of B within a factor N of the
119
+ * smallest possible condition number over all possible diagonal
120
+ * scalings.
121
+ *
122
+
123
+ * Arguments
124
+ * =========
125
+ *
126
+ * N (input) INTEGER
127
+ * The order of the matrix A. N >= 0.
128
+ *
129
+ * A (input) COMPLEX array, dimension (LDA,N)
130
+ * The N-by-N symmetric matrix whose scaling
131
+ * factors are to be computed. Only the diagonal elements of A
132
+ * are referenced.
133
+ *
134
+ * LDA (input) INTEGER
135
+ * The leading dimension of the array A. LDA >= max(1,N).
136
+ *
137
+ * S (output) REAL array, dimension (N)
138
+ * If INFO = 0, S contains the scale factors for A.
139
+ *
140
+ * SCOND (output) REAL
141
+ * If INFO = 0, S contains the ratio of the smallest S(i) to
142
+ * the largest S(i). If SCOND >= 0.1 and AMAX is neither too
143
+ * large nor too small, it is not worth scaling by S.
144
+ *
145
+ * AMAX (output) REAL
146
+ * Absolute value of largest matrix element. If AMAX is very
147
+ * close to overflow or very close to underflow, the matrix
148
+ * should be scaled.
149
+ * INFO (output) INTEGER
150
+ * = 0: successful exit
151
+ * < 0: if INFO = -i, the i-th argument had an illegal value
152
+ * > 0: if INFO = i, the i-th diagonal element is nonpositive.
153
+ *
154
+
155
+ * =====================================================================
156
+ *
157
+
158
+
159
+ </PRE>
160
+ <A HREF="#top">go to the page top</A>
161
+
162
+ <A NAME="cheev"></A>
163
+ <H2>cheev</H2>
164
+ <PRE>
165
+ USAGE:
166
+ w, work, info, a = NumRu::Lapack.cheev( jobz, uplo, a, [:lwork => lwork, :usage => usage, :help => help])
167
+
168
+
169
+ FORTRAN MANUAL
170
+ SUBROUTINE CHEEV( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, INFO )
171
+
172
+ * Purpose
173
+ * =======
174
+ *
175
+ * CHEEV computes all eigenvalues and, optionally, eigenvectors of a
176
+ * complex Hermitian matrix A.
177
+ *
178
+
179
+ * Arguments
180
+ * =========
181
+ *
182
+ * JOBZ (input) CHARACTER*1
183
+ * = 'N': Compute eigenvalues only;
184
+ * = 'V': Compute eigenvalues and eigenvectors.
185
+ *
186
+ * UPLO (input) CHARACTER*1
187
+ * = 'U': Upper triangle of A is stored;
188
+ * = 'L': Lower triangle of A is stored.
189
+ *
190
+ * N (input) INTEGER
191
+ * The order of the matrix A. N >= 0.
192
+ *
193
+ * A (input/output) COMPLEX array, dimension (LDA, N)
194
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the
195
+ * leading N-by-N upper triangular part of A contains the
196
+ * upper triangular part of the matrix A. If UPLO = 'L',
197
+ * the leading N-by-N lower triangular part of A contains
198
+ * the lower triangular part of the matrix A.
199
+ * On exit, if JOBZ = 'V', then if INFO = 0, A contains the
200
+ * orthonormal eigenvectors of the matrix A.
201
+ * If JOBZ = 'N', then on exit the lower triangle (if UPLO='L')
202
+ * or the upper triangle (if UPLO='U') of A, including the
203
+ * diagonal, is destroyed.
204
+ *
205
+ * LDA (input) INTEGER
206
+ * The leading dimension of the array A. LDA >= max(1,N).
207
+ *
208
+ * W (output) REAL array, dimension (N)
209
+ * If INFO = 0, the eigenvalues in ascending order.
210
+ *
211
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
212
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
213
+ *
214
+ * LWORK (input) INTEGER
215
+ * The length of the array WORK. LWORK >= max(1,2*N-1).
216
+ * For optimal efficiency, LWORK >= (NB+1)*N,
217
+ * where NB is the blocksize for CHETRD returned by ILAENV.
218
+ *
219
+ * If LWORK = -1, then a workspace query is assumed; the routine
220
+ * only calculates the optimal size of the WORK array, returns
221
+ * this value as the first entry of the WORK array, and no error
222
+ * message related to LWORK is issued by XERBLA.
223
+ *
224
+ * RWORK (workspace) REAL array, dimension (max(1, 3*N-2))
225
+ *
226
+ * INFO (output) INTEGER
227
+ * = 0: successful exit
228
+ * < 0: if INFO = -i, the i-th argument had an illegal value
229
+ * > 0: if INFO = i, the algorithm failed to converge; i
230
+ * off-diagonal elements of an intermediate tridiagonal
231
+ * form did not converge to zero.
232
+ *
233
+
234
+ * =====================================================================
235
+ *
236
+
237
+
238
+ </PRE>
239
+ <A HREF="#top">go to the page top</A>
240
+
241
+ <A NAME="cheevd"></A>
242
+ <H2>cheevd</H2>
243
+ <PRE>
244
+ USAGE:
245
+ w, work, rwork, iwork, info, a = NumRu::Lapack.cheevd( jobz, uplo, a, [:lwork => lwork, :lrwork => lrwork, :liwork => liwork, :usage => usage, :help => help])
246
+
247
+
248
+ FORTRAN MANUAL
249
+ SUBROUTINE CHEEVD( JOBZ, UPLO, N, A, LDA, W, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO )
250
+
251
+ * Purpose
252
+ * =======
253
+ *
254
+ * CHEEVD computes all eigenvalues and, optionally, eigenvectors of a
255
+ * complex Hermitian matrix A. If eigenvectors are desired, it uses a
256
+ * divide and conquer algorithm.
257
+ *
258
+ * The divide and conquer algorithm makes very mild assumptions about
259
+ * floating point arithmetic. It will work on machines with a guard
260
+ * digit in add/subtract, or on those binary machines without guard
261
+ * digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or
262
+ * Cray-2. It could conceivably fail on hexadecimal or decimal machines
263
+ * without guard digits, but we know of none.
264
+ *
265
+
266
+ * Arguments
267
+ * =========
268
+ *
269
+ * JOBZ (input) CHARACTER*1
270
+ * = 'N': Compute eigenvalues only;
271
+ * = 'V': Compute eigenvalues and eigenvectors.
272
+ *
273
+ * UPLO (input) CHARACTER*1
274
+ * = 'U': Upper triangle of A is stored;
275
+ * = 'L': Lower triangle of A is stored.
276
+ *
277
+ * N (input) INTEGER
278
+ * The order of the matrix A. N >= 0.
279
+ *
280
+ * A (input/output) COMPLEX array, dimension (LDA, N)
281
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the
282
+ * leading N-by-N upper triangular part of A contains the
283
+ * upper triangular part of the matrix A. If UPLO = 'L',
284
+ * the leading N-by-N lower triangular part of A contains
285
+ * the lower triangular part of the matrix A.
286
+ * On exit, if JOBZ = 'V', then if INFO = 0, A contains the
287
+ * orthonormal eigenvectors of the matrix A.
288
+ * If JOBZ = 'N', then on exit the lower triangle (if UPLO='L')
289
+ * or the upper triangle (if UPLO='U') of A, including the
290
+ * diagonal, is destroyed.
291
+ *
292
+ * LDA (input) INTEGER
293
+ * The leading dimension of the array A. LDA >= max(1,N).
294
+ *
295
+ * W (output) REAL array, dimension (N)
296
+ * If INFO = 0, the eigenvalues in ascending order.
297
+ *
298
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
299
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
300
+ *
301
+ * LWORK (input) INTEGER
302
+ * The length of the array WORK.
303
+ * If N <= 1, LWORK must be at least 1.
304
+ * If JOBZ = 'N' and N > 1, LWORK must be at least N + 1.
305
+ * If JOBZ = 'V' and N > 1, LWORK must be at least 2*N + N**2.
306
+ *
307
+ * If LWORK = -1, then a workspace query is assumed; the routine
308
+ * only calculates the optimal sizes of the WORK, RWORK and
309
+ * IWORK arrays, returns these values as the first entries of
310
+ * the WORK, RWORK and IWORK arrays, and no error message
311
+ * related to LWORK or LRWORK or LIWORK is issued by XERBLA.
312
+ *
313
+ * RWORK (workspace/output) REAL array,
314
+ * dimension (LRWORK)
315
+ * On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK.
316
+ *
317
+ * LRWORK (input) INTEGER
318
+ * The dimension of the array RWORK.
319
+ * If N <= 1, LRWORK must be at least 1.
320
+ * If JOBZ = 'N' and N > 1, LRWORK must be at least N.
321
+ * If JOBZ = 'V' and N > 1, LRWORK must be at least
322
+ * 1 + 5*N + 2*N**2.
323
+ *
324
+ * If LRWORK = -1, then a workspace query is assumed; the
325
+ * routine only calculates the optimal sizes of the WORK, RWORK
326
+ * and IWORK arrays, returns these values as the first entries
327
+ * of the WORK, RWORK and IWORK arrays, and no error message
328
+ * related to LWORK or LRWORK or LIWORK is issued by XERBLA.
329
+ *
330
+ * IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
331
+ * On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
332
+ *
333
+ * LIWORK (input) INTEGER
334
+ * The dimension of the array IWORK.
335
+ * If N <= 1, LIWORK must be at least 1.
336
+ * If JOBZ = 'N' and N > 1, LIWORK must be at least 1.
337
+ * If JOBZ = 'V' and N > 1, LIWORK must be at least 3 + 5*N.
338
+ *
339
+ * If LIWORK = -1, then a workspace query is assumed; the
340
+ * routine only calculates the optimal sizes of the WORK, RWORK
341
+ * and IWORK arrays, returns these values as the first entries
342
+ * of the WORK, RWORK and IWORK arrays, and no error message
343
+ * related to LWORK or LRWORK or LIWORK is issued by XERBLA.
344
+ *
345
+ * INFO (output) INTEGER
346
+ * = 0: successful exit
347
+ * < 0: if INFO = -i, the i-th argument had an illegal value
348
+ * > 0: if INFO = i and JOBZ = 'N', then the algorithm failed
349
+ * to converge; i off-diagonal elements of an intermediate
350
+ * tridiagonal form did not converge to zero;
351
+ * if INFO = i and JOBZ = 'V', then the algorithm failed
352
+ * to compute an eigenvalue while working on the submatrix
353
+ * lying in rows and columns INFO/(N+1) through
354
+ * mod(INFO,N+1).
355
+ *
356
+
357
+ * Further Details
358
+ * ===============
359
+ *
360
+ * Based on contributions by
361
+ * Jeff Rutter, Computer Science Division, University of California
362
+ * at Berkeley, USA
363
+ *
364
+ * Modified description of INFO. Sven, 16 Feb 05.
365
+ * =====================================================================
366
+ *
367
+
368
+
369
+ </PRE>
370
+ <A HREF="#top">go to the page top</A>
371
+
372
+ <A NAME="cheevr"></A>
373
+ <H2>cheevr</H2>
374
+ <PRE>
375
+ USAGE:
376
+ m, w, z, isuppz, work, rwork, iwork, info, a = NumRu::Lapack.cheevr( jobz, range, uplo, a, vl, vu, il, iu, abstol, [:lwork => lwork, :lrwork => lrwork, :liwork => liwork, :usage => usage, :help => help])
377
+
378
+
379
+ FORTRAN MANUAL
380
+ SUBROUTINE CHEEVR( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, ISUPPZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO )
381
+
382
+ * Purpose
383
+ * =======
384
+ *
385
+ * CHEEVR computes selected eigenvalues and, optionally, eigenvectors
386
+ * of a complex Hermitian matrix A. Eigenvalues and eigenvectors can
387
+ * be selected by specifying either a range of values or a range of
388
+ * indices for the desired eigenvalues.
389
+ *
390
+ * CHEEVR first reduces the matrix A to tridiagonal form T with a call
391
+ * to CHETRD. Then, whenever possible, CHEEVR calls CSTEMR to compute
392
+ * the eigenspectrum using Relatively Robust Representations. CSTEMR
393
+ * computes eigenvalues by the dqds algorithm, while orthogonal
394
+ * eigenvectors are computed from various "good" L D L^T representations
395
+ * (also known as Relatively Robust Representations). Gram-Schmidt
396
+ * orthogonalization is avoided as far as possible. More specifically,
397
+ * the various steps of the algorithm are as follows.
398
+ *
399
+ * For each unreduced block (submatrix) of T,
400
+ * (a) Compute T - sigma I = L D L^T, so that L and D
401
+ * define all the wanted eigenvalues to high relative accuracy.
402
+ * This means that small relative changes in the entries of D and L
403
+ * cause only small relative changes in the eigenvalues and
404
+ * eigenvectors. The standard (unfactored) representation of the
405
+ * tridiagonal matrix T does not have this property in general.
406
+ * (b) Compute the eigenvalues to suitable accuracy.
407
+ * If the eigenvectors are desired, the algorithm attains full
408
+ * accuracy of the computed eigenvalues only right before
409
+ * the corresponding vectors have to be computed, see steps c) and d).
410
+ * (c) For each cluster of close eigenvalues, select a new
411
+ * shift close to the cluster, find a new factorization, and refine
412
+ * the shifted eigenvalues to suitable accuracy.
413
+ * (d) For each eigenvalue with a large enough relative separation compute
414
+ * the corresponding eigenvector by forming a rank revealing twisted
415
+ * factorization. Go back to (c) for any clusters that remain.
416
+ *
417
+ * The desired accuracy of the output can be specified by the input
418
+ * parameter ABSTOL.
419
+ *
420
+ * For more details, see DSTEMR's documentation and:
421
+ * - Inderjit S. Dhillon and Beresford N. Parlett: "Multiple representations
422
+ * to compute orthogonal eigenvectors of symmetric tridiagonal matrices,"
423
+ * Linear Algebra and its Applications, 387(1), pp. 1-28, August 2004.
424
+ * - Inderjit Dhillon and Beresford Parlett: "Orthogonal Eigenvectors and
425
+ * Relative Gaps," SIAM Journal on Matrix Analysis and Applications, Vol. 25,
426
+ * 2004. Also LAPACK Working Note 154.
427
+ * - Inderjit Dhillon: "A new O(n^2) algorithm for the symmetric
428
+ * tridiagonal eigenvalue/eigenvector problem",
429
+ * Computer Science Division Technical Report No. UCB/CSD-97-971,
430
+ * UC Berkeley, May 1997.
431
+ *
432
+ *
433
+ * Note 1 : CHEEVR calls CSTEMR when the full spectrum is requested
434
+ * on machines which conform to the ieee-754 floating point standard.
435
+ * CHEEVR calls SSTEBZ and CSTEIN on non-ieee machines and
436
+ * when partial spectrum requests are made.
437
+ *
438
+ * Normal execution of CSTEMR may create NaNs and infinities and
439
+ * hence may abort due to a floating point exception in environments
440
+ * which do not handle NaNs and infinities in the ieee standard default
441
+ * manner.
442
+ *
443
+
444
+ * Arguments
445
+ * =========
446
+ *
447
+ * JOBZ (input) CHARACTER*1
448
+ * = 'N': Compute eigenvalues only;
449
+ * = 'V': Compute eigenvalues and eigenvectors.
450
+ *
451
+ * RANGE (input) CHARACTER*1
452
+ * = 'A': all eigenvalues will be found.
453
+ * = 'V': all eigenvalues in the half-open interval (VL,VU]
454
+ * will be found.
455
+ * = 'I': the IL-th through IU-th eigenvalues will be found.
456
+ ********** For RANGE = 'V' or 'I' and IU - IL < N - 1, SSTEBZ and
457
+ ********** CSTEIN are called
458
+ *
459
+ * UPLO (input) CHARACTER*1
460
+ * = 'U': Upper triangle of A is stored;
461
+ * = 'L': Lower triangle of A is stored.
462
+ *
463
+ * N (input) INTEGER
464
+ * The order of the matrix A. N >= 0.
465
+ *
466
+ * A (input/output) COMPLEX array, dimension (LDA, N)
467
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the
468
+ * leading N-by-N upper triangular part of A contains the
469
+ * upper triangular part of the matrix A. If UPLO = 'L',
470
+ * the leading N-by-N lower triangular part of A contains
471
+ * the lower triangular part of the matrix A.
472
+ * On exit, the lower triangle (if UPLO='L') or the upper
473
+ * triangle (if UPLO='U') of A, including the diagonal, is
474
+ * destroyed.
475
+ *
476
+ * LDA (input) INTEGER
477
+ * The leading dimension of the array A. LDA >= max(1,N).
478
+ *
479
+ * VL (input) REAL
480
+ * VU (input) REAL
481
+ * If RANGE='V', the lower and upper bounds of the interval to
482
+ * be searched for eigenvalues. VL < VU.
483
+ * Not referenced if RANGE = 'A' or 'I'.
484
+ *
485
+ * IL (input) INTEGER
486
+ * IU (input) INTEGER
487
+ * If RANGE='I', the indices (in ascending order) of the
488
+ * smallest and largest eigenvalues to be returned.
489
+ * 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.
490
+ * Not referenced if RANGE = 'A' or 'V'.
491
+ *
492
+ * ABSTOL (input) REAL
493
+ * The absolute error tolerance for the eigenvalues.
494
+ * An approximate eigenvalue is accepted as converged
495
+ * when it is determined to lie in an interval [a,b]
496
+ * of width less than or equal to
497
+ *
498
+ * ABSTOL + EPS * max( |a|,|b| ) ,
499
+ *
500
+ * where EPS is the machine precision. If ABSTOL is less than
501
+ * or equal to zero, then EPS*|T| will be used in its place,
502
+ * where |T| is the 1-norm of the tridiagonal matrix obtained
503
+ * by reducing A to tridiagonal form.
504
+ *
505
+ * See "Computing Small Singular Values of Bidiagonal Matrices
506
+ * with Guaranteed High Relative Accuracy," by Demmel and
507
+ * Kahan, LAPACK Working Note #3.
508
+ *
509
+ * If high relative accuracy is important, set ABSTOL to
510
+ * SLAMCH( 'Safe minimum' ). Doing so will guarantee that
511
+ * eigenvalues are computed to high relative accuracy when
512
+ * possible in future releases. The current code does not
513
+ * make any guarantees about high relative accuracy, but
514
+ * furutre releases will. See J. Barlow and J. Demmel,
515
+ * "Computing Accurate Eigensystems of Scaled Diagonally
516
+ * Dominant Matrices", LAPACK Working Note #7, for a discussion
517
+ * of which matrices define their eigenvalues to high relative
518
+ * accuracy.
519
+ *
520
+ * M (output) INTEGER
521
+ * The total number of eigenvalues found. 0 <= M <= N.
522
+ * If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
523
+ *
524
+ * W (output) REAL array, dimension (N)
525
+ * The first M elements contain the selected eigenvalues in
526
+ * ascending order.
527
+ *
528
+ * Z (output) COMPLEX array, dimension (LDZ, max(1,M))
529
+ * If JOBZ = 'V', then if INFO = 0, the first M columns of Z
530
+ * contain the orthonormal eigenvectors of the matrix A
531
+ * corresponding to the selected eigenvalues, with the i-th
532
+ * column of Z holding the eigenvector associated with W(i).
533
+ * If JOBZ = 'N', then Z is not referenced.
534
+ * Note: the user must ensure that at least max(1,M) columns are
535
+ * supplied in the array Z; if RANGE = 'V', the exact value of M
536
+ * is not known in advance and an upper bound must be used.
537
+ *
538
+ * LDZ (input) INTEGER
539
+ * The leading dimension of the array Z. LDZ >= 1, and if
540
+ * JOBZ = 'V', LDZ >= max(1,N).
541
+ *
542
+ * ISUPPZ (output) INTEGER array, dimension ( 2*max(1,M) )
543
+ * The support of the eigenvectors in Z, i.e., the indices
544
+ * indicating the nonzero elements in Z. The i-th eigenvector
545
+ * is nonzero only in elements ISUPPZ( 2*i-1 ) through
546
+ * ISUPPZ( 2*i ).
547
+ ********** Implemented only for RANGE = 'A' or 'I' and IU - IL = N - 1
548
+ *
549
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
550
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
551
+ *
552
+ * LWORK (input) INTEGER
553
+ * The length of the array WORK. LWORK >= max(1,2*N).
554
+ * For optimal efficiency, LWORK >= (NB+1)*N,
555
+ * where NB is the max of the blocksize for CHETRD and for
556
+ * CUNMTR as returned by ILAENV.
557
+ *
558
+ * If LWORK = -1, then a workspace query is assumed; the routine
559
+ * only calculates the optimal sizes of the WORK, RWORK and
560
+ * IWORK arrays, returns these values as the first entries of
561
+ * the WORK, RWORK and IWORK arrays, and no error message
562
+ * related to LWORK or LRWORK or LIWORK is issued by XERBLA.
563
+ *
564
+ * RWORK (workspace/output) REAL array, dimension (MAX(1,LRWORK))
565
+ * On exit, if INFO = 0, RWORK(1) returns the optimal
566
+ * (and minimal) LRWORK.
567
+ *
568
+ * LRWORK (input) INTEGER
569
+ * The length of the array RWORK. LRWORK >= max(1,24*N).
570
+ *
571
+ * If LRWORK = -1, then a workspace query is assumed; the
572
+ * routine only calculates the optimal sizes of the WORK, RWORK
573
+ * and IWORK arrays, returns these values as the first entries
574
+ * of the WORK, RWORK and IWORK arrays, and no error message
575
+ * related to LWORK or LRWORK or LIWORK is issued by XERBLA.
576
+ *
577
+ * IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
578
+ * On exit, if INFO = 0, IWORK(1) returns the optimal
579
+ * (and minimal) LIWORK.
580
+ *
581
+ * LIWORK (input) INTEGER
582
+ * The dimension of the array IWORK. LIWORK >= max(1,10*N).
583
+ *
584
+ * If LIWORK = -1, then a workspace query is assumed; the
585
+ * routine only calculates the optimal sizes of the WORK, RWORK
586
+ * and IWORK arrays, returns these values as the first entries
587
+ * of the WORK, RWORK and IWORK arrays, and no error message
588
+ * related to LWORK or LRWORK or LIWORK is issued by XERBLA.
589
+ *
590
+ * INFO (output) INTEGER
591
+ * = 0: successful exit
592
+ * < 0: if INFO = -i, the i-th argument had an illegal value
593
+ * > 0: Internal error
594
+ *
595
+
596
+ * Further Details
597
+ * ===============
598
+ *
599
+ * Based on contributions by
600
+ * Inderjit Dhillon, IBM Almaden, USA
601
+ * Osni Marques, LBNL/NERSC, USA
602
+ * Ken Stanley, Computer Science Division, University of
603
+ * California at Berkeley, USA
604
+ * Jason Riedy, Computer Science Division, University of
605
+ * California at Berkeley, USA
606
+ *
607
+ * =====================================================================
608
+ *
609
+
610
+
611
+ </PRE>
612
+ <A HREF="#top">go to the page top</A>
613
+
614
+ <A NAME="cheevx"></A>
615
+ <H2>cheevx</H2>
616
+ <PRE>
617
+ USAGE:
618
+ m, w, z, work, ifail, info, a = NumRu::Lapack.cheevx( jobz, range, uplo, a, vl, vu, il, iu, abstol, [:lwork => lwork, :usage => usage, :help => help])
619
+
620
+
621
+ FORTRAN MANUAL
622
+ SUBROUTINE CHEEVX( JOBZ, RANGE, UPLO, N, A, LDA, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, LWORK, RWORK, IWORK, IFAIL, INFO )
623
+
624
+ * Purpose
625
+ * =======
626
+ *
627
+ * CHEEVX computes selected eigenvalues and, optionally, eigenvectors
628
+ * of a complex Hermitian matrix A. Eigenvalues and eigenvectors can
629
+ * be selected by specifying either a range of values or a range of
630
+ * indices for the desired eigenvalues.
631
+ *
632
+
633
+ * Arguments
634
+ * =========
635
+ *
636
+ * JOBZ (input) CHARACTER*1
637
+ * = 'N': Compute eigenvalues only;
638
+ * = 'V': Compute eigenvalues and eigenvectors.
639
+ *
640
+ * RANGE (input) CHARACTER*1
641
+ * = 'A': all eigenvalues will be found.
642
+ * = 'V': all eigenvalues in the half-open interval (VL,VU]
643
+ * will be found.
644
+ * = 'I': the IL-th through IU-th eigenvalues will be found.
645
+ *
646
+ * UPLO (input) CHARACTER*1
647
+ * = 'U': Upper triangle of A is stored;
648
+ * = 'L': Lower triangle of A is stored.
649
+ *
650
+ * N (input) INTEGER
651
+ * The order of the matrix A. N >= 0.
652
+ *
653
+ * A (input/output) COMPLEX array, dimension (LDA, N)
654
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the
655
+ * leading N-by-N upper triangular part of A contains the
656
+ * upper triangular part of the matrix A. If UPLO = 'L',
657
+ * the leading N-by-N lower triangular part of A contains
658
+ * the lower triangular part of the matrix A.
659
+ * On exit, the lower triangle (if UPLO='L') or the upper
660
+ * triangle (if UPLO='U') of A, including the diagonal, is
661
+ * destroyed.
662
+ *
663
+ * LDA (input) INTEGER
664
+ * The leading dimension of the array A. LDA >= max(1,N).
665
+ *
666
+ * VL (input) REAL
667
+ * VU (input) REAL
668
+ * If RANGE='V', the lower and upper bounds of the interval to
669
+ * be searched for eigenvalues. VL < VU.
670
+ * Not referenced if RANGE = 'A' or 'I'.
671
+ *
672
+ * IL (input) INTEGER
673
+ * IU (input) INTEGER
674
+ * If RANGE='I', the indices (in ascending order) of the
675
+ * smallest and largest eigenvalues to be returned.
676
+ * 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.
677
+ * Not referenced if RANGE = 'A' or 'V'.
678
+ *
679
+ * ABSTOL (input) REAL
680
+ * The absolute error tolerance for the eigenvalues.
681
+ * An approximate eigenvalue is accepted as converged
682
+ * when it is determined to lie in an interval [a,b]
683
+ * of width less than or equal to
684
+ *
685
+ * ABSTOL + EPS * max( |a|,|b| ) ,
686
+ *
687
+ * where EPS is the machine precision. If ABSTOL is less than
688
+ * or equal to zero, then EPS*|T| will be used in its place,
689
+ * where |T| is the 1-norm of the tridiagonal matrix obtained
690
+ * by reducing A to tridiagonal form.
691
+ *
692
+ * Eigenvalues will be computed most accurately when ABSTOL is
693
+ * set to twice the underflow threshold 2*SLAMCH('S'), not zero.
694
+ * If this routine returns with INFO>0, indicating that some
695
+ * eigenvectors did not converge, try setting ABSTOL to
696
+ * 2*SLAMCH('S').
697
+ *
698
+ * See "Computing Small Singular Values of Bidiagonal Matrices
699
+ * with Guaranteed High Relative Accuracy," by Demmel and
700
+ * Kahan, LAPACK Working Note #3.
701
+ *
702
+ * M (output) INTEGER
703
+ * The total number of eigenvalues found. 0 <= M <= N.
704
+ * If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
705
+ *
706
+ * W (output) REAL array, dimension (N)
707
+ * On normal exit, the first M elements contain the selected
708
+ * eigenvalues in ascending order.
709
+ *
710
+ * Z (output) COMPLEX array, dimension (LDZ, max(1,M))
711
+ * If JOBZ = 'V', then if INFO = 0, the first M columns of Z
712
+ * contain the orthonormal eigenvectors of the matrix A
713
+ * corresponding to the selected eigenvalues, with the i-th
714
+ * column of Z holding the eigenvector associated with W(i).
715
+ * If an eigenvector fails to converge, then that column of Z
716
+ * contains the latest approximation to the eigenvector, and the
717
+ * index of the eigenvector is returned in IFAIL.
718
+ * If JOBZ = 'N', then Z is not referenced.
719
+ * Note: the user must ensure that at least max(1,M) columns are
720
+ * supplied in the array Z; if RANGE = 'V', the exact value of M
721
+ * is not known in advance and an upper bound must be used.
722
+ *
723
+ * LDZ (input) INTEGER
724
+ * The leading dimension of the array Z. LDZ >= 1, and if
725
+ * JOBZ = 'V', LDZ >= max(1,N).
726
+ *
727
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
728
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
729
+ *
730
+ * LWORK (input) INTEGER
731
+ * The length of the array WORK. LWORK >= 1, when N <= 1;
732
+ * otherwise 2*N.
733
+ * For optimal efficiency, LWORK >= (NB+1)*N,
734
+ * where NB is the max of the blocksize for CHETRD and for
735
+ * CUNMTR as returned by ILAENV.
736
+ *
737
+ * If LWORK = -1, then a workspace query is assumed; the routine
738
+ * only calculates the optimal size of the WORK array, returns
739
+ * this value as the first entry of the WORK array, and no error
740
+ * message related to LWORK is issued by XERBLA.
741
+ *
742
+ * RWORK (workspace) REAL array, dimension (7*N)
743
+ *
744
+ * IWORK (workspace) INTEGER array, dimension (5*N)
745
+ *
746
+ * IFAIL (output) INTEGER array, dimension (N)
747
+ * If JOBZ = 'V', then if INFO = 0, the first M elements of
748
+ * IFAIL are zero. If INFO > 0, then IFAIL contains the
749
+ * indices of the eigenvectors that failed to converge.
750
+ * If JOBZ = 'N', then IFAIL is not referenced.
751
+ *
752
+ * INFO (output) INTEGER
753
+ * = 0: successful exit
754
+ * < 0: if INFO = -i, the i-th argument had an illegal value
755
+ * > 0: if INFO = i, then i eigenvectors failed to converge.
756
+ * Their indices are stored in array IFAIL.
757
+ *
758
+
759
+ * =====================================================================
760
+ *
761
+
762
+
763
+ </PRE>
764
+ <A HREF="#top">go to the page top</A>
765
+
766
+ <A NAME="chegs2"></A>
767
+ <H2>chegs2</H2>
768
+ <PRE>
769
+ USAGE:
770
+ info, a = NumRu::Lapack.chegs2( itype, uplo, a, b, [:usage => usage, :help => help])
771
+
772
+
773
+ FORTRAN MANUAL
774
+ SUBROUTINE CHEGS2( ITYPE, UPLO, N, A, LDA, B, LDB, INFO )
775
+
776
+ * Purpose
777
+ * =======
778
+ *
779
+ * CHEGS2 reduces a complex Hermitian-definite generalized
780
+ * eigenproblem to standard form.
781
+ *
782
+ * If ITYPE = 1, the problem is A*x = lambda*B*x,
783
+ * and A is overwritten by inv(U')*A*inv(U) or inv(L)*A*inv(L')
784
+ *
785
+ * If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or
786
+ * B*A*x = lambda*x, and A is overwritten by U*A*U` or L'*A*L.
787
+ *
788
+ * B must have been previously factorized as U'*U or L*L' by CPOTRF.
789
+ *
790
+
791
+ * Arguments
792
+ * =========
793
+ *
794
+ * ITYPE (input) INTEGER
795
+ * = 1: compute inv(U')*A*inv(U) or inv(L)*A*inv(L');
796
+ * = 2 or 3: compute U*A*U' or L'*A*L.
797
+ *
798
+ * UPLO (input) CHARACTER*1
799
+ * Specifies whether the upper or lower triangular part of the
800
+ * Hermitian matrix A is stored, and how B has been factorized.
801
+ * = 'U': Upper triangular
802
+ * = 'L': Lower triangular
803
+ *
804
+ * N (input) INTEGER
805
+ * The order of the matrices A and B. N >= 0.
806
+ *
807
+ * A (input/output) COMPLEX array, dimension (LDA,N)
808
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the leading
809
+ * n by n upper triangular part of A contains the upper
810
+ * triangular part of the matrix A, and the strictly lower
811
+ * triangular part of A is not referenced. If UPLO = 'L', the
812
+ * leading n by n lower triangular part of A contains the lower
813
+ * triangular part of the matrix A, and the strictly upper
814
+ * triangular part of A is not referenced.
815
+ *
816
+ * On exit, if INFO = 0, the transformed matrix, stored in the
817
+ * same format as A.
818
+ *
819
+ * LDA (input) INTEGER
820
+ * The leading dimension of the array A. LDA >= max(1,N).
821
+ *
822
+ * B (input) COMPLEX array, dimension (LDB,N)
823
+ * The triangular factor from the Cholesky factorization of B,
824
+ * as returned by CPOTRF.
825
+ *
826
+ * LDB (input) INTEGER
827
+ * The leading dimension of the array B. LDB >= max(1,N).
828
+ *
829
+ * INFO (output) INTEGER
830
+ * = 0: successful exit.
831
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
832
+ *
833
+
834
+ * =====================================================================
835
+ *
836
+
837
+
838
+ </PRE>
839
+ <A HREF="#top">go to the page top</A>
840
+
841
+ <A NAME="chegst"></A>
842
+ <H2>chegst</H2>
843
+ <PRE>
844
+ USAGE:
845
+ info, a = NumRu::Lapack.chegst( itype, uplo, a, b, [:usage => usage, :help => help])
846
+
847
+
848
+ FORTRAN MANUAL
849
+ SUBROUTINE CHEGST( ITYPE, UPLO, N, A, LDA, B, LDB, INFO )
850
+
851
+ * Purpose
852
+ * =======
853
+ *
854
+ * CHEGST reduces a complex Hermitian-definite generalized
855
+ * eigenproblem to standard form.
856
+ *
857
+ * If ITYPE = 1, the problem is A*x = lambda*B*x,
858
+ * and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H)
859
+ *
860
+ * If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or
861
+ * B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H*A*L.
862
+ *
863
+ * B must have been previously factorized as U**H*U or L*L**H by CPOTRF.
864
+ *
865
+
866
+ * Arguments
867
+ * =========
868
+ *
869
+ * ITYPE (input) INTEGER
870
+ * = 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H);
871
+ * = 2 or 3: compute U*A*U**H or L**H*A*L.
872
+ *
873
+ * UPLO (input) CHARACTER*1
874
+ * = 'U': Upper triangle of A is stored and B is factored as
875
+ * U**H*U;
876
+ * = 'L': Lower triangle of A is stored and B is factored as
877
+ * L*L**H.
878
+ *
879
+ * N (input) INTEGER
880
+ * The order of the matrices A and B. N >= 0.
881
+ *
882
+ * A (input/output) COMPLEX array, dimension (LDA,N)
883
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the leading
884
+ * N-by-N upper triangular part of A contains the upper
885
+ * triangular part of the matrix A, and the strictly lower
886
+ * triangular part of A is not referenced. If UPLO = 'L', the
887
+ * leading N-by-N lower triangular part of A contains the lower
888
+ * triangular part of the matrix A, and the strictly upper
889
+ * triangular part of A is not referenced.
890
+ *
891
+ * On exit, if INFO = 0, the transformed matrix, stored in the
892
+ * same format as A.
893
+ *
894
+ * LDA (input) INTEGER
895
+ * The leading dimension of the array A. LDA >= max(1,N).
896
+ *
897
+ * B (input) COMPLEX array, dimension (LDB,N)
898
+ * The triangular factor from the Cholesky factorization of B,
899
+ * as returned by CPOTRF.
900
+ *
901
+ * LDB (input) INTEGER
902
+ * The leading dimension of the array B. LDB >= max(1,N).
903
+ *
904
+ * INFO (output) INTEGER
905
+ * = 0: successful exit
906
+ * < 0: if INFO = -i, the i-th argument had an illegal value
907
+ *
908
+
909
+ * =====================================================================
910
+ *
911
+
912
+
913
+ </PRE>
914
+ <A HREF="#top">go to the page top</A>
915
+
916
+ <A NAME="chegv"></A>
917
+ <H2>chegv</H2>
918
+ <PRE>
919
+ USAGE:
920
+ w, work, info, a, b = NumRu::Lapack.chegv( itype, jobz, uplo, a, b, [:lwork => lwork, :usage => usage, :help => help])
921
+
922
+
923
+ FORTRAN MANUAL
924
+ SUBROUTINE CHEGV( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK, RWORK, INFO )
925
+
926
+ * Purpose
927
+ * =======
928
+ *
929
+ * CHEGV computes all the eigenvalues, and optionally, the eigenvectors
930
+ * of a complex generalized Hermitian-definite eigenproblem, of the form
931
+ * A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x.
932
+ * Here A and B are assumed to be Hermitian and B is also
933
+ * positive definite.
934
+ *
935
+
936
+ * Arguments
937
+ * =========
938
+ *
939
+ * ITYPE (input) INTEGER
940
+ * Specifies the problem type to be solved:
941
+ * = 1: A*x = (lambda)*B*x
942
+ * = 2: A*B*x = (lambda)*x
943
+ * = 3: B*A*x = (lambda)*x
944
+ *
945
+ * JOBZ (input) CHARACTER*1
946
+ * = 'N': Compute eigenvalues only;
947
+ * = 'V': Compute eigenvalues and eigenvectors.
948
+ *
949
+ * UPLO (input) CHARACTER*1
950
+ * = 'U': Upper triangles of A and B are stored;
951
+ * = 'L': Lower triangles of A and B are stored.
952
+ *
953
+ * N (input) INTEGER
954
+ * The order of the matrices A and B. N >= 0.
955
+ *
956
+ * A (input/output) COMPLEX array, dimension (LDA, N)
957
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the
958
+ * leading N-by-N upper triangular part of A contains the
959
+ * upper triangular part of the matrix A. If UPLO = 'L',
960
+ * the leading N-by-N lower triangular part of A contains
961
+ * the lower triangular part of the matrix A.
962
+ *
963
+ * On exit, if JOBZ = 'V', then if INFO = 0, A contains the
964
+ * matrix Z of eigenvectors. The eigenvectors are normalized
965
+ * as follows:
966
+ * if ITYPE = 1 or 2, Z**H*B*Z = I;
967
+ * if ITYPE = 3, Z**H*inv(B)*Z = I.
968
+ * If JOBZ = 'N', then on exit the upper triangle (if UPLO='U')
969
+ * or the lower triangle (if UPLO='L') of A, including the
970
+ * diagonal, is destroyed.
971
+ *
972
+ * LDA (input) INTEGER
973
+ * The leading dimension of the array A. LDA >= max(1,N).
974
+ *
975
+ * B (input/output) COMPLEX array, dimension (LDB, N)
976
+ * On entry, the Hermitian positive definite matrix B.
977
+ * If UPLO = 'U', the leading N-by-N upper triangular part of B
978
+ * contains the upper triangular part of the matrix B.
979
+ * If UPLO = 'L', the leading N-by-N lower triangular part of B
980
+ * contains the lower triangular part of the matrix B.
981
+ *
982
+ * On exit, if INFO <= N, the part of B containing the matrix is
983
+ * overwritten by the triangular factor U or L from the Cholesky
984
+ * factorization B = U**H*U or B = L*L**H.
985
+ *
986
+ * LDB (input) INTEGER
987
+ * The leading dimension of the array B. LDB >= max(1,N).
988
+ *
989
+ * W (output) REAL array, dimension (N)
990
+ * If INFO = 0, the eigenvalues in ascending order.
991
+ *
992
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
993
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
994
+ *
995
+ * LWORK (input) INTEGER
996
+ * The length of the array WORK. LWORK >= max(1,2*N-1).
997
+ * For optimal efficiency, LWORK >= (NB+1)*N,
998
+ * where NB is the blocksize for CHETRD returned by ILAENV.
999
+ *
1000
+ * If LWORK = -1, then a workspace query is assumed; the routine
1001
+ * only calculates the optimal size of the WORK array, returns
1002
+ * this value as the first entry of the WORK array, and no error
1003
+ * message related to LWORK is issued by XERBLA.
1004
+ *
1005
+ * RWORK (workspace) REAL array, dimension (max(1, 3*N-2))
1006
+ *
1007
+ * INFO (output) INTEGER
1008
+ * = 0: successful exit
1009
+ * < 0: if INFO = -i, the i-th argument had an illegal value
1010
+ * > 0: CPOTRF or CHEEV returned an error code:
1011
+ * <= N: if INFO = i, CHEEV failed to converge;
1012
+ * i off-diagonal elements of an intermediate
1013
+ * tridiagonal form did not converge to zero;
1014
+ * > N: if INFO = N + i, for 1 <= i <= N, then the leading
1015
+ * minor of order i of B is not positive definite.
1016
+ * The factorization of B could not be completed and
1017
+ * no eigenvalues or eigenvectors were computed.
1018
+ *
1019
+
1020
+ * =====================================================================
1021
+ *
1022
+
1023
+
1024
+ </PRE>
1025
+ <A HREF="#top">go to the page top</A>
1026
+
1027
+ <A NAME="chegvd"></A>
1028
+ <H2>chegvd</H2>
1029
+ <PRE>
1030
+ USAGE:
1031
+ w, work, rwork, iwork, info, a, b = NumRu::Lapack.chegvd( itype, jobz, uplo, a, b, [:lwork => lwork, :lrwork => lrwork, :liwork => liwork, :usage => usage, :help => help])
1032
+
1033
+
1034
+ FORTRAN MANUAL
1035
+ SUBROUTINE CHEGVD( ITYPE, JOBZ, UPLO, N, A, LDA, B, LDB, W, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO )
1036
+
1037
+ * Purpose
1038
+ * =======
1039
+ *
1040
+ * CHEGVD computes all the eigenvalues, and optionally, the eigenvectors
1041
+ * of a complex generalized Hermitian-definite eigenproblem, of the form
1042
+ * A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and
1043
+ * B are assumed to be Hermitian and B is also positive definite.
1044
+ * If eigenvectors are desired, it uses a divide and conquer algorithm.
1045
+ *
1046
+ * The divide and conquer algorithm makes very mild assumptions about
1047
+ * floating point arithmetic. It will work on machines with a guard
1048
+ * digit in add/subtract, or on those binary machines without guard
1049
+ * digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or
1050
+ * Cray-2. It could conceivably fail on hexadecimal or decimal machines
1051
+ * without guard digits, but we know of none.
1052
+ *
1053
+
1054
+ * Arguments
1055
+ * =========
1056
+ *
1057
+ * ITYPE (input) INTEGER
1058
+ * Specifies the problem type to be solved:
1059
+ * = 1: A*x = (lambda)*B*x
1060
+ * = 2: A*B*x = (lambda)*x
1061
+ * = 3: B*A*x = (lambda)*x
1062
+ *
1063
+ * JOBZ (input) CHARACTER*1
1064
+ * = 'N': Compute eigenvalues only;
1065
+ * = 'V': Compute eigenvalues and eigenvectors.
1066
+ *
1067
+ * UPLO (input) CHARACTER*1
1068
+ * = 'U': Upper triangles of A and B are stored;
1069
+ * = 'L': Lower triangles of A and B are stored.
1070
+ *
1071
+ * N (input) INTEGER
1072
+ * The order of the matrices A and B. N >= 0.
1073
+ *
1074
+ * A (input/output) COMPLEX array, dimension (LDA, N)
1075
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the
1076
+ * leading N-by-N upper triangular part of A contains the
1077
+ * upper triangular part of the matrix A. If UPLO = 'L',
1078
+ * the leading N-by-N lower triangular part of A contains
1079
+ * the lower triangular part of the matrix A.
1080
+ *
1081
+ * On exit, if JOBZ = 'V', then if INFO = 0, A contains the
1082
+ * matrix Z of eigenvectors. The eigenvectors are normalized
1083
+ * as follows:
1084
+ * if ITYPE = 1 or 2, Z**H*B*Z = I;
1085
+ * if ITYPE = 3, Z**H*inv(B)*Z = I.
1086
+ * If JOBZ = 'N', then on exit the upper triangle (if UPLO='U')
1087
+ * or the lower triangle (if UPLO='L') of A, including the
1088
+ * diagonal, is destroyed.
1089
+ *
1090
+ * LDA (input) INTEGER
1091
+ * The leading dimension of the array A. LDA >= max(1,N).
1092
+ *
1093
+ * B (input/output) COMPLEX array, dimension (LDB, N)
1094
+ * On entry, the Hermitian matrix B. If UPLO = 'U', the
1095
+ * leading N-by-N upper triangular part of B contains the
1096
+ * upper triangular part of the matrix B. If UPLO = 'L',
1097
+ * the leading N-by-N lower triangular part of B contains
1098
+ * the lower triangular part of the matrix B.
1099
+ *
1100
+ * On exit, if INFO <= N, the part of B containing the matrix is
1101
+ * overwritten by the triangular factor U or L from the Cholesky
1102
+ * factorization B = U**H*U or B = L*L**H.
1103
+ *
1104
+ * LDB (input) INTEGER
1105
+ * The leading dimension of the array B. LDB >= max(1,N).
1106
+ *
1107
+ * W (output) REAL array, dimension (N)
1108
+ * If INFO = 0, the eigenvalues in ascending order.
1109
+ *
1110
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
1111
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1112
+ *
1113
+ * LWORK (input) INTEGER
1114
+ * The length of the array WORK.
1115
+ * If N <= 1, LWORK >= 1.
1116
+ * If JOBZ = 'N' and N > 1, LWORK >= N + 1.
1117
+ * If JOBZ = 'V' and N > 1, LWORK >= 2*N + N**2.
1118
+ *
1119
+ * If LWORK = -1, then a workspace query is assumed; the routine
1120
+ * only calculates the optimal sizes of the WORK, RWORK and
1121
+ * IWORK arrays, returns these values as the first entries of
1122
+ * the WORK, RWORK and IWORK arrays, and no error message
1123
+ * related to LWORK or LRWORK or LIWORK is issued by XERBLA.
1124
+ *
1125
+ * RWORK (workspace/output) REAL array, dimension (MAX(1,LRWORK))
1126
+ * On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK.
1127
+ *
1128
+ * LRWORK (input) INTEGER
1129
+ * The dimension of the array RWORK.
1130
+ * If N <= 1, LRWORK >= 1.
1131
+ * If JOBZ = 'N' and N > 1, LRWORK >= N.
1132
+ * If JOBZ = 'V' and N > 1, LRWORK >= 1 + 5*N + 2*N**2.
1133
+ *
1134
+ * If LRWORK = -1, then a workspace query is assumed; the
1135
+ * routine only calculates the optimal sizes of the WORK, RWORK
1136
+ * and IWORK arrays, returns these values as the first entries
1137
+ * of the WORK, RWORK and IWORK arrays, and no error message
1138
+ * related to LWORK or LRWORK or LIWORK is issued by XERBLA.
1139
+ *
1140
+ * IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
1141
+ * On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
1142
+ *
1143
+ * LIWORK (input) INTEGER
1144
+ * The dimension of the array IWORK.
1145
+ * If N <= 1, LIWORK >= 1.
1146
+ * If JOBZ = 'N' and N > 1, LIWORK >= 1.
1147
+ * If JOBZ = 'V' and N > 1, LIWORK >= 3 + 5*N.
1148
+ *
1149
+ * If LIWORK = -1, then a workspace query is assumed; the
1150
+ * routine only calculates the optimal sizes of the WORK, RWORK
1151
+ * and IWORK arrays, returns these values as the first entries
1152
+ * of the WORK, RWORK and IWORK arrays, and no error message
1153
+ * related to LWORK or LRWORK or LIWORK is issued by XERBLA.
1154
+ *
1155
+ * INFO (output) INTEGER
1156
+ * = 0: successful exit
1157
+ * < 0: if INFO = -i, the i-th argument had an illegal value
1158
+ * > 0: CPOTRF or CHEEVD returned an error code:
1159
+ * <= N: if INFO = i and JOBZ = 'N', then the algorithm
1160
+ * failed to converge; i off-diagonal elements of an
1161
+ * intermediate tridiagonal form did not converge to
1162
+ * zero;
1163
+ * if INFO = i and JOBZ = 'V', then the algorithm
1164
+ * failed to compute an eigenvalue while working on
1165
+ * the submatrix lying in rows and columns INFO/(N+1)
1166
+ * through mod(INFO,N+1);
1167
+ * > N: if INFO = N + i, for 1 <= i <= N, then the leading
1168
+ * minor of order i of B is not positive definite.
1169
+ * The factorization of B could not be completed and
1170
+ * no eigenvalues or eigenvectors were computed.
1171
+ *
1172
+
1173
+ * Further Details
1174
+ * ===============
1175
+ *
1176
+ * Based on contributions by
1177
+ * Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
1178
+ *
1179
+ * Modified so that no backsubstitution is performed if CHEEVD fails to
1180
+ * converge (NEIG in old code could be greater than N causing out of
1181
+ * bounds reference to A - reported by Ralf Meyer). Also corrected the
1182
+ * description of INFO and the test on ITYPE. Sven, 16 Feb 05.
1183
+ * =====================================================================
1184
+ *
1185
+
1186
+
1187
+ </PRE>
1188
+ <A HREF="#top">go to the page top</A>
1189
+
1190
+ <A NAME="chegvx"></A>
1191
+ <H2>chegvx</H2>
1192
+ <PRE>
1193
+ USAGE:
1194
+ m, w, z, work, ifail, info, a, b = NumRu::Lapack.chegvx( itype, jobz, range, uplo, a, b, vl, vu, il, iu, abstol, [:lwork => lwork, :usage => usage, :help => help])
1195
+
1196
+
1197
+ FORTRAN MANUAL
1198
+ SUBROUTINE CHEGVX( ITYPE, JOBZ, RANGE, UPLO, N, A, LDA, B, LDB, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, LWORK, RWORK, IWORK, IFAIL, INFO )
1199
+
1200
+ * Purpose
1201
+ * =======
1202
+ *
1203
+ * CHEGVX computes selected eigenvalues, and optionally, eigenvectors
1204
+ * of a complex generalized Hermitian-definite eigenproblem, of the form
1205
+ * A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and
1206
+ * B are assumed to be Hermitian and B is also positive definite.
1207
+ * Eigenvalues and eigenvectors can be selected by specifying either a
1208
+ * range of values or a range of indices for the desired eigenvalues.
1209
+ *
1210
+
1211
+ * Arguments
1212
+ * =========
1213
+ *
1214
+ * ITYPE (input) INTEGER
1215
+ * Specifies the problem type to be solved:
1216
+ * = 1: A*x = (lambda)*B*x
1217
+ * = 2: A*B*x = (lambda)*x
1218
+ * = 3: B*A*x = (lambda)*x
1219
+ *
1220
+ * JOBZ (input) CHARACTER*1
1221
+ * = 'N': Compute eigenvalues only;
1222
+ * = 'V': Compute eigenvalues and eigenvectors.
1223
+ *
1224
+ * RANGE (input) CHARACTER*1
1225
+ * = 'A': all eigenvalues will be found.
1226
+ * = 'V': all eigenvalues in the half-open interval (VL,VU]
1227
+ * will be found.
1228
+ * = 'I': the IL-th through IU-th eigenvalues will be found.
1229
+ **
1230
+ * UPLO (input) CHARACTER*1
1231
+ * = 'U': Upper triangles of A and B are stored;
1232
+ * = 'L': Lower triangles of A and B are stored.
1233
+ *
1234
+ * N (input) INTEGER
1235
+ * The order of the matrices A and B. N >= 0.
1236
+ *
1237
+ * A (input/output) COMPLEX array, dimension (LDA, N)
1238
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the
1239
+ * leading N-by-N upper triangular part of A contains the
1240
+ * upper triangular part of the matrix A. If UPLO = 'L',
1241
+ * the leading N-by-N lower triangular part of A contains
1242
+ * the lower triangular part of the matrix A.
1243
+ *
1244
+ * On exit, the lower triangle (if UPLO='L') or the upper
1245
+ * triangle (if UPLO='U') of A, including the diagonal, is
1246
+ * destroyed.
1247
+ *
1248
+ * LDA (input) INTEGER
1249
+ * The leading dimension of the array A. LDA >= max(1,N).
1250
+ *
1251
+ * B (input/output) COMPLEX array, dimension (LDB, N)
1252
+ * On entry, the Hermitian matrix B. If UPLO = 'U', the
1253
+ * leading N-by-N upper triangular part of B contains the
1254
+ * upper triangular part of the matrix B. If UPLO = 'L',
1255
+ * the leading N-by-N lower triangular part of B contains
1256
+ * the lower triangular part of the matrix B.
1257
+ *
1258
+ * On exit, if INFO <= N, the part of B containing the matrix is
1259
+ * overwritten by the triangular factor U or L from the Cholesky
1260
+ * factorization B = U**H*U or B = L*L**H.
1261
+ *
1262
+ * LDB (input) INTEGER
1263
+ * The leading dimension of the array B. LDB >= max(1,N).
1264
+ *
1265
+ * VL (input) REAL
1266
+ * VU (input) REAL
1267
+ * If RANGE='V', the lower and upper bounds of the interval to
1268
+ * be searched for eigenvalues. VL < VU.
1269
+ * Not referenced if RANGE = 'A' or 'I'.
1270
+ *
1271
+ * IL (input) INTEGER
1272
+ * IU (input) INTEGER
1273
+ * If RANGE='I', the indices (in ascending order) of the
1274
+ * smallest and largest eigenvalues to be returned.
1275
+ * 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.
1276
+ * Not referenced if RANGE = 'A' or 'V'.
1277
+ *
1278
+ * ABSTOL (input) REAL
1279
+ * The absolute error tolerance for the eigenvalues.
1280
+ * An approximate eigenvalue is accepted as converged
1281
+ * when it is determined to lie in an interval [a,b]
1282
+ * of width less than or equal to
1283
+ *
1284
+ * ABSTOL + EPS * max( |a|,|b| ) ,
1285
+ *
1286
+ * where EPS is the machine precision. If ABSTOL is less than
1287
+ * or equal to zero, then EPS*|T| will be used in its place,
1288
+ * where |T| is the 1-norm of the tridiagonal matrix obtained
1289
+ * by reducing A to tridiagonal form.
1290
+ *
1291
+ * Eigenvalues will be computed most accurately when ABSTOL is
1292
+ * set to twice the underflow threshold 2*SLAMCH('S'), not zero.
1293
+ * If this routine returns with INFO>0, indicating that some
1294
+ * eigenvectors did not converge, try setting ABSTOL to
1295
+ * 2*SLAMCH('S').
1296
+ *
1297
+ * M (output) INTEGER
1298
+ * The total number of eigenvalues found. 0 <= M <= N.
1299
+ * If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
1300
+ *
1301
+ * W (output) REAL array, dimension (N)
1302
+ * The first M elements contain the selected
1303
+ * eigenvalues in ascending order.
1304
+ *
1305
+ * Z (output) COMPLEX array, dimension (LDZ, max(1,M))
1306
+ * If JOBZ = 'N', then Z is not referenced.
1307
+ * If JOBZ = 'V', then if INFO = 0, the first M columns of Z
1308
+ * contain the orthonormal eigenvectors of the matrix A
1309
+ * corresponding to the selected eigenvalues, with the i-th
1310
+ * column of Z holding the eigenvector associated with W(i).
1311
+ * The eigenvectors are normalized as follows:
1312
+ * if ITYPE = 1 or 2, Z**T*B*Z = I;
1313
+ * if ITYPE = 3, Z**T*inv(B)*Z = I.
1314
+ *
1315
+ * If an eigenvector fails to converge, then that column of Z
1316
+ * contains the latest approximation to the eigenvector, and the
1317
+ * index of the eigenvector is returned in IFAIL.
1318
+ * Note: the user must ensure that at least max(1,M) columns are
1319
+ * supplied in the array Z; if RANGE = 'V', the exact value of M
1320
+ * is not known in advance and an upper bound must be used.
1321
+ *
1322
+ * LDZ (input) INTEGER
1323
+ * The leading dimension of the array Z. LDZ >= 1, and if
1324
+ * JOBZ = 'V', LDZ >= max(1,N).
1325
+ *
1326
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
1327
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1328
+ *
1329
+ * LWORK (input) INTEGER
1330
+ * The length of the array WORK. LWORK >= max(1,2*N).
1331
+ * For optimal efficiency, LWORK >= (NB+1)*N,
1332
+ * where NB is the blocksize for CHETRD returned by ILAENV.
1333
+ *
1334
+ * If LWORK = -1, then a workspace query is assumed; the routine
1335
+ * only calculates the optimal size of the WORK array, returns
1336
+ * this value as the first entry of the WORK array, and no error
1337
+ * message related to LWORK is issued by XERBLA.
1338
+ *
1339
+ * RWORK (workspace) REAL array, dimension (7*N)
1340
+ *
1341
+ * IWORK (workspace) INTEGER array, dimension (5*N)
1342
+ *
1343
+ * IFAIL (output) INTEGER array, dimension (N)
1344
+ * If JOBZ = 'V', then if INFO = 0, the first M elements of
1345
+ * IFAIL are zero. If INFO > 0, then IFAIL contains the
1346
+ * indices of the eigenvectors that failed to converge.
1347
+ * If JOBZ = 'N', then IFAIL is not referenced.
1348
+ *
1349
+ * INFO (output) INTEGER
1350
+ * = 0: successful exit
1351
+ * < 0: if INFO = -i, the i-th argument had an illegal value
1352
+ * > 0: CPOTRF or CHEEVX returned an error code:
1353
+ * <= N: if INFO = i, CHEEVX failed to converge;
1354
+ * i eigenvectors failed to converge. Their indices
1355
+ * are stored in array IFAIL.
1356
+ * > N: if INFO = N + i, for 1 <= i <= N, then the leading
1357
+ * minor of order i of B is not positive definite.
1358
+ * The factorization of B could not be completed and
1359
+ * no eigenvalues or eigenvectors were computed.
1360
+ *
1361
+
1362
+ * Further Details
1363
+ * ===============
1364
+ *
1365
+ * Based on contributions by
1366
+ * Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
1367
+ *
1368
+ * =====================================================================
1369
+ *
1370
+
1371
+
1372
+ </PRE>
1373
+ <A HREF="#top">go to the page top</A>
1374
+
1375
+ <A NAME="cherfs"></A>
1376
+ <H2>cherfs</H2>
1377
+ <PRE>
1378
+ USAGE:
1379
+ ferr, berr, info, x = NumRu::Lapack.cherfs( uplo, a, af, ipiv, b, x, [:usage => usage, :help => help])
1380
+
1381
+
1382
+ FORTRAN MANUAL
1383
+ SUBROUTINE CHERFS( UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO )
1384
+
1385
+ * Purpose
1386
+ * =======
1387
+ *
1388
+ * CHERFS improves the computed solution to a system of linear
1389
+ * equations when the coefficient matrix is Hermitian indefinite, and
1390
+ * provides error bounds and backward error estimates for the solution.
1391
+ *
1392
+
1393
+ * Arguments
1394
+ * =========
1395
+ *
1396
+ * UPLO (input) CHARACTER*1
1397
+ * = 'U': Upper triangle of A is stored;
1398
+ * = 'L': Lower triangle of A is stored.
1399
+ *
1400
+ * N (input) INTEGER
1401
+ * The order of the matrix A. N >= 0.
1402
+ *
1403
+ * NRHS (input) INTEGER
1404
+ * The number of right hand sides, i.e., the number of columns
1405
+ * of the matrices B and X. NRHS >= 0.
1406
+ *
1407
+ * A (input) COMPLEX array, dimension (LDA,N)
1408
+ * The Hermitian matrix A. If UPLO = 'U', the leading N-by-N
1409
+ * upper triangular part of A contains the upper triangular part
1410
+ * of the matrix A, and the strictly lower triangular part of A
1411
+ * is not referenced. If UPLO = 'L', the leading N-by-N lower
1412
+ * triangular part of A contains the lower triangular part of
1413
+ * the matrix A, and the strictly upper triangular part of A is
1414
+ * not referenced.
1415
+ *
1416
+ * LDA (input) INTEGER
1417
+ * The leading dimension of the array A. LDA >= max(1,N).
1418
+ *
1419
+ * AF (input) COMPLEX array, dimension (LDAF,N)
1420
+ * The factored form of the matrix A. AF contains the block
1421
+ * diagonal matrix D and the multipliers used to obtain the
1422
+ * factor U or L from the factorization A = U*D*U**H or
1423
+ * A = L*D*L**H as computed by CHETRF.
1424
+ *
1425
+ * LDAF (input) INTEGER
1426
+ * The leading dimension of the array AF. LDAF >= max(1,N).
1427
+ *
1428
+ * IPIV (input) INTEGER array, dimension (N)
1429
+ * Details of the interchanges and the block structure of D
1430
+ * as determined by CHETRF.
1431
+ *
1432
+ * B (input) COMPLEX array, dimension (LDB,NRHS)
1433
+ * The right hand side matrix B.
1434
+ *
1435
+ * LDB (input) INTEGER
1436
+ * The leading dimension of the array B. LDB >= max(1,N).
1437
+ *
1438
+ * X (input/output) COMPLEX array, dimension (LDX,NRHS)
1439
+ * On entry, the solution matrix X, as computed by CHETRS.
1440
+ * On exit, the improved solution matrix X.
1441
+ *
1442
+ * LDX (input) INTEGER
1443
+ * The leading dimension of the array X. LDX >= max(1,N).
1444
+ *
1445
+ * FERR (output) REAL array, dimension (NRHS)
1446
+ * The estimated forward error bound for each solution vector
1447
+ * X(j) (the j-th column of the solution matrix X).
1448
+ * If XTRUE is the true solution corresponding to X(j), FERR(j)
1449
+ * is an estimated upper bound for the magnitude of the largest
1450
+ * element in (X(j) - XTRUE) divided by the magnitude of the
1451
+ * largest element in X(j). The estimate is as reliable as
1452
+ * the estimate for RCOND, and is almost always a slight
1453
+ * overestimate of the true error.
1454
+ *
1455
+ * BERR (output) REAL array, dimension (NRHS)
1456
+ * The componentwise relative backward error of each solution
1457
+ * vector X(j) (i.e., the smallest relative change in
1458
+ * any element of A or B that makes X(j) an exact solution).
1459
+ *
1460
+ * WORK (workspace) COMPLEX array, dimension (2*N)
1461
+ *
1462
+ * RWORK (workspace) REAL array, dimension (N)
1463
+ *
1464
+ * INFO (output) INTEGER
1465
+ * = 0: successful exit
1466
+ * < 0: if INFO = -i, the i-th argument had an illegal value
1467
+ *
1468
+ * Internal Parameters
1469
+ * ===================
1470
+ *
1471
+ * ITMAX is the maximum number of steps of iterative refinement.
1472
+ *
1473
+
1474
+ * =====================================================================
1475
+ *
1476
+
1477
+
1478
+ </PRE>
1479
+ <A HREF="#top">go to the page top</A>
1480
+
1481
+ <A NAME="cherfsx"></A>
1482
+ <H2>cherfsx</H2>
1483
+ <PRE>
1484
+ USAGE:
1485
+ rcond, berr, err_bnds_norm, err_bnds_comp, info, s, x, params = NumRu::Lapack.cherfsx( uplo, equed, a, af, ipiv, s, b, x, params, [:usage => usage, :help => help])
1486
+
1487
+
1488
+ FORTRAN MANUAL
1489
+ SUBROUTINE CHERFSX( UPLO, EQUED, N, NRHS, A, LDA, AF, LDAF, IPIV, S, B, LDB, X, LDX, RCOND, BERR, N_ERR_BNDS, ERR_BNDS_NORM, ERR_BNDS_COMP, NPARAMS, PARAMS, WORK, RWORK, INFO )
1490
+
1491
+ * Purpose
1492
+ * =======
1493
+ *
1494
+ * CHERFSX improves the computed solution to a system of linear
1495
+ * equations when the coefficient matrix is Hermitian indefinite, and
1496
+ * provides error bounds and backward error estimates for the
1497
+ * solution. In addition to normwise error bound, the code provides
1498
+ * maximum componentwise error bound if possible. See comments for
1499
+ * ERR_BNDS_NORM and ERR_BNDS_COMP for details of the error bounds.
1500
+ *
1501
+ * The original system of linear equations may have been equilibrated
1502
+ * before calling this routine, as described by arguments EQUED and S
1503
+ * below. In this case, the solution and error bounds returned are
1504
+ * for the original unequilibrated system.
1505
+ *
1506
+
1507
+ * Arguments
1508
+ * =========
1509
+ *
1510
+ * Some optional parameters are bundled in the PARAMS array. These
1511
+ * settings determine how refinement is performed, but often the
1512
+ * defaults are acceptable. If the defaults are acceptable, users
1513
+ * can pass NPARAMS = 0 which prevents the source code from accessing
1514
+ * the PARAMS argument.
1515
+ *
1516
+ * UPLO (input) CHARACTER*1
1517
+ * = 'U': Upper triangle of A is stored;
1518
+ * = 'L': Lower triangle of A is stored.
1519
+ *
1520
+ * EQUED (input) CHARACTER*1
1521
+ * Specifies the form of equilibration that was done to A
1522
+ * before calling this routine. This is needed to compute
1523
+ * the solution and error bounds correctly.
1524
+ * = 'N': No equilibration
1525
+ * = 'Y': Both row and column equilibration, i.e., A has been
1526
+ * replaced by diag(S) * A * diag(S).
1527
+ * The right hand side B has been changed accordingly.
1528
+ *
1529
+ * N (input) INTEGER
1530
+ * The order of the matrix A. N >= 0.
1531
+ *
1532
+ * NRHS (input) INTEGER
1533
+ * The number of right hand sides, i.e., the number of columns
1534
+ * of the matrices B and X. NRHS >= 0.
1535
+ *
1536
+ * A (input) COMPLEX array, dimension (LDA,N)
1537
+ * The symmetric matrix A. If UPLO = 'U', the leading N-by-N
1538
+ * upper triangular part of A contains the upper triangular
1539
+ * part of the matrix A, and the strictly lower triangular
1540
+ * part of A is not referenced. If UPLO = 'L', the leading
1541
+ * N-by-N lower triangular part of A contains the lower
1542
+ * triangular part of the matrix A, and the strictly upper
1543
+ * triangular part of A is not referenced.
1544
+ *
1545
+ * LDA (input) INTEGER
1546
+ * The leading dimension of the array A. LDA >= max(1,N).
1547
+ *
1548
+ * AF (input) COMPLEX array, dimension (LDAF,N)
1549
+ * The factored form of the matrix A. AF contains the block
1550
+ * diagonal matrix D and the multipliers used to obtain the
1551
+ * factor U or L from the factorization A = U*D*U**T or A =
1552
+ * L*D*L**T as computed by SSYTRF.
1553
+ *
1554
+ * LDAF (input) INTEGER
1555
+ * The leading dimension of the array AF. LDAF >= max(1,N).
1556
+ *
1557
+ * IPIV (input) INTEGER array, dimension (N)
1558
+ * Details of the interchanges and the block structure of D
1559
+ * as determined by SSYTRF.
1560
+ *
1561
+ * S (input or output) REAL array, dimension (N)
1562
+ * The scale factors for A. If EQUED = 'Y', A is multiplied on
1563
+ * the left and right by diag(S). S is an input argument if FACT =
1564
+ * 'F'; otherwise, S is an output argument. If FACT = 'F' and EQUED
1565
+ * = 'Y', each element of S must be positive. If S is output, each
1566
+ * element of S is a power of the radix. If S is input, each element
1567
+ * of S should be a power of the radix to ensure a reliable solution
1568
+ * and error estimates. Scaling by powers of the radix does not cause
1569
+ * rounding errors unless the result underflows or overflows.
1570
+ * Rounding errors during scaling lead to refining with a matrix that
1571
+ * is not equivalent to the input matrix, producing error estimates
1572
+ * that may not be reliable.
1573
+ *
1574
+ * B (input) COMPLEX array, dimension (LDB,NRHS)
1575
+ * The right hand side matrix B.
1576
+ *
1577
+ * LDB (input) INTEGER
1578
+ * The leading dimension of the array B. LDB >= max(1,N).
1579
+ *
1580
+ * X (input/output) COMPLEX array, dimension (LDX,NRHS)
1581
+ * On entry, the solution matrix X, as computed by SGETRS.
1582
+ * On exit, the improved solution matrix X.
1583
+ *
1584
+ * LDX (input) INTEGER
1585
+ * The leading dimension of the array X. LDX >= max(1,N).
1586
+ *
1587
+ * RCOND (output) REAL
1588
+ * Reciprocal scaled condition number. This is an estimate of the
1589
+ * reciprocal Skeel condition number of the matrix A after
1590
+ * equilibration (if done). If this is less than the machine
1591
+ * precision (in particular, if it is zero), the matrix is singular
1592
+ * to working precision. Note that the error may still be small even
1593
+ * if this number is very small and the matrix appears ill-
1594
+ * conditioned.
1595
+ *
1596
+ * BERR (output) REAL array, dimension (NRHS)
1597
+ * Componentwise relative backward error. This is the
1598
+ * componentwise relative backward error of each solution vector X(j)
1599
+ * (i.e., the smallest relative change in any element of A or B that
1600
+ * makes X(j) an exact solution).
1601
+ *
1602
+ * N_ERR_BNDS (input) INTEGER
1603
+ * Number of error bounds to return for each right hand side
1604
+ * and each type (normwise or componentwise). See ERR_BNDS_NORM and
1605
+ * ERR_BNDS_COMP below.
1606
+ *
1607
+ * ERR_BNDS_NORM (output) REAL array, dimension (NRHS, N_ERR_BNDS)
1608
+ * For each right-hand side, this array contains information about
1609
+ * various error bounds and condition numbers corresponding to the
1610
+ * normwise relative error, which is defined as follows:
1611
+ *
1612
+ * Normwise relative error in the ith solution vector:
1613
+ * max_j (abs(XTRUE(j,i) - X(j,i)))
1614
+ * ------------------------------
1615
+ * max_j abs(X(j,i))
1616
+ *
1617
+ * The array is indexed by the type of error information as described
1618
+ * below. There currently are up to three pieces of information
1619
+ * returned.
1620
+ *
1621
+ * The first index in ERR_BNDS_NORM(i,:) corresponds to the ith
1622
+ * right-hand side.
1623
+ *
1624
+ * The second index in ERR_BNDS_NORM(:,err) contains the following
1625
+ * three fields:
1626
+ * err = 1 "Trust/don't trust" boolean. Trust the answer if the
1627
+ * reciprocal condition number is less than the threshold
1628
+ * sqrt(n) * slamch('Epsilon').
1629
+ *
1630
+ * err = 2 "Guaranteed" error bound: The estimated forward error,
1631
+ * almost certainly within a factor of 10 of the true error
1632
+ * so long as the next entry is greater than the threshold
1633
+ * sqrt(n) * slamch('Epsilon'). This error bound should only
1634
+ * be trusted if the previous boolean is true.
1635
+ *
1636
+ * err = 3 Reciprocal condition number: Estimated normwise
1637
+ * reciprocal condition number. Compared with the threshold
1638
+ * sqrt(n) * slamch('Epsilon') to determine if the error
1639
+ * estimate is "guaranteed". These reciprocal condition
1640
+ * numbers are 1 / (norm(Z^{-1},inf) * norm(Z,inf)) for some
1641
+ * appropriately scaled matrix Z.
1642
+ * Let Z = S*A, where S scales each row by a power of the
1643
+ * radix so all absolute row sums of Z are approximately 1.
1644
+ *
1645
+ * See Lapack Working Note 165 for further details and extra
1646
+ * cautions.
1647
+ *
1648
+ * ERR_BNDS_COMP (output) REAL array, dimension (NRHS, N_ERR_BNDS)
1649
+ * For each right-hand side, this array contains information about
1650
+ * various error bounds and condition numbers corresponding to the
1651
+ * componentwise relative error, which is defined as follows:
1652
+ *
1653
+ * Componentwise relative error in the ith solution vector:
1654
+ * abs(XTRUE(j,i) - X(j,i))
1655
+ * max_j ----------------------
1656
+ * abs(X(j,i))
1657
+ *
1658
+ * The array is indexed by the right-hand side i (on which the
1659
+ * componentwise relative error depends), and the type of error
1660
+ * information as described below. There currently are up to three
1661
+ * pieces of information returned for each right-hand side. If
1662
+ * componentwise accuracy is not requested (PARAMS(3) = 0.0), then
1663
+ * ERR_BNDS_COMP is not accessed. If N_ERR_BNDS .LT. 3, then at most
1664
+ * the first (:,N_ERR_BNDS) entries are returned.
1665
+ *
1666
+ * The first index in ERR_BNDS_COMP(i,:) corresponds to the ith
1667
+ * right-hand side.
1668
+ *
1669
+ * The second index in ERR_BNDS_COMP(:,err) contains the following
1670
+ * three fields:
1671
+ * err = 1 "Trust/don't trust" boolean. Trust the answer if the
1672
+ * reciprocal condition number is less than the threshold
1673
+ * sqrt(n) * slamch('Epsilon').
1674
+ *
1675
+ * err = 2 "Guaranteed" error bound: The estimated forward error,
1676
+ * almost certainly within a factor of 10 of the true error
1677
+ * so long as the next entry is greater than the threshold
1678
+ * sqrt(n) * slamch('Epsilon'). This error bound should only
1679
+ * be trusted if the previous boolean is true.
1680
+ *
1681
+ * err = 3 Reciprocal condition number: Estimated componentwise
1682
+ * reciprocal condition number. Compared with the threshold
1683
+ * sqrt(n) * slamch('Epsilon') to determine if the error
1684
+ * estimate is "guaranteed". These reciprocal condition
1685
+ * numbers are 1 / (norm(Z^{-1},inf) * norm(Z,inf)) for some
1686
+ * appropriately scaled matrix Z.
1687
+ * Let Z = S*(A*diag(x)), where x is the solution for the
1688
+ * current right-hand side and S scales each row of
1689
+ * A*diag(x) by a power of the radix so all absolute row
1690
+ * sums of Z are approximately 1.
1691
+ *
1692
+ * See Lapack Working Note 165 for further details and extra
1693
+ * cautions.
1694
+ *
1695
+ * NPARAMS (input) INTEGER
1696
+ * Specifies the number of parameters set in PARAMS. If .LE. 0, the
1697
+ * PARAMS array is never referenced and default values are used.
1698
+ *
1699
+ * PARAMS (input / output) REAL array, dimension NPARAMS
1700
+ * Specifies algorithm parameters. If an entry is .LT. 0.0, then
1701
+ * that entry will be filled with default value used for that
1702
+ * parameter. Only positions up to NPARAMS are accessed; defaults
1703
+ * are used for higher-numbered parameters.
1704
+ *
1705
+ * PARAMS(LA_LINRX_ITREF_I = 1) : Whether to perform iterative
1706
+ * refinement or not.
1707
+ * Default: 1.0
1708
+ * = 0.0 : No refinement is performed, and no error bounds are
1709
+ * computed.
1710
+ * = 1.0 : Use the double-precision refinement algorithm,
1711
+ * possibly with doubled-single computations if the
1712
+ * compilation environment does not support DOUBLE
1713
+ * PRECISION.
1714
+ * (other values are reserved for future use)
1715
+ *
1716
+ * PARAMS(LA_LINRX_ITHRESH_I = 2) : Maximum number of residual
1717
+ * computations allowed for refinement.
1718
+ * Default: 10
1719
+ * Aggressive: Set to 100 to permit convergence using approximate
1720
+ * factorizations or factorizations other than LU. If
1721
+ * the factorization uses a technique other than
1722
+ * Gaussian elimination, the guarantees in
1723
+ * err_bnds_norm and err_bnds_comp may no longer be
1724
+ * trustworthy.
1725
+ *
1726
+ * PARAMS(LA_LINRX_CWISE_I = 3) : Flag determining if the code
1727
+ * will attempt to find a solution with small componentwise
1728
+ * relative error in the double-precision algorithm. Positive
1729
+ * is true, 0.0 is false.
1730
+ * Default: 1.0 (attempt componentwise convergence)
1731
+ *
1732
+ * WORK (workspace) COMPLEX array, dimension (2*N)
1733
+ *
1734
+ * RWORK (workspace) REAL array, dimension (2*N)
1735
+ *
1736
+ * INFO (output) INTEGER
1737
+ * = 0: Successful exit. The solution to every right-hand side is
1738
+ * guaranteed.
1739
+ * < 0: If INFO = -i, the i-th argument had an illegal value
1740
+ * > 0 and <= N: U(INFO,INFO) is exactly zero. The factorization
1741
+ * has been completed, but the factor U is exactly singular, so
1742
+ * the solution and error bounds could not be computed. RCOND = 0
1743
+ * is returned.
1744
+ * = N+J: The solution corresponding to the Jth right-hand side is
1745
+ * not guaranteed. The solutions corresponding to other right-
1746
+ * hand sides K with K > J may not be guaranteed as well, but
1747
+ * only the first such right-hand side is reported. If a small
1748
+ * componentwise error is not requested (PARAMS(3) = 0.0) then
1749
+ * the Jth right-hand side is the first with a normwise error
1750
+ * bound that is not guaranteed (the smallest J such
1751
+ * that ERR_BNDS_NORM(J,1) = 0.0). By default (PARAMS(3) = 1.0)
1752
+ * the Jth right-hand side is the first with either a normwise or
1753
+ * componentwise error bound that is not guaranteed (the smallest
1754
+ * J such that either ERR_BNDS_NORM(J,1) = 0.0 or
1755
+ * ERR_BNDS_COMP(J,1) = 0.0). See the definition of
1756
+ * ERR_BNDS_NORM(:,1) and ERR_BNDS_COMP(:,1). To get information
1757
+ * about all of the right-hand sides check ERR_BNDS_NORM or
1758
+ * ERR_BNDS_COMP.
1759
+ *
1760
+
1761
+ * ==================================================================
1762
+ *
1763
+
1764
+
1765
+ </PRE>
1766
+ <A HREF="#top">go to the page top</A>
1767
+
1768
+ <A NAME="chesv"></A>
1769
+ <H2>chesv</H2>
1770
+ <PRE>
1771
+ USAGE:
1772
+ ipiv, work, info, a, b = NumRu::Lapack.chesv( uplo, a, b, lwork, [:usage => usage, :help => help])
1773
+
1774
+
1775
+ FORTRAN MANUAL
1776
+ SUBROUTINE CHESV( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, LWORK, INFO )
1777
+
1778
+ * Purpose
1779
+ * =======
1780
+ *
1781
+ * CHESV computes the solution to a complex system of linear equations
1782
+ * A * X = B,
1783
+ * where A is an N-by-N Hermitian matrix and X and B are N-by-NRHS
1784
+ * matrices.
1785
+ *
1786
+ * The diagonal pivoting method is used to factor A as
1787
+ * A = U * D * U**H, if UPLO = 'U', or
1788
+ * A = L * D * L**H, if UPLO = 'L',
1789
+ * where U (or L) is a product of permutation and unit upper (lower)
1790
+ * triangular matrices, and D is Hermitian and block diagonal with
1791
+ * 1-by-1 and 2-by-2 diagonal blocks. The factored form of A is then
1792
+ * used to solve the system of equations A * X = B.
1793
+ *
1794
+
1795
+ * Arguments
1796
+ * =========
1797
+ *
1798
+ * UPLO (input) CHARACTER*1
1799
+ * = 'U': Upper triangle of A is stored;
1800
+ * = 'L': Lower triangle of A is stored.
1801
+ *
1802
+ * N (input) INTEGER
1803
+ * The number of linear equations, i.e., the order of the
1804
+ * matrix A. N >= 0.
1805
+ *
1806
+ * NRHS (input) INTEGER
1807
+ * The number of right hand sides, i.e., the number of columns
1808
+ * of the matrix B. NRHS >= 0.
1809
+ *
1810
+ * A (input/output) COMPLEX array, dimension (LDA,N)
1811
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the leading
1812
+ * N-by-N upper triangular part of A contains the upper
1813
+ * triangular part of the matrix A, and the strictly lower
1814
+ * triangular part of A is not referenced. If UPLO = 'L', the
1815
+ * leading N-by-N lower triangular part of A contains the lower
1816
+ * triangular part of the matrix A, and the strictly upper
1817
+ * triangular part of A is not referenced.
1818
+ *
1819
+ * On exit, if INFO = 0, the block diagonal matrix D and the
1820
+ * multipliers used to obtain the factor U or L from the
1821
+ * factorization A = U*D*U**H or A = L*D*L**H as computed by
1822
+ * CHETRF.
1823
+ *
1824
+ * LDA (input) INTEGER
1825
+ * The leading dimension of the array A. LDA >= max(1,N).
1826
+ *
1827
+ * IPIV (output) INTEGER array, dimension (N)
1828
+ * Details of the interchanges and the block structure of D, as
1829
+ * determined by CHETRF. If IPIV(k) > 0, then rows and columns
1830
+ * k and IPIV(k) were interchanged, and D(k,k) is a 1-by-1
1831
+ * diagonal block. If UPLO = 'U' and IPIV(k) = IPIV(k-1) < 0,
1832
+ * then rows and columns k-1 and -IPIV(k) were interchanged and
1833
+ * D(k-1:k,k-1:k) is a 2-by-2 diagonal block. If UPLO = 'L' and
1834
+ * IPIV(k) = IPIV(k+1) < 0, then rows and columns k+1 and
1835
+ * -IPIV(k) were interchanged and D(k:k+1,k:k+1) is a 2-by-2
1836
+ * diagonal block.
1837
+ *
1838
+ * B (input/output) COMPLEX array, dimension (LDB,NRHS)
1839
+ * On entry, the N-by-NRHS right hand side matrix B.
1840
+ * On exit, if INFO = 0, the N-by-NRHS solution matrix X.
1841
+ *
1842
+ * LDB (input) INTEGER
1843
+ * The leading dimension of the array B. LDB >= max(1,N).
1844
+ *
1845
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
1846
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1847
+ *
1848
+ * LWORK (input) INTEGER
1849
+ * The length of WORK. LWORK >= 1, and for best performance
1850
+ * LWORK >= max(1,N*NB), where NB is the optimal blocksize for
1851
+ * CHETRF.
1852
+ *
1853
+ * If LWORK = -1, then a workspace query is assumed; the routine
1854
+ * only calculates the optimal size of the WORK array, returns
1855
+ * this value as the first entry of the WORK array, and no error
1856
+ * message related to LWORK is issued by XERBLA.
1857
+ *
1858
+ * INFO (output) INTEGER
1859
+ * = 0: successful exit
1860
+ * < 0: if INFO = -i, the i-th argument had an illegal value
1861
+ * > 0: if INFO = i, D(i,i) is exactly zero. The factorization
1862
+ * has been completed, but the block diagonal matrix D is
1863
+ * exactly singular, so the solution could not be computed.
1864
+ *
1865
+
1866
+ * =====================================================================
1867
+ *
1868
+ * .. Local Scalars ..
1869
+ LOGICAL LQUERY
1870
+ INTEGER LWKOPT, NB
1871
+ * ..
1872
+ * .. External Functions ..
1873
+ LOGICAL LSAME
1874
+ INTEGER ILAENV
1875
+ EXTERNAL ILAENV, LSAME
1876
+ * ..
1877
+ * .. External Subroutines ..
1878
+ EXTERNAL CHETRF, CHETRS2, XERBLA
1879
+ * ..
1880
+ * .. Intrinsic Functions ..
1881
+ INTRINSIC MAX
1882
+ * ..
1883
+
1884
+
1885
+ </PRE>
1886
+ <A HREF="#top">go to the page top</A>
1887
+
1888
+ <A NAME="chesvx"></A>
1889
+ <H2>chesvx</H2>
1890
+ <PRE>
1891
+ USAGE:
1892
+ x, rcond, ferr, berr, work, info, af, ipiv = NumRu::Lapack.chesvx( fact, uplo, a, af, ipiv, b, [:lwork => lwork, :usage => usage, :help => help])
1893
+
1894
+
1895
+ FORTRAN MANUAL
1896
+ SUBROUTINE CHESVX( FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, LWORK, RWORK, INFO )
1897
+
1898
+ * Purpose
1899
+ * =======
1900
+ *
1901
+ * CHESVX uses the diagonal pivoting factorization to compute the
1902
+ * solution to a complex system of linear equations A * X = B,
1903
+ * where A is an N-by-N Hermitian matrix and X and B are N-by-NRHS
1904
+ * matrices.
1905
+ *
1906
+ * Error bounds on the solution and a condition estimate are also
1907
+ * provided.
1908
+ *
1909
+ * Description
1910
+ * ===========
1911
+ *
1912
+ * The following steps are performed:
1913
+ *
1914
+ * 1. If FACT = 'N', the diagonal pivoting method is used to factor A.
1915
+ * The form of the factorization is
1916
+ * A = U * D * U**H, if UPLO = 'U', or
1917
+ * A = L * D * L**H, if UPLO = 'L',
1918
+ * where U (or L) is a product of permutation and unit upper (lower)
1919
+ * triangular matrices, and D is Hermitian and block diagonal with
1920
+ * 1-by-1 and 2-by-2 diagonal blocks.
1921
+ *
1922
+ * 2. If some D(i,i)=0, so that D is exactly singular, then the routine
1923
+ * returns with INFO = i. Otherwise, the factored form of A is used
1924
+ * to estimate the condition number of the matrix A. If the
1925
+ * reciprocal of the condition number is less than machine precision,
1926
+ * INFO = N+1 is returned as a warning, but the routine still goes on
1927
+ * to solve for X and compute error bounds as described below.
1928
+ *
1929
+ * 3. The system of equations is solved for X using the factored form
1930
+ * of A.
1931
+ *
1932
+ * 4. Iterative refinement is applied to improve the computed solution
1933
+ * matrix and calculate error bounds and backward error estimates
1934
+ * for it.
1935
+ *
1936
+
1937
+ * Arguments
1938
+ * =========
1939
+ *
1940
+ * FACT (input) CHARACTER*1
1941
+ * Specifies whether or not the factored form of A has been
1942
+ * supplied on entry.
1943
+ * = 'F': On entry, AF and IPIV contain the factored form
1944
+ * of A. A, AF and IPIV will not be modified.
1945
+ * = 'N': The matrix A will be copied to AF and factored.
1946
+ *
1947
+ * UPLO (input) CHARACTER*1
1948
+ * = 'U': Upper triangle of A is stored;
1949
+ * = 'L': Lower triangle of A is stored.
1950
+ *
1951
+ * N (input) INTEGER
1952
+ * The number of linear equations, i.e., the order of the
1953
+ * matrix A. N >= 0.
1954
+ *
1955
+ * NRHS (input) INTEGER
1956
+ * The number of right hand sides, i.e., the number of columns
1957
+ * of the matrices B and X. NRHS >= 0.
1958
+ *
1959
+ * A (input) COMPLEX array, dimension (LDA,N)
1960
+ * The Hermitian matrix A. If UPLO = 'U', the leading N-by-N
1961
+ * upper triangular part of A contains the upper triangular part
1962
+ * of the matrix A, and the strictly lower triangular part of A
1963
+ * is not referenced. If UPLO = 'L', the leading N-by-N lower
1964
+ * triangular part of A contains the lower triangular part of
1965
+ * the matrix A, and the strictly upper triangular part of A is
1966
+ * not referenced.
1967
+ *
1968
+ * LDA (input) INTEGER
1969
+ * The leading dimension of the array A. LDA >= max(1,N).
1970
+ *
1971
+ * AF (input or output) COMPLEX array, dimension (LDAF,N)
1972
+ * If FACT = 'F', then AF is an input argument and on entry
1973
+ * contains the block diagonal matrix D and the multipliers used
1974
+ * to obtain the factor U or L from the factorization
1975
+ * A = U*D*U**H or A = L*D*L**H as computed by CHETRF.
1976
+ *
1977
+ * If FACT = 'N', then AF is an output argument and on exit
1978
+ * returns the block diagonal matrix D and the multipliers used
1979
+ * to obtain the factor U or L from the factorization
1980
+ * A = U*D*U**H or A = L*D*L**H.
1981
+ *
1982
+ * LDAF (input) INTEGER
1983
+ * The leading dimension of the array AF. LDAF >= max(1,N).
1984
+ *
1985
+ * IPIV (input or output) INTEGER array, dimension (N)
1986
+ * If FACT = 'F', then IPIV is an input argument and on entry
1987
+ * contains details of the interchanges and the block structure
1988
+ * of D, as determined by CHETRF.
1989
+ * If IPIV(k) > 0, then rows and columns k and IPIV(k) were
1990
+ * interchanged and D(k,k) is a 1-by-1 diagonal block.
1991
+ * If UPLO = 'U' and IPIV(k) = IPIV(k-1) < 0, then rows and
1992
+ * columns k-1 and -IPIV(k) were interchanged and D(k-1:k,k-1:k)
1993
+ * is a 2-by-2 diagonal block. If UPLO = 'L' and IPIV(k) =
1994
+ * IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k) were
1995
+ * interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
1996
+ *
1997
+ * If FACT = 'N', then IPIV is an output argument and on exit
1998
+ * contains details of the interchanges and the block structure
1999
+ * of D, as determined by CHETRF.
2000
+ *
2001
+ * B (input) COMPLEX array, dimension (LDB,NRHS)
2002
+ * The N-by-NRHS right hand side matrix B.
2003
+ *
2004
+ * LDB (input) INTEGER
2005
+ * The leading dimension of the array B. LDB >= max(1,N).
2006
+ *
2007
+ * X (output) COMPLEX array, dimension (LDX,NRHS)
2008
+ * If INFO = 0 or INFO = N+1, the N-by-NRHS solution matrix X.
2009
+ *
2010
+ * LDX (input) INTEGER
2011
+ * The leading dimension of the array X. LDX >= max(1,N).
2012
+ *
2013
+ * RCOND (output) REAL
2014
+ * The estimate of the reciprocal condition number of the matrix
2015
+ * A. If RCOND is less than the machine precision (in
2016
+ * particular, if RCOND = 0), the matrix is singular to working
2017
+ * precision. This condition is indicated by a return code of
2018
+ * INFO > 0.
2019
+ *
2020
+ * FERR (output) REAL array, dimension (NRHS)
2021
+ * The estimated forward error bound for each solution vector
2022
+ * X(j) (the j-th column of the solution matrix X).
2023
+ * If XTRUE is the true solution corresponding to X(j), FERR(j)
2024
+ * is an estimated upper bound for the magnitude of the largest
2025
+ * element in (X(j) - XTRUE) divided by the magnitude of the
2026
+ * largest element in X(j). The estimate is as reliable as
2027
+ * the estimate for RCOND, and is almost always a slight
2028
+ * overestimate of the true error.
2029
+ *
2030
+ * BERR (output) REAL array, dimension (NRHS)
2031
+ * The componentwise relative backward error of each solution
2032
+ * vector X(j) (i.e., the smallest relative change in
2033
+ * any element of A or B that makes X(j) an exact solution).
2034
+ *
2035
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
2036
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
2037
+ *
2038
+ * LWORK (input) INTEGER
2039
+ * The length of WORK. LWORK >= max(1,2*N), and for best
2040
+ * performance, when FACT = 'N', LWORK >= max(1,2*N,N*NB), where
2041
+ * NB is the optimal blocksize for CHETRF.
2042
+ *
2043
+ * If LWORK = -1, then a workspace query is assumed; the routine
2044
+ * only calculates the optimal size of the WORK array, returns
2045
+ * this value as the first entry of the WORK array, and no error
2046
+ * message related to LWORK is issued by XERBLA.
2047
+ *
2048
+ * RWORK (workspace) REAL array, dimension (N)
2049
+ *
2050
+ * INFO (output) INTEGER
2051
+ * = 0: successful exit
2052
+ * < 0: if INFO = -i, the i-th argument had an illegal value
2053
+ * > 0: if INFO = i, and i is
2054
+ * <= N: D(i,i) is exactly zero. The factorization
2055
+ * has been completed but the factor D is exactly
2056
+ * singular, so the solution and error bounds could
2057
+ * not be computed. RCOND = 0 is returned.
2058
+ * = N+1: D is nonsingular, but RCOND is less than machine
2059
+ * precision, meaning that the matrix is singular
2060
+ * to working precision. Nevertheless, the
2061
+ * solution and error bounds are computed because
2062
+ * there are a number of situations where the
2063
+ * computed solution can be more accurate than the
2064
+ * value of RCOND would suggest.
2065
+ *
2066
+
2067
+ * =====================================================================
2068
+ *
2069
+
2070
+
2071
+ </PRE>
2072
+ <A HREF="#top">go to the page top</A>
2073
+
2074
+ <A NAME="chesvxx"></A>
2075
+ <H2>chesvxx</H2>
2076
+ <PRE>
2077
+ USAGE:
2078
+ x, rcond, rpvgrw, berr, err_bnds_norm, err_bnds_comp, info, a, af, ipiv, equed, s, b, params = NumRu::Lapack.chesvxx( fact, uplo, a, af, ipiv, equed, s, b, params, [:usage => usage, :help => help])
2079
+
2080
+
2081
+ FORTRAN MANUAL
2082
+ SUBROUTINE CHESVXX( FACT, UPLO, N, NRHS, A, LDA, AF, LDAF, IPIV, EQUED, S, B, LDB, X, LDX, RCOND, RPVGRW, BERR, N_ERR_BNDS, ERR_BNDS_NORM, ERR_BNDS_COMP, NPARAMS, PARAMS, WORK, RWORK, INFO )
2083
+
2084
+ * Purpose
2085
+ * =======
2086
+ *
2087
+ * CHESVXX uses the diagonal pivoting factorization to compute the
2088
+ * solution to a complex system of linear equations A * X = B, where
2089
+ * A is an N-by-N symmetric matrix and X and B are N-by-NRHS
2090
+ * matrices.
2091
+ *
2092
+ * If requested, both normwise and maximum componentwise error bounds
2093
+ * are returned. CHESVXX will return a solution with a tiny
2094
+ * guaranteed error (O(eps) where eps is the working machine
2095
+ * precision) unless the matrix is very ill-conditioned, in which
2096
+ * case a warning is returned. Relevant condition numbers also are
2097
+ * calculated and returned.
2098
+ *
2099
+ * CHESVXX accepts user-provided factorizations and equilibration
2100
+ * factors; see the definitions of the FACT and EQUED options.
2101
+ * Solving with refinement and using a factorization from a previous
2102
+ * CHESVXX call will also produce a solution with either O(eps)
2103
+ * errors or warnings, but we cannot make that claim for general
2104
+ * user-provided factorizations and equilibration factors if they
2105
+ * differ from what CHESVXX would itself produce.
2106
+ *
2107
+ * Description
2108
+ * ===========
2109
+ *
2110
+ * The following steps are performed:
2111
+ *
2112
+ * 1. If FACT = 'E', real scaling factors are computed to equilibrate
2113
+ * the system:
2114
+ *
2115
+ * diag(S)*A*diag(S) *inv(diag(S))*X = diag(S)*B
2116
+ *
2117
+ * Whether or not the system will be equilibrated depends on the
2118
+ * scaling of the matrix A, but if equilibration is used, A is
2119
+ * overwritten by diag(S)*A*diag(S) and B by diag(S)*B.
2120
+ *
2121
+ * 2. If FACT = 'N' or 'E', the LU decomposition is used to factor
2122
+ * the matrix A (after equilibration if FACT = 'E') as
2123
+ *
2124
+ * A = U * D * U**T, if UPLO = 'U', or
2125
+ * A = L * D * L**T, if UPLO = 'L',
2126
+ *
2127
+ * where U (or L) is a product of permutation and unit upper (lower)
2128
+ * triangular matrices, and D is symmetric and block diagonal with
2129
+ * 1-by-1 and 2-by-2 diagonal blocks.
2130
+ *
2131
+ * 3. If some D(i,i)=0, so that D is exactly singular, then the
2132
+ * routine returns with INFO = i. Otherwise, the factored form of A
2133
+ * is used to estimate the condition number of the matrix A (see
2134
+ * argument RCOND). If the reciprocal of the condition number is
2135
+ * less than machine precision, the routine still goes on to solve
2136
+ * for X and compute error bounds as described below.
2137
+ *
2138
+ * 4. The system of equations is solved for X using the factored form
2139
+ * of A.
2140
+ *
2141
+ * 5. By default (unless PARAMS(LA_LINRX_ITREF_I) is set to zero),
2142
+ * the routine will use iterative refinement to try to get a small
2143
+ * error and error bounds. Refinement calculates the residual to at
2144
+ * least twice the working precision.
2145
+ *
2146
+ * 6. If equilibration was used, the matrix X is premultiplied by
2147
+ * diag(R) so that it solves the original system before
2148
+ * equilibration.
2149
+ *
2150
+
2151
+ * Arguments
2152
+ * =========
2153
+ *
2154
+ * Some optional parameters are bundled in the PARAMS array. These
2155
+ * settings determine how refinement is performed, but often the
2156
+ * defaults are acceptable. If the defaults are acceptable, users
2157
+ * can pass NPARAMS = 0 which prevents the source code from accessing
2158
+ * the PARAMS argument.
2159
+ *
2160
+ * FACT (input) CHARACTER*1
2161
+ * Specifies whether or not the factored form of the matrix A is
2162
+ * supplied on entry, and if not, whether the matrix A should be
2163
+ * equilibrated before it is factored.
2164
+ * = 'F': On entry, AF and IPIV contain the factored form of A.
2165
+ * If EQUED is not 'N', the matrix A has been
2166
+ * equilibrated with scaling factors given by S.
2167
+ * A, AF, and IPIV are not modified.
2168
+ * = 'N': The matrix A will be copied to AF and factored.
2169
+ * = 'E': The matrix A will be equilibrated if necessary, then
2170
+ * copied to AF and factored.
2171
+ *
2172
+ * N (input) INTEGER
2173
+ * The number of linear equations, i.e., the order of the
2174
+ * matrix A. N >= 0.
2175
+ *
2176
+ * NRHS (input) INTEGER
2177
+ * The number of right hand sides, i.e., the number of columns
2178
+ * of the matrices B and X. NRHS >= 0.
2179
+ *
2180
+ * A (input/output) COMPLEX array, dimension (LDA,N)
2181
+ * The symmetric matrix A. If UPLO = 'U', the leading N-by-N
2182
+ * upper triangular part of A contains the upper triangular
2183
+ * part of the matrix A, and the strictly lower triangular
2184
+ * part of A is not referenced. If UPLO = 'L', the leading
2185
+ * N-by-N lower triangular part of A contains the lower
2186
+ * triangular part of the matrix A, and the strictly upper
2187
+ * triangular part of A is not referenced.
2188
+ *
2189
+ * On exit, if FACT = 'E' and EQUED = 'Y', A is overwritten by
2190
+ * diag(S)*A*diag(S).
2191
+ *
2192
+ * LDA (input) INTEGER
2193
+ * The leading dimension of the array A. LDA >= max(1,N).
2194
+ *
2195
+ * AF (input or output) COMPLEX array, dimension (LDAF,N)
2196
+ * If FACT = 'F', then AF is an input argument and on entry
2197
+ * contains the block diagonal matrix D and the multipliers
2198
+ * used to obtain the factor U or L from the factorization A =
2199
+ * U*D*U**T or A = L*D*L**T as computed by SSYTRF.
2200
+ *
2201
+ * If FACT = 'N', then AF is an output argument and on exit
2202
+ * returns the block diagonal matrix D and the multipliers
2203
+ * used to obtain the factor U or L from the factorization A =
2204
+ * U*D*U**T or A = L*D*L**T.
2205
+ *
2206
+ * LDAF (input) INTEGER
2207
+ * The leading dimension of the array AF. LDAF >= max(1,N).
2208
+ *
2209
+ * IPIV (input or output) INTEGER array, dimension (N)
2210
+ * If FACT = 'F', then IPIV is an input argument and on entry
2211
+ * contains details of the interchanges and the block
2212
+ * structure of D, as determined by CHETRF. If IPIV(k) > 0,
2213
+ * then rows and columns k and IPIV(k) were interchanged and
2214
+ * D(k,k) is a 1-by-1 diagonal block. If UPLO = 'U' and
2215
+ * IPIV(k) = IPIV(k-1) < 0, then rows and columns k-1 and
2216
+ * -IPIV(k) were interchanged and D(k-1:k,k-1:k) is a 2-by-2
2217
+ * diagonal block. If UPLO = 'L' and IPIV(k) = IPIV(k+1) < 0,
2218
+ * then rows and columns k+1 and -IPIV(k) were interchanged
2219
+ * and D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
2220
+ *
2221
+ * If FACT = 'N', then IPIV is an output argument and on exit
2222
+ * contains details of the interchanges and the block
2223
+ * structure of D, as determined by CHETRF.
2224
+ *
2225
+ * EQUED (input or output) CHARACTER*1
2226
+ * Specifies the form of equilibration that was done.
2227
+ * = 'N': No equilibration (always true if FACT = 'N').
2228
+ * = 'Y': Both row and column equilibration, i.e., A has been
2229
+ * replaced by diag(S) * A * diag(S).
2230
+ * EQUED is an input argument if FACT = 'F'; otherwise, it is an
2231
+ * output argument.
2232
+ *
2233
+ * S (input or output) REAL array, dimension (N)
2234
+ * The scale factors for A. If EQUED = 'Y', A is multiplied on
2235
+ * the left and right by diag(S). S is an input argument if FACT =
2236
+ * 'F'; otherwise, S is an output argument. If FACT = 'F' and EQUED
2237
+ * = 'Y', each element of S must be positive. If S is output, each
2238
+ * element of S is a power of the radix. If S is input, each element
2239
+ * of S should be a power of the radix to ensure a reliable solution
2240
+ * and error estimates. Scaling by powers of the radix does not cause
2241
+ * rounding errors unless the result underflows or overflows.
2242
+ * Rounding errors during scaling lead to refining with a matrix that
2243
+ * is not equivalent to the input matrix, producing error estimates
2244
+ * that may not be reliable.
2245
+ *
2246
+ * B (input/output) COMPLEX array, dimension (LDB,NRHS)
2247
+ * On entry, the N-by-NRHS right hand side matrix B.
2248
+ * On exit,
2249
+ * if EQUED = 'N', B is not modified;
2250
+ * if EQUED = 'Y', B is overwritten by diag(S)*B;
2251
+ *
2252
+ * LDB (input) INTEGER
2253
+ * The leading dimension of the array B. LDB >= max(1,N).
2254
+ *
2255
+ * X (output) COMPLEX array, dimension (LDX,NRHS)
2256
+ * If INFO = 0, the N-by-NRHS solution matrix X to the original
2257
+ * system of equations. Note that A and B are modified on exit if
2258
+ * EQUED .ne. 'N', and the solution to the equilibrated system is
2259
+ * inv(diag(S))*X.
2260
+ *
2261
+ * LDX (input) INTEGER
2262
+ * The leading dimension of the array X. LDX >= max(1,N).
2263
+ *
2264
+ * RCOND (output) REAL
2265
+ * Reciprocal scaled condition number. This is an estimate of the
2266
+ * reciprocal Skeel condition number of the matrix A after
2267
+ * equilibration (if done). If this is less than the machine
2268
+ * precision (in particular, if it is zero), the matrix is singular
2269
+ * to working precision. Note that the error may still be small even
2270
+ * if this number is very small and the matrix appears ill-
2271
+ * conditioned.
2272
+ *
2273
+ * RPVGRW (output) REAL
2274
+ * Reciprocal pivot growth. On exit, this contains the reciprocal
2275
+ * pivot growth factor norm(A)/norm(U). The "max absolute element"
2276
+ * norm is used. If this is much less than 1, then the stability of
2277
+ * the LU factorization of the (equilibrated) matrix A could be poor.
2278
+ * This also means that the solution X, estimated condition numbers,
2279
+ * and error bounds could be unreliable. If factorization fails with
2280
+ * 0<INFO<=N, then this contains the reciprocal pivot growth factor
2281
+ * for the leading INFO columns of A.
2282
+ *
2283
+ * BERR (output) REAL array, dimension (NRHS)
2284
+ * Componentwise relative backward error. This is the
2285
+ * componentwise relative backward error of each solution vector X(j)
2286
+ * (i.e., the smallest relative change in any element of A or B that
2287
+ * makes X(j) an exact solution).
2288
+ *
2289
+ * N_ERR_BNDS (input) INTEGER
2290
+ * Number of error bounds to return for each right hand side
2291
+ * and each type (normwise or componentwise). See ERR_BNDS_NORM and
2292
+ * ERR_BNDS_COMP below.
2293
+ *
2294
+ * ERR_BNDS_NORM (output) REAL array, dimension (NRHS, N_ERR_BNDS)
2295
+ * For each right-hand side, this array contains information about
2296
+ * various error bounds and condition numbers corresponding to the
2297
+ * normwise relative error, which is defined as follows:
2298
+ *
2299
+ * Normwise relative error in the ith solution vector:
2300
+ * max_j (abs(XTRUE(j,i) - X(j,i)))
2301
+ * ------------------------------
2302
+ * max_j abs(X(j,i))
2303
+ *
2304
+ * The array is indexed by the type of error information as described
2305
+ * below. There currently are up to three pieces of information
2306
+ * returned.
2307
+ *
2308
+ * The first index in ERR_BNDS_NORM(i,:) corresponds to the ith
2309
+ * right-hand side.
2310
+ *
2311
+ * The second index in ERR_BNDS_NORM(:,err) contains the following
2312
+ * three fields:
2313
+ * err = 1 "Trust/don't trust" boolean. Trust the answer if the
2314
+ * reciprocal condition number is less than the threshold
2315
+ * sqrt(n) * slamch('Epsilon').
2316
+ *
2317
+ * err = 2 "Guaranteed" error bound: The estimated forward error,
2318
+ * almost certainly within a factor of 10 of the true error
2319
+ * so long as the next entry is greater than the threshold
2320
+ * sqrt(n) * slamch('Epsilon'). This error bound should only
2321
+ * be trusted if the previous boolean is true.
2322
+ *
2323
+ * err = 3 Reciprocal condition number: Estimated normwise
2324
+ * reciprocal condition number. Compared with the threshold
2325
+ * sqrt(n) * slamch('Epsilon') to determine if the error
2326
+ * estimate is "guaranteed". These reciprocal condition
2327
+ * numbers are 1 / (norm(Z^{-1},inf) * norm(Z,inf)) for some
2328
+ * appropriately scaled matrix Z.
2329
+ * Let Z = S*A, where S scales each row by a power of the
2330
+ * radix so all absolute row sums of Z are approximately 1.
2331
+ *
2332
+ * See Lapack Working Note 165 for further details and extra
2333
+ * cautions.
2334
+ *
2335
+ * ERR_BNDS_COMP (output) REAL array, dimension (NRHS, N_ERR_BNDS)
2336
+ * For each right-hand side, this array contains information about
2337
+ * various error bounds and condition numbers corresponding to the
2338
+ * componentwise relative error, which is defined as follows:
2339
+ *
2340
+ * Componentwise relative error in the ith solution vector:
2341
+ * abs(XTRUE(j,i) - X(j,i))
2342
+ * max_j ----------------------
2343
+ * abs(X(j,i))
2344
+ *
2345
+ * The array is indexed by the right-hand side i (on which the
2346
+ * componentwise relative error depends), and the type of error
2347
+ * information as described below. There currently are up to three
2348
+ * pieces of information returned for each right-hand side. If
2349
+ * componentwise accuracy is not requested (PARAMS(3) = 0.0), then
2350
+ * ERR_BNDS_COMP is not accessed. If N_ERR_BNDS .LT. 3, then at most
2351
+ * the first (:,N_ERR_BNDS) entries are returned.
2352
+ *
2353
+ * The first index in ERR_BNDS_COMP(i,:) corresponds to the ith
2354
+ * right-hand side.
2355
+ *
2356
+ * The second index in ERR_BNDS_COMP(:,err) contains the following
2357
+ * three fields:
2358
+ * err = 1 "Trust/don't trust" boolean. Trust the answer if the
2359
+ * reciprocal condition number is less than the threshold
2360
+ * sqrt(n) * slamch('Epsilon').
2361
+ *
2362
+ * err = 2 "Guaranteed" error bound: The estimated forward error,
2363
+ * almost certainly within a factor of 10 of the true error
2364
+ * so long as the next entry is greater than the threshold
2365
+ * sqrt(n) * slamch('Epsilon'). This error bound should only
2366
+ * be trusted if the previous boolean is true.
2367
+ *
2368
+ * err = 3 Reciprocal condition number: Estimated componentwise
2369
+ * reciprocal condition number. Compared with the threshold
2370
+ * sqrt(n) * slamch('Epsilon') to determine if the error
2371
+ * estimate is "guaranteed". These reciprocal condition
2372
+ * numbers are 1 / (norm(Z^{-1},inf) * norm(Z,inf)) for some
2373
+ * appropriately scaled matrix Z.
2374
+ * Let Z = S*(A*diag(x)), where x is the solution for the
2375
+ * current right-hand side and S scales each row of
2376
+ * A*diag(x) by a power of the radix so all absolute row
2377
+ * sums of Z are approximately 1.
2378
+ *
2379
+ * See Lapack Working Note 165 for further details and extra
2380
+ * cautions.
2381
+ *
2382
+ * NPARAMS (input) INTEGER
2383
+ * Specifies the number of parameters set in PARAMS. If .LE. 0, the
2384
+ * PARAMS array is never referenced and default values are used.
2385
+ *
2386
+ * PARAMS (input / output) REAL array, dimension NPARAMS
2387
+ * Specifies algorithm parameters. If an entry is .LT. 0.0, then
2388
+ * that entry will be filled with default value used for that
2389
+ * parameter. Only positions up to NPARAMS are accessed; defaults
2390
+ * are used for higher-numbered parameters.
2391
+ *
2392
+ * PARAMS(LA_LINRX_ITREF_I = 1) : Whether to perform iterative
2393
+ * refinement or not.
2394
+ * Default: 1.0
2395
+ * = 0.0 : No refinement is performed, and no error bounds are
2396
+ * computed.
2397
+ * = 1.0 : Use the double-precision refinement algorithm,
2398
+ * possibly with doubled-single computations if the
2399
+ * compilation environment does not support DOUBLE
2400
+ * PRECISION.
2401
+ * (other values are reserved for future use)
2402
+ *
2403
+ * PARAMS(LA_LINRX_ITHRESH_I = 2) : Maximum number of residual
2404
+ * computations allowed for refinement.
2405
+ * Default: 10
2406
+ * Aggressive: Set to 100 to permit convergence using approximate
2407
+ * factorizations or factorizations other than LU. If
2408
+ * the factorization uses a technique other than
2409
+ * Gaussian elimination, the guarantees in
2410
+ * err_bnds_norm and err_bnds_comp may no longer be
2411
+ * trustworthy.
2412
+ *
2413
+ * PARAMS(LA_LINRX_CWISE_I = 3) : Flag determining if the code
2414
+ * will attempt to find a solution with small componentwise
2415
+ * relative error in the double-precision algorithm. Positive
2416
+ * is true, 0.0 is false.
2417
+ * Default: 1.0 (attempt componentwise convergence)
2418
+ *
2419
+ * WORK (workspace) COMPLEX array, dimension (2*N)
2420
+ *
2421
+ * RWORK (workspace) REAL array, dimension (2*N)
2422
+ *
2423
+ * INFO (output) INTEGER
2424
+ * = 0: Successful exit. The solution to every right-hand side is
2425
+ * guaranteed.
2426
+ * < 0: If INFO = -i, the i-th argument had an illegal value
2427
+ * > 0 and <= N: U(INFO,INFO) is exactly zero. The factorization
2428
+ * has been completed, but the factor U is exactly singular, so
2429
+ * the solution and error bounds could not be computed. RCOND = 0
2430
+ * is returned.
2431
+ * = N+J: The solution corresponding to the Jth right-hand side is
2432
+ * not guaranteed. The solutions corresponding to other right-
2433
+ * hand sides K with K > J may not be guaranteed as well, but
2434
+ * only the first such right-hand side is reported. If a small
2435
+ * componentwise error is not requested (PARAMS(3) = 0.0) then
2436
+ * the Jth right-hand side is the first with a normwise error
2437
+ * bound that is not guaranteed (the smallest J such
2438
+ * that ERR_BNDS_NORM(J,1) = 0.0). By default (PARAMS(3) = 1.0)
2439
+ * the Jth right-hand side is the first with either a normwise or
2440
+ * componentwise error bound that is not guaranteed (the smallest
2441
+ * J such that either ERR_BNDS_NORM(J,1) = 0.0 or
2442
+ * ERR_BNDS_COMP(J,1) = 0.0). See the definition of
2443
+ * ERR_BNDS_NORM(:,1) and ERR_BNDS_COMP(:,1). To get information
2444
+ * about all of the right-hand sides check ERR_BNDS_NORM or
2445
+ * ERR_BNDS_COMP.
2446
+ *
2447
+
2448
+ * ==================================================================
2449
+ *
2450
+
2451
+
2452
+ </PRE>
2453
+ <A HREF="#top">go to the page top</A>
2454
+
2455
+ <A NAME="chetd2"></A>
2456
+ <H2>chetd2</H2>
2457
+ <PRE>
2458
+ USAGE:
2459
+ d, e, tau, info, a = NumRu::Lapack.chetd2( uplo, a, [:usage => usage, :help => help])
2460
+
2461
+
2462
+ FORTRAN MANUAL
2463
+ SUBROUTINE CHETD2( UPLO, N, A, LDA, D, E, TAU, INFO )
2464
+
2465
+ * Purpose
2466
+ * =======
2467
+ *
2468
+ * CHETD2 reduces a complex Hermitian matrix A to real symmetric
2469
+ * tridiagonal form T by a unitary similarity transformation:
2470
+ * Q' * A * Q = T.
2471
+ *
2472
+
2473
+ * Arguments
2474
+ * =========
2475
+ *
2476
+ * UPLO (input) CHARACTER*1
2477
+ * Specifies whether the upper or lower triangular part of the
2478
+ * Hermitian matrix A is stored:
2479
+ * = 'U': Upper triangular
2480
+ * = 'L': Lower triangular
2481
+ *
2482
+ * N (input) INTEGER
2483
+ * The order of the matrix A. N >= 0.
2484
+ *
2485
+ * A (input/output) COMPLEX array, dimension (LDA,N)
2486
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the leading
2487
+ * n-by-n upper triangular part of A contains the upper
2488
+ * triangular part of the matrix A, and the strictly lower
2489
+ * triangular part of A is not referenced. If UPLO = 'L', the
2490
+ * leading n-by-n lower triangular part of A contains the lower
2491
+ * triangular part of the matrix A, and the strictly upper
2492
+ * triangular part of A is not referenced.
2493
+ * On exit, if UPLO = 'U', the diagonal and first superdiagonal
2494
+ * of A are overwritten by the corresponding elements of the
2495
+ * tridiagonal matrix T, and the elements above the first
2496
+ * superdiagonal, with the array TAU, represent the unitary
2497
+ * matrix Q as a product of elementary reflectors; if UPLO
2498
+ * = 'L', the diagonal and first subdiagonal of A are over-
2499
+ * written by the corresponding elements of the tridiagonal
2500
+ * matrix T, and the elements below the first subdiagonal, with
2501
+ * the array TAU, represent the unitary matrix Q as a product
2502
+ * of elementary reflectors. See Further Details.
2503
+ *
2504
+ * LDA (input) INTEGER
2505
+ * The leading dimension of the array A. LDA >= max(1,N).
2506
+ *
2507
+ * D (output) REAL array, dimension (N)
2508
+ * The diagonal elements of the tridiagonal matrix T:
2509
+ * D(i) = A(i,i).
2510
+ *
2511
+ * E (output) REAL array, dimension (N-1)
2512
+ * The off-diagonal elements of the tridiagonal matrix T:
2513
+ * E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
2514
+ *
2515
+ * TAU (output) COMPLEX array, dimension (N-1)
2516
+ * The scalar factors of the elementary reflectors (see Further
2517
+ * Details).
2518
+ *
2519
+ * INFO (output) INTEGER
2520
+ * = 0: successful exit
2521
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
2522
+ *
2523
+
2524
+ * Further Details
2525
+ * ===============
2526
+ *
2527
+ * If UPLO = 'U', the matrix Q is represented as a product of elementary
2528
+ * reflectors
2529
+ *
2530
+ * Q = H(n-1) . . . H(2) H(1).
2531
+ *
2532
+ * Each H(i) has the form
2533
+ *
2534
+ * H(i) = I - tau * v * v'
2535
+ *
2536
+ * where tau is a complex scalar, and v is a complex vector with
2537
+ * v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in
2538
+ * A(1:i-1,i+1), and tau in TAU(i).
2539
+ *
2540
+ * If UPLO = 'L', the matrix Q is represented as a product of elementary
2541
+ * reflectors
2542
+ *
2543
+ * Q = H(1) H(2) . . . H(n-1).
2544
+ *
2545
+ * Each H(i) has the form
2546
+ *
2547
+ * H(i) = I - tau * v * v'
2548
+ *
2549
+ * where tau is a complex scalar, and v is a complex vector with
2550
+ * v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i),
2551
+ * and tau in TAU(i).
2552
+ *
2553
+ * The contents of A on exit are illustrated by the following examples
2554
+ * with n = 5:
2555
+ *
2556
+ * if UPLO = 'U': if UPLO = 'L':
2557
+ *
2558
+ * ( d e v2 v3 v4 ) ( d )
2559
+ * ( d e v3 v4 ) ( e d )
2560
+ * ( d e v4 ) ( v1 e d )
2561
+ * ( d e ) ( v1 v2 e d )
2562
+ * ( d ) ( v1 v2 v3 e d )
2563
+ *
2564
+ * where d and e denote diagonal and off-diagonal elements of T, and vi
2565
+ * denotes an element of the vector defining H(i).
2566
+ *
2567
+ * =====================================================================
2568
+ *
2569
+
2570
+
2571
+ </PRE>
2572
+ <A HREF="#top">go to the page top</A>
2573
+
2574
+ <A NAME="chetf2"></A>
2575
+ <H2>chetf2</H2>
2576
+ <PRE>
2577
+ USAGE:
2578
+ ipiv, info, a = NumRu::Lapack.chetf2( uplo, a, [:usage => usage, :help => help])
2579
+
2580
+
2581
+ FORTRAN MANUAL
2582
+ SUBROUTINE CHETF2( UPLO, N, A, LDA, IPIV, INFO )
2583
+
2584
+ * Purpose
2585
+ * =======
2586
+ *
2587
+ * CHETF2 computes the factorization of a complex Hermitian matrix A
2588
+ * using the Bunch-Kaufman diagonal pivoting method:
2589
+ *
2590
+ * A = U*D*U' or A = L*D*L'
2591
+ *
2592
+ * where U (or L) is a product of permutation and unit upper (lower)
2593
+ * triangular matrices, U' is the conjugate transpose of U, and D is
2594
+ * Hermitian and block diagonal with 1-by-1 and 2-by-2 diagonal blocks.
2595
+ *
2596
+ * This is the unblocked version of the algorithm, calling Level 2 BLAS.
2597
+ *
2598
+
2599
+ * Arguments
2600
+ * =========
2601
+ *
2602
+ * UPLO (input) CHARACTER*1
2603
+ * Specifies whether the upper or lower triangular part of the
2604
+ * Hermitian matrix A is stored:
2605
+ * = 'U': Upper triangular
2606
+ * = 'L': Lower triangular
2607
+ *
2608
+ * N (input) INTEGER
2609
+ * The order of the matrix A. N >= 0.
2610
+ *
2611
+ * A (input/output) COMPLEX array, dimension (LDA,N)
2612
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the leading
2613
+ * n-by-n upper triangular part of A contains the upper
2614
+ * triangular part of the matrix A, and the strictly lower
2615
+ * triangular part of A is not referenced. If UPLO = 'L', the
2616
+ * leading n-by-n lower triangular part of A contains the lower
2617
+ * triangular part of the matrix A, and the strictly upper
2618
+ * triangular part of A is not referenced.
2619
+ *
2620
+ * On exit, the block diagonal matrix D and the multipliers used
2621
+ * to obtain the factor U or L (see below for further details).
2622
+ *
2623
+ * LDA (input) INTEGER
2624
+ * The leading dimension of the array A. LDA >= max(1,N).
2625
+ *
2626
+ * IPIV (output) INTEGER array, dimension (N)
2627
+ * Details of the interchanges and the block structure of D.
2628
+ * If IPIV(k) > 0, then rows and columns k and IPIV(k) were
2629
+ * interchanged and D(k,k) is a 1-by-1 diagonal block.
2630
+ * If UPLO = 'U' and IPIV(k) = IPIV(k-1) < 0, then rows and
2631
+ * columns k-1 and -IPIV(k) were interchanged and D(k-1:k,k-1:k)
2632
+ * is a 2-by-2 diagonal block. If UPLO = 'L' and IPIV(k) =
2633
+ * IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k) were
2634
+ * interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
2635
+ *
2636
+ * INFO (output) INTEGER
2637
+ * = 0: successful exit
2638
+ * < 0: if INFO = -k, the k-th argument had an illegal value
2639
+ * > 0: if INFO = k, D(k,k) is exactly zero. The factorization
2640
+ * has been completed, but the block diagonal matrix D is
2641
+ * exactly singular, and division by zero will occur if it
2642
+ * is used to solve a system of equations.
2643
+ *
2644
+
2645
+ * Further Details
2646
+ * ===============
2647
+ *
2648
+ * 09-29-06 - patch from
2649
+ * Bobby Cheng, MathWorks
2650
+ *
2651
+ * Replace l.210 and l.392
2652
+ * IF( MAX( ABSAKK, COLMAX ).EQ.ZERO ) THEN
2653
+ * by
2654
+ * IF( (MAX( ABSAKK, COLMAX ).EQ.ZERO) .OR. SISNAN(ABSAKK) ) THEN
2655
+ *
2656
+ * 01-01-96 - Based on modifications by
2657
+ * J. Lewis, Boeing Computer Services Company
2658
+ * A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
2659
+ *
2660
+ * If UPLO = 'U', then A = U*D*U', where
2661
+ * U = P(n)*U(n)* ... *P(k)U(k)* ...,
2662
+ * i.e., U is a product of terms P(k)*U(k), where k decreases from n to
2663
+ * 1 in steps of 1 or 2, and D is a block diagonal matrix with 1-by-1
2664
+ * and 2-by-2 diagonal blocks D(k). P(k) is a permutation matrix as
2665
+ * defined by IPIV(k), and U(k) is a unit upper triangular matrix, such
2666
+ * that if the diagonal block D(k) is of order s (s = 1 or 2), then
2667
+ *
2668
+ * ( I v 0 ) k-s
2669
+ * U(k) = ( 0 I 0 ) s
2670
+ * ( 0 0 I ) n-k
2671
+ * k-s s n-k
2672
+ *
2673
+ * If s = 1, D(k) overwrites A(k,k), and v overwrites A(1:k-1,k).
2674
+ * If s = 2, the upper triangle of D(k) overwrites A(k-1,k-1), A(k-1,k),
2675
+ * and A(k,k), and v overwrites A(1:k-2,k-1:k).
2676
+ *
2677
+ * If UPLO = 'L', then A = L*D*L', where
2678
+ * L = P(1)*L(1)* ... *P(k)*L(k)* ...,
2679
+ * i.e., L is a product of terms P(k)*L(k), where k increases from 1 to
2680
+ * n in steps of 1 or 2, and D is a block diagonal matrix with 1-by-1
2681
+ * and 2-by-2 diagonal blocks D(k). P(k) is a permutation matrix as
2682
+ * defined by IPIV(k), and L(k) is a unit lower triangular matrix, such
2683
+ * that if the diagonal block D(k) is of order s (s = 1 or 2), then
2684
+ *
2685
+ * ( I 0 0 ) k-1
2686
+ * L(k) = ( 0 I 0 ) s
2687
+ * ( 0 v I ) n-k-s+1
2688
+ * k-1 s n-k-s+1
2689
+ *
2690
+ * If s = 1, D(k) overwrites A(k,k), and v overwrites A(k+1:n,k).
2691
+ * If s = 2, the lower triangle of D(k) overwrites A(k,k), A(k+1,k),
2692
+ * and A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).
2693
+ *
2694
+ * =====================================================================
2695
+ *
2696
+
2697
+
2698
+ </PRE>
2699
+ <A HREF="#top">go to the page top</A>
2700
+
2701
+ <A NAME="chetrd"></A>
2702
+ <H2>chetrd</H2>
2703
+ <PRE>
2704
+ USAGE:
2705
+ d, e, tau, work, info, a = NumRu::Lapack.chetrd( uplo, a, lwork, [:usage => usage, :help => help])
2706
+
2707
+
2708
+ FORTRAN MANUAL
2709
+ SUBROUTINE CHETRD( UPLO, N, A, LDA, D, E, TAU, WORK, LWORK, INFO )
2710
+
2711
+ * Purpose
2712
+ * =======
2713
+ *
2714
+ * CHETRD reduces a complex Hermitian matrix A to real symmetric
2715
+ * tridiagonal form T by a unitary similarity transformation:
2716
+ * Q**H * A * Q = T.
2717
+ *
2718
+
2719
+ * Arguments
2720
+ * =========
2721
+ *
2722
+ * UPLO (input) CHARACTER*1
2723
+ * = 'U': Upper triangle of A is stored;
2724
+ * = 'L': Lower triangle of A is stored.
2725
+ *
2726
+ * N (input) INTEGER
2727
+ * The order of the matrix A. N >= 0.
2728
+ *
2729
+ * A (input/output) COMPLEX array, dimension (LDA,N)
2730
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the leading
2731
+ * N-by-N upper triangular part of A contains the upper
2732
+ * triangular part of the matrix A, and the strictly lower
2733
+ * triangular part of A is not referenced. If UPLO = 'L', the
2734
+ * leading N-by-N lower triangular part of A contains the lower
2735
+ * triangular part of the matrix A, and the strictly upper
2736
+ * triangular part of A is not referenced.
2737
+ * On exit, if UPLO = 'U', the diagonal and first superdiagonal
2738
+ * of A are overwritten by the corresponding elements of the
2739
+ * tridiagonal matrix T, and the elements above the first
2740
+ * superdiagonal, with the array TAU, represent the unitary
2741
+ * matrix Q as a product of elementary reflectors; if UPLO
2742
+ * = 'L', the diagonal and first subdiagonal of A are over-
2743
+ * written by the corresponding elements of the tridiagonal
2744
+ * matrix T, and the elements below the first subdiagonal, with
2745
+ * the array TAU, represent the unitary matrix Q as a product
2746
+ * of elementary reflectors. See Further Details.
2747
+ *
2748
+ * LDA (input) INTEGER
2749
+ * The leading dimension of the array A. LDA >= max(1,N).
2750
+ *
2751
+ * D (output) REAL array, dimension (N)
2752
+ * The diagonal elements of the tridiagonal matrix T:
2753
+ * D(i) = A(i,i).
2754
+ *
2755
+ * E (output) REAL array, dimension (N-1)
2756
+ * The off-diagonal elements of the tridiagonal matrix T:
2757
+ * E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
2758
+ *
2759
+ * TAU (output) COMPLEX array, dimension (N-1)
2760
+ * The scalar factors of the elementary reflectors (see Further
2761
+ * Details).
2762
+ *
2763
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
2764
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
2765
+ *
2766
+ * LWORK (input) INTEGER
2767
+ * The dimension of the array WORK. LWORK >= 1.
2768
+ * For optimum performance LWORK >= N*NB, where NB is the
2769
+ * optimal blocksize.
2770
+ *
2771
+ * If LWORK = -1, then a workspace query is assumed; the routine
2772
+ * only calculates the optimal size of the WORK array, returns
2773
+ * this value as the first entry of the WORK array, and no error
2774
+ * message related to LWORK is issued by XERBLA.
2775
+ *
2776
+ * INFO (output) INTEGER
2777
+ * = 0: successful exit
2778
+ * < 0: if INFO = -i, the i-th argument had an illegal value
2779
+ *
2780
+
2781
+ * Further Details
2782
+ * ===============
2783
+ *
2784
+ * If UPLO = 'U', the matrix Q is represented as a product of elementary
2785
+ * reflectors
2786
+ *
2787
+ * Q = H(n-1) . . . H(2) H(1).
2788
+ *
2789
+ * Each H(i) has the form
2790
+ *
2791
+ * H(i) = I - tau * v * v'
2792
+ *
2793
+ * where tau is a complex scalar, and v is a complex vector with
2794
+ * v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in
2795
+ * A(1:i-1,i+1), and tau in TAU(i).
2796
+ *
2797
+ * If UPLO = 'L', the matrix Q is represented as a product of elementary
2798
+ * reflectors
2799
+ *
2800
+ * Q = H(1) H(2) . . . H(n-1).
2801
+ *
2802
+ * Each H(i) has the form
2803
+ *
2804
+ * H(i) = I - tau * v * v'
2805
+ *
2806
+ * where tau is a complex scalar, and v is a complex vector with
2807
+ * v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in A(i+2:n,i),
2808
+ * and tau in TAU(i).
2809
+ *
2810
+ * The contents of A on exit are illustrated by the following examples
2811
+ * with n = 5:
2812
+ *
2813
+ * if UPLO = 'U': if UPLO = 'L':
2814
+ *
2815
+ * ( d e v2 v3 v4 ) ( d )
2816
+ * ( d e v3 v4 ) ( e d )
2817
+ * ( d e v4 ) ( v1 e d )
2818
+ * ( d e ) ( v1 v2 e d )
2819
+ * ( d ) ( v1 v2 v3 e d )
2820
+ *
2821
+ * where d and e denote diagonal and off-diagonal elements of T, and vi
2822
+ * denotes an element of the vector defining H(i).
2823
+ *
2824
+ * =====================================================================
2825
+ *
2826
+
2827
+
2828
+ </PRE>
2829
+ <A HREF="#top">go to the page top</A>
2830
+
2831
+ <A NAME="chetrf"></A>
2832
+ <H2>chetrf</H2>
2833
+ <PRE>
2834
+ USAGE:
2835
+ ipiv, work, info, a = NumRu::Lapack.chetrf( uplo, a, lwork, [:usage => usage, :help => help])
2836
+
2837
+
2838
+ FORTRAN MANUAL
2839
+ SUBROUTINE CHETRF( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )
2840
+
2841
+ * Purpose
2842
+ * =======
2843
+ *
2844
+ * CHETRF computes the factorization of a complex Hermitian matrix A
2845
+ * using the Bunch-Kaufman diagonal pivoting method. The form of the
2846
+ * factorization is
2847
+ *
2848
+ * A = U*D*U**H or A = L*D*L**H
2849
+ *
2850
+ * where U (or L) is a product of permutation and unit upper (lower)
2851
+ * triangular matrices, and D is Hermitian and block diagonal with
2852
+ * 1-by-1 and 2-by-2 diagonal blocks.
2853
+ *
2854
+ * This is the blocked version of the algorithm, calling Level 3 BLAS.
2855
+ *
2856
+
2857
+ * Arguments
2858
+ * =========
2859
+ *
2860
+ * UPLO (input) CHARACTER*1
2861
+ * = 'U': Upper triangle of A is stored;
2862
+ * = 'L': Lower triangle of A is stored.
2863
+ *
2864
+ * N (input) INTEGER
2865
+ * The order of the matrix A. N >= 0.
2866
+ *
2867
+ * A (input/output) COMPLEX array, dimension (LDA,N)
2868
+ * On entry, the Hermitian matrix A. If UPLO = 'U', the leading
2869
+ * N-by-N upper triangular part of A contains the upper
2870
+ * triangular part of the matrix A, and the strictly lower
2871
+ * triangular part of A is not referenced. If UPLO = 'L', the
2872
+ * leading N-by-N lower triangular part of A contains the lower
2873
+ * triangular part of the matrix A, and the strictly upper
2874
+ * triangular part of A is not referenced.
2875
+ *
2876
+ * On exit, the block diagonal matrix D and the multipliers used
2877
+ * to obtain the factor U or L (see below for further details).
2878
+ *
2879
+ * LDA (input) INTEGER
2880
+ * The leading dimension of the array A. LDA >= max(1,N).
2881
+ *
2882
+ * IPIV (output) INTEGER array, dimension (N)
2883
+ * Details of the interchanges and the block structure of D.
2884
+ * If IPIV(k) > 0, then rows and columns k and IPIV(k) were
2885
+ * interchanged and D(k,k) is a 1-by-1 diagonal block.
2886
+ * If UPLO = 'U' and IPIV(k) = IPIV(k-1) < 0, then rows and
2887
+ * columns k-1 and -IPIV(k) were interchanged and D(k-1:k,k-1:k)
2888
+ * is a 2-by-2 diagonal block. If UPLO = 'L' and IPIV(k) =
2889
+ * IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k) were
2890
+ * interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
2891
+ *
2892
+ * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
2893
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
2894
+ *
2895
+ * LWORK (input) INTEGER
2896
+ * The length of WORK. LWORK >=1. For best performance
2897
+ * LWORK >= N*NB, where NB is the block size returned by ILAENV.
2898
+ *
2899
+ * INFO (output) INTEGER
2900
+ * = 0: successful exit
2901
+ * < 0: if INFO = -i, the i-th argument had an illegal value
2902
+ * > 0: if INFO = i, D(i,i) is exactly zero. The factorization
2903
+ * has been completed, but the block diagonal matrix D is
2904
+ * exactly singular, and division by zero will occur if it
2905
+ * is used to solve a system of equations.
2906
+ *
2907
+
2908
+ * Further Details
2909
+ * ===============
2910
+ *
2911
+ * If UPLO = 'U', then A = U*D*U', where
2912
+ * U = P(n)*U(n)* ... *P(k)U(k)* ...,
2913
+ * i.e., U is a product of terms P(k)*U(k), where k decreases from n to
2914
+ * 1 in steps of 1 or 2, and D is a block diagonal matrix with 1-by-1
2915
+ * and 2-by-2 diagonal blocks D(k). P(k) is a permutation matrix as
2916
+ * defined by IPIV(k), and U(k) is a unit upper triangular matrix, such
2917
+ * that if the diagonal block D(k) is of order s (s = 1 or 2), then
2918
+ *
2919
+ * ( I v 0 ) k-s
2920
+ * U(k) = ( 0 I 0 ) s
2921
+ * ( 0 0 I ) n-k
2922
+ * k-s s n-k
2923
+ *
2924
+ * If s = 1, D(k) overwrites A(k,k), and v overwrites A(1:k-1,k).
2925
+ * If s = 2, the upper triangle of D(k) overwrites A(k-1,k-1), A(k-1,k),
2926
+ * and A(k,k), and v overwrites A(1:k-2,k-1:k).
2927
+ *
2928
+ * If UPLO = 'L', then A = L*D*L', where
2929
+ * L = P(1)*L(1)* ... *P(k)*L(k)* ...,
2930
+ * i.e., L is a product of terms P(k)*L(k), where k increases from 1 to
2931
+ * n in steps of 1 or 2, and D is a block diagonal matrix with 1-by-1
2932
+ * and 2-by-2 diagonal blocks D(k). P(k) is a permutation matrix as
2933
+ * defined by IPIV(k), and L(k) is a unit lower triangular matrix, such
2934
+ * that if the diagonal block D(k) is of order s (s = 1 or 2), then
2935
+ *
2936
+ * ( I 0 0 ) k-1
2937
+ * L(k) = ( 0 I 0 ) s
2938
+ * ( 0 v I ) n-k-s+1
2939
+ * k-1 s n-k-s+1
2940
+ *
2941
+ * If s = 1, D(k) overwrites A(k,k), and v overwrites A(k+1:n,k).
2942
+ * If s = 2, the lower triangle of D(k) overwrites A(k,k), A(k+1,k),
2943
+ * and A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).
2944
+ *
2945
+ * =====================================================================
2946
+ *
2947
+ * .. Local Scalars ..
2948
+ LOGICAL LQUERY, UPPER
2949
+ INTEGER IINFO, IWS, J, K, KB, LDWORK, LWKOPT, NB, NBMIN
2950
+ * ..
2951
+ * .. External Functions ..
2952
+ LOGICAL LSAME
2953
+ INTEGER ILAENV
2954
+ EXTERNAL LSAME, ILAENV
2955
+ * ..
2956
+ * .. External Subroutines ..
2957
+ EXTERNAL CHETF2, CLAHEF, XERBLA
2958
+ * ..
2959
+ * .. Intrinsic Functions ..
2960
+ INTRINSIC MAX
2961
+ * ..
2962
+
2963
+
2964
+ </PRE>
2965
+ <A HREF="#top">go to the page top</A>
2966
+
2967
+ <A NAME="chetri"></A>
2968
+ <H2>chetri</H2>
2969
+ <PRE>
2970
+ USAGE:
2971
+ info, a = NumRu::Lapack.chetri( uplo, a, ipiv, [:usage => usage, :help => help])
2972
+
2973
+
2974
+ FORTRAN MANUAL
2975
+ SUBROUTINE CHETRI( UPLO, N, A, LDA, IPIV, WORK, INFO )
2976
+
2977
+ * Purpose
2978
+ * =======
2979
+ *
2980
+ * CHETRI computes the inverse of a complex Hermitian indefinite matrix
2981
+ * A using the factorization A = U*D*U**H or A = L*D*L**H computed by
2982
+ * CHETRF.
2983
+ *
2984
+
2985
+ * Arguments
2986
+ * =========
2987
+ *
2988
+ * UPLO (input) CHARACTER*1
2989
+ * Specifies whether the details of the factorization are stored
2990
+ * as an upper or lower triangular matrix.
2991
+ * = 'U': Upper triangular, form is A = U*D*U**H;
2992
+ * = 'L': Lower triangular, form is A = L*D*L**H.
2993
+ *
2994
+ * N (input) INTEGER
2995
+ * The order of the matrix A. N >= 0.
2996
+ *
2997
+ * A (input/output) COMPLEX array, dimension (LDA,N)
2998
+ * On entry, the block diagonal matrix D and the multipliers
2999
+ * used to obtain the factor U or L as computed by CHETRF.
3000
+ *
3001
+ * On exit, if INFO = 0, the (Hermitian) inverse of the original
3002
+ * matrix. If UPLO = 'U', the upper triangular part of the
3003
+ * inverse is formed and the part of A below the diagonal is not
3004
+ * referenced; if UPLO = 'L' the lower triangular part of the
3005
+ * inverse is formed and the part of A above the diagonal is
3006
+ * not referenced.
3007
+ *
3008
+ * LDA (input) INTEGER
3009
+ * The leading dimension of the array A. LDA >= max(1,N).
3010
+ *
3011
+ * IPIV (input) INTEGER array, dimension (N)
3012
+ * Details of the interchanges and the block structure of D
3013
+ * as determined by CHETRF.
3014
+ *
3015
+ * WORK (workspace) COMPLEX array, dimension (N)
3016
+ *
3017
+ * INFO (output) INTEGER
3018
+ * = 0: successful exit
3019
+ * < 0: if INFO = -i, the i-th argument had an illegal value
3020
+ * > 0: if INFO = i, D(i,i) = 0; the matrix is singular and its
3021
+ * inverse could not be computed.
3022
+ *
3023
+
3024
+ * =====================================================================
3025
+ *
3026
+
3027
+
3028
+ </PRE>
3029
+ <A HREF="#top">go to the page top</A>
3030
+
3031
+ <A NAME="chetrs"></A>
3032
+ <H2>chetrs</H2>
3033
+ <PRE>
3034
+ USAGE:
3035
+ info, b = NumRu::Lapack.chetrs( uplo, a, ipiv, b, [:usage => usage, :help => help])
3036
+
3037
+
3038
+ FORTRAN MANUAL
3039
+ SUBROUTINE CHETRS( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO )
3040
+
3041
+ * Purpose
3042
+ * =======
3043
+ *
3044
+ * CHETRS solves a system of linear equations A*X = B with a complex
3045
+ * Hermitian matrix A using the factorization A = U*D*U**H or
3046
+ * A = L*D*L**H computed by CHETRF.
3047
+ *
3048
+
3049
+ * Arguments
3050
+ * =========
3051
+ *
3052
+ * UPLO (input) CHARACTER*1
3053
+ * Specifies whether the details of the factorization are stored
3054
+ * as an upper or lower triangular matrix.
3055
+ * = 'U': Upper triangular, form is A = U*D*U**H;
3056
+ * = 'L': Lower triangular, form is A = L*D*L**H.
3057
+ *
3058
+ * N (input) INTEGER
3059
+ * The order of the matrix A. N >= 0.
3060
+ *
3061
+ * NRHS (input) INTEGER
3062
+ * The number of right hand sides, i.e., the number of columns
3063
+ * of the matrix B. NRHS >= 0.
3064
+ *
3065
+ * A (input) COMPLEX array, dimension (LDA,N)
3066
+ * The block diagonal matrix D and the multipliers used to
3067
+ * obtain the factor U or L as computed by CHETRF.
3068
+ *
3069
+ * LDA (input) INTEGER
3070
+ * The leading dimension of the array A. LDA >= max(1,N).
3071
+ *
3072
+ * IPIV (input) INTEGER array, dimension (N)
3073
+ * Details of the interchanges and the block structure of D
3074
+ * as determined by CHETRF.
3075
+ *
3076
+ * B (input/output) COMPLEX array, dimension (LDB,NRHS)
3077
+ * On entry, the right hand side matrix B.
3078
+ * On exit, the solution matrix X.
3079
+ *
3080
+ * LDB (input) INTEGER
3081
+ * The leading dimension of the array B. LDB >= max(1,N).
3082
+ *
3083
+ * INFO (output) INTEGER
3084
+ * = 0: successful exit
3085
+ * < 0: if INFO = -i, the i-th argument had an illegal value
3086
+ *
3087
+
3088
+ * =====================================================================
3089
+ *
3090
+
3091
+
3092
+ </PRE>
3093
+ <A HREF="#top">go to the page top</A>
3094
+
3095
+ <A NAME="chetrs2"></A>
3096
+ <H2>chetrs2</H2>
3097
+ <PRE>
3098
+ USAGE:
3099
+ info, b = NumRu::Lapack.chetrs2( uplo, a, ipiv, b, [:usage => usage, :help => help])
3100
+
3101
+
3102
+ FORTRAN MANUAL
3103
+ SUBROUTINE CHETRS2( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, INFO )
3104
+
3105
+ * Purpose
3106
+ * =======
3107
+ *
3108
+ * CHETRS2 solves a system of linear equations A*X = B with a COMPLEX
3109
+ * Hermitian matrix A using the factorization A = U*D*U**T or
3110
+ * A = L*D*L**T computed by CSYTRF and converted by CSYCONV.
3111
+ *
3112
+
3113
+ * Arguments
3114
+ * =========
3115
+ *
3116
+ * UPLO (input) CHARACTER*1
3117
+ * Specifies whether the details of the factorization are stored
3118
+ * as an upper or lower triangular matrix.
3119
+ * = 'U': Upper triangular, form is A = U*D*U**H;
3120
+ * = 'L': Lower triangular, form is A = L*D*L**H.
3121
+ *
3122
+ * N (input) INTEGER
3123
+ * The order of the matrix A. N >= 0.
3124
+ *
3125
+ * NRHS (input) INTEGER
3126
+ * The number of right hand sides, i.e., the number of columns
3127
+ * of the matrix B. NRHS >= 0.
3128
+ *
3129
+ * A (input) COMPLEX array, dimension (LDA,N)
3130
+ * The block diagonal matrix D and the multipliers used to
3131
+ * obtain the factor U or L as computed by CHETRF.
3132
+ *
3133
+ * LDA (input) INTEGER
3134
+ * The leading dimension of the array A. LDA >= max(1,N).
3135
+ *
3136
+ * IPIV (input) INTEGER array, dimension (N)
3137
+ * Details of the interchanges and the block structure of D
3138
+ * as determined by CHETRF.
3139
+ *
3140
+ * B (input/output) COMPLEX array, dimension (LDB,NRHS)
3141
+ * On entry, the right hand side matrix B.
3142
+ * On exit, the solution matrix X.
3143
+ *
3144
+ * LDB (input) INTEGER
3145
+ * The leading dimension of the array B. LDB >= max(1,N).
3146
+ *
3147
+ * WORK (workspace) COMPLEX array, dimension (N)
3148
+ *
3149
+ * INFO (output) INTEGER
3150
+ * = 0: successful exit
3151
+ * < 0: if INFO = -i, the i-th argument had an illegal value
3152
+ *
3153
+
3154
+ * =====================================================================
3155
+ *
3156
+
3157
+
3158
+ </PRE>
3159
+ <A HREF="#top">go to the page top</A>
3160
+
3161
+ <HR />
3162
+ <A HREF="c.html">back to matrix types</A><BR>
3163
+ <A HREF="c.html">back to data types</A>
3164
+ </BODY>
3165
+ </HTML>