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/st.html ADDED
@@ -0,0 +1,16 @@
1
+ <HTML>
2
+ <HEAD>
3
+ <TITLE>(real) symmetric tridiagonal routines</TITLE>
4
+ </HEAD>
5
+ <BODY>
6
+ <H1>(real) symmetric tridiagonal routines</H1>
7
+ <UL>
8
+ <LI><A HREF="sst.html">S: REAL</A></LI>
9
+ <LI><A HREF="dst.html">D: DOUBLE PRECISION</A></LI>
10
+ <LI><A HREF="cst.html">C: COMPLEX</A></LI>
11
+ <LI><A HREF="zst.html">Z: COMPLEX*16 or DOUBLE COMPLEX</A></LI>
12
+ </UL>
13
+ <HR />
14
+ <A HREF="index.html">back to index.html</A>
15
+ </BODY>
16
+ </HTML>
data/doc/stb.html ADDED
@@ -0,0 +1,284 @@
1
+ <HTML>
2
+ <HEAD>
3
+ <TITLE>REAL routines for triangular band matrix</TITLE>
4
+ </HEAD>
5
+ <BODY>
6
+ <A NAME="top"></A>
7
+ <H1>REAL routines for triangular band matrix</H1>
8
+ <UL>
9
+ <LI><A HREF="#stbcon">stbcon</A></LI>
10
+ <LI><A HREF="#stbrfs">stbrfs</A></LI>
11
+ <LI><A HREF="#stbtrs">stbtrs</A></LI>
12
+ </UL>
13
+
14
+ <A NAME="stbcon"></A>
15
+ <H2>stbcon</H2>
16
+ <PRE>
17
+ USAGE:
18
+ rcond, info = NumRu::Lapack.stbcon( norm, uplo, diag, kd, ab, [:usage => usage, :help => help])
19
+
20
+
21
+ FORTRAN MANUAL
22
+ SUBROUTINE STBCON( NORM, UPLO, DIAG, N, KD, AB, LDAB, RCOND, WORK, IWORK, INFO )
23
+
24
+ * Purpose
25
+ * =======
26
+ *
27
+ * STBCON 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) REAL 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) REAL
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) REAL 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="stbrfs"></A>
93
+ <H2>stbrfs</H2>
94
+ <PRE>
95
+ USAGE:
96
+ ferr, berr, info = NumRu::Lapack.stbrfs( uplo, trans, diag, kd, ab, b, x, [:usage => usage, :help => help])
97
+
98
+
99
+ FORTRAN MANUAL
100
+ SUBROUTINE STBRFS( UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, FERR, BERR, WORK, IWORK, INFO )
101
+
102
+ * Purpose
103
+ * =======
104
+ *
105
+ * STBRFS 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 STBTRS or some other
110
+ * means before entering this routine. STBRFS 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) REAL 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) REAL 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) REAL 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) REAL 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) REAL 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) REAL 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="stbtrs"></A>
198
+ <H2>stbtrs</H2>
199
+ <PRE>
200
+ USAGE:
201
+ info, b = NumRu::Lapack.stbtrs( uplo, trans, diag, kd, ab, b, [:usage => usage, :help => help])
202
+
203
+
204
+ FORTRAN MANUAL
205
+ SUBROUTINE STBTRS( UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, INFO )
206
+
207
+ * Purpose
208
+ * =======
209
+ *
210
+ * STBTRS 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) REAL 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) REAL 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="s.html">back to matrix types</A><BR>
282
+ <A HREF="s.html">back to data types</A>
283
+ </BODY>
284
+ </HTML>
data/doc/stg.html ADDED
@@ -0,0 +1,1729 @@
1
+ <HTML>
2
+ <HEAD>
3
+ <TITLE>REAL 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>REAL routines for triangular matrices, generalized problem (i.e., a pair of triangular matrices) matrix</H1>
8
+ <UL>
9
+ <LI><A HREF="#stgevc">stgevc</A></LI>
10
+ <LI><A HREF="#stgex2">stgex2</A></LI>
11
+ <LI><A HREF="#stgexc">stgexc</A></LI>
12
+ <LI><A HREF="#stgsen">stgsen</A></LI>
13
+ <LI><A HREF="#stgsja">stgsja</A></LI>
14
+ <LI><A HREF="#stgsna">stgsna</A></LI>
15
+ <LI><A HREF="#stgsy2">stgsy2</A></LI>
16
+ <LI><A HREF="#stgsyl">stgsyl</A></LI>
17
+ </UL>
18
+
19
+ <A NAME="stgevc"></A>
20
+ <H2>stgevc</H2>
21
+ <PRE>
22
+ USAGE:
23
+ m, info, vl, vr = NumRu::Lapack.stgevc( side, howmny, select, s, p, vl, vr, [:usage => usage, :help => help])
24
+
25
+
26
+ FORTRAN MANUAL
27
+ SUBROUTINE STGEVC( SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, INFO )
28
+
29
+ * Purpose
30
+ * =======
31
+ *
32
+ * STGEVC 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 SGGHRD + SHGEQZ.
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) REAL array, dimension (LDS,N)
88
+ * The upper quasi-triangular matrix S from a generalized Schur
89
+ * factorization, as computed by SHGEQZ.
90
+ *
91
+ * LDS (input) INTEGER
92
+ * The leading dimension of array S. LDS >= max(1,N).
93
+ *
94
+ * P (input) REAL array, dimension (LDP,N)
95
+ * The upper triangular matrix P from a generalized Schur
96
+ * factorization, as computed by SHGEQZ.
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) REAL 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 SHGEQZ).
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) REAL 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 SHGEQZ).
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) REAL 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="stgex2"></A>
230
+ <H2>stgex2</H2>
231
+ <PRE>
232
+ USAGE:
233
+ info, a, b, q, z = NumRu::Lapack.stgex2( wantq, wantz, a, b, q, ldq, z, j1, n1, n2, [:lwork => lwork, :usage => usage, :help => help])
234
+
235
+
236
+ FORTRAN MANUAL
237
+ SUBROUTINE STGEX2( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, J1, N1, N2, WORK, LWORK, INFO )
238
+
239
+ * Purpose
240
+ * =======
241
+ *
242
+ * STGEX2 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 SGGES), 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) REAL arrays, 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) REAL arrays, 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) REAL array, dimension (LDZ,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) REAL 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) REAL array, dimension (MAX(1,LWORK)).
314
+ *
315
+ * LWORK (input) INTEGER
316
+ * The dimension of the array WORK.
317
+ * LWORK >= MAX( 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 SCOPY by calls to SLASET, 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="stgexc"></A>
363
+ <H2>stgexc</H2>
364
+ <PRE>
365
+ USAGE:
366
+ work, info, a, b, q, z, ifst, ilst = NumRu::Lapack.stgexc( wantq, wantz, a, b, q, ldq, z, ifst, ilst, [:lwork => lwork, :usage => usage, :help => help])
367
+
368
+
369
+ FORTRAN MANUAL
370
+ SUBROUTINE STGEXC( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, WORK, LWORK, INFO )
371
+
372
+ * Purpose
373
+ * =======
374
+ *
375
+ * STGEXC 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 SGGES), 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) REAL 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) REAL 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) REAL array, dimension (LDZ,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) REAL 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) REAL 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="stgsen"></A>
498
+ <H2>stgsen</H2>
499
+ <PRE>
500
+ USAGE:
501
+ alphar, alphai, beta, m, pl, pr, dif, work, iwork, info, a, b, q, z = NumRu::Lapack.stgsen( ijob, wantq, wantz, select, a, b, q, z, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])
502
+
503
+
504
+ FORTRAN MANUAL
505
+ SUBROUTINE STGSEN( 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
+ * STGSEN 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 SGGES), 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
+ * STGSEN 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, STGSEN 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) REAL 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) REAL 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) REAL array, dimension (N)
592
+ * ALPHAI (output) REAL array, dimension (N)
593
+ * BETA (output) REAL 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) REAL 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) REAL 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) REAL
633
+ * PR (output) REAL
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) REAL 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) REAL array, dimension (MAX(1,LWORK))
650
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
651
+ *
652
+ * LWORK (input) INTEGER
653
+ * The dimension of the array WORK. LWORK >= 4*N+16.
654
+ * If IJOB = 1, 2 or 4, LWORK >= MAX(4*N+16, 2*M*(N-M)).
655
+ * If IJOB = 3 or 5, LWORK >= MAX(4*N+16, 4*M*(N-M)).
656
+ *
657
+ * If LWORK = -1, then a workspace query is assumed; the routine
658
+ * only calculates the optimal size of the WORK array, returns
659
+ * this value as the first entry of the WORK array, and no error
660
+ * message related to LWORK is issued by XERBLA.
661
+ *
662
+ * IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
663
+ * On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
664
+ *
665
+ * LIWORK (input) INTEGER
666
+ * The dimension of the array IWORK. LIWORK >= 1.
667
+ * If IJOB = 1, 2 or 4, LIWORK >= N+6.
668
+ * If IJOB = 3 or 5, LIWORK >= MAX(2*M*(N-M), N+6).
669
+ *
670
+ * If LIWORK = -1, then a workspace query is assumed; the
671
+ * routine only calculates the optimal size of the IWORK array,
672
+ * returns this value as the first entry of the IWORK array, and
673
+ * no error message related to LIWORK is issued by XERBLA.
674
+ *
675
+ * INFO (output) INTEGER
676
+ * =0: Successful exit.
677
+ * <0: If INFO = -i, the i-th argument had an illegal value.
678
+ * =1: Reordering of (A, B) failed because the transformed
679
+ * matrix pair (A, B) would be too far from generalized
680
+ * Schur form; the problem is very ill-conditioned.
681
+ * (A, B) may have been partially reordered.
682
+ * If requested, 0 is returned in DIF(*), PL and PR.
683
+ *
684
+
685
+ * Further Details
686
+ * ===============
687
+ *
688
+ * STGSEN first collects the selected eigenvalues by computing
689
+ * orthogonal U and W that move them to the top left corner of (A, B).
690
+ * In other words, the selected eigenvalues are the eigenvalues of
691
+ * (A11, B11) in:
692
+ *
693
+ * U'*(A, B)*W = (A11 A12) (B11 B12) n1
694
+ * ( 0 A22),( 0 B22) n2
695
+ * n1 n2 n1 n2
696
+ *
697
+ * where N = n1+n2 and U' means the transpose of U. The first n1 columns
698
+ * of U and W span the specified pair of left and right eigenspaces
699
+ * (deflating subspaces) of (A, B).
700
+ *
701
+ * If (A, B) has been obtained from the generalized real Schur
702
+ * decomposition of a matrix pair (C, D) = Q*(A, B)*Z', then the
703
+ * reordered generalized real Schur form of (C, D) is given by
704
+ *
705
+ * (C, D) = (Q*U)*(U'*(A, B)*W)*(Z*W)',
706
+ *
707
+ * and the first n1 columns of Q*U and Z*W span the corresponding
708
+ * deflating subspaces of (C, D) (Q and Z store Q*U and Z*W, resp.).
709
+ *
710
+ * Note that if the selected eigenvalue is sufficiently ill-conditioned,
711
+ * then its value may differ significantly from its value before
712
+ * reordering.
713
+ *
714
+ * The reciprocal condition numbers of the left and right eigenspaces
715
+ * spanned by the first n1 columns of U and W (or Q*U and Z*W) may
716
+ * be returned in DIF(1:2), corresponding to Difu and Difl, resp.
717
+ *
718
+ * The Difu and Difl are defined as:
719
+ *
720
+ * Difu[(A11, B11), (A22, B22)] = sigma-min( Zu )
721
+ * and
722
+ * Difl[(A11, B11), (A22, B22)] = Difu[(A22, B22), (A11, B11)],
723
+ *
724
+ * where sigma-min(Zu) is the smallest singular value of the
725
+ * (2*n1*n2)-by-(2*n1*n2) matrix
726
+ *
727
+ * Zu = [ kron(In2, A11) -kron(A22', In1) ]
728
+ * [ kron(In2, B11) -kron(B22', In1) ].
729
+ *
730
+ * Here, Inx is the identity matrix of size nx and A22' is the
731
+ * transpose of A22. kron(X, Y) is the Kronecker product between
732
+ * the matrices X and Y.
733
+ *
734
+ * When DIF(2) is small, small changes in (A, B) can cause large changes
735
+ * in the deflating subspace. An approximate (asymptotic) bound on the
736
+ * maximum angular error in the computed deflating subspaces is
737
+ *
738
+ * EPS * norm((A, B)) / DIF(2),
739
+ *
740
+ * where EPS is the machine precision.
741
+ *
742
+ * The reciprocal norm of the projectors on the left and right
743
+ * eigenspaces associated with (A11, B11) may be returned in PL and PR.
744
+ * They are computed as follows. First we compute L and R so that
745
+ * P*(A, B)*Q is block diagonal, where
746
+ *
747
+ * P = ( I -L ) n1 Q = ( I R ) n1
748
+ * ( 0 I ) n2 and ( 0 I ) n2
749
+ * n1 n2 n1 n2
750
+ *
751
+ * and (L, R) is the solution to the generalized Sylvester equation
752
+ *
753
+ * A11*R - L*A22 = -A12
754
+ * B11*R - L*B22 = -B12
755
+ *
756
+ * Then PL = (F-norm(L)**2+1)**(-1/2) and PR = (F-norm(R)**2+1)**(-1/2).
757
+ * An approximate (asymptotic) bound on the average absolute error of
758
+ * the selected eigenvalues is
759
+ *
760
+ * EPS * norm((A, B)) / PL.
761
+ *
762
+ * There are also global error bounds which valid for perturbations up
763
+ * to a certain restriction: A lower bound (x) on the smallest
764
+ * F-norm(E,F) for which an eigenvalue of (A11, B11) may move and
765
+ * coalesce with an eigenvalue of (A22, B22) under perturbation (E,F),
766
+ * (i.e. (A + E, B + F), is
767
+ *
768
+ * x = min(Difu,Difl)/((1/(PL*PL)+1/(PR*PR))**(1/2)+2*max(1/PL,1/PR)).
769
+ *
770
+ * An approximate bound on x can be computed from DIF(1:2), PL and PR.
771
+ *
772
+ * If y = ( F-norm(E,F) / x) <= 1, the angles between the perturbed
773
+ * (L', R') and unperturbed (L, R) left and right deflating subspaces
774
+ * associated with the selected cluster in the (1,1)-blocks can be
775
+ * bounded as
776
+ *
777
+ * max-angle(L, L') <= arctan( y * PL / (1 - y * (1 - PL * PL)**(1/2))
778
+ * max-angle(R, R') <= arctan( y * PR / (1 - y * (1 - PR * PR)**(1/2))
779
+ *
780
+ * See LAPACK User's Guide section 4.11 or the following references
781
+ * for more information.
782
+ *
783
+ * Note that if the default method for computing the Frobenius-norm-
784
+ * based estimate DIF is not wanted (see SLATDF), then the parameter
785
+ * IDIFJB (see below) should be changed from 3 to 4 (routine SLATDF
786
+ * (IJOB = 2 will be used)). See STGSYL for more details.
787
+ *
788
+ * Based on contributions by
789
+ * Bo Kagstrom and Peter Poromaa, Department of Computing Science,
790
+ * Umea University, S-901 87 Umea, Sweden.
791
+ *
792
+ * References
793
+ * ==========
794
+ *
795
+ * [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
796
+ * Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
797
+ * M.S. Moonen et al (eds), Linear Algebra for Large Scale and
798
+ * Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.
799
+ *
800
+ * [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
801
+ * Eigenvalues of a Regular Matrix Pair (A, B) and Condition
802
+ * Estimation: Theory, Algorithms and Software,
803
+ * Report UMINF - 94.04, Department of Computing Science, Umea
804
+ * University, S-901 87 Umea, Sweden, 1994. Also as LAPACK Working
805
+ * Note 87. To appear in Numerical Algorithms, 1996.
806
+ *
807
+ * [3] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
808
+ * for Solving the Generalized Sylvester Equation and Estimating the
809
+ * Separation between Regular Matrix Pairs, Report UMINF - 93.23,
810
+ * Department of Computing Science, Umea University, S-901 87 Umea,
811
+ * Sweden, December 1993, Revised April 1994, Also as LAPACK Working
812
+ * Note 75. To appear in ACM Trans. on Math. Software, Vol 22, No 1,
813
+ * 1996.
814
+ *
815
+ * =====================================================================
816
+ *
817
+
818
+
819
+ </PRE>
820
+ <A HREF="#top">go to the page top</A>
821
+
822
+ <A NAME="stgsja"></A>
823
+ <H2>stgsja</H2>
824
+ <PRE>
825
+ USAGE:
826
+ alpha, beta, ncycle, info, a, b, u, v, q = NumRu::Lapack.stgsja( jobu, jobv, jobq, k, l, a, b, tola, tolb, u, v, q, [:usage => usage, :help => help])
827
+
828
+
829
+ FORTRAN MANUAL
830
+ SUBROUTINE STGSJA( 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 )
831
+
832
+ * Purpose
833
+ * =======
834
+ *
835
+ * STGSJA computes the generalized singular value decomposition (GSVD)
836
+ * of two real upper triangular (or trapezoidal) matrices A and B.
837
+ *
838
+ * On entry, it is assumed that matrices A and B have the following
839
+ * forms, which may be obtained by the preprocessing subroutine SGGSVP
840
+ * from a general M-by-N matrix A and P-by-N matrix B:
841
+ *
842
+ * N-K-L K L
843
+ * A = K ( 0 A12 A13 ) if M-K-L >= 0;
844
+ * L ( 0 0 A23 )
845
+ * M-K-L ( 0 0 0 )
846
+ *
847
+ * N-K-L K L
848
+ * A = K ( 0 A12 A13 ) if M-K-L < 0;
849
+ * M-K ( 0 0 A23 )
850
+ *
851
+ * N-K-L K L
852
+ * B = L ( 0 0 B13 )
853
+ * P-L ( 0 0 0 )
854
+ *
855
+ * where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular
856
+ * upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0,
857
+ * otherwise A23 is (M-K)-by-L upper trapezoidal.
858
+ *
859
+ * On exit,
860
+ *
861
+ * U'*A*Q = D1*( 0 R ), V'*B*Q = D2*( 0 R ),
862
+ *
863
+ * where U, V and Q are orthogonal matrices, Z' denotes the transpose
864
+ * of Z, R is a nonsingular upper triangular matrix, and D1 and D2 are
865
+ * ``diagonal'' matrices, which are of the following structures:
866
+ *
867
+ * If M-K-L >= 0,
868
+ *
869
+ * K L
870
+ * D1 = K ( I 0 )
871
+ * L ( 0 C )
872
+ * M-K-L ( 0 0 )
873
+ *
874
+ * K L
875
+ * D2 = L ( 0 S )
876
+ * P-L ( 0 0 )
877
+ *
878
+ * N-K-L K L
879
+ * ( 0 R ) = K ( 0 R11 R12 ) K
880
+ * L ( 0 0 R22 ) L
881
+ *
882
+ * where
883
+ *
884
+ * C = diag( ALPHA(K+1), ... , ALPHA(K+L) ),
885
+ * S = diag( BETA(K+1), ... , BETA(K+L) ),
886
+ * C**2 + S**2 = I.
887
+ *
888
+ * R is stored in A(1:K+L,N-K-L+1:N) on exit.
889
+ *
890
+ * If M-K-L < 0,
891
+ *
892
+ * K M-K K+L-M
893
+ * D1 = K ( I 0 0 )
894
+ * M-K ( 0 C 0 )
895
+ *
896
+ * K M-K K+L-M
897
+ * D2 = M-K ( 0 S 0 )
898
+ * K+L-M ( 0 0 I )
899
+ * P-L ( 0 0 0 )
900
+ *
901
+ * N-K-L K M-K K+L-M
902
+ * ( 0 R ) = K ( 0 R11 R12 R13 )
903
+ * M-K ( 0 0 R22 R23 )
904
+ * K+L-M ( 0 0 0 R33 )
905
+ *
906
+ * where
907
+ * C = diag( ALPHA(K+1), ... , ALPHA(M) ),
908
+ * S = diag( BETA(K+1), ... , BETA(M) ),
909
+ * C**2 + S**2 = I.
910
+ *
911
+ * R = ( R11 R12 R13 ) is stored in A(1:M, N-K-L+1:N) and R33 is stored
912
+ * ( 0 R22 R23 )
913
+ * in B(M-K+1:L,N+M-K-L+1:N) on exit.
914
+ *
915
+ * The computation of the orthogonal transformation matrices U, V or Q
916
+ * is optional. These matrices may either be formed explicitly, or they
917
+ * may be postmultiplied into input matrices U1, V1, or Q1.
918
+ *
919
+
920
+ * Arguments
921
+ * =========
922
+ *
923
+ * JOBU (input) CHARACTER*1
924
+ * = 'U': U must contain an orthogonal matrix U1 on entry, and
925
+ * the product U1*U is returned;
926
+ * = 'I': U is initialized to the unit matrix, and the
927
+ * orthogonal matrix U is returned;
928
+ * = 'N': U is not computed.
929
+ *
930
+ * JOBV (input) CHARACTER*1
931
+ * = 'V': V must contain an orthogonal matrix V1 on entry, and
932
+ * the product V1*V is returned;
933
+ * = 'I': V is initialized to the unit matrix, and the
934
+ * orthogonal matrix V is returned;
935
+ * = 'N': V is not computed.
936
+ *
937
+ * JOBQ (input) CHARACTER*1
938
+ * = 'Q': Q must contain an orthogonal matrix Q1 on entry, and
939
+ * the product Q1*Q is returned;
940
+ * = 'I': Q is initialized to the unit matrix, and the
941
+ * orthogonal matrix Q is returned;
942
+ * = 'N': Q is not computed.
943
+ *
944
+ * M (input) INTEGER
945
+ * The number of rows of the matrix A. M >= 0.
946
+ *
947
+ * P (input) INTEGER
948
+ * The number of rows of the matrix B. P >= 0.
949
+ *
950
+ * N (input) INTEGER
951
+ * The number of columns of the matrices A and B. N >= 0.
952
+ *
953
+ * K (input) INTEGER
954
+ * L (input) INTEGER
955
+ * K and L specify the subblocks in the input matrices A and B:
956
+ * A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,N-L+1:N)
957
+ * of A and B, whose GSVD is going to be computed by STGSJA.
958
+ * See Further Details.
959
+ *
960
+ * A (input/output) REAL array, dimension (LDA,N)
961
+ * On entry, the M-by-N matrix A.
962
+ * On exit, A(N-K+1:N,1:MIN(K+L,M) ) contains the triangular
963
+ * matrix R or part of R. See Purpose for details.
964
+ *
965
+ * LDA (input) INTEGER
966
+ * The leading dimension of the array A. LDA >= max(1,M).
967
+ *
968
+ * B (input/output) REAL array, dimension (LDB,N)
969
+ * On entry, the P-by-N matrix B.
970
+ * On exit, if necessary, B(M-K+1:L,N+M-K-L+1:N) contains
971
+ * a part of R. See Purpose for details.
972
+ *
973
+ * LDB (input) INTEGER
974
+ * The leading dimension of the array B. LDB >= max(1,P).
975
+ *
976
+ * TOLA (input) REAL
977
+ * TOLB (input) REAL
978
+ * TOLA and TOLB are the convergence criteria for the Jacobi-
979
+ * Kogbetliantz iteration procedure. Generally, they are the
980
+ * same as used in the preprocessing step, say
981
+ * TOLA = max(M,N)*norm(A)*MACHEPS,
982
+ * TOLB = max(P,N)*norm(B)*MACHEPS.
983
+ *
984
+ * ALPHA (output) REAL array, dimension (N)
985
+ * BETA (output) REAL array, dimension (N)
986
+ * On exit, ALPHA and BETA contain the generalized singular
987
+ * value pairs of A and B;
988
+ * ALPHA(1:K) = 1,
989
+ * BETA(1:K) = 0,
990
+ * and if M-K-L >= 0,
991
+ * ALPHA(K+1:K+L) = diag(C),
992
+ * BETA(K+1:K+L) = diag(S),
993
+ * or if M-K-L < 0,
994
+ * ALPHA(K+1:M)= C, ALPHA(M+1:K+L)= 0
995
+ * BETA(K+1:M) = S, BETA(M+1:K+L) = 1.
996
+ * Furthermore, if K+L < N,
997
+ * ALPHA(K+L+1:N) = 0 and
998
+ * BETA(K+L+1:N) = 0.
999
+ *
1000
+ * U (input/output) REAL array, dimension (LDU,M)
1001
+ * On entry, if JOBU = 'U', U must contain a matrix U1 (usually
1002
+ * the orthogonal matrix returned by SGGSVP).
1003
+ * On exit,
1004
+ * if JOBU = 'I', U contains the orthogonal matrix U;
1005
+ * if JOBU = 'U', U contains the product U1*U.
1006
+ * If JOBU = 'N', U is not referenced.
1007
+ *
1008
+ * LDU (input) INTEGER
1009
+ * The leading dimension of the array U. LDU >= max(1,M) if
1010
+ * JOBU = 'U'; LDU >= 1 otherwise.
1011
+ *
1012
+ * V (input/output) REAL array, dimension (LDV,P)
1013
+ * On entry, if JOBV = 'V', V must contain a matrix V1 (usually
1014
+ * the orthogonal matrix returned by SGGSVP).
1015
+ * On exit,
1016
+ * if JOBV = 'I', V contains the orthogonal matrix V;
1017
+ * if JOBV = 'V', V contains the product V1*V.
1018
+ * If JOBV = 'N', V is not referenced.
1019
+ *
1020
+ * LDV (input) INTEGER
1021
+ * The leading dimension of the array V. LDV >= max(1,P) if
1022
+ * JOBV = 'V'; LDV >= 1 otherwise.
1023
+ *
1024
+ * Q (input/output) REAL array, dimension (LDQ,N)
1025
+ * On entry, if JOBQ = 'Q', Q must contain a matrix Q1 (usually
1026
+ * the orthogonal matrix returned by SGGSVP).
1027
+ * On exit,
1028
+ * if JOBQ = 'I', Q contains the orthogonal matrix Q;
1029
+ * if JOBQ = 'Q', Q contains the product Q1*Q.
1030
+ * If JOBQ = 'N', Q is not referenced.
1031
+ *
1032
+ * LDQ (input) INTEGER
1033
+ * The leading dimension of the array Q. LDQ >= max(1,N) if
1034
+ * JOBQ = 'Q'; LDQ >= 1 otherwise.
1035
+ *
1036
+ * WORK (workspace) REAL array, dimension (2*N)
1037
+ *
1038
+ * NCYCLE (output) INTEGER
1039
+ * The number of cycles required for convergence.
1040
+ *
1041
+ * INFO (output) INTEGER
1042
+ * = 0: successful exit
1043
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
1044
+ * = 1: the procedure does not converge after MAXIT cycles.
1045
+ *
1046
+ * Internal Parameters
1047
+ * ===================
1048
+ *
1049
+ * MAXIT INTEGER
1050
+ * MAXIT specifies the total loops that the iterative procedure
1051
+ * may take. If after MAXIT cycles, the routine fails to
1052
+ * converge, we return INFO = 1.
1053
+ *
1054
+
1055
+ * Further Details
1056
+ * ===============
1057
+ *
1058
+ * STGSJA essentially uses a variant of Kogbetliantz algorithm to reduce
1059
+ * min(L,M-K)-by-L triangular (or trapezoidal) matrix A23 and L-by-L
1060
+ * matrix B13 to the form:
1061
+ *
1062
+ * U1'*A13*Q1 = C1*R1; V1'*B13*Q1 = S1*R1,
1063
+ *
1064
+ * where U1, V1 and Q1 are orthogonal matrix, and Z' is the transpose
1065
+ * of Z. C1 and S1 are diagonal matrices satisfying
1066
+ *
1067
+ * C1**2 + S1**2 = I,
1068
+ *
1069
+ * and R1 is an L-by-L nonsingular upper triangular matrix.
1070
+ *
1071
+ * =====================================================================
1072
+ *
1073
+
1074
+
1075
+ </PRE>
1076
+ <A HREF="#top">go to the page top</A>
1077
+
1078
+ <A NAME="stgsna"></A>
1079
+ <H2>stgsna</H2>
1080
+ <PRE>
1081
+ USAGE:
1082
+ s, dif, m, work, info = NumRu::Lapack.stgsna( job, howmny, select, a, b, vl, vr, [:lwork => lwork, :usage => usage, :help => help])
1083
+
1084
+
1085
+ FORTRAN MANUAL
1086
+ SUBROUTINE STGSNA( JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO )
1087
+
1088
+ * Purpose
1089
+ * =======
1090
+ *
1091
+ * STGSNA estimates reciprocal condition numbers for specified
1092
+ * eigenvalues and/or eigenvectors of a matrix pair (A, B) in
1093
+ * generalized real Schur canonical form (or of any matrix pair
1094
+ * (Q*A*Z', Q*B*Z') with orthogonal matrices Q and Z, where
1095
+ * Z' denotes the transpose of Z.
1096
+ *
1097
+ * (A, B) must be in generalized real Schur form (as returned by SGGES),
1098
+ * i.e. A is block upper triangular with 1-by-1 and 2-by-2 diagonal
1099
+ * blocks. B is upper triangular.
1100
+ *
1101
+ *
1102
+
1103
+ * Arguments
1104
+ * =========
1105
+ *
1106
+ * JOB (input) CHARACTER*1
1107
+ * Specifies whether condition numbers are required for
1108
+ * eigenvalues (S) or eigenvectors (DIF):
1109
+ * = 'E': for eigenvalues only (S);
1110
+ * = 'V': for eigenvectors only (DIF);
1111
+ * = 'B': for both eigenvalues and eigenvectors (S and DIF).
1112
+ *
1113
+ * HOWMNY (input) CHARACTER*1
1114
+ * = 'A': compute condition numbers for all eigenpairs;
1115
+ * = 'S': compute condition numbers for selected eigenpairs
1116
+ * specified by the array SELECT.
1117
+ *
1118
+ * SELECT (input) LOGICAL array, dimension (N)
1119
+ * If HOWMNY = 'S', SELECT specifies the eigenpairs for which
1120
+ * condition numbers are required. To select condition numbers
1121
+ * for the eigenpair corresponding to a real eigenvalue w(j),
1122
+ * SELECT(j) must be set to .TRUE.. To select condition numbers
1123
+ * corresponding to a complex conjugate pair of eigenvalues w(j)
1124
+ * and w(j+1), either SELECT(j) or SELECT(j+1) or both, must be
1125
+ * set to .TRUE..
1126
+ * If HOWMNY = 'A', SELECT is not referenced.
1127
+ *
1128
+ * N (input) INTEGER
1129
+ * The order of the square matrix pair (A, B). N >= 0.
1130
+ *
1131
+ * A (input) REAL array, dimension (LDA,N)
1132
+ * The upper quasi-triangular matrix A in the pair (A,B).
1133
+ *
1134
+ * LDA (input) INTEGER
1135
+ * The leading dimension of the array A. LDA >= max(1,N).
1136
+ *
1137
+ * B (input) REAL array, dimension (LDB,N)
1138
+ * The upper triangular matrix B in the pair (A,B).
1139
+ *
1140
+ * LDB (input) INTEGER
1141
+ * The leading dimension of the array B. LDB >= max(1,N).
1142
+ *
1143
+ * VL (input) REAL array, dimension (LDVL,M)
1144
+ * If JOB = 'E' or 'B', VL must contain left eigenvectors of
1145
+ * (A, B), corresponding to the eigenpairs specified by HOWMNY
1146
+ * and SELECT. The eigenvectors must be stored in consecutive
1147
+ * columns of VL, as returned by STGEVC.
1148
+ * If JOB = 'V', VL is not referenced.
1149
+ *
1150
+ * LDVL (input) INTEGER
1151
+ * The leading dimension of the array VL. LDVL >= 1.
1152
+ * If JOB = 'E' or 'B', LDVL >= N.
1153
+ *
1154
+ * VR (input) REAL array, dimension (LDVR,M)
1155
+ * If JOB = 'E' or 'B', VR must contain right eigenvectors of
1156
+ * (A, B), corresponding to the eigenpairs specified by HOWMNY
1157
+ * and SELECT. The eigenvectors must be stored in consecutive
1158
+ * columns ov VR, as returned by STGEVC.
1159
+ * If JOB = 'V', VR is not referenced.
1160
+ *
1161
+ * LDVR (input) INTEGER
1162
+ * The leading dimension of the array VR. LDVR >= 1.
1163
+ * If JOB = 'E' or 'B', LDVR >= N.
1164
+ *
1165
+ * S (output) REAL array, dimension (MM)
1166
+ * If JOB = 'E' or 'B', the reciprocal condition numbers of the
1167
+ * selected eigenvalues, stored in consecutive elements of the
1168
+ * array. For a complex conjugate pair of eigenvalues two
1169
+ * consecutive elements of S are set to the same value. Thus
1170
+ * S(j), DIF(j), and the j-th columns of VL and VR all
1171
+ * correspond to the same eigenpair (but not in general the
1172
+ * j-th eigenpair, unless all eigenpairs are selected).
1173
+ * If JOB = 'V', S is not referenced.
1174
+ *
1175
+ * DIF (output) REAL array, dimension (MM)
1176
+ * If JOB = 'V' or 'B', the estimated reciprocal condition
1177
+ * numbers of the selected eigenvectors, stored in consecutive
1178
+ * elements of the array. For a complex eigenvector two
1179
+ * consecutive elements of DIF are set to the same value. If
1180
+ * the eigenvalues cannot be reordered to compute DIF(j), DIF(j)
1181
+ * is set to 0; this can only occur when the true value would be
1182
+ * very small anyway.
1183
+ * If JOB = 'E', DIF is not referenced.
1184
+ *
1185
+ * MM (input) INTEGER
1186
+ * The number of elements in the arrays S and DIF. MM >= M.
1187
+ *
1188
+ * M (output) INTEGER
1189
+ * The number of elements of the arrays S and DIF used to store
1190
+ * the specified condition numbers; for each selected real
1191
+ * eigenvalue one element is used, and for each selected complex
1192
+ * conjugate pair of eigenvalues, two elements are used.
1193
+ * If HOWMNY = 'A', M is set to N.
1194
+ *
1195
+ * WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
1196
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1197
+ *
1198
+ * LWORK (input) INTEGER
1199
+ * The dimension of the array WORK. LWORK >= max(1,N).
1200
+ * If JOB = 'V' or 'B' LWORK >= 2*N*(N+2)+16.
1201
+ *
1202
+ * If LWORK = -1, then a workspace query is assumed; the routine
1203
+ * only calculates the optimal size of the WORK array, returns
1204
+ * this value as the first entry of the WORK array, and no error
1205
+ * message related to LWORK is issued by XERBLA.
1206
+ *
1207
+ * IWORK (workspace) INTEGER array, dimension (N + 6)
1208
+ * If JOB = 'E', IWORK is not referenced.
1209
+ *
1210
+ * INFO (output) INTEGER
1211
+ * =0: Successful exit
1212
+ * <0: If INFO = -i, the i-th argument had an illegal value
1213
+ *
1214
+ *
1215
+
1216
+ * Further Details
1217
+ * ===============
1218
+ *
1219
+ * The reciprocal of the condition number of a generalized eigenvalue
1220
+ * w = (a, b) is defined as
1221
+ *
1222
+ * S(w) = (|u'Av|**2 + |u'Bv|**2)**(1/2) / (norm(u)*norm(v))
1223
+ *
1224
+ * where u and v are the left and right eigenvectors of (A, B)
1225
+ * corresponding to w; |z| denotes the absolute value of the complex
1226
+ * number, and norm(u) denotes the 2-norm of the vector u.
1227
+ * The pair (a, b) corresponds to an eigenvalue w = a/b (= u'Av/u'Bv)
1228
+ * of the matrix pair (A, B). If both a and b equal zero, then (A B) is
1229
+ * singular and S(I) = -1 is returned.
1230
+ *
1231
+ * An approximate error bound on the chordal distance between the i-th
1232
+ * computed generalized eigenvalue w and the corresponding exact
1233
+ * eigenvalue lambda is
1234
+ *
1235
+ * chord(w, lambda) <= EPS * norm(A, B) / S(I)
1236
+ *
1237
+ * where EPS is the machine precision.
1238
+ *
1239
+ * The reciprocal of the condition number DIF(i) of right eigenvector u
1240
+ * and left eigenvector v corresponding to the generalized eigenvalue w
1241
+ * is defined as follows:
1242
+ *
1243
+ * a) If the i-th eigenvalue w = (a,b) is real
1244
+ *
1245
+ * Suppose U and V are orthogonal transformations such that
1246
+ *
1247
+ * U'*(A, B)*V = (S, T) = ( a * ) ( b * ) 1
1248
+ * ( 0 S22 ),( 0 T22 ) n-1
1249
+ * 1 n-1 1 n-1
1250
+ *
1251
+ * Then the reciprocal condition number DIF(i) is
1252
+ *
1253
+ * Difl((a, b), (S22, T22)) = sigma-min( Zl ),
1254
+ *
1255
+ * where sigma-min(Zl) denotes the smallest singular value of the
1256
+ * 2(n-1)-by-2(n-1) matrix
1257
+ *
1258
+ * Zl = [ kron(a, In-1) -kron(1, S22) ]
1259
+ * [ kron(b, In-1) -kron(1, T22) ] .
1260
+ *
1261
+ * Here In-1 is the identity matrix of size n-1. kron(X, Y) is the
1262
+ * Kronecker product between the matrices X and Y.
1263
+ *
1264
+ * Note that if the default method for computing DIF(i) is wanted
1265
+ * (see SLATDF), then the parameter DIFDRI (see below) should be
1266
+ * changed from 3 to 4 (routine SLATDF(IJOB = 2 will be used)).
1267
+ * See STGSYL for more details.
1268
+ *
1269
+ * b) If the i-th and (i+1)-th eigenvalues are complex conjugate pair,
1270
+ *
1271
+ * Suppose U and V are orthogonal transformations such that
1272
+ *
1273
+ * U'*(A, B)*V = (S, T) = ( S11 * ) ( T11 * ) 2
1274
+ * ( 0 S22 ),( 0 T22) n-2
1275
+ * 2 n-2 2 n-2
1276
+ *
1277
+ * and (S11, T11) corresponds to the complex conjugate eigenvalue
1278
+ * pair (w, conjg(w)). There exist unitary matrices U1 and V1 such
1279
+ * that
1280
+ *
1281
+ * U1'*S11*V1 = ( s11 s12 ) and U1'*T11*V1 = ( t11 t12 )
1282
+ * ( 0 s22 ) ( 0 t22 )
1283
+ *
1284
+ * where the generalized eigenvalues w = s11/t11 and
1285
+ * conjg(w) = s22/t22.
1286
+ *
1287
+ * Then the reciprocal condition number DIF(i) is bounded by
1288
+ *
1289
+ * min( d1, max( 1, |real(s11)/real(s22)| )*d2 )
1290
+ *
1291
+ * where, d1 = Difl((s11, t11), (s22, t22)) = sigma-min(Z1), where
1292
+ * Z1 is the complex 2-by-2 matrix
1293
+ *
1294
+ * Z1 = [ s11 -s22 ]
1295
+ * [ t11 -t22 ],
1296
+ *
1297
+ * This is done by computing (using real arithmetic) the
1298
+ * roots of the characteristical polynomial det(Z1' * Z1 - lambda I),
1299
+ * where Z1' denotes the conjugate transpose of Z1 and det(X) denotes
1300
+ * the determinant of X.
1301
+ *
1302
+ * and d2 is an upper bound on Difl((S11, T11), (S22, T22)), i.e. an
1303
+ * upper bound on sigma-min(Z2), where Z2 is (2n-2)-by-(2n-2)
1304
+ *
1305
+ * Z2 = [ kron(S11', In-2) -kron(I2, S22) ]
1306
+ * [ kron(T11', In-2) -kron(I2, T22) ]
1307
+ *
1308
+ * Note that if the default method for computing DIF is wanted (see
1309
+ * SLATDF), then the parameter DIFDRI (see below) should be changed
1310
+ * from 3 to 4 (routine SLATDF(IJOB = 2 will be used)). See STGSYL
1311
+ * for more details.
1312
+ *
1313
+ * For each eigenvalue/vector specified by SELECT, DIF stores a
1314
+ * Frobenius norm-based estimate of Difl.
1315
+ *
1316
+ * An approximate error bound for the i-th computed eigenvector VL(i) or
1317
+ * VR(i) is given by
1318
+ *
1319
+ * EPS * norm(A, B) / DIF(i).
1320
+ *
1321
+ * See ref. [2-3] for more details and further references.
1322
+ *
1323
+ * Based on contributions by
1324
+ * Bo Kagstrom and Peter Poromaa, Department of Computing Science,
1325
+ * Umea University, S-901 87 Umea, Sweden.
1326
+ *
1327
+ * References
1328
+ * ==========
1329
+ *
1330
+ * [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
1331
+ * Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
1332
+ * M.S. Moonen et al (eds), Linear Algebra for Large Scale and
1333
+ * Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.
1334
+ *
1335
+ * [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
1336
+ * Eigenvalues of a Regular Matrix Pair (A, B) and Condition
1337
+ * Estimation: Theory, Algorithms and Software,
1338
+ * Report UMINF - 94.04, Department of Computing Science, Umea
1339
+ * University, S-901 87 Umea, Sweden, 1994. Also as LAPACK Working
1340
+ * Note 87. To appear in Numerical Algorithms, 1996.
1341
+ *
1342
+ * [3] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
1343
+ * for Solving the Generalized Sylvester Equation and Estimating the
1344
+ * Separation between Regular Matrix Pairs, Report UMINF - 93.23,
1345
+ * Department of Computing Science, Umea University, S-901 87 Umea,
1346
+ * Sweden, December 1993, Revised April 1994, Also as LAPACK Working
1347
+ * Note 75. To appear in ACM Trans. on Math. Software, Vol 22,
1348
+ * No 1, 1996.
1349
+ *
1350
+ * =====================================================================
1351
+ *
1352
+
1353
+
1354
+ </PRE>
1355
+ <A HREF="#top">go to the page top</A>
1356
+
1357
+ <A NAME="stgsy2"></A>
1358
+ <H2>stgsy2</H2>
1359
+ <PRE>
1360
+ USAGE:
1361
+ scale, pq, info, c, f, rdsum, rdscal = NumRu::Lapack.stgsy2( trans, ijob, a, b, c, d, e, f, rdsum, rdscal, [:usage => usage, :help => help])
1362
+
1363
+
1364
+ FORTRAN MANUAL
1365
+ SUBROUTINE STGSY2( TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, RDSUM, RDSCAL, IWORK, PQ, INFO )
1366
+
1367
+ * Purpose
1368
+ * =======
1369
+ *
1370
+ * STGSY2 solves the generalized Sylvester equation:
1371
+ *
1372
+ * A * R - L * B = scale * C (1)
1373
+ * D * R - L * E = scale * F,
1374
+ *
1375
+ * using Level 1 and 2 BLAS. where R and L are unknown M-by-N matrices,
1376
+ * (A, D), (B, E) and (C, F) are given matrix pairs of size M-by-M,
1377
+ * N-by-N and M-by-N, respectively, with real entries. (A, D) and (B, E)
1378
+ * must be in generalized Schur canonical form, i.e. A, B are upper
1379
+ * quasi triangular and D, E are upper triangular. The solution (R, L)
1380
+ * overwrites (C, F). 0 <= SCALE <= 1 is an output scaling factor
1381
+ * chosen to avoid overflow.
1382
+ *
1383
+ * In matrix notation solving equation (1) corresponds to solve
1384
+ * Z*x = scale*b, where Z is defined as
1385
+ *
1386
+ * Z = [ kron(In, A) -kron(B', Im) ] (2)
1387
+ * [ kron(In, D) -kron(E', Im) ],
1388
+ *
1389
+ * Ik is the identity matrix of size k and X' is the transpose of X.
1390
+ * kron(X, Y) is the Kronecker product between the matrices X and Y.
1391
+ * In the process of solving (1), we solve a number of such systems
1392
+ * where Dim(In), Dim(In) = 1 or 2.
1393
+ *
1394
+ * If TRANS = 'T', solve the transposed system Z'*y = scale*b for y,
1395
+ * which is equivalent to solve for R and L in
1396
+ *
1397
+ * A' * R + D' * L = scale * C (3)
1398
+ * R * B' + L * E' = scale * -F
1399
+ *
1400
+ * This case is used to compute an estimate of Dif[(A, D), (B, E)] =
1401
+ * sigma_min(Z) using reverse communicaton with SLACON.
1402
+ *
1403
+ * STGSY2 also (IJOB >= 1) contributes to the computation in STGSYL
1404
+ * of an upper bound on the separation between to matrix pairs. Then
1405
+ * the input (A, D), (B, E) are sub-pencils of the matrix pair in
1406
+ * STGSYL. See STGSYL for details.
1407
+ *
1408
+
1409
+ * Arguments
1410
+ * =========
1411
+ *
1412
+ * TRANS (input) CHARACTER*1
1413
+ * = 'N', solve the generalized Sylvester equation (1).
1414
+ * = 'T': solve the 'transposed' system (3).
1415
+ *
1416
+ * IJOB (input) INTEGER
1417
+ * Specifies what kind of functionality to be performed.
1418
+ * = 0: solve (1) only.
1419
+ * = 1: A contribution from this subsystem to a Frobenius
1420
+ * norm-based estimate of the separation between two matrix
1421
+ * pairs is computed. (look ahead strategy is used).
1422
+ * = 2: A contribution from this subsystem to a Frobenius
1423
+ * norm-based estimate of the separation between two matrix
1424
+ * pairs is computed. (SGECON on sub-systems is used.)
1425
+ * Not referenced if TRANS = 'T'.
1426
+ *
1427
+ * M (input) INTEGER
1428
+ * On entry, M specifies the order of A and D, and the row
1429
+ * dimension of C, F, R and L.
1430
+ *
1431
+ * N (input) INTEGER
1432
+ * On entry, N specifies the order of B and E, and the column
1433
+ * dimension of C, F, R and L.
1434
+ *
1435
+ * A (input) REAL array, dimension (LDA, M)
1436
+ * On entry, A contains an upper quasi triangular matrix.
1437
+ *
1438
+ * LDA (input) INTEGER
1439
+ * The leading dimension of the matrix A. LDA >= max(1, M).
1440
+ *
1441
+ * B (input) REAL array, dimension (LDB, N)
1442
+ * On entry, B contains an upper quasi triangular matrix.
1443
+ *
1444
+ * LDB (input) INTEGER
1445
+ * The leading dimension of the matrix B. LDB >= max(1, N).
1446
+ *
1447
+ * C (input/output) REAL array, dimension (LDC, N)
1448
+ * On entry, C contains the right-hand-side of the first matrix
1449
+ * equation in (1).
1450
+ * On exit, if IJOB = 0, C has been overwritten by the
1451
+ * solution R.
1452
+ *
1453
+ * LDC (input) INTEGER
1454
+ * The leading dimension of the matrix C. LDC >= max(1, M).
1455
+ *
1456
+ * D (input) REAL array, dimension (LDD, M)
1457
+ * On entry, D contains an upper triangular matrix.
1458
+ *
1459
+ * LDD (input) INTEGER
1460
+ * The leading dimension of the matrix D. LDD >= max(1, M).
1461
+ *
1462
+ * E (input) REAL array, dimension (LDE, N)
1463
+ * On entry, E contains an upper triangular matrix.
1464
+ *
1465
+ * LDE (input) INTEGER
1466
+ * The leading dimension of the matrix E. LDE >= max(1, N).
1467
+ *
1468
+ * F (input/output) REAL array, dimension (LDF, N)
1469
+ * On entry, F contains the right-hand-side of the second matrix
1470
+ * equation in (1).
1471
+ * On exit, if IJOB = 0, F has been overwritten by the
1472
+ * solution L.
1473
+ *
1474
+ * LDF (input) INTEGER
1475
+ * The leading dimension of the matrix F. LDF >= max(1, M).
1476
+ *
1477
+ * SCALE (output) REAL
1478
+ * On exit, 0 <= SCALE <= 1. If 0 < SCALE < 1, the solutions
1479
+ * R and L (C and F on entry) will hold the solutions to a
1480
+ * slightly perturbed system but the input matrices A, B, D and
1481
+ * E have not been changed. If SCALE = 0, R and L will hold the
1482
+ * solutions to the homogeneous system with C = F = 0. Normally,
1483
+ * SCALE = 1.
1484
+ *
1485
+ * RDSUM (input/output) REAL
1486
+ * On entry, the sum of squares of computed contributions to
1487
+ * the Dif-estimate under computation by STGSYL, where the
1488
+ * scaling factor RDSCAL (see below) has been factored out.
1489
+ * On exit, the corresponding sum of squares updated with the
1490
+ * contributions from the current sub-system.
1491
+ * If TRANS = 'T' RDSUM is not touched.
1492
+ * NOTE: RDSUM only makes sense when STGSY2 is called by STGSYL.
1493
+ *
1494
+ * RDSCAL (input/output) REAL
1495
+ * On entry, scaling factor used to prevent overflow in RDSUM.
1496
+ * On exit, RDSCAL is updated w.r.t. the current contributions
1497
+ * in RDSUM.
1498
+ * If TRANS = 'T', RDSCAL is not touched.
1499
+ * NOTE: RDSCAL only makes sense when STGSY2 is called by
1500
+ * STGSYL.
1501
+ *
1502
+ * IWORK (workspace) INTEGER array, dimension (M+N+2)
1503
+ *
1504
+ * PQ (output) INTEGER
1505
+ * On exit, the number of subsystems (of size 2-by-2, 4-by-4 and
1506
+ * 8-by-8) solved by this routine.
1507
+ *
1508
+ * INFO (output) INTEGER
1509
+ * On exit, if INFO is set to
1510
+ * =0: Successful exit
1511
+ * <0: If INFO = -i, the i-th argument had an illegal value.
1512
+ * >0: The matrix pairs (A, D) and (B, E) have common or very
1513
+ * close eigenvalues.
1514
+ *
1515
+
1516
+ * Further Details
1517
+ * ===============
1518
+ *
1519
+ * Based on contributions by
1520
+ * Bo Kagstrom and Peter Poromaa, Department of Computing Science,
1521
+ * Umea University, S-901 87 Umea, Sweden.
1522
+ *
1523
+ * =====================================================================
1524
+ * Replaced various illegal calls to SCOPY by calls to SLASET.
1525
+ * Sven Hammarling, 27/5/02.
1526
+ *
1527
+
1528
+
1529
+ </PRE>
1530
+ <A HREF="#top">go to the page top</A>
1531
+
1532
+ <A NAME="stgsyl"></A>
1533
+ <H2>stgsyl</H2>
1534
+ <PRE>
1535
+ USAGE:
1536
+ scale, dif, work, info, c, f = NumRu::Lapack.stgsyl( trans, ijob, a, b, c, d, e, f, [:lwork => lwork, :usage => usage, :help => help])
1537
+
1538
+
1539
+ FORTRAN MANUAL
1540
+ SUBROUTINE STGSYL( TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO )
1541
+
1542
+ * Purpose
1543
+ * =======
1544
+ *
1545
+ * STGSYL solves the generalized Sylvester equation:
1546
+ *
1547
+ * A * R - L * B = scale * C (1)
1548
+ * D * R - L * E = scale * F
1549
+ *
1550
+ * where R and L are unknown m-by-n matrices, (A, D), (B, E) and
1551
+ * (C, F) are given matrix pairs of size m-by-m, n-by-n and m-by-n,
1552
+ * respectively, with real entries. (A, D) and (B, E) must be in
1553
+ * generalized (real) Schur canonical form, i.e. A, B are upper quasi
1554
+ * triangular and D, E are upper triangular.
1555
+ *
1556
+ * The solution (R, L) overwrites (C, F). 0 <= SCALE <= 1 is an output
1557
+ * scaling factor chosen to avoid overflow.
1558
+ *
1559
+ * In matrix notation (1) is equivalent to solve Zx = scale b, where
1560
+ * Z is defined as
1561
+ *
1562
+ * Z = [ kron(In, A) -kron(B', Im) ] (2)
1563
+ * [ kron(In, D) -kron(E', Im) ].
1564
+ *
1565
+ * Here Ik is the identity matrix of size k and X' is the transpose of
1566
+ * X. kron(X, Y) is the Kronecker product between the matrices X and Y.
1567
+ *
1568
+ * If TRANS = 'T', STGSYL solves the transposed system Z'*y = scale*b,
1569
+ * which is equivalent to solve for R and L in
1570
+ *
1571
+ * A' * R + D' * L = scale * C (3)
1572
+ * R * B' + L * E' = scale * (-F)
1573
+ *
1574
+ * This case (TRANS = 'T') is used to compute an one-norm-based estimate
1575
+ * of Dif[(A,D), (B,E)], the separation between the matrix pairs (A,D)
1576
+ * and (B,E), using SLACON.
1577
+ *
1578
+ * If IJOB >= 1, STGSYL computes a Frobenius norm-based estimate
1579
+ * of Dif[(A,D),(B,E)]. That is, the reciprocal of a lower bound on the
1580
+ * reciprocal of the smallest singular value of Z. See [1-2] for more
1581
+ * information.
1582
+ *
1583
+ * This is a level 3 BLAS algorithm.
1584
+ *
1585
+
1586
+ * Arguments
1587
+ * =========
1588
+ *
1589
+ * TRANS (input) CHARACTER*1
1590
+ * = 'N', solve the generalized Sylvester equation (1).
1591
+ * = 'T', solve the 'transposed' system (3).
1592
+ *
1593
+ * IJOB (input) INTEGER
1594
+ * Specifies what kind of functionality to be performed.
1595
+ * =0: solve (1) only.
1596
+ * =1: The functionality of 0 and 3.
1597
+ * =2: The functionality of 0 and 4.
1598
+ * =3: Only an estimate of Dif[(A,D), (B,E)] is computed.
1599
+ * (look ahead strategy IJOB = 1 is used).
1600
+ * =4: Only an estimate of Dif[(A,D), (B,E)] is computed.
1601
+ * ( SGECON on sub-systems is used ).
1602
+ * Not referenced if TRANS = 'T'.
1603
+ *
1604
+ * M (input) INTEGER
1605
+ * The order of the matrices A and D, and the row dimension of
1606
+ * the matrices C, F, R and L.
1607
+ *
1608
+ * N (input) INTEGER
1609
+ * The order of the matrices B and E, and the column dimension
1610
+ * of the matrices C, F, R and L.
1611
+ *
1612
+ * A (input) REAL array, dimension (LDA, M)
1613
+ * The upper quasi triangular matrix A.
1614
+ *
1615
+ * LDA (input) INTEGER
1616
+ * The leading dimension of the array A. LDA >= max(1, M).
1617
+ *
1618
+ * B (input) REAL array, dimension (LDB, N)
1619
+ * The upper quasi triangular matrix B.
1620
+ *
1621
+ * LDB (input) INTEGER
1622
+ * The leading dimension of the array B. LDB >= max(1, N).
1623
+ *
1624
+ * C (input/output) REAL array, dimension (LDC, N)
1625
+ * On entry, C contains the right-hand-side of the first matrix
1626
+ * equation in (1) or (3).
1627
+ * On exit, if IJOB = 0, 1 or 2, C has been overwritten by
1628
+ * the solution R. If IJOB = 3 or 4 and TRANS = 'N', C holds R,
1629
+ * the solution achieved during the computation of the
1630
+ * Dif-estimate.
1631
+ *
1632
+ * LDC (input) INTEGER
1633
+ * The leading dimension of the array C. LDC >= max(1, M).
1634
+ *
1635
+ * D (input) REAL array, dimension (LDD, M)
1636
+ * The upper triangular matrix D.
1637
+ *
1638
+ * LDD (input) INTEGER
1639
+ * The leading dimension of the array D. LDD >= max(1, M).
1640
+ *
1641
+ * E (input) REAL array, dimension (LDE, N)
1642
+ * The upper triangular matrix E.
1643
+ *
1644
+ * LDE (input) INTEGER
1645
+ * The leading dimension of the array E. LDE >= max(1, N).
1646
+ *
1647
+ * F (input/output) REAL array, dimension (LDF, N)
1648
+ * On entry, F contains the right-hand-side of the second matrix
1649
+ * equation in (1) or (3).
1650
+ * On exit, if IJOB = 0, 1 or 2, F has been overwritten by
1651
+ * the solution L. If IJOB = 3 or 4 and TRANS = 'N', F holds L,
1652
+ * the solution achieved during the computation of the
1653
+ * Dif-estimate.
1654
+ *
1655
+ * LDF (input) INTEGER
1656
+ * The leading dimension of the array F. LDF >= max(1, M).
1657
+ *
1658
+ * DIF (output) REAL
1659
+ * On exit DIF is the reciprocal of a lower bound of the
1660
+ * reciprocal of the Dif-function, i.e. DIF is an upper bound of
1661
+ * Dif[(A,D), (B,E)] = sigma_min(Z), where Z as in (2).
1662
+ * IF IJOB = 0 or TRANS = 'T', DIF is not touched.
1663
+ *
1664
+ * SCALE (output) REAL
1665
+ * On exit SCALE is the scaling factor in (1) or (3).
1666
+ * If 0 < SCALE < 1, C and F hold the solutions R and L, resp.,
1667
+ * to a slightly perturbed system but the input matrices A, B, D
1668
+ * and E have not been changed. If SCALE = 0, C and F hold the
1669
+ * solutions R and L, respectively, to the homogeneous system
1670
+ * with C = F = 0. Normally, SCALE = 1.
1671
+ *
1672
+ * WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
1673
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1674
+ *
1675
+ * LWORK (input) INTEGER
1676
+ * The dimension of the array WORK. LWORK > = 1.
1677
+ * If IJOB = 1 or 2 and TRANS = 'N', LWORK >= max(1,2*M*N).
1678
+ *
1679
+ * If LWORK = -1, then a workspace query is assumed; the routine
1680
+ * only calculates the optimal size of the WORK array, returns
1681
+ * this value as the first entry of the WORK array, and no error
1682
+ * message related to LWORK is issued by XERBLA.
1683
+ *
1684
+ * IWORK (workspace) INTEGER array, dimension (M+N+6)
1685
+ *
1686
+ * INFO (output) INTEGER
1687
+ * =0: successful exit
1688
+ * <0: If INFO = -i, the i-th argument had an illegal value.
1689
+ * >0: (A, D) and (B, E) have common or close eigenvalues.
1690
+ *
1691
+
1692
+ * Further Details
1693
+ * ===============
1694
+ *
1695
+ * Based on contributions by
1696
+ * Bo Kagstrom and Peter Poromaa, Department of Computing Science,
1697
+ * Umea University, S-901 87 Umea, Sweden.
1698
+ *
1699
+ * [1] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
1700
+ * for Solving the Generalized Sylvester Equation and Estimating the
1701
+ * Separation between Regular Matrix Pairs, Report UMINF - 93.23,
1702
+ * Department of Computing Science, Umea University, S-901 87 Umea,
1703
+ * Sweden, December 1993, Revised April 1994, Also as LAPACK Working
1704
+ * Note 75. To appear in ACM Trans. on Math. Software, Vol 22,
1705
+ * No 1, 1996.
1706
+ *
1707
+ * [2] B. Kagstrom, A Perturbation Analysis of the Generalized Sylvester
1708
+ * Equation (AR - LB, DR - LE ) = (C, F), SIAM J. Matrix Anal.
1709
+ * Appl., 15(4):1045-1060, 1994
1710
+ *
1711
+ * [3] B. Kagstrom and L. Westin, Generalized Schur Methods with
1712
+ * Condition Estimators for Solving the Generalized Sylvester
1713
+ * Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7,
1714
+ * July 1989, pp 745-751.
1715
+ *
1716
+ * =====================================================================
1717
+ * Replaced various illegal calls to SCOPY by calls to SLASET.
1718
+ * Sven Hammarling, 1/5/02.
1719
+ *
1720
+
1721
+
1722
+ </PRE>
1723
+ <A HREF="#top">go to the page top</A>
1724
+
1725
+ <HR />
1726
+ <A HREF="s.html">back to matrix types</A><BR>
1727
+ <A HREF="s.html">back to data types</A>
1728
+ </BODY>
1729
+ </HTML>