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/dtb.html ADDED
@@ -0,0 +1,284 @@
1
+ <HTML>
2
+ <HEAD>
3
+ <TITLE>DOUBLE PRECISION routines for triangular band matrix</TITLE>
4
+ </HEAD>
5
+ <BODY>
6
+ <A NAME="top"></A>
7
+ <H1>DOUBLE PRECISION routines for triangular band matrix</H1>
8
+ <UL>
9
+ <LI><A HREF="#dtbcon">dtbcon</A></LI>
10
+ <LI><A HREF="#dtbrfs">dtbrfs</A></LI>
11
+ <LI><A HREF="#dtbtrs">dtbtrs</A></LI>
12
+ </UL>
13
+
14
+ <A NAME="dtbcon"></A>
15
+ <H2>dtbcon</H2>
16
+ <PRE>
17
+ USAGE:
18
+ rcond, info = NumRu::Lapack.dtbcon( norm, uplo, diag, kd, ab, [:usage => usage, :help => help])
19
+
20
+
21
+ FORTRAN MANUAL
22
+ SUBROUTINE DTBCON( NORM, UPLO, DIAG, N, KD, AB, LDAB, RCOND, WORK, IWORK, INFO )
23
+
24
+ * Purpose
25
+ * =======
26
+ *
27
+ * DTBCON estimates the reciprocal of the condition number of a
28
+ * triangular band matrix A, in either the 1-norm or the infinity-norm.
29
+ *
30
+ * The norm of A is computed and an estimate is obtained for
31
+ * norm(inv(A)), then the reciprocal of the condition number is
32
+ * computed as
33
+ * RCOND = 1 / ( norm(A) * norm(inv(A)) ).
34
+ *
35
+
36
+ * Arguments
37
+ * =========
38
+ *
39
+ * NORM (input) CHARACTER*1
40
+ * Specifies whether the 1-norm condition number or the
41
+ * infinity-norm condition number is required:
42
+ * = '1' or 'O': 1-norm;
43
+ * = 'I': Infinity-norm.
44
+ *
45
+ * UPLO (input) CHARACTER*1
46
+ * = 'U': A is upper triangular;
47
+ * = 'L': A is lower triangular.
48
+ *
49
+ * DIAG (input) CHARACTER*1
50
+ * = 'N': A is non-unit triangular;
51
+ * = 'U': A is unit triangular.
52
+ *
53
+ * N (input) INTEGER
54
+ * The order of the matrix A. N >= 0.
55
+ *
56
+ * KD (input) INTEGER
57
+ * The number of superdiagonals or subdiagonals of the
58
+ * triangular band matrix A. KD >= 0.
59
+ *
60
+ * AB (input) DOUBLE PRECISION array, dimension (LDAB,N)
61
+ * The upper or lower triangular band matrix A, stored in the
62
+ * first kd+1 rows of the array. The j-th column of A is stored
63
+ * in the j-th column of the array AB as follows:
64
+ * if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
65
+ * if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).
66
+ * If DIAG = 'U', the diagonal elements of A are not referenced
67
+ * and are assumed to be 1.
68
+ *
69
+ * LDAB (input) INTEGER
70
+ * The leading dimension of the array AB. LDAB >= KD+1.
71
+ *
72
+ * RCOND (output) DOUBLE PRECISION
73
+ * The reciprocal of the condition number of the matrix A,
74
+ * computed as RCOND = 1/(norm(A) * norm(inv(A))).
75
+ *
76
+ * WORK (workspace) DOUBLE PRECISION array, dimension (3*N)
77
+ *
78
+ * IWORK (workspace) INTEGER array, dimension (N)
79
+ *
80
+ * INFO (output) INTEGER
81
+ * = 0: successful exit
82
+ * < 0: if INFO = -i, the i-th argument had an illegal value
83
+ *
84
+
85
+ * =====================================================================
86
+ *
87
+
88
+
89
+ </PRE>
90
+ <A HREF="#top">go to the page top</A>
91
+
92
+ <A NAME="dtbrfs"></A>
93
+ <H2>dtbrfs</H2>
94
+ <PRE>
95
+ USAGE:
96
+ ferr, berr, info = NumRu::Lapack.dtbrfs( uplo, trans, diag, kd, ab, b, x, [:usage => usage, :help => help])
97
+
98
+
99
+ FORTRAN MANUAL
100
+ SUBROUTINE DTBRFS( UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO )
101
+
102
+ * Purpose
103
+ * =======
104
+ *
105
+ * DTBRFS provides error bounds and backward error estimates for the
106
+ * solution to a system of linear equations with a triangular band
107
+ * coefficient matrix.
108
+ *
109
+ * The solution matrix X must be computed by DTBTRS or some other
110
+ * means before entering this routine. DTBRFS does not do iterative
111
+ * refinement because doing so cannot improve the backward error.
112
+ *
113
+
114
+ * Arguments
115
+ * =========
116
+ *
117
+ * UPLO (input) CHARACTER*1
118
+ * = 'U': A is upper triangular;
119
+ * = 'L': A is lower triangular.
120
+ *
121
+ * TRANS (input) CHARACTER*1
122
+ * Specifies the form of the system of equations:
123
+ * = 'N': A * X = B (No transpose)
124
+ * = 'T': A**T * X = B (Transpose)
125
+ * = 'C': A**H * X = B (Conjugate transpose = Transpose)
126
+ *
127
+ * DIAG (input) CHARACTER*1
128
+ * = 'N': A is non-unit triangular;
129
+ * = 'U': A is unit triangular.
130
+ *
131
+ * N (input) INTEGER
132
+ * The order of the matrix A. N >= 0.
133
+ *
134
+ * KD (input) INTEGER
135
+ * The number of superdiagonals or subdiagonals of the
136
+ * triangular band matrix A. KD >= 0.
137
+ *
138
+ * NRHS (input) INTEGER
139
+ * The number of right hand sides, i.e., the number of columns
140
+ * of the matrices B and X. NRHS >= 0.
141
+ *
142
+ * AB (input) DOUBLE PRECISION array, dimension (LDAB,N)
143
+ * The upper or lower triangular band matrix A, stored in the
144
+ * first kd+1 rows of the array. The j-th column of A is stored
145
+ * in the j-th column of the array AB as follows:
146
+ * if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
147
+ * if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).
148
+ * If DIAG = 'U', the diagonal elements of A are not referenced
149
+ * and are assumed to be 1.
150
+ *
151
+ * LDAB (input) INTEGER
152
+ * The leading dimension of the array AB. LDAB >= KD+1.
153
+ *
154
+ * B (input) DOUBLE PRECISION array, dimension (LDB,NRHS)
155
+ * The right hand side matrix B.
156
+ *
157
+ * LDB (input) INTEGER
158
+ * The leading dimension of the array B. LDB >= max(1,N).
159
+ *
160
+ * X (input) DOUBLE PRECISION array, dimension (LDX,NRHS)
161
+ * The solution matrix X.
162
+ *
163
+ * LDX (input) INTEGER
164
+ * The leading dimension of the array X. LDX >= max(1,N).
165
+ *
166
+ * FERR (output) DOUBLE PRECISION array, dimension (NRHS)
167
+ * The estimated forward error bound for each solution vector
168
+ * X(j) (the j-th column of the solution matrix X).
169
+ * If XTRUE is the true solution corresponding to X(j), FERR(j)
170
+ * is an estimated upper bound for the magnitude of the largest
171
+ * element in (X(j) - XTRUE) divided by the magnitude of the
172
+ * largest element in X(j). The estimate is as reliable as
173
+ * the estimate for RCOND, and is almost always a slight
174
+ * overestimate of the true error.
175
+ *
176
+ * BERR (output) DOUBLE PRECISION array, dimension (NRHS)
177
+ * The componentwise relative backward error of each solution
178
+ * vector X(j) (i.e., the smallest relative change in
179
+ * any element of A or B that makes X(j) an exact solution).
180
+ *
181
+ * WORK (workspace) DOUBLE PRECISION array, dimension (3*N)
182
+ *
183
+ * IWORK (workspace) INTEGER array, dimension (N)
184
+ *
185
+ * INFO (output) INTEGER
186
+ * = 0: successful exit
187
+ * < 0: if INFO = -i, the i-th argument had an illegal value
188
+ *
189
+
190
+ * =====================================================================
191
+ *
192
+
193
+
194
+ </PRE>
195
+ <A HREF="#top">go to the page top</A>
196
+
197
+ <A NAME="dtbtrs"></A>
198
+ <H2>dtbtrs</H2>
199
+ <PRE>
200
+ USAGE:
201
+ info, b = NumRu::Lapack.dtbtrs( uplo, trans, diag, kd, ab, b, [:usage => usage, :help => help])
202
+
203
+
204
+ FORTRAN MANUAL
205
+ SUBROUTINE DTBTRS( UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, INFO )
206
+
207
+ * Purpose
208
+ * =======
209
+ *
210
+ * DTBTRS solves a triangular system of the form
211
+ *
212
+ * A * X = B or A**T * X = B,
213
+ *
214
+ * where A is a triangular band matrix of order N, and B is an
215
+ * N-by NRHS matrix. A check is made to verify that A is nonsingular.
216
+ *
217
+
218
+ * Arguments
219
+ * =========
220
+ *
221
+ * UPLO (input) CHARACTER*1
222
+ * = 'U': A is upper triangular;
223
+ * = 'L': A is lower triangular.
224
+ *
225
+ * TRANS (input) CHARACTER*1
226
+ * Specifies the form the system of equations:
227
+ * = 'N': A * X = B (No transpose)
228
+ * = 'T': A**T * X = B (Transpose)
229
+ * = 'C': A**H * X = B (Conjugate transpose = Transpose)
230
+ *
231
+ * DIAG (input) CHARACTER*1
232
+ * = 'N': A is non-unit triangular;
233
+ * = 'U': A is unit triangular.
234
+ *
235
+ * N (input) INTEGER
236
+ * The order of the matrix A. N >= 0.
237
+ *
238
+ * KD (input) INTEGER
239
+ * The number of superdiagonals or subdiagonals of the
240
+ * triangular band matrix A. KD >= 0.
241
+ *
242
+ * NRHS (input) INTEGER
243
+ * The number of right hand sides, i.e., the number of columns
244
+ * of the matrix B. NRHS >= 0.
245
+ *
246
+ * AB (input) DOUBLE PRECISION array, dimension (LDAB,N)
247
+ * The upper or lower triangular band matrix A, stored in the
248
+ * first kd+1 rows of AB. The j-th column of A is stored
249
+ * in the j-th column of the array AB as follows:
250
+ * if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
251
+ * if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).
252
+ * If DIAG = 'U', the diagonal elements of A are not referenced
253
+ * and are assumed to be 1.
254
+ *
255
+ * LDAB (input) INTEGER
256
+ * The leading dimension of the array AB. LDAB >= KD+1.
257
+ *
258
+ * B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)
259
+ * On entry, the right hand side matrix B.
260
+ * On exit, if INFO = 0, the solution matrix X.
261
+ *
262
+ * LDB (input) INTEGER
263
+ * The leading dimension of the array B. LDB >= max(1,N).
264
+ *
265
+ * INFO (output) INTEGER
266
+ * = 0: successful exit
267
+ * < 0: if INFO = -i, the i-th argument had an illegal value
268
+ * > 0: if INFO = i, the i-th diagonal element of A is zero,
269
+ * indicating that the matrix is singular and the
270
+ * solutions X have not been computed.
271
+ *
272
+
273
+ * =====================================================================
274
+ *
275
+
276
+
277
+ </PRE>
278
+ <A HREF="#top">go to the page top</A>
279
+
280
+ <HR />
281
+ <A HREF="d.html">back to matrix types</A><BR>
282
+ <A HREF="d.html">back to data types</A>
283
+ </BODY>
284
+ </HTML>
data/doc/dtg.html ADDED
@@ -0,0 +1,1730 @@
1
+ <HTML>
2
+ <HEAD>
3
+ <TITLE>DOUBLE PRECISION routines for triangular matrices, generalized problem (i.e., a pair of triangular matrices) matrix</TITLE>
4
+ </HEAD>
5
+ <BODY>
6
+ <A NAME="top"></A>
7
+ <H1>DOUBLE PRECISION routines for triangular matrices, generalized problem (i.e., a pair of triangular matrices) matrix</H1>
8
+ <UL>
9
+ <LI><A HREF="#dtgevc">dtgevc</A></LI>
10
+ <LI><A HREF="#dtgex2">dtgex2</A></LI>
11
+ <LI><A HREF="#dtgexc">dtgexc</A></LI>
12
+ <LI><A HREF="#dtgsen">dtgsen</A></LI>
13
+ <LI><A HREF="#dtgsja">dtgsja</A></LI>
14
+ <LI><A HREF="#dtgsna">dtgsna</A></LI>
15
+ <LI><A HREF="#dtgsy2">dtgsy2</A></LI>
16
+ <LI><A HREF="#dtgsyl">dtgsyl</A></LI>
17
+ </UL>
18
+
19
+ <A NAME="dtgevc"></A>
20
+ <H2>dtgevc</H2>
21
+ <PRE>
22
+ USAGE:
23
+ m, info, vl, vr = NumRu::Lapack.dtgevc( side, howmny, select, s, p, vl, vr, [:usage => usage, :help => help])
24
+
25
+
26
+ FORTRAN MANUAL
27
+ SUBROUTINE DTGEVC( SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, INFO )
28
+
29
+ * Purpose
30
+ * =======
31
+ *
32
+ * DTGEVC computes some or all of the right and/or left eigenvectors of
33
+ * a pair of real matrices (S,P), where S is a quasi-triangular matrix
34
+ * and P is upper triangular. Matrix pairs of this type are produced by
35
+ * the generalized Schur factorization of a matrix pair (A,B):
36
+ *
37
+ * A = Q*S*Z**T, B = Q*P*Z**T
38
+ *
39
+ * as computed by DGGHRD + DHGEQZ.
40
+ *
41
+ * The right eigenvector x and the left eigenvector y of (S,P)
42
+ * corresponding to an eigenvalue w are defined by:
43
+ *
44
+ * S*x = w*P*x, (y**H)*S = w*(y**H)*P,
45
+ *
46
+ * where y**H denotes the conjugate tranpose of y.
47
+ * The eigenvalues are not input to this routine, but are computed
48
+ * directly from the diagonal blocks of S and P.
49
+ *
50
+ * This routine returns the matrices X and/or Y of right and left
51
+ * eigenvectors of (S,P), or the products Z*X and/or Q*Y,
52
+ * where Z and Q are input matrices.
53
+ * If Q and Z are the orthogonal factors from the generalized Schur
54
+ * factorization of a matrix pair (A,B), then Z*X and Q*Y
55
+ * are the matrices of right and left eigenvectors of (A,B).
56
+ *
57
+
58
+ * Arguments
59
+ * =========
60
+ *
61
+ * SIDE (input) CHARACTER*1
62
+ * = 'R': compute right eigenvectors only;
63
+ * = 'L': compute left eigenvectors only;
64
+ * = 'B': compute both right and left eigenvectors.
65
+ *
66
+ * HOWMNY (input) CHARACTER*1
67
+ * = 'A': compute all right and/or left eigenvectors;
68
+ * = 'B': compute all right and/or left eigenvectors,
69
+ * backtransformed by the matrices in VR and/or VL;
70
+ * = 'S': compute selected right and/or left eigenvectors,
71
+ * specified by the logical array SELECT.
72
+ *
73
+ * SELECT (input) LOGICAL array, dimension (N)
74
+ * If HOWMNY='S', SELECT specifies the eigenvectors to be
75
+ * computed. If w(j) is a real eigenvalue, the corresponding
76
+ * real eigenvector is computed if SELECT(j) is .TRUE..
77
+ * If w(j) and w(j+1) are the real and imaginary parts of a
78
+ * complex eigenvalue, the corresponding complex eigenvector
79
+ * is computed if either SELECT(j) or SELECT(j+1) is .TRUE.,
80
+ * and on exit SELECT(j) is set to .TRUE. and SELECT(j+1) is
81
+ * set to .FALSE..
82
+ * Not referenced if HOWMNY = 'A' or 'B'.
83
+ *
84
+ * N (input) INTEGER
85
+ * The order of the matrices S and P. N >= 0.
86
+ *
87
+ * S (input) DOUBLE PRECISION array, dimension (LDS,N)
88
+ * The upper quasi-triangular matrix S from a generalized Schur
89
+ * factorization, as computed by DHGEQZ.
90
+ *
91
+ * LDS (input) INTEGER
92
+ * The leading dimension of array S. LDS >= max(1,N).
93
+ *
94
+ * P (input) DOUBLE PRECISION array, dimension (LDP,N)
95
+ * The upper triangular matrix P from a generalized Schur
96
+ * factorization, as computed by DHGEQZ.
97
+ * 2-by-2 diagonal blocks of P corresponding to 2-by-2 blocks
98
+ * of S must be in positive diagonal form.
99
+ *
100
+ * LDP (input) INTEGER
101
+ * The leading dimension of array P. LDP >= max(1,N).
102
+ *
103
+ * VL (input/output) DOUBLE PRECISION array, dimension (LDVL,MM)
104
+ * On entry, if SIDE = 'L' or 'B' and HOWMNY = 'B', VL must
105
+ * contain an N-by-N matrix Q (usually the orthogonal matrix Q
106
+ * of left Schur vectors returned by DHGEQZ).
107
+ * On exit, if SIDE = 'L' or 'B', VL contains:
108
+ * if HOWMNY = 'A', the matrix Y of left eigenvectors of (S,P);
109
+ * if HOWMNY = 'B', the matrix Q*Y;
110
+ * if HOWMNY = 'S', the left eigenvectors of (S,P) specified by
111
+ * SELECT, stored consecutively in the columns of
112
+ * VL, in the same order as their eigenvalues.
113
+ *
114
+ * A complex eigenvector corresponding to a complex eigenvalue
115
+ * is stored in two consecutive columns, the first holding the
116
+ * real part, and the second the imaginary part.
117
+ *
118
+ * Not referenced if SIDE = 'R'.
119
+ *
120
+ * LDVL (input) INTEGER
121
+ * The leading dimension of array VL. LDVL >= 1, and if
122
+ * SIDE = 'L' or 'B', LDVL >= N.
123
+ *
124
+ * VR (input/output) DOUBLE PRECISION array, dimension (LDVR,MM)
125
+ * On entry, if SIDE = 'R' or 'B' and HOWMNY = 'B', VR must
126
+ * contain an N-by-N matrix Z (usually the orthogonal matrix Z
127
+ * of right Schur vectors returned by DHGEQZ).
128
+ *
129
+ * On exit, if SIDE = 'R' or 'B', VR contains:
130
+ * if HOWMNY = 'A', the matrix X of right eigenvectors of (S,P);
131
+ * if HOWMNY = 'B' or 'b', the matrix Z*X;
132
+ * if HOWMNY = 'S' or 's', the right eigenvectors of (S,P)
133
+ * specified by SELECT, stored consecutively in the
134
+ * columns of VR, in the same order as their
135
+ * eigenvalues.
136
+ *
137
+ * A complex eigenvector corresponding to a complex eigenvalue
138
+ * is stored in two consecutive columns, the first holding the
139
+ * real part and the second the imaginary part.
140
+ *
141
+ * Not referenced if SIDE = 'L'.
142
+ *
143
+ * LDVR (input) INTEGER
144
+ * The leading dimension of the array VR. LDVR >= 1, and if
145
+ * SIDE = 'R' or 'B', LDVR >= N.
146
+ *
147
+ * MM (input) INTEGER
148
+ * The number of columns in the arrays VL and/or VR. MM >= M.
149
+ *
150
+ * M (output) INTEGER
151
+ * The number of columns in the arrays VL and/or VR actually
152
+ * used to store the eigenvectors. If HOWMNY = 'A' or 'B', M
153
+ * is set to N. Each selected real eigenvector occupies one
154
+ * column and each selected complex eigenvector occupies two
155
+ * columns.
156
+ *
157
+ * WORK (workspace) DOUBLE PRECISION array, dimension (6*N)
158
+ *
159
+ * INFO (output) INTEGER
160
+ * = 0: successful exit.
161
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
162
+ * > 0: the 2-by-2 block (INFO:INFO+1) does not have a complex
163
+ * eigenvalue.
164
+ *
165
+
166
+ * Further Details
167
+ * ===============
168
+ *
169
+ * Allocation of workspace:
170
+ * ---------- -- ---------
171
+ *
172
+ * WORK( j ) = 1-norm of j-th column of A, above the diagonal
173
+ * WORK( N+j ) = 1-norm of j-th column of B, above the diagonal
174
+ * WORK( 2*N+1:3*N ) = real part of eigenvector
175
+ * WORK( 3*N+1:4*N ) = imaginary part of eigenvector
176
+ * WORK( 4*N+1:5*N ) = real part of back-transformed eigenvector
177
+ * WORK( 5*N+1:6*N ) = imaginary part of back-transformed eigenvector
178
+ *
179
+ * Rowwise vs. columnwise solution methods:
180
+ * ------- -- ---------- -------- -------
181
+ *
182
+ * Finding a generalized eigenvector consists basically of solving the
183
+ * singular triangular system
184
+ *
185
+ * (A - w B) x = 0 (for right) or: (A - w B)**H y = 0 (for left)
186
+ *
187
+ * Consider finding the i-th right eigenvector (assume all eigenvalues
188
+ * are real). The equation to be solved is:
189
+ * n i
190
+ * 0 = sum C(j,k) v(k) = sum C(j,k) v(k) for j = i,. . .,1
191
+ * k=j k=j
192
+ *
193
+ * where C = (A - w B) (The components v(i+1:n) are 0.)
194
+ *
195
+ * The "rowwise" method is:
196
+ *
197
+ * (1) v(i) := 1
198
+ * for j = i-1,. . .,1:
199
+ * i
200
+ * (2) compute s = - sum C(j,k) v(k) and
201
+ * k=j+1
202
+ *
203
+ * (3) v(j) := s / C(j,j)
204
+ *
205
+ * Step 2 is sometimes called the "dot product" step, since it is an
206
+ * inner product between the j-th row and the portion of the eigenvector
207
+ * that has been computed so far.
208
+ *
209
+ * The "columnwise" method consists basically in doing the sums
210
+ * for all the rows in parallel. As each v(j) is computed, the
211
+ * contribution of v(j) times the j-th column of C is added to the
212
+ * partial sums. Since FORTRAN arrays are stored columnwise, this has
213
+ * the advantage that at each step, the elements of C that are accessed
214
+ * are adjacent to one another, whereas with the rowwise method, the
215
+ * elements accessed at a step are spaced LDS (and LDP) words apart.
216
+ *
217
+ * When finding left eigenvectors, the matrix in question is the
218
+ * transpose of the one in storage, so the rowwise method then
219
+ * actually accesses columns of A and B at each step, and so is the
220
+ * preferred method.
221
+ *
222
+ * =====================================================================
223
+ *
224
+
225
+
226
+ </PRE>
227
+ <A HREF="#top">go to the page top</A>
228
+
229
+ <A NAME="dtgex2"></A>
230
+ <H2>dtgex2</H2>
231
+ <PRE>
232
+ USAGE:
233
+ info, a, b, q, z = NumRu::Lapack.dtgex2( wantq, wantz, a, b, q, z, j1, n1, n2, [:lwork => lwork, :usage => usage, :help => help])
234
+
235
+
236
+ FORTRAN MANUAL
237
+ SUBROUTINE DTGEX2( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, J1, N1, N2, WORK, LWORK, INFO )
238
+
239
+ * Purpose
240
+ * =======
241
+ *
242
+ * DTGEX2 swaps adjacent diagonal blocks (A11, B11) and (A22, B22)
243
+ * of size 1-by-1 or 2-by-2 in an upper (quasi) triangular matrix pair
244
+ * (A, B) by an orthogonal equivalence transformation.
245
+ *
246
+ * (A, B) must be in generalized real Schur canonical form (as returned
247
+ * by DGGES), i.e. A is block upper triangular with 1-by-1 and 2-by-2
248
+ * diagonal blocks. B is upper triangular.
249
+ *
250
+ * Optionally, the matrices Q and Z of generalized Schur vectors are
251
+ * updated.
252
+ *
253
+ * Q(in) * A(in) * Z(in)' = Q(out) * A(out) * Z(out)'
254
+ * Q(in) * B(in) * Z(in)' = Q(out) * B(out) * Z(out)'
255
+ *
256
+ *
257
+
258
+ * Arguments
259
+ * =========
260
+ *
261
+ * WANTQ (input) LOGICAL
262
+ * .TRUE. : update the left transformation matrix Q;
263
+ * .FALSE.: do not update Q.
264
+ *
265
+ * WANTZ (input) LOGICAL
266
+ * .TRUE. : update the right transformation matrix Z;
267
+ * .FALSE.: do not update Z.
268
+ *
269
+ * N (input) INTEGER
270
+ * The order of the matrices A and B. N >= 0.
271
+ *
272
+ * A (input/output) DOUBLE PRECISION array, dimensions (LDA,N)
273
+ * On entry, the matrix A in the pair (A, B).
274
+ * On exit, the updated matrix A.
275
+ *
276
+ * LDA (input) INTEGER
277
+ * The leading dimension of the array A. LDA >= max(1,N).
278
+ *
279
+ * B (input/output) DOUBLE PRECISION array, dimensions (LDB,N)
280
+ * On entry, the matrix B in the pair (A, B).
281
+ * On exit, the updated matrix B.
282
+ *
283
+ * LDB (input) INTEGER
284
+ * The leading dimension of the array B. LDB >= max(1,N).
285
+ *
286
+ * Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N)
287
+ * On entry, if WANTQ = .TRUE., the orthogonal matrix Q.
288
+ * On exit, the updated matrix Q.
289
+ * Not referenced if WANTQ = .FALSE..
290
+ *
291
+ * LDQ (input) INTEGER
292
+ * The leading dimension of the array Q. LDQ >= 1.
293
+ * If WANTQ = .TRUE., LDQ >= N.
294
+ *
295
+ * Z (input/output) DOUBLE PRECISION array, dimension (LDZ,N)
296
+ * On entry, if WANTZ =.TRUE., the orthogonal matrix Z.
297
+ * On exit, the updated matrix Z.
298
+ * Not referenced if WANTZ = .FALSE..
299
+ *
300
+ * LDZ (input) INTEGER
301
+ * The leading dimension of the array Z. LDZ >= 1.
302
+ * If WANTZ = .TRUE., LDZ >= N.
303
+ *
304
+ * J1 (input) INTEGER
305
+ * The index to the first block (A11, B11). 1 <= J1 <= N.
306
+ *
307
+ * N1 (input) INTEGER
308
+ * The order of the first block (A11, B11). N1 = 0, 1 or 2.
309
+ *
310
+ * N2 (input) INTEGER
311
+ * The order of the second block (A22, B22). N2 = 0, 1 or 2.
312
+ *
313
+ * WORK (workspace) DOUBLE PRECISION array, dimension (MAX(1,LWORK)).
314
+ *
315
+ * LWORK (input) INTEGER
316
+ * The dimension of the array WORK.
317
+ * LWORK >= MAX( 1, N*(N2+N1), (N2+N1)*(N2+N1)*2 )
318
+ *
319
+ * INFO (output) INTEGER
320
+ * =0: Successful exit
321
+ * >0: If INFO = 1, the transformed matrix (A, B) would be
322
+ * too far from generalized Schur form; the blocks are
323
+ * not swapped and (A, B) and (Q, Z) are unchanged.
324
+ * The problem of swapping is too ill-conditioned.
325
+ * <0: If INFO = -16: LWORK is too small. Appropriate value
326
+ * for LWORK is returned in WORK(1).
327
+ *
328
+
329
+ * Further Details
330
+ * ===============
331
+ *
332
+ * Based on contributions by
333
+ * Bo Kagstrom and Peter Poromaa, Department of Computing Science,
334
+ * Umea University, S-901 87 Umea, Sweden.
335
+ *
336
+ * In the current code both weak and strong stability tests are
337
+ * performed. The user can omit the strong stability test by changing
338
+ * the internal logical parameter WANDS to .FALSE.. See ref. [2] for
339
+ * details.
340
+ *
341
+ * [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
342
+ * Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
343
+ * M.S. Moonen et al (eds), Linear Algebra for Large Scale and
344
+ * Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.
345
+ *
346
+ * [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
347
+ * Eigenvalues of a Regular Matrix Pair (A, B) and Condition
348
+ * Estimation: Theory, Algorithms and Software,
349
+ * Report UMINF - 94.04, Department of Computing Science, Umea
350
+ * University, S-901 87 Umea, Sweden, 1994. Also as LAPACK Working
351
+ * Note 87. To appear in Numerical Algorithms, 1996.
352
+ *
353
+ * =====================================================================
354
+ * Replaced various illegal calls to DCOPY by calls to DLASET, or by DO
355
+ * loops. Sven Hammarling, 1/5/02.
356
+ *
357
+
358
+
359
+ </PRE>
360
+ <A HREF="#top">go to the page top</A>
361
+
362
+ <A NAME="dtgexc"></A>
363
+ <H2>dtgexc</H2>
364
+ <PRE>
365
+ USAGE:
366
+ work, info, a, b, q, z, ifst, ilst = NumRu::Lapack.dtgexc( wantq, wantz, a, b, q, z, ifst, ilst, [:lwork => lwork, :usage => usage, :help => help])
367
+
368
+
369
+ FORTRAN MANUAL
370
+ SUBROUTINE DTGEXC( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, WORK, LWORK, INFO )
371
+
372
+ * Purpose
373
+ * =======
374
+ *
375
+ * DTGEXC reorders the generalized real Schur decomposition of a real
376
+ * matrix pair (A,B) using an orthogonal equivalence transformation
377
+ *
378
+ * (A, B) = Q * (A, B) * Z',
379
+ *
380
+ * so that the diagonal block of (A, B) with row index IFST is moved
381
+ * to row ILST.
382
+ *
383
+ * (A, B) must be in generalized real Schur canonical form (as returned
384
+ * by DGGES), i.e. A is block upper triangular with 1-by-1 and 2-by-2
385
+ * diagonal blocks. B is upper triangular.
386
+ *
387
+ * Optionally, the matrices Q and Z of generalized Schur vectors are
388
+ * updated.
389
+ *
390
+ * Q(in) * A(in) * Z(in)' = Q(out) * A(out) * Z(out)'
391
+ * Q(in) * B(in) * Z(in)' = Q(out) * B(out) * Z(out)'
392
+ *
393
+ *
394
+
395
+ * Arguments
396
+ * =========
397
+ *
398
+ * WANTQ (input) LOGICAL
399
+ * .TRUE. : update the left transformation matrix Q;
400
+ * .FALSE.: do not update Q.
401
+ *
402
+ * WANTZ (input) LOGICAL
403
+ * .TRUE. : update the right transformation matrix Z;
404
+ * .FALSE.: do not update Z.
405
+ *
406
+ * N (input) INTEGER
407
+ * The order of the matrices A and B. N >= 0.
408
+ *
409
+ * A (input/output) DOUBLE PRECISION array, dimension (LDA,N)
410
+ * On entry, the matrix A in generalized real Schur canonical
411
+ * form.
412
+ * On exit, the updated matrix A, again in generalized
413
+ * real Schur canonical form.
414
+ *
415
+ * LDA (input) INTEGER
416
+ * The leading dimension of the array A. LDA >= max(1,N).
417
+ *
418
+ * B (input/output) DOUBLE PRECISION array, dimension (LDB,N)
419
+ * On entry, the matrix B in generalized real Schur canonical
420
+ * form (A,B).
421
+ * On exit, the updated matrix B, again in generalized
422
+ * real Schur canonical form (A,B).
423
+ *
424
+ * LDB (input) INTEGER
425
+ * The leading dimension of the array B. LDB >= max(1,N).
426
+ *
427
+ * Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N)
428
+ * On entry, if WANTQ = .TRUE., the orthogonal matrix Q.
429
+ * On exit, the updated matrix Q.
430
+ * If WANTQ = .FALSE., Q is not referenced.
431
+ *
432
+ * LDQ (input) INTEGER
433
+ * The leading dimension of the array Q. LDQ >= 1.
434
+ * If WANTQ = .TRUE., LDQ >= N.
435
+ *
436
+ * Z (input/output) DOUBLE PRECISION array, dimension (LDZ,N)
437
+ * On entry, if WANTZ = .TRUE., the orthogonal matrix Z.
438
+ * On exit, the updated matrix Z.
439
+ * If WANTZ = .FALSE., Z is not referenced.
440
+ *
441
+ * LDZ (input) INTEGER
442
+ * The leading dimension of the array Z. LDZ >= 1.
443
+ * If WANTZ = .TRUE., LDZ >= N.
444
+ *
445
+ * IFST (input/output) INTEGER
446
+ * ILST (input/output) INTEGER
447
+ * Specify the reordering of the diagonal blocks of (A, B).
448
+ * The block with row index IFST is moved to row ILST, by a
449
+ * sequence of swapping between adjacent blocks.
450
+ * On exit, if IFST pointed on entry to the second row of
451
+ * a 2-by-2 block, it is changed to point to the first row;
452
+ * ILST always points to the first row of the block in its
453
+ * final position (which may differ from its input value by
454
+ * +1 or -1). 1 <= IFST, ILST <= N.
455
+ *
456
+ * WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
457
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
458
+ *
459
+ * LWORK (input) INTEGER
460
+ * The dimension of the array WORK.
461
+ * LWORK >= 1 when N <= 1, otherwise LWORK >= 4*N + 16.
462
+ *
463
+ * If LWORK = -1, then a workspace query is assumed; the routine
464
+ * only calculates the optimal size of the WORK array, returns
465
+ * this value as the first entry of the WORK array, and no error
466
+ * message related to LWORK is issued by XERBLA.
467
+ *
468
+ * INFO (output) INTEGER
469
+ * =0: successful exit.
470
+ * <0: if INFO = -i, the i-th argument had an illegal value.
471
+ * =1: The transformed matrix pair (A, B) would be too far
472
+ * from generalized Schur form; the problem is ill-
473
+ * conditioned. (A, B) may have been partially reordered,
474
+ * and ILST points to the first row of the current
475
+ * position of the block being moved.
476
+ *
477
+
478
+ * Further Details
479
+ * ===============
480
+ *
481
+ * Based on contributions by
482
+ * Bo Kagstrom and Peter Poromaa, Department of Computing Science,
483
+ * Umea University, S-901 87 Umea, Sweden.
484
+ *
485
+ * [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
486
+ * Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
487
+ * M.S. Moonen et al (eds), Linear Algebra for Large Scale and
488
+ * Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.
489
+ *
490
+ * =====================================================================
491
+ *
492
+
493
+
494
+ </PRE>
495
+ <A HREF="#top">go to the page top</A>
496
+
497
+ <A NAME="dtgsen"></A>
498
+ <H2>dtgsen</H2>
499
+ <PRE>
500
+ USAGE:
501
+ alphar, alphai, beta, m, pl, pr, dif, work, iwork, info, a, b, q, z = NumRu::Lapack.dtgsen( ijob, wantq, wantz, select, a, b, q, z, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])
502
+
503
+
504
+ FORTRAN MANUAL
505
+ SUBROUTINE DTGSEN( IJOB, WANTQ, WANTZ, SELECT, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, Q, LDQ, Z, LDZ, M, PL, PR, DIF, WORK, LWORK, IWORK, LIWORK, INFO )
506
+
507
+ * Purpose
508
+ * =======
509
+ *
510
+ * DTGSEN reorders the generalized real Schur decomposition of a real
511
+ * matrix pair (A, B) (in terms of an orthonormal equivalence trans-
512
+ * formation Q' * (A, B) * Z), so that a selected cluster of eigenvalues
513
+ * appears in the leading diagonal blocks of the upper quasi-triangular
514
+ * matrix A and the upper triangular B. The leading columns of Q and
515
+ * Z form orthonormal bases of the corresponding left and right eigen-
516
+ * spaces (deflating subspaces). (A, B) must be in generalized real
517
+ * Schur canonical form (as returned by DGGES), i.e. A is block upper
518
+ * triangular with 1-by-1 and 2-by-2 diagonal blocks. B is upper
519
+ * triangular.
520
+ *
521
+ * DTGSEN also computes the generalized eigenvalues
522
+ *
523
+ * w(j) = (ALPHAR(j) + i*ALPHAI(j))/BETA(j)
524
+ *
525
+ * of the reordered matrix pair (A, B).
526
+ *
527
+ * Optionally, DTGSEN computes the estimates of reciprocal condition
528
+ * numbers for eigenvalues and eigenspaces. These are Difu[(A11,B11),
529
+ * (A22,B22)] and Difl[(A11,B11), (A22,B22)], i.e. the separation(s)
530
+ * between the matrix pairs (A11, B11) and (A22,B22) that correspond to
531
+ * the selected cluster and the eigenvalues outside the cluster, resp.,
532
+ * and norms of "projections" onto left and right eigenspaces w.r.t.
533
+ * the selected cluster in the (1,1)-block.
534
+ *
535
+
536
+ * Arguments
537
+ * =========
538
+ *
539
+ * IJOB (input) INTEGER
540
+ * Specifies whether condition numbers are required for the
541
+ * cluster of eigenvalues (PL and PR) or the deflating subspaces
542
+ * (Difu and Difl):
543
+ * =0: Only reorder w.r.t. SELECT. No extras.
544
+ * =1: Reciprocal of norms of "projections" onto left and right
545
+ * eigenspaces w.r.t. the selected cluster (PL and PR).
546
+ * =2: Upper bounds on Difu and Difl. F-norm-based estimate
547
+ * (DIF(1:2)).
548
+ * =3: Estimate of Difu and Difl. 1-norm-based estimate
549
+ * (DIF(1:2)).
550
+ * About 5 times as expensive as IJOB = 2.
551
+ * =4: Compute PL, PR and DIF (i.e. 0, 1 and 2 above): Economic
552
+ * version to get it all.
553
+ * =5: Compute PL, PR and DIF (i.e. 0, 1 and 3 above)
554
+ *
555
+ * WANTQ (input) LOGICAL
556
+ * .TRUE. : update the left transformation matrix Q;
557
+ * .FALSE.: do not update Q.
558
+ *
559
+ * WANTZ (input) LOGICAL
560
+ * .TRUE. : update the right transformation matrix Z;
561
+ * .FALSE.: do not update Z.
562
+ *
563
+ * SELECT (input) LOGICAL array, dimension (N)
564
+ * SELECT specifies the eigenvalues in the selected cluster.
565
+ * To select a real eigenvalue w(j), SELECT(j) must be set to
566
+ * .TRUE.. To select a complex conjugate pair of eigenvalues
567
+ * w(j) and w(j+1), corresponding to a 2-by-2 diagonal block,
568
+ * either SELECT(j) or SELECT(j+1) or both must be set to
569
+ * .TRUE.; a complex conjugate pair of eigenvalues must be
570
+ * either both included in the cluster or both excluded.
571
+ *
572
+ * N (input) INTEGER
573
+ * The order of the matrices A and B. N >= 0.
574
+ *
575
+ * A (input/output) DOUBLE PRECISION array, dimension(LDA,N)
576
+ * On entry, the upper quasi-triangular matrix A, with (A, B) in
577
+ * generalized real Schur canonical form.
578
+ * On exit, A is overwritten by the reordered matrix A.
579
+ *
580
+ * LDA (input) INTEGER
581
+ * The leading dimension of the array A. LDA >= max(1,N).
582
+ *
583
+ * B (input/output) DOUBLE PRECISION array, dimension(LDB,N)
584
+ * On entry, the upper triangular matrix B, with (A, B) in
585
+ * generalized real Schur canonical form.
586
+ * On exit, B is overwritten by the reordered matrix B.
587
+ *
588
+ * LDB (input) INTEGER
589
+ * The leading dimension of the array B. LDB >= max(1,N).
590
+ *
591
+ * ALPHAR (output) DOUBLE PRECISION array, dimension (N)
592
+ * ALPHAI (output) DOUBLE PRECISION array, dimension (N)
593
+ * BETA (output) DOUBLE PRECISION array, dimension (N)
594
+ * On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
595
+ * be the generalized eigenvalues. ALPHAR(j) + ALPHAI(j)*i
596
+ * and BETA(j),j=1,...,N are the diagonals of the complex Schur
597
+ * form (S,T) that would result if the 2-by-2 diagonal blocks of
598
+ * the real generalized Schur form of (A,B) were further reduced
599
+ * to triangular form using complex unitary transformations.
600
+ * If ALPHAI(j) is zero, then the j-th eigenvalue is real; if
601
+ * positive, then the j-th and (j+1)-st eigenvalues are a
602
+ * complex conjugate pair, with ALPHAI(j+1) negative.
603
+ *
604
+ * Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N)
605
+ * On entry, if WANTQ = .TRUE., Q is an N-by-N matrix.
606
+ * On exit, Q has been postmultiplied by the left orthogonal
607
+ * transformation matrix which reorder (A, B); The leading M
608
+ * columns of Q form orthonormal bases for the specified pair of
609
+ * left eigenspaces (deflating subspaces).
610
+ * If WANTQ = .FALSE., Q is not referenced.
611
+ *
612
+ * LDQ (input) INTEGER
613
+ * The leading dimension of the array Q. LDQ >= 1;
614
+ * and if WANTQ = .TRUE., LDQ >= N.
615
+ *
616
+ * Z (input/output) DOUBLE PRECISION array, dimension (LDZ,N)
617
+ * On entry, if WANTZ = .TRUE., Z is an N-by-N matrix.
618
+ * On exit, Z has been postmultiplied by the left orthogonal
619
+ * transformation matrix which reorder (A, B); The leading M
620
+ * columns of Z form orthonormal bases for the specified pair of
621
+ * left eigenspaces (deflating subspaces).
622
+ * If WANTZ = .FALSE., Z is not referenced.
623
+ *
624
+ * LDZ (input) INTEGER
625
+ * The leading dimension of the array Z. LDZ >= 1;
626
+ * If WANTZ = .TRUE., LDZ >= N.
627
+ *
628
+ * M (output) INTEGER
629
+ * The dimension of the specified pair of left and right eigen-
630
+ * spaces (deflating subspaces). 0 <= M <= N.
631
+ *
632
+ * PL (output) DOUBLE PRECISION
633
+ * PR (output) DOUBLE PRECISION
634
+ * If IJOB = 1, 4 or 5, PL, PR are lower bounds on the
635
+ * reciprocal of the norm of "projections" onto left and right
636
+ * eigenspaces with respect to the selected cluster.
637
+ * 0 < PL, PR <= 1.
638
+ * If M = 0 or M = N, PL = PR = 1.
639
+ * If IJOB = 0, 2 or 3, PL and PR are not referenced.
640
+ *
641
+ * DIF (output) DOUBLE PRECISION array, dimension (2).
642
+ * If IJOB >= 2, DIF(1:2) store the estimates of Difu and Difl.
643
+ * If IJOB = 2 or 4, DIF(1:2) are F-norm-based upper bounds on
644
+ * Difu and Difl. If IJOB = 3 or 5, DIF(1:2) are 1-norm-based
645
+ * estimates of Difu and Difl.
646
+ * If M = 0 or N, DIF(1:2) = F-norm([A, B]).
647
+ * If IJOB = 0 or 1, DIF is not referenced.
648
+ *
649
+ * WORK (workspace/output) DOUBLE PRECISION array,
650
+ * dimension (MAX(1,LWORK))
651
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
652
+ *
653
+ * LWORK (input) INTEGER
654
+ * The dimension of the array WORK. LWORK >= 4*N+16.
655
+ * If IJOB = 1, 2 or 4, LWORK >= MAX(4*N+16, 2*M*(N-M)).
656
+ * If IJOB = 3 or 5, LWORK >= MAX(4*N+16, 4*M*(N-M)).
657
+ *
658
+ * If LWORK = -1, then a workspace query is assumed; the routine
659
+ * only calculates the optimal size of the WORK array, returns
660
+ * this value as the first entry of the WORK array, and no error
661
+ * message related to LWORK is issued by XERBLA.
662
+ *
663
+ * IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
664
+ * On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
665
+ *
666
+ * LIWORK (input) INTEGER
667
+ * The dimension of the array IWORK. LIWORK >= 1.
668
+ * If IJOB = 1, 2 or 4, LIWORK >= N+6.
669
+ * If IJOB = 3 or 5, LIWORK >= MAX(2*M*(N-M), N+6).
670
+ *
671
+ * If LIWORK = -1, then a workspace query is assumed; the
672
+ * routine only calculates the optimal size of the IWORK array,
673
+ * returns this value as the first entry of the IWORK array, and
674
+ * no error message related to LIWORK is issued by XERBLA.
675
+ *
676
+ * INFO (output) INTEGER
677
+ * =0: Successful exit.
678
+ * <0: If INFO = -i, the i-th argument had an illegal value.
679
+ * =1: Reordering of (A, B) failed because the transformed
680
+ * matrix pair (A, B) would be too far from generalized
681
+ * Schur form; the problem is very ill-conditioned.
682
+ * (A, B) may have been partially reordered.
683
+ * If requested, 0 is returned in DIF(*), PL and PR.
684
+ *
685
+
686
+ * Further Details
687
+ * ===============
688
+ *
689
+ * DTGSEN first collects the selected eigenvalues by computing
690
+ * orthogonal U and W that move them to the top left corner of (A, B).
691
+ * In other words, the selected eigenvalues are the eigenvalues of
692
+ * (A11, B11) in:
693
+ *
694
+ * U'*(A, B)*W = (A11 A12) (B11 B12) n1
695
+ * ( 0 A22),( 0 B22) n2
696
+ * n1 n2 n1 n2
697
+ *
698
+ * where N = n1+n2 and U' means the transpose of U. The first n1 columns
699
+ * of U and W span the specified pair of left and right eigenspaces
700
+ * (deflating subspaces) of (A, B).
701
+ *
702
+ * If (A, B) has been obtained from the generalized real Schur
703
+ * decomposition of a matrix pair (C, D) = Q*(A, B)*Z', then the
704
+ * reordered generalized real Schur form of (C, D) is given by
705
+ *
706
+ * (C, D) = (Q*U)*(U'*(A, B)*W)*(Z*W)',
707
+ *
708
+ * and the first n1 columns of Q*U and Z*W span the corresponding
709
+ * deflating subspaces of (C, D) (Q and Z store Q*U and Z*W, resp.).
710
+ *
711
+ * Note that if the selected eigenvalue is sufficiently ill-conditioned,
712
+ * then its value may differ significantly from its value before
713
+ * reordering.
714
+ *
715
+ * The reciprocal condition numbers of the left and right eigenspaces
716
+ * spanned by the first n1 columns of U and W (or Q*U and Z*W) may
717
+ * be returned in DIF(1:2), corresponding to Difu and Difl, resp.
718
+ *
719
+ * The Difu and Difl are defined as:
720
+ *
721
+ * Difu[(A11, B11), (A22, B22)] = sigma-min( Zu )
722
+ * and
723
+ * Difl[(A11, B11), (A22, B22)] = Difu[(A22, B22), (A11, B11)],
724
+ *
725
+ * where sigma-min(Zu) is the smallest singular value of the
726
+ * (2*n1*n2)-by-(2*n1*n2) matrix
727
+ *
728
+ * Zu = [ kron(In2, A11) -kron(A22', In1) ]
729
+ * [ kron(In2, B11) -kron(B22', In1) ].
730
+ *
731
+ * Here, Inx is the identity matrix of size nx and A22' is the
732
+ * transpose of A22. kron(X, Y) is the Kronecker product between
733
+ * the matrices X and Y.
734
+ *
735
+ * When DIF(2) is small, small changes in (A, B) can cause large changes
736
+ * in the deflating subspace. An approximate (asymptotic) bound on the
737
+ * maximum angular error in the computed deflating subspaces is
738
+ *
739
+ * EPS * norm((A, B)) / DIF(2),
740
+ *
741
+ * where EPS is the machine precision.
742
+ *
743
+ * The reciprocal norm of the projectors on the left and right
744
+ * eigenspaces associated with (A11, B11) may be returned in PL and PR.
745
+ * They are computed as follows. First we compute L and R so that
746
+ * P*(A, B)*Q is block diagonal, where
747
+ *
748
+ * P = ( I -L ) n1 Q = ( I R ) n1
749
+ * ( 0 I ) n2 and ( 0 I ) n2
750
+ * n1 n2 n1 n2
751
+ *
752
+ * and (L, R) is the solution to the generalized Sylvester equation
753
+ *
754
+ * A11*R - L*A22 = -A12
755
+ * B11*R - L*B22 = -B12
756
+ *
757
+ * Then PL = (F-norm(L)**2+1)**(-1/2) and PR = (F-norm(R)**2+1)**(-1/2).
758
+ * An approximate (asymptotic) bound on the average absolute error of
759
+ * the selected eigenvalues is
760
+ *
761
+ * EPS * norm((A, B)) / PL.
762
+ *
763
+ * There are also global error bounds which valid for perturbations up
764
+ * to a certain restriction: A lower bound (x) on the smallest
765
+ * F-norm(E,F) for which an eigenvalue of (A11, B11) may move and
766
+ * coalesce with an eigenvalue of (A22, B22) under perturbation (E,F),
767
+ * (i.e. (A + E, B + F), is
768
+ *
769
+ * x = min(Difu,Difl)/((1/(PL*PL)+1/(PR*PR))**(1/2)+2*max(1/PL,1/PR)).
770
+ *
771
+ * An approximate bound on x can be computed from DIF(1:2), PL and PR.
772
+ *
773
+ * If y = ( F-norm(E,F) / x) <= 1, the angles between the perturbed
774
+ * (L', R') and unperturbed (L, R) left and right deflating subspaces
775
+ * associated with the selected cluster in the (1,1)-blocks can be
776
+ * bounded as
777
+ *
778
+ * max-angle(L, L') <= arctan( y * PL / (1 - y * (1 - PL * PL)**(1/2))
779
+ * max-angle(R, R') <= arctan( y * PR / (1 - y * (1 - PR * PR)**(1/2))
780
+ *
781
+ * See LAPACK User's Guide section 4.11 or the following references
782
+ * for more information.
783
+ *
784
+ * Note that if the default method for computing the Frobenius-norm-
785
+ * based estimate DIF is not wanted (see DLATDF), then the parameter
786
+ * IDIFJB (see below) should be changed from 3 to 4 (routine DLATDF
787
+ * (IJOB = 2 will be used)). See DTGSYL for more details.
788
+ *
789
+ * Based on contributions by
790
+ * Bo Kagstrom and Peter Poromaa, Department of Computing Science,
791
+ * Umea University, S-901 87 Umea, Sweden.
792
+ *
793
+ * References
794
+ * ==========
795
+ *
796
+ * [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
797
+ * Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
798
+ * M.S. Moonen et al (eds), Linear Algebra for Large Scale and
799
+ * Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.
800
+ *
801
+ * [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
802
+ * Eigenvalues of a Regular Matrix Pair (A, B) and Condition
803
+ * Estimation: Theory, Algorithms and Software,
804
+ * Report UMINF - 94.04, Department of Computing Science, Umea
805
+ * University, S-901 87 Umea, Sweden, 1994. Also as LAPACK Working
806
+ * Note 87. To appear in Numerical Algorithms, 1996.
807
+ *
808
+ * [3] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
809
+ * for Solving the Generalized Sylvester Equation and Estimating the
810
+ * Separation between Regular Matrix Pairs, Report UMINF - 93.23,
811
+ * Department of Computing Science, Umea University, S-901 87 Umea,
812
+ * Sweden, December 1993, Revised April 1994, Also as LAPACK Working
813
+ * Note 75. To appear in ACM Trans. on Math. Software, Vol 22, No 1,
814
+ * 1996.
815
+ *
816
+ * =====================================================================
817
+ *
818
+
819
+
820
+ </PRE>
821
+ <A HREF="#top">go to the page top</A>
822
+
823
+ <A NAME="dtgsja"></A>
824
+ <H2>dtgsja</H2>
825
+ <PRE>
826
+ USAGE:
827
+ alpha, beta, ncycle, info, a, b, u, v, q = NumRu::Lapack.dtgsja( jobu, jobv, jobq, k, l, a, b, tola, tolb, u, v, q, [:usage => usage, :help => help])
828
+
829
+
830
+ FORTRAN MANUAL
831
+ SUBROUTINE DTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, NCYCLE, INFO )
832
+
833
+ * Purpose
834
+ * =======
835
+ *
836
+ * DTGSJA computes the generalized singular value decomposition (GSVD)
837
+ * of two real upper triangular (or trapezoidal) matrices A and B.
838
+ *
839
+ * On entry, it is assumed that matrices A and B have the following
840
+ * forms, which may be obtained by the preprocessing subroutine DGGSVP
841
+ * from a general M-by-N matrix A and P-by-N matrix B:
842
+ *
843
+ * N-K-L K L
844
+ * A = K ( 0 A12 A13 ) if M-K-L >= 0;
845
+ * L ( 0 0 A23 )
846
+ * M-K-L ( 0 0 0 )
847
+ *
848
+ * N-K-L K L
849
+ * A = K ( 0 A12 A13 ) if M-K-L < 0;
850
+ * M-K ( 0 0 A23 )
851
+ *
852
+ * N-K-L K L
853
+ * B = L ( 0 0 B13 )
854
+ * P-L ( 0 0 0 )
855
+ *
856
+ * where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular
857
+ * upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0,
858
+ * otherwise A23 is (M-K)-by-L upper trapezoidal.
859
+ *
860
+ * On exit,
861
+ *
862
+ * U'*A*Q = D1*( 0 R ), V'*B*Q = D2*( 0 R ),
863
+ *
864
+ * where U, V and Q are orthogonal matrices, Z' denotes the transpose
865
+ * of Z, R is a nonsingular upper triangular matrix, and D1 and D2 are
866
+ * ``diagonal'' matrices, which are of the following structures:
867
+ *
868
+ * If M-K-L >= 0,
869
+ *
870
+ * K L
871
+ * D1 = K ( I 0 )
872
+ * L ( 0 C )
873
+ * M-K-L ( 0 0 )
874
+ *
875
+ * K L
876
+ * D2 = L ( 0 S )
877
+ * P-L ( 0 0 )
878
+ *
879
+ * N-K-L K L
880
+ * ( 0 R ) = K ( 0 R11 R12 ) K
881
+ * L ( 0 0 R22 ) L
882
+ *
883
+ * where
884
+ *
885
+ * C = diag( ALPHA(K+1), ... , ALPHA(K+L) ),
886
+ * S = diag( BETA(K+1), ... , BETA(K+L) ),
887
+ * C**2 + S**2 = I.
888
+ *
889
+ * R is stored in A(1:K+L,N-K-L+1:N) on exit.
890
+ *
891
+ * If M-K-L < 0,
892
+ *
893
+ * K M-K K+L-M
894
+ * D1 = K ( I 0 0 )
895
+ * M-K ( 0 C 0 )
896
+ *
897
+ * K M-K K+L-M
898
+ * D2 = M-K ( 0 S 0 )
899
+ * K+L-M ( 0 0 I )
900
+ * P-L ( 0 0 0 )
901
+ *
902
+ * N-K-L K M-K K+L-M
903
+ * ( 0 R ) = K ( 0 R11 R12 R13 )
904
+ * M-K ( 0 0 R22 R23 )
905
+ * K+L-M ( 0 0 0 R33 )
906
+ *
907
+ * where
908
+ * C = diag( ALPHA(K+1), ... , ALPHA(M) ),
909
+ * S = diag( BETA(K+1), ... , BETA(M) ),
910
+ * C**2 + S**2 = I.
911
+ *
912
+ * R = ( R11 R12 R13 ) is stored in A(1:M, N-K-L+1:N) and R33 is stored
913
+ * ( 0 R22 R23 )
914
+ * in B(M-K+1:L,N+M-K-L+1:N) on exit.
915
+ *
916
+ * The computation of the orthogonal transformation matrices U, V or Q
917
+ * is optional. These matrices may either be formed explicitly, or they
918
+ * may be postmultiplied into input matrices U1, V1, or Q1.
919
+ *
920
+
921
+ * Arguments
922
+ * =========
923
+ *
924
+ * JOBU (input) CHARACTER*1
925
+ * = 'U': U must contain an orthogonal matrix U1 on entry, and
926
+ * the product U1*U is returned;
927
+ * = 'I': U is initialized to the unit matrix, and the
928
+ * orthogonal matrix U is returned;
929
+ * = 'N': U is not computed.
930
+ *
931
+ * JOBV (input) CHARACTER*1
932
+ * = 'V': V must contain an orthogonal matrix V1 on entry, and
933
+ * the product V1*V is returned;
934
+ * = 'I': V is initialized to the unit matrix, and the
935
+ * orthogonal matrix V is returned;
936
+ * = 'N': V is not computed.
937
+ *
938
+ * JOBQ (input) CHARACTER*1
939
+ * = 'Q': Q must contain an orthogonal matrix Q1 on entry, and
940
+ * the product Q1*Q is returned;
941
+ * = 'I': Q is initialized to the unit matrix, and the
942
+ * orthogonal matrix Q is returned;
943
+ * = 'N': Q is not computed.
944
+ *
945
+ * M (input) INTEGER
946
+ * The number of rows of the matrix A. M >= 0.
947
+ *
948
+ * P (input) INTEGER
949
+ * The number of rows of the matrix B. P >= 0.
950
+ *
951
+ * N (input) INTEGER
952
+ * The number of columns of the matrices A and B. N >= 0.
953
+ *
954
+ * K (input) INTEGER
955
+ * L (input) INTEGER
956
+ * K and L specify the subblocks in the input matrices A and B:
957
+ * A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,N-L+1:N)
958
+ * of A and B, whose GSVD is going to be computed by DTGSJA.
959
+ * See Further Details.
960
+ *
961
+ * A (input/output) DOUBLE PRECISION array, dimension (LDA,N)
962
+ * On entry, the M-by-N matrix A.
963
+ * On exit, A(N-K+1:N,1:MIN(K+L,M) ) contains the triangular
964
+ * matrix R or part of R. See Purpose for details.
965
+ *
966
+ * LDA (input) INTEGER
967
+ * The leading dimension of the array A. LDA >= max(1,M).
968
+ *
969
+ * B (input/output) DOUBLE PRECISION array, dimension (LDB,N)
970
+ * On entry, the P-by-N matrix B.
971
+ * On exit, if necessary, B(M-K+1:L,N+M-K-L+1:N) contains
972
+ * a part of R. See Purpose for details.
973
+ *
974
+ * LDB (input) INTEGER
975
+ * The leading dimension of the array B. LDB >= max(1,P).
976
+ *
977
+ * TOLA (input) DOUBLE PRECISION
978
+ * TOLB (input) DOUBLE PRECISION
979
+ * TOLA and TOLB are the convergence criteria for the Jacobi-
980
+ * Kogbetliantz iteration procedure. Generally, they are the
981
+ * same as used in the preprocessing step, say
982
+ * TOLA = max(M,N)*norm(A)*MAZHEPS,
983
+ * TOLB = max(P,N)*norm(B)*MAZHEPS.
984
+ *
985
+ * ALPHA (output) DOUBLE PRECISION array, dimension (N)
986
+ * BETA (output) DOUBLE PRECISION array, dimension (N)
987
+ * On exit, ALPHA and BETA contain the generalized singular
988
+ * value pairs of A and B;
989
+ * ALPHA(1:K) = 1,
990
+ * BETA(1:K) = 0,
991
+ * and if M-K-L >= 0,
992
+ * ALPHA(K+1:K+L) = diag(C),
993
+ * BETA(K+1:K+L) = diag(S),
994
+ * or if M-K-L < 0,
995
+ * ALPHA(K+1:M)= C, ALPHA(M+1:K+L)= 0
996
+ * BETA(K+1:M) = S, BETA(M+1:K+L) = 1.
997
+ * Furthermore, if K+L < N,
998
+ * ALPHA(K+L+1:N) = 0 and
999
+ * BETA(K+L+1:N) = 0.
1000
+ *
1001
+ * U (input/output) DOUBLE PRECISION array, dimension (LDU,M)
1002
+ * On entry, if JOBU = 'U', U must contain a matrix U1 (usually
1003
+ * the orthogonal matrix returned by DGGSVP).
1004
+ * On exit,
1005
+ * if JOBU = 'I', U contains the orthogonal matrix U;
1006
+ * if JOBU = 'U', U contains the product U1*U.
1007
+ * If JOBU = 'N', U is not referenced.
1008
+ *
1009
+ * LDU (input) INTEGER
1010
+ * The leading dimension of the array U. LDU >= max(1,M) if
1011
+ * JOBU = 'U'; LDU >= 1 otherwise.
1012
+ *
1013
+ * V (input/output) DOUBLE PRECISION array, dimension (LDV,P)
1014
+ * On entry, if JOBV = 'V', V must contain a matrix V1 (usually
1015
+ * the orthogonal matrix returned by DGGSVP).
1016
+ * On exit,
1017
+ * if JOBV = 'I', V contains the orthogonal matrix V;
1018
+ * if JOBV = 'V', V contains the product V1*V.
1019
+ * If JOBV = 'N', V is not referenced.
1020
+ *
1021
+ * LDV (input) INTEGER
1022
+ * The leading dimension of the array V. LDV >= max(1,P) if
1023
+ * JOBV = 'V'; LDV >= 1 otherwise.
1024
+ *
1025
+ * Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N)
1026
+ * On entry, if JOBQ = 'Q', Q must contain a matrix Q1 (usually
1027
+ * the orthogonal matrix returned by DGGSVP).
1028
+ * On exit,
1029
+ * if JOBQ = 'I', Q contains the orthogonal matrix Q;
1030
+ * if JOBQ = 'Q', Q contains the product Q1*Q.
1031
+ * If JOBQ = 'N', Q is not referenced.
1032
+ *
1033
+ * LDQ (input) INTEGER
1034
+ * The leading dimension of the array Q. LDQ >= max(1,N) if
1035
+ * JOBQ = 'Q'; LDQ >= 1 otherwise.
1036
+ *
1037
+ * WORK (workspace) DOUBLE PRECISION array, dimension (2*N)
1038
+ *
1039
+ * NCYCLE (output) INTEGER
1040
+ * The number of cycles required for convergence.
1041
+ *
1042
+ * INFO (output) INTEGER
1043
+ * = 0: successful exit
1044
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
1045
+ * = 1: the procedure does not converge after MAXIT cycles.
1046
+ *
1047
+ * Internal Parameters
1048
+ * ===================
1049
+ *
1050
+ * MAXIT INTEGER
1051
+ * MAXIT specifies the total loops that the iterative procedure
1052
+ * may take. If after MAXIT cycles, the routine fails to
1053
+ * converge, we return INFO = 1.
1054
+ *
1055
+
1056
+ * Further Details
1057
+ * ===============
1058
+ *
1059
+ * DTGSJA essentially uses a variant of Kogbetliantz algorithm to reduce
1060
+ * min(L,M-K)-by-L triangular (or trapezoidal) matrix A23 and L-by-L
1061
+ * matrix B13 to the form:
1062
+ *
1063
+ * U1'*A13*Q1 = C1*R1; V1'*B13*Q1 = S1*R1,
1064
+ *
1065
+ * where U1, V1 and Q1 are orthogonal matrix, and Z' is the transpose
1066
+ * of Z. C1 and S1 are diagonal matrices satisfying
1067
+ *
1068
+ * C1**2 + S1**2 = I,
1069
+ *
1070
+ * and R1 is an L-by-L nonsingular upper triangular matrix.
1071
+ *
1072
+ * =====================================================================
1073
+ *
1074
+
1075
+
1076
+ </PRE>
1077
+ <A HREF="#top">go to the page top</A>
1078
+
1079
+ <A NAME="dtgsna"></A>
1080
+ <H2>dtgsna</H2>
1081
+ <PRE>
1082
+ USAGE:
1083
+ s, dif, m, work, info = NumRu::Lapack.dtgsna( job, howmny, select, a, b, vl, vr, [:lwork => lwork, :usage => usage, :help => help])
1084
+
1085
+
1086
+ FORTRAN MANUAL
1087
+ SUBROUTINE DTGSNA( JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO )
1088
+
1089
+ * Purpose
1090
+ * =======
1091
+ *
1092
+ * DTGSNA estimates reciprocal condition numbers for specified
1093
+ * eigenvalues and/or eigenvectors of a matrix pair (A, B) in
1094
+ * generalized real Schur canonical form (or of any matrix pair
1095
+ * (Q*A*Z', Q*B*Z') with orthogonal matrices Q and Z, where
1096
+ * Z' denotes the transpose of Z.
1097
+ *
1098
+ * (A, B) must be in generalized real Schur form (as returned by DGGES),
1099
+ * i.e. A is block upper triangular with 1-by-1 and 2-by-2 diagonal
1100
+ * blocks. B is upper triangular.
1101
+ *
1102
+ *
1103
+
1104
+ * Arguments
1105
+ * =========
1106
+ *
1107
+ * JOB (input) CHARACTER*1
1108
+ * Specifies whether condition numbers are required for
1109
+ * eigenvalues (S) or eigenvectors (DIF):
1110
+ * = 'E': for eigenvalues only (S);
1111
+ * = 'V': for eigenvectors only (DIF);
1112
+ * = 'B': for both eigenvalues and eigenvectors (S and DIF).
1113
+ *
1114
+ * HOWMNY (input) CHARACTER*1
1115
+ * = 'A': compute condition numbers for all eigenpairs;
1116
+ * = 'S': compute condition numbers for selected eigenpairs
1117
+ * specified by the array SELECT.
1118
+ *
1119
+ * SELECT (input) LOGICAL array, dimension (N)
1120
+ * If HOWMNY = 'S', SELECT specifies the eigenpairs for which
1121
+ * condition numbers are required. To select condition numbers
1122
+ * for the eigenpair corresponding to a real eigenvalue w(j),
1123
+ * SELECT(j) must be set to .TRUE.. To select condition numbers
1124
+ * corresponding to a complex conjugate pair of eigenvalues w(j)
1125
+ * and w(j+1), either SELECT(j) or SELECT(j+1) or both, must be
1126
+ * set to .TRUE..
1127
+ * If HOWMNY = 'A', SELECT is not referenced.
1128
+ *
1129
+ * N (input) INTEGER
1130
+ * The order of the square matrix pair (A, B). N >= 0.
1131
+ *
1132
+ * A (input) DOUBLE PRECISION array, dimension (LDA,N)
1133
+ * The upper quasi-triangular matrix A in the pair (A,B).
1134
+ *
1135
+ * LDA (input) INTEGER
1136
+ * The leading dimension of the array A. LDA >= max(1,N).
1137
+ *
1138
+ * B (input) DOUBLE PRECISION array, dimension (LDB,N)
1139
+ * The upper triangular matrix B in the pair (A,B).
1140
+ *
1141
+ * LDB (input) INTEGER
1142
+ * The leading dimension of the array B. LDB >= max(1,N).
1143
+ *
1144
+ * VL (input) DOUBLE PRECISION array, dimension (LDVL,M)
1145
+ * If JOB = 'E' or 'B', VL must contain left eigenvectors of
1146
+ * (A, B), corresponding to the eigenpairs specified by HOWMNY
1147
+ * and SELECT. The eigenvectors must be stored in consecutive
1148
+ * columns of VL, as returned by DTGEVC.
1149
+ * If JOB = 'V', VL is not referenced.
1150
+ *
1151
+ * LDVL (input) INTEGER
1152
+ * The leading dimension of the array VL. LDVL >= 1.
1153
+ * If JOB = 'E' or 'B', LDVL >= N.
1154
+ *
1155
+ * VR (input) DOUBLE PRECISION array, dimension (LDVR,M)
1156
+ * If JOB = 'E' or 'B', VR must contain right eigenvectors of
1157
+ * (A, B), corresponding to the eigenpairs specified by HOWMNY
1158
+ * and SELECT. The eigenvectors must be stored in consecutive
1159
+ * columns ov VR, as returned by DTGEVC.
1160
+ * If JOB = 'V', VR is not referenced.
1161
+ *
1162
+ * LDVR (input) INTEGER
1163
+ * The leading dimension of the array VR. LDVR >= 1.
1164
+ * If JOB = 'E' or 'B', LDVR >= N.
1165
+ *
1166
+ * S (output) DOUBLE PRECISION array, dimension (MM)
1167
+ * If JOB = 'E' or 'B', the reciprocal condition numbers of the
1168
+ * selected eigenvalues, stored in consecutive elements of the
1169
+ * array. For a complex conjugate pair of eigenvalues two
1170
+ * consecutive elements of S are set to the same value. Thus
1171
+ * S(j), DIF(j), and the j-th columns of VL and VR all
1172
+ * correspond to the same eigenpair (but not in general the
1173
+ * j-th eigenpair, unless all eigenpairs are selected).
1174
+ * If JOB = 'V', S is not referenced.
1175
+ *
1176
+ * DIF (output) DOUBLE PRECISION array, dimension (MM)
1177
+ * If JOB = 'V' or 'B', the estimated reciprocal condition
1178
+ * numbers of the selected eigenvectors, stored in consecutive
1179
+ * elements of the array. For a complex eigenvector two
1180
+ * consecutive elements of DIF are set to the same value. If
1181
+ * the eigenvalues cannot be reordered to compute DIF(j), DIF(j)
1182
+ * is set to 0; this can only occur when the true value would be
1183
+ * very small anyway.
1184
+ * If JOB = 'E', DIF is not referenced.
1185
+ *
1186
+ * MM (input) INTEGER
1187
+ * The number of elements in the arrays S and DIF. MM >= M.
1188
+ *
1189
+ * M (output) INTEGER
1190
+ * The number of elements of the arrays S and DIF used to store
1191
+ * the specified condition numbers; for each selected real
1192
+ * eigenvalue one element is used, and for each selected complex
1193
+ * conjugate pair of eigenvalues, two elements are used.
1194
+ * If HOWMNY = 'A', M is set to N.
1195
+ *
1196
+ * WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
1197
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1198
+ *
1199
+ * LWORK (input) INTEGER
1200
+ * The dimension of the array WORK. LWORK >= max(1,N).
1201
+ * If JOB = 'V' or 'B' LWORK >= 2*N*(N+2)+16.
1202
+ *
1203
+ * If LWORK = -1, then a workspace query is assumed; the routine
1204
+ * only calculates the optimal size of the WORK array, returns
1205
+ * this value as the first entry of the WORK array, and no error
1206
+ * message related to LWORK is issued by XERBLA.
1207
+ *
1208
+ * IWORK (workspace) INTEGER array, dimension (N + 6)
1209
+ * If JOB = 'E', IWORK is not referenced.
1210
+ *
1211
+ * INFO (output) INTEGER
1212
+ * =0: Successful exit
1213
+ * <0: If INFO = -i, the i-th argument had an illegal value
1214
+ *
1215
+ *
1216
+
1217
+ * Further Details
1218
+ * ===============
1219
+ *
1220
+ * The reciprocal of the condition number of a generalized eigenvalue
1221
+ * w = (a, b) is defined as
1222
+ *
1223
+ * S(w) = (|u'Av|**2 + |u'Bv|**2)**(1/2) / (norm(u)*norm(v))
1224
+ *
1225
+ * where u and v are the left and right eigenvectors of (A, B)
1226
+ * corresponding to w; |z| denotes the absolute value of the complex
1227
+ * number, and norm(u) denotes the 2-norm of the vector u.
1228
+ * The pair (a, b) corresponds to an eigenvalue w = a/b (= u'Av/u'Bv)
1229
+ * of the matrix pair (A, B). If both a and b equal zero, then (A B) is
1230
+ * singular and S(I) = -1 is returned.
1231
+ *
1232
+ * An approximate error bound on the chordal distance between the i-th
1233
+ * computed generalized eigenvalue w and the corresponding exact
1234
+ * eigenvalue lambda is
1235
+ *
1236
+ * chord(w, lambda) <= EPS * norm(A, B) / S(I)
1237
+ *
1238
+ * where EPS is the machine precision.
1239
+ *
1240
+ * The reciprocal of the condition number DIF(i) of right eigenvector u
1241
+ * and left eigenvector v corresponding to the generalized eigenvalue w
1242
+ * is defined as follows:
1243
+ *
1244
+ * a) If the i-th eigenvalue w = (a,b) is real
1245
+ *
1246
+ * Suppose U and V are orthogonal transformations such that
1247
+ *
1248
+ * U'*(A, B)*V = (S, T) = ( a * ) ( b * ) 1
1249
+ * ( 0 S22 ),( 0 T22 ) n-1
1250
+ * 1 n-1 1 n-1
1251
+ *
1252
+ * Then the reciprocal condition number DIF(i) is
1253
+ *
1254
+ * Difl((a, b), (S22, T22)) = sigma-min( Zl ),
1255
+ *
1256
+ * where sigma-min(Zl) denotes the smallest singular value of the
1257
+ * 2(n-1)-by-2(n-1) matrix
1258
+ *
1259
+ * Zl = [ kron(a, In-1) -kron(1, S22) ]
1260
+ * [ kron(b, In-1) -kron(1, T22) ] .
1261
+ *
1262
+ * Here In-1 is the identity matrix of size n-1. kron(X, Y) is the
1263
+ * Kronecker product between the matrices X and Y.
1264
+ *
1265
+ * Note that if the default method for computing DIF(i) is wanted
1266
+ * (see DLATDF), then the parameter DIFDRI (see below) should be
1267
+ * changed from 3 to 4 (routine DLATDF(IJOB = 2 will be used)).
1268
+ * See DTGSYL for more details.
1269
+ *
1270
+ * b) If the i-th and (i+1)-th eigenvalues are complex conjugate pair,
1271
+ *
1272
+ * Suppose U and V are orthogonal transformations such that
1273
+ *
1274
+ * U'*(A, B)*V = (S, T) = ( S11 * ) ( T11 * ) 2
1275
+ * ( 0 S22 ),( 0 T22) n-2
1276
+ * 2 n-2 2 n-2
1277
+ *
1278
+ * and (S11, T11) corresponds to the complex conjugate eigenvalue
1279
+ * pair (w, conjg(w)). There exist unitary matrices U1 and V1 such
1280
+ * that
1281
+ *
1282
+ * U1'*S11*V1 = ( s11 s12 ) and U1'*T11*V1 = ( t11 t12 )
1283
+ * ( 0 s22 ) ( 0 t22 )
1284
+ *
1285
+ * where the generalized eigenvalues w = s11/t11 and
1286
+ * conjg(w) = s22/t22.
1287
+ *
1288
+ * Then the reciprocal condition number DIF(i) is bounded by
1289
+ *
1290
+ * min( d1, max( 1, |real(s11)/real(s22)| )*d2 )
1291
+ *
1292
+ * where, d1 = Difl((s11, t11), (s22, t22)) = sigma-min(Z1), where
1293
+ * Z1 is the complex 2-by-2 matrix
1294
+ *
1295
+ * Z1 = [ s11 -s22 ]
1296
+ * [ t11 -t22 ],
1297
+ *
1298
+ * This is done by computing (using real arithmetic) the
1299
+ * roots of the characteristical polynomial det(Z1' * Z1 - lambda I),
1300
+ * where Z1' denotes the conjugate transpose of Z1 and det(X) denotes
1301
+ * the determinant of X.
1302
+ *
1303
+ * and d2 is an upper bound on Difl((S11, T11), (S22, T22)), i.e. an
1304
+ * upper bound on sigma-min(Z2), where Z2 is (2n-2)-by-(2n-2)
1305
+ *
1306
+ * Z2 = [ kron(S11', In-2) -kron(I2, S22) ]
1307
+ * [ kron(T11', In-2) -kron(I2, T22) ]
1308
+ *
1309
+ * Note that if the default method for computing DIF is wanted (see
1310
+ * DLATDF), then the parameter DIFDRI (see below) should be changed
1311
+ * from 3 to 4 (routine DLATDF(IJOB = 2 will be used)). See DTGSYL
1312
+ * for more details.
1313
+ *
1314
+ * For each eigenvalue/vector specified by SELECT, DIF stores a
1315
+ * Frobenius norm-based estimate of Difl.
1316
+ *
1317
+ * An approximate error bound for the i-th computed eigenvector VL(i) or
1318
+ * VR(i) is given by
1319
+ *
1320
+ * EPS * norm(A, B) / DIF(i).
1321
+ *
1322
+ * See ref. [2-3] for more details and further references.
1323
+ *
1324
+ * Based on contributions by
1325
+ * Bo Kagstrom and Peter Poromaa, Department of Computing Science,
1326
+ * Umea University, S-901 87 Umea, Sweden.
1327
+ *
1328
+ * References
1329
+ * ==========
1330
+ *
1331
+ * [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
1332
+ * Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
1333
+ * M.S. Moonen et al (eds), Linear Algebra for Large Scale and
1334
+ * Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.
1335
+ *
1336
+ * [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
1337
+ * Eigenvalues of a Regular Matrix Pair (A, B) and Condition
1338
+ * Estimation: Theory, Algorithms and Software,
1339
+ * Report UMINF - 94.04, Department of Computing Science, Umea
1340
+ * University, S-901 87 Umea, Sweden, 1994. Also as LAPACK Working
1341
+ * Note 87. To appear in Numerical Algorithms, 1996.
1342
+ *
1343
+ * [3] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
1344
+ * for Solving the Generalized Sylvester Equation and Estimating the
1345
+ * Separation between Regular Matrix Pairs, Report UMINF - 93.23,
1346
+ * Department of Computing Science, Umea University, S-901 87 Umea,
1347
+ * Sweden, December 1993, Revised April 1994, Also as LAPACK Working
1348
+ * Note 75. To appear in ACM Trans. on Math. Software, Vol 22,
1349
+ * No 1, 1996.
1350
+ *
1351
+ * =====================================================================
1352
+ *
1353
+
1354
+
1355
+ </PRE>
1356
+ <A HREF="#top">go to the page top</A>
1357
+
1358
+ <A NAME="dtgsy2"></A>
1359
+ <H2>dtgsy2</H2>
1360
+ <PRE>
1361
+ USAGE:
1362
+ scale, pq, info, c, f, rdsum, rdscal = NumRu::Lapack.dtgsy2( trans, ijob, a, b, c, d, e, f, rdsum, rdscal, [:usage => usage, :help => help])
1363
+
1364
+
1365
+ FORTRAN MANUAL
1366
+ SUBROUTINE DTGSY2( TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, RDSUM, RDSCAL, IWORK, PQ, INFO )
1367
+
1368
+ * Purpose
1369
+ * =======
1370
+ *
1371
+ * DTGSY2 solves the generalized Sylvester equation:
1372
+ *
1373
+ * A * R - L * B = scale * C (1)
1374
+ * D * R - L * E = scale * F,
1375
+ *
1376
+ * using Level 1 and 2 BLAS. where R and L are unknown M-by-N matrices,
1377
+ * (A, D), (B, E) and (C, F) are given matrix pairs of size M-by-M,
1378
+ * N-by-N and M-by-N, respectively, with real entries. (A, D) and (B, E)
1379
+ * must be in generalized Schur canonical form, i.e. A, B are upper
1380
+ * quasi triangular and D, E are upper triangular. The solution (R, L)
1381
+ * overwrites (C, F). 0 <= SCALE <= 1 is an output scaling factor
1382
+ * chosen to avoid overflow.
1383
+ *
1384
+ * In matrix notation solving equation (1) corresponds to solve
1385
+ * Z*x = scale*b, where Z is defined as
1386
+ *
1387
+ * Z = [ kron(In, A) -kron(B', Im) ] (2)
1388
+ * [ kron(In, D) -kron(E', Im) ],
1389
+ *
1390
+ * Ik is the identity matrix of size k and X' is the transpose of X.
1391
+ * kron(X, Y) is the Kronecker product between the matrices X and Y.
1392
+ * In the process of solving (1), we solve a number of such systems
1393
+ * where Dim(In), Dim(In) = 1 or 2.
1394
+ *
1395
+ * If TRANS = 'T', solve the transposed system Z'*y = scale*b for y,
1396
+ * which is equivalent to solve for R and L in
1397
+ *
1398
+ * A' * R + D' * L = scale * C (3)
1399
+ * R * B' + L * E' = scale * -F
1400
+ *
1401
+ * This case is used to compute an estimate of Dif[(A, D), (B, E)] =
1402
+ * sigma_min(Z) using reverse communicaton with DLACON.
1403
+ *
1404
+ * DTGSY2 also (IJOB >= 1) contributes to the computation in DTGSYL
1405
+ * of an upper bound on the separation between to matrix pairs. Then
1406
+ * the input (A, D), (B, E) are sub-pencils of the matrix pair in
1407
+ * DTGSYL. See DTGSYL for details.
1408
+ *
1409
+
1410
+ * Arguments
1411
+ * =========
1412
+ *
1413
+ * TRANS (input) CHARACTER*1
1414
+ * = 'N', solve the generalized Sylvester equation (1).
1415
+ * = 'T': solve the 'transposed' system (3).
1416
+ *
1417
+ * IJOB (input) INTEGER
1418
+ * Specifies what kind of functionality to be performed.
1419
+ * = 0: solve (1) only.
1420
+ * = 1: A contribution from this subsystem to a Frobenius
1421
+ * norm-based estimate of the separation between two matrix
1422
+ * pairs is computed. (look ahead strategy is used).
1423
+ * = 2: A contribution from this subsystem to a Frobenius
1424
+ * norm-based estimate of the separation between two matrix
1425
+ * pairs is computed. (DGECON on sub-systems is used.)
1426
+ * Not referenced if TRANS = 'T'.
1427
+ *
1428
+ * M (input) INTEGER
1429
+ * On entry, M specifies the order of A and D, and the row
1430
+ * dimension of C, F, R and L.
1431
+ *
1432
+ * N (input) INTEGER
1433
+ * On entry, N specifies the order of B and E, and the column
1434
+ * dimension of C, F, R and L.
1435
+ *
1436
+ * A (input) DOUBLE PRECISION array, dimension (LDA, M)
1437
+ * On entry, A contains an upper quasi triangular matrix.
1438
+ *
1439
+ * LDA (input) INTEGER
1440
+ * The leading dimension of the matrix A. LDA >= max(1, M).
1441
+ *
1442
+ * B (input) DOUBLE PRECISION array, dimension (LDB, N)
1443
+ * On entry, B contains an upper quasi triangular matrix.
1444
+ *
1445
+ * LDB (input) INTEGER
1446
+ * The leading dimension of the matrix B. LDB >= max(1, N).
1447
+ *
1448
+ * C (input/output) DOUBLE PRECISION array, dimension (LDC, N)
1449
+ * On entry, C contains the right-hand-side of the first matrix
1450
+ * equation in (1).
1451
+ * On exit, if IJOB = 0, C has been overwritten by the
1452
+ * solution R.
1453
+ *
1454
+ * LDC (input) INTEGER
1455
+ * The leading dimension of the matrix C. LDC >= max(1, M).
1456
+ *
1457
+ * D (input) DOUBLE PRECISION array, dimension (LDD, M)
1458
+ * On entry, D contains an upper triangular matrix.
1459
+ *
1460
+ * LDD (input) INTEGER
1461
+ * The leading dimension of the matrix D. LDD >= max(1, M).
1462
+ *
1463
+ * E (input) DOUBLE PRECISION array, dimension (LDE, N)
1464
+ * On entry, E contains an upper triangular matrix.
1465
+ *
1466
+ * LDE (input) INTEGER
1467
+ * The leading dimension of the matrix E. LDE >= max(1, N).
1468
+ *
1469
+ * F (input/output) DOUBLE PRECISION array, dimension (LDF, N)
1470
+ * On entry, F contains the right-hand-side of the second matrix
1471
+ * equation in (1).
1472
+ * On exit, if IJOB = 0, F has been overwritten by the
1473
+ * solution L.
1474
+ *
1475
+ * LDF (input) INTEGER
1476
+ * The leading dimension of the matrix F. LDF >= max(1, M).
1477
+ *
1478
+ * SCALE (output) DOUBLE PRECISION
1479
+ * On exit, 0 <= SCALE <= 1. If 0 < SCALE < 1, the solutions
1480
+ * R and L (C and F on entry) will hold the solutions to a
1481
+ * slightly perturbed system but the input matrices A, B, D and
1482
+ * E have not been changed. If SCALE = 0, R and L will hold the
1483
+ * solutions to the homogeneous system with C = F = 0. Normally,
1484
+ * SCALE = 1.
1485
+ *
1486
+ * RDSUM (input/output) DOUBLE PRECISION
1487
+ * On entry, the sum of squares of computed contributions to
1488
+ * the Dif-estimate under computation by DTGSYL, where the
1489
+ * scaling factor RDSCAL (see below) has been factored out.
1490
+ * On exit, the corresponding sum of squares updated with the
1491
+ * contributions from the current sub-system.
1492
+ * If TRANS = 'T' RDSUM is not touched.
1493
+ * NOTE: RDSUM only makes sense when DTGSY2 is called by DTGSYL.
1494
+ *
1495
+ * RDSCAL (input/output) DOUBLE PRECISION
1496
+ * On entry, scaling factor used to prevent overflow in RDSUM.
1497
+ * On exit, RDSCAL is updated w.r.t. the current contributions
1498
+ * in RDSUM.
1499
+ * If TRANS = 'T', RDSCAL is not touched.
1500
+ * NOTE: RDSCAL only makes sense when DTGSY2 is called by
1501
+ * DTGSYL.
1502
+ *
1503
+ * IWORK (workspace) INTEGER array, dimension (M+N+2)
1504
+ *
1505
+ * PQ (output) INTEGER
1506
+ * On exit, the number of subsystems (of size 2-by-2, 4-by-4 and
1507
+ * 8-by-8) solved by this routine.
1508
+ *
1509
+ * INFO (output) INTEGER
1510
+ * On exit, if INFO is set to
1511
+ * =0: Successful exit
1512
+ * <0: If INFO = -i, the i-th argument had an illegal value.
1513
+ * >0: The matrix pairs (A, D) and (B, E) have common or very
1514
+ * close eigenvalues.
1515
+ *
1516
+
1517
+ * Further Details
1518
+ * ===============
1519
+ *
1520
+ * Based on contributions by
1521
+ * Bo Kagstrom and Peter Poromaa, Department of Computing Science,
1522
+ * Umea University, S-901 87 Umea, Sweden.
1523
+ *
1524
+ * =====================================================================
1525
+ * Replaced various illegal calls to DCOPY by calls to DLASET.
1526
+ * Sven Hammarling, 27/5/02.
1527
+ *
1528
+
1529
+
1530
+ </PRE>
1531
+ <A HREF="#top">go to the page top</A>
1532
+
1533
+ <A NAME="dtgsyl"></A>
1534
+ <H2>dtgsyl</H2>
1535
+ <PRE>
1536
+ USAGE:
1537
+ scale, dif, work, info, c, f = NumRu::Lapack.dtgsyl( trans, ijob, a, b, c, d, e, f, [:lwork => lwork, :usage => usage, :help => help])
1538
+
1539
+
1540
+ FORTRAN MANUAL
1541
+ SUBROUTINE DTGSYL( TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO )
1542
+
1543
+ * Purpose
1544
+ * =======
1545
+ *
1546
+ * DTGSYL solves the generalized Sylvester equation:
1547
+ *
1548
+ * A * R - L * B = scale * C (1)
1549
+ * D * R - L * E = scale * F
1550
+ *
1551
+ * where R and L are unknown m-by-n matrices, (A, D), (B, E) and
1552
+ * (C, F) are given matrix pairs of size m-by-m, n-by-n and m-by-n,
1553
+ * respectively, with real entries. (A, D) and (B, E) must be in
1554
+ * generalized (real) Schur canonical form, i.e. A, B are upper quasi
1555
+ * triangular and D, E are upper triangular.
1556
+ *
1557
+ * The solution (R, L) overwrites (C, F). 0 <= SCALE <= 1 is an output
1558
+ * scaling factor chosen to avoid overflow.
1559
+ *
1560
+ * In matrix notation (1) is equivalent to solve Zx = scale b, where
1561
+ * Z is defined as
1562
+ *
1563
+ * Z = [ kron(In, A) -kron(B', Im) ] (2)
1564
+ * [ kron(In, D) -kron(E', Im) ].
1565
+ *
1566
+ * Here Ik is the identity matrix of size k and X' is the transpose of
1567
+ * X. kron(X, Y) is the Kronecker product between the matrices X and Y.
1568
+ *
1569
+ * If TRANS = 'T', DTGSYL solves the transposed system Z'*y = scale*b,
1570
+ * which is equivalent to solve for R and L in
1571
+ *
1572
+ * A' * R + D' * L = scale * C (3)
1573
+ * R * B' + L * E' = scale * (-F)
1574
+ *
1575
+ * This case (TRANS = 'T') is used to compute an one-norm-based estimate
1576
+ * of Dif[(A,D), (B,E)], the separation between the matrix pairs (A,D)
1577
+ * and (B,E), using DLACON.
1578
+ *
1579
+ * If IJOB >= 1, DTGSYL computes a Frobenius norm-based estimate
1580
+ * of Dif[(A,D),(B,E)]. That is, the reciprocal of a lower bound on the
1581
+ * reciprocal of the smallest singular value of Z. See [1-2] for more
1582
+ * information.
1583
+ *
1584
+ * This is a level 3 BLAS algorithm.
1585
+ *
1586
+
1587
+ * Arguments
1588
+ * =========
1589
+ *
1590
+ * TRANS (input) CHARACTER*1
1591
+ * = 'N', solve the generalized Sylvester equation (1).
1592
+ * = 'T', solve the 'transposed' system (3).
1593
+ *
1594
+ * IJOB (input) INTEGER
1595
+ * Specifies what kind of functionality to be performed.
1596
+ * =0: solve (1) only.
1597
+ * =1: The functionality of 0 and 3.
1598
+ * =2: The functionality of 0 and 4.
1599
+ * =3: Only an estimate of Dif[(A,D), (B,E)] is computed.
1600
+ * (look ahead strategy IJOB = 1 is used).
1601
+ * =4: Only an estimate of Dif[(A,D), (B,E)] is computed.
1602
+ * ( DGECON on sub-systems is used ).
1603
+ * Not referenced if TRANS = 'T'.
1604
+ *
1605
+ * M (input) INTEGER
1606
+ * The order of the matrices A and D, and the row dimension of
1607
+ * the matrices C, F, R and L.
1608
+ *
1609
+ * N (input) INTEGER
1610
+ * The order of the matrices B and E, and the column dimension
1611
+ * of the matrices C, F, R and L.
1612
+ *
1613
+ * A (input) DOUBLE PRECISION array, dimension (LDA, M)
1614
+ * The upper quasi triangular matrix A.
1615
+ *
1616
+ * LDA (input) INTEGER
1617
+ * The leading dimension of the array A. LDA >= max(1, M).
1618
+ *
1619
+ * B (input) DOUBLE PRECISION array, dimension (LDB, N)
1620
+ * The upper quasi triangular matrix B.
1621
+ *
1622
+ * LDB (input) INTEGER
1623
+ * The leading dimension of the array B. LDB >= max(1, N).
1624
+ *
1625
+ * C (input/output) DOUBLE PRECISION array, dimension (LDC, N)
1626
+ * On entry, C contains the right-hand-side of the first matrix
1627
+ * equation in (1) or (3).
1628
+ * On exit, if IJOB = 0, 1 or 2, C has been overwritten by
1629
+ * the solution R. If IJOB = 3 or 4 and TRANS = 'N', C holds R,
1630
+ * the solution achieved during the computation of the
1631
+ * Dif-estimate.
1632
+ *
1633
+ * LDC (input) INTEGER
1634
+ * The leading dimension of the array C. LDC >= max(1, M).
1635
+ *
1636
+ * D (input) DOUBLE PRECISION array, dimension (LDD, M)
1637
+ * The upper triangular matrix D.
1638
+ *
1639
+ * LDD (input) INTEGER
1640
+ * The leading dimension of the array D. LDD >= max(1, M).
1641
+ *
1642
+ * E (input) DOUBLE PRECISION array, dimension (LDE, N)
1643
+ * The upper triangular matrix E.
1644
+ *
1645
+ * LDE (input) INTEGER
1646
+ * The leading dimension of the array E. LDE >= max(1, N).
1647
+ *
1648
+ * F (input/output) DOUBLE PRECISION array, dimension (LDF, N)
1649
+ * On entry, F contains the right-hand-side of the second matrix
1650
+ * equation in (1) or (3).
1651
+ * On exit, if IJOB = 0, 1 or 2, F has been overwritten by
1652
+ * the solution L. If IJOB = 3 or 4 and TRANS = 'N', F holds L,
1653
+ * the solution achieved during the computation of the
1654
+ * Dif-estimate.
1655
+ *
1656
+ * LDF (input) INTEGER
1657
+ * The leading dimension of the array F. LDF >= max(1, M).
1658
+ *
1659
+ * DIF (output) DOUBLE PRECISION
1660
+ * On exit DIF is the reciprocal of a lower bound of the
1661
+ * reciprocal of the Dif-function, i.e. DIF is an upper bound of
1662
+ * Dif[(A,D), (B,E)] = sigma_min(Z), where Z as in (2).
1663
+ * IF IJOB = 0 or TRANS = 'T', DIF is not touched.
1664
+ *
1665
+ * SCALE (output) DOUBLE PRECISION
1666
+ * On exit SCALE is the scaling factor in (1) or (3).
1667
+ * If 0 < SCALE < 1, C and F hold the solutions R and L, resp.,
1668
+ * to a slightly perturbed system but the input matrices A, B, D
1669
+ * and E have not been changed. If SCALE = 0, C and F hold the
1670
+ * solutions R and L, respectively, to the homogeneous system
1671
+ * with C = F = 0. Normally, SCALE = 1.
1672
+ *
1673
+ * WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))
1674
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1675
+ *
1676
+ * LWORK (input) INTEGER
1677
+ * The dimension of the array WORK. LWORK > = 1.
1678
+ * If IJOB = 1 or 2 and TRANS = 'N', LWORK >= max(1,2*M*N).
1679
+ *
1680
+ * If LWORK = -1, then a workspace query is assumed; the routine
1681
+ * only calculates the optimal size of the WORK array, returns
1682
+ * this value as the first entry of the WORK array, and no error
1683
+ * message related to LWORK is issued by XERBLA.
1684
+ *
1685
+ * IWORK (workspace) INTEGER array, dimension (M+N+6)
1686
+ *
1687
+ * INFO (output) INTEGER
1688
+ * =0: successful exit
1689
+ * <0: If INFO = -i, the i-th argument had an illegal value.
1690
+ * >0: (A, D) and (B, E) have common or close eigenvalues.
1691
+ *
1692
+
1693
+ * Further Details
1694
+ * ===============
1695
+ *
1696
+ * Based on contributions by
1697
+ * Bo Kagstrom and Peter Poromaa, Department of Computing Science,
1698
+ * Umea University, S-901 87 Umea, Sweden.
1699
+ *
1700
+ * [1] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
1701
+ * for Solving the Generalized Sylvester Equation and Estimating the
1702
+ * Separation between Regular Matrix Pairs, Report UMINF - 93.23,
1703
+ * Department of Computing Science, Umea University, S-901 87 Umea,
1704
+ * Sweden, December 1993, Revised April 1994, Also as LAPACK Working
1705
+ * Note 75. To appear in ACM Trans. on Math. Software, Vol 22,
1706
+ * No 1, 1996.
1707
+ *
1708
+ * [2] B. Kagstrom, A Perturbation Analysis of the Generalized Sylvester
1709
+ * Equation (AR - LB, DR - LE ) = (C, F), SIAM J. Matrix Anal.
1710
+ * Appl., 15(4):1045-1060, 1994
1711
+ *
1712
+ * [3] B. Kagstrom and L. Westin, Generalized Schur Methods with
1713
+ * Condition Estimators for Solving the Generalized Sylvester
1714
+ * Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7,
1715
+ * July 1989, pp 745-751.
1716
+ *
1717
+ * =====================================================================
1718
+ * Replaced various illegal calls to DCOPY by calls to DLASET.
1719
+ * Sven Hammarling, 1/5/02.
1720
+ *
1721
+
1722
+
1723
+ </PRE>
1724
+ <A HREF="#top">go to the page top</A>
1725
+
1726
+ <HR />
1727
+ <A HREF="d.html">back to matrix types</A><BR>
1728
+ <A HREF="d.html">back to data types</A>
1729
+ </BODY>
1730
+ </HTML>