ruby-lapack 1.3

Sign up to get free protection for your applications and to get access to all the features.
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/sgg.html ADDED
@@ -0,0 +1,2102 @@
1
+ <HTML>
2
+ <HEAD>
3
+ <TITLE>REAL routines for general matrices, generalized problem (i.e., a pair of general matrices) matrix</TITLE>
4
+ </HEAD>
5
+ <BODY>
6
+ <A NAME="top"></A>
7
+ <H1>REAL routines for general matrices, generalized problem (i.e., a pair of general matrices) matrix</H1>
8
+ <UL>
9
+ <LI><A HREF="#sggbak">sggbak</A></LI>
10
+ <LI><A HREF="#sggbal">sggbal</A></LI>
11
+ <LI><A HREF="#sgges">sgges</A></LI>
12
+ <LI><A HREF="#sggesx">sggesx</A></LI>
13
+ <LI><A HREF="#sggev">sggev</A></LI>
14
+ <LI><A HREF="#sggevx">sggevx</A></LI>
15
+ <LI><A HREF="#sggglm">sggglm</A></LI>
16
+ <LI><A HREF="#sgghrd">sgghrd</A></LI>
17
+ <LI><A HREF="#sgglse">sgglse</A></LI>
18
+ <LI><A HREF="#sggqrf">sggqrf</A></LI>
19
+ <LI><A HREF="#sggrqf">sggrqf</A></LI>
20
+ <LI><A HREF="#sggsvd">sggsvd</A></LI>
21
+ <LI><A HREF="#sggsvp">sggsvp</A></LI>
22
+ </UL>
23
+
24
+ <A NAME="sggbak"></A>
25
+ <H2>sggbak</H2>
26
+ <PRE>
27
+ USAGE:
28
+ info, v = NumRu::Lapack.sggbak( job, side, ilo, ihi, lscale, rscale, v, [:usage => usage, :help => help])
29
+
30
+
31
+ FORTRAN MANUAL
32
+ SUBROUTINE SGGBAK( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V, LDV, INFO )
33
+
34
+ * Purpose
35
+ * =======
36
+ *
37
+ * SGGBAK forms the right or left eigenvectors of a real generalized
38
+ * eigenvalue problem A*x = lambda*B*x, by backward transformation on
39
+ * the computed eigenvectors of the balanced pair of matrices output by
40
+ * SGGBAL.
41
+ *
42
+
43
+ * Arguments
44
+ * =========
45
+ *
46
+ * JOB (input) CHARACTER*1
47
+ * Specifies the type of backward transformation required:
48
+ * = 'N': do nothing, return immediately;
49
+ * = 'P': do backward transformation for permutation only;
50
+ * = 'S': do backward transformation for scaling only;
51
+ * = 'B': do backward transformations for both permutation and
52
+ * scaling.
53
+ * JOB must be the same as the argument JOB supplied to SGGBAL.
54
+ *
55
+ * SIDE (input) CHARACTER*1
56
+ * = 'R': V contains right eigenvectors;
57
+ * = 'L': V contains left eigenvectors.
58
+ *
59
+ * N (input) INTEGER
60
+ * The number of rows of the matrix V. N >= 0.
61
+ *
62
+ * ILO (input) INTEGER
63
+ * IHI (input) INTEGER
64
+ * The integers ILO and IHI determined by SGGBAL.
65
+ * 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
66
+ *
67
+ * LSCALE (input) REAL array, dimension (N)
68
+ * Details of the permutations and/or scaling factors applied
69
+ * to the left side of A and B, as returned by SGGBAL.
70
+ *
71
+ * RSCALE (input) REAL array, dimension (N)
72
+ * Details of the permutations and/or scaling factors applied
73
+ * to the right side of A and B, as returned by SGGBAL.
74
+ *
75
+ * M (input) INTEGER
76
+ * The number of columns of the matrix V. M >= 0.
77
+ *
78
+ * V (input/output) REAL array, dimension (LDV,M)
79
+ * On entry, the matrix of right or left eigenvectors to be
80
+ * transformed, as returned by STGEVC.
81
+ * On exit, V is overwritten by the transformed eigenvectors.
82
+ *
83
+ * LDV (input) INTEGER
84
+ * The leading dimension of the matrix V. LDV >= max(1,N).
85
+ *
86
+ * INFO (output) INTEGER
87
+ * = 0: successful exit.
88
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
89
+ *
90
+
91
+ * Further Details
92
+ * ===============
93
+ *
94
+ * See R.C. Ward, Balancing the generalized eigenvalue problem,
95
+ * SIAM J. Sci. Stat. Comp. 2 (1981), 141-152.
96
+ *
97
+ * =====================================================================
98
+ *
99
+ * .. Local Scalars ..
100
+ LOGICAL LEFTV, RIGHTV
101
+ INTEGER I, K
102
+ * ..
103
+ * .. External Functions ..
104
+ LOGICAL LSAME
105
+ EXTERNAL LSAME
106
+ * ..
107
+ * .. External Subroutines ..
108
+ EXTERNAL SSCAL, SSWAP, XERBLA
109
+ * ..
110
+ * .. Intrinsic Functions ..
111
+ INTRINSIC MAX
112
+ * ..
113
+
114
+
115
+ </PRE>
116
+ <A HREF="#top">go to the page top</A>
117
+
118
+ <A NAME="sggbal"></A>
119
+ <H2>sggbal</H2>
120
+ <PRE>
121
+ USAGE:
122
+ ilo, ihi, lscale, rscale, info, a, b = NumRu::Lapack.sggbal( job, a, b, [:usage => usage, :help => help])
123
+
124
+
125
+ FORTRAN MANUAL
126
+ SUBROUTINE SGGBAL( JOB, N, A, LDA, B, LDB, ILO, IHI, LSCALE, RSCALE, WORK, INFO )
127
+
128
+ * Purpose
129
+ * =======
130
+ *
131
+ * SGGBAL balances a pair of general real matrices (A,B). This
132
+ * involves, first, permuting A and B by similarity transformations to
133
+ * isolate eigenvalues in the first 1 to ILO$-$1 and last IHI+1 to N
134
+ * elements on the diagonal; and second, applying a diagonal similarity
135
+ * transformation to rows and columns ILO to IHI to make the rows
136
+ * and columns as close in norm as possible. Both steps are optional.
137
+ *
138
+ * Balancing may reduce the 1-norm of the matrices, and improve the
139
+ * accuracy of the computed eigenvalues and/or eigenvectors in the
140
+ * generalized eigenvalue problem A*x = lambda*B*x.
141
+ *
142
+
143
+ * Arguments
144
+ * =========
145
+ *
146
+ * JOB (input) CHARACTER*1
147
+ * Specifies the operations to be performed on A and B:
148
+ * = 'N': none: simply set ILO = 1, IHI = N, LSCALE(I) = 1.0
149
+ * and RSCALE(I) = 1.0 for i = 1,...,N.
150
+ * = 'P': permute only;
151
+ * = 'S': scale only;
152
+ * = 'B': both permute and scale.
153
+ *
154
+ * N (input) INTEGER
155
+ * The order of the matrices A and B. N >= 0.
156
+ *
157
+ * A (input/output) REAL array, dimension (LDA,N)
158
+ * On entry, the input matrix A.
159
+ * On exit, A is overwritten by the balanced matrix.
160
+ * If JOB = 'N', A is not referenced.
161
+ *
162
+ * LDA (input) INTEGER
163
+ * The leading dimension of the array A. LDA >= max(1,N).
164
+ *
165
+ * B (input/output) REAL array, dimension (LDB,N)
166
+ * On entry, the input matrix B.
167
+ * On exit, B is overwritten by the balanced matrix.
168
+ * If JOB = 'N', B is not referenced.
169
+ *
170
+ * LDB (input) INTEGER
171
+ * The leading dimension of the array B. LDB >= max(1,N).
172
+ *
173
+ * ILO (output) INTEGER
174
+ * IHI (output) INTEGER
175
+ * ILO and IHI are set to integers such that on exit
176
+ * A(i,j) = 0 and B(i,j) = 0 if i > j and
177
+ * j = 1,...,ILO-1 or i = IHI+1,...,N.
178
+ * If JOB = 'N' or 'S', ILO = 1 and IHI = N.
179
+ *
180
+ * LSCALE (output) REAL array, dimension (N)
181
+ * Details of the permutations and scaling factors applied
182
+ * to the left side of A and B. If P(j) is the index of the
183
+ * row interchanged with row j, and D(j)
184
+ * is the scaling factor applied to row j, then
185
+ * LSCALE(j) = P(j) for J = 1,...,ILO-1
186
+ * = D(j) for J = ILO,...,IHI
187
+ * = P(j) for J = IHI+1,...,N.
188
+ * The order in which the interchanges are made is N to IHI+1,
189
+ * then 1 to ILO-1.
190
+ *
191
+ * RSCALE (output) REAL array, dimension (N)
192
+ * Details of the permutations and scaling factors applied
193
+ * to the right side of A and B. If P(j) is the index of the
194
+ * column interchanged with column j, and D(j)
195
+ * is the scaling factor applied to column j, then
196
+ * LSCALE(j) = P(j) for J = 1,...,ILO-1
197
+ * = D(j) for J = ILO,...,IHI
198
+ * = P(j) for J = IHI+1,...,N.
199
+ * The order in which the interchanges are made is N to IHI+1,
200
+ * then 1 to ILO-1.
201
+ *
202
+ * WORK (workspace) REAL array, dimension (lwork)
203
+ * lwork must be at least max(1,6*N) when JOB = 'S' or 'B', and
204
+ * at least 1 when JOB = 'N' or 'P'.
205
+ *
206
+ * INFO (output) INTEGER
207
+ * = 0: successful exit
208
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
209
+ *
210
+
211
+ * Further Details
212
+ * ===============
213
+ *
214
+ * See R.C. WARD, Balancing the generalized eigenvalue problem,
215
+ * SIAM J. Sci. Stat. Comp. 2 (1981), 141-152.
216
+ *
217
+ * =====================================================================
218
+ *
219
+
220
+
221
+ </PRE>
222
+ <A HREF="#top">go to the page top</A>
223
+
224
+ <A NAME="sgges"></A>
225
+ <H2>sgges</H2>
226
+ <PRE>
227
+ USAGE:
228
+ sdim, alphar, alphai, beta, vsl, vsr, work, info, a, b = NumRu::Lapack.sgges( jobvsl, jobvsr, sort, a, b, [:lwork => lwork, :usage => usage, :help => help]){|a,b,c| ... }
229
+
230
+
231
+ FORTRAN MANUAL
232
+ SUBROUTINE SGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, BWORK, INFO )
233
+
234
+ * Purpose
235
+ * =======
236
+ *
237
+ * SGGES computes for a pair of N-by-N real nonsymmetric matrices (A,B),
238
+ * the generalized eigenvalues, the generalized real Schur form (S,T),
239
+ * optionally, the left and/or right matrices of Schur vectors (VSL and
240
+ * VSR). This gives the generalized Schur factorization
241
+ *
242
+ * (A,B) = ( (VSL)*S*(VSR)**T, (VSL)*T*(VSR)**T )
243
+ *
244
+ * Optionally, it also orders the eigenvalues so that a selected cluster
245
+ * of eigenvalues appears in the leading diagonal blocks of the upper
246
+ * quasi-triangular matrix S and the upper triangular matrix T.The
247
+ * leading columns of VSL and VSR then form an orthonormal basis for the
248
+ * corresponding left and right eigenspaces (deflating subspaces).
249
+ *
250
+ * (If only the generalized eigenvalues are needed, use the driver
251
+ * SGGEV instead, which is faster.)
252
+ *
253
+ * A generalized eigenvalue for a pair of matrices (A,B) is a scalar w
254
+ * or a ratio alpha/beta = w, such that A - w*B is singular. It is
255
+ * usually represented as the pair (alpha,beta), as there is a
256
+ * reasonable interpretation for beta=0 or both being zero.
257
+ *
258
+ * A pair of matrices (S,T) is in generalized real Schur form if T is
259
+ * upper triangular with non-negative diagonal and S is block upper
260
+ * triangular with 1-by-1 and 2-by-2 blocks. 1-by-1 blocks correspond
261
+ * to real generalized eigenvalues, while 2-by-2 blocks of S will be
262
+ * "standardized" by making the corresponding elements of T have the
263
+ * form:
264
+ * [ a 0 ]
265
+ * [ 0 b ]
266
+ *
267
+ * and the pair of corresponding 2-by-2 blocks in S and T will have a
268
+ * complex conjugate pair of generalized eigenvalues.
269
+ *
270
+ *
271
+
272
+ * Arguments
273
+ * =========
274
+ *
275
+ * JOBVSL (input) CHARACTER*1
276
+ * = 'N': do not compute the left Schur vectors;
277
+ * = 'V': compute the left Schur vectors.
278
+ *
279
+ * JOBVSR (input) CHARACTER*1
280
+ * = 'N': do not compute the right Schur vectors;
281
+ * = 'V': compute the right Schur vectors.
282
+ *
283
+ * SORT (input) CHARACTER*1
284
+ * Specifies whether or not to order the eigenvalues on the
285
+ * diagonal of the generalized Schur form.
286
+ * = 'N': Eigenvalues are not ordered;
287
+ * = 'S': Eigenvalues are ordered (see SELCTG);
288
+ *
289
+ * SELCTG (external procedure) LOGICAL FUNCTION of three REAL arguments
290
+ * SELCTG must be declared EXTERNAL in the calling subroutine.
291
+ * If SORT = 'N', SELCTG is not referenced.
292
+ * If SORT = 'S', SELCTG is used to select eigenvalues to sort
293
+ * to the top left of the Schur form.
294
+ * An eigenvalue (ALPHAR(j)+ALPHAI(j))/BETA(j) is selected if
295
+ * SELCTG(ALPHAR(j),ALPHAI(j),BETA(j)) is true; i.e. if either
296
+ * one of a complex conjugate pair of eigenvalues is selected,
297
+ * then both complex eigenvalues are selected.
298
+ *
299
+ * Note that in the ill-conditioned case, a selected complex
300
+ * eigenvalue may no longer satisfy SELCTG(ALPHAR(j),ALPHAI(j),
301
+ * BETA(j)) = .TRUE. after ordering. INFO is to be set to N+2
302
+ * in this case.
303
+ *
304
+ * N (input) INTEGER
305
+ * The order of the matrices A, B, VSL, and VSR. N >= 0.
306
+ *
307
+ * A (input/output) REAL array, dimension (LDA, N)
308
+ * On entry, the first of the pair of matrices.
309
+ * On exit, A has been overwritten by its generalized Schur
310
+ * form S.
311
+ *
312
+ * LDA (input) INTEGER
313
+ * The leading dimension of A. LDA >= max(1,N).
314
+ *
315
+ * B (input/output) REAL array, dimension (LDB, N)
316
+ * On entry, the second of the pair of matrices.
317
+ * On exit, B has been overwritten by its generalized Schur
318
+ * form T.
319
+ *
320
+ * LDB (input) INTEGER
321
+ * The leading dimension of B. LDB >= max(1,N).
322
+ *
323
+ * SDIM (output) INTEGER
324
+ * If SORT = 'N', SDIM = 0.
325
+ * If SORT = 'S', SDIM = number of eigenvalues (after sorting)
326
+ * for which SELCTG is true. (Complex conjugate pairs for which
327
+ * SELCTG is true for either eigenvalue count as 2.)
328
+ *
329
+ * ALPHAR (output) REAL array, dimension (N)
330
+ * ALPHAI (output) REAL array, dimension (N)
331
+ * BETA (output) REAL array, dimension (N)
332
+ * On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
333
+ * be the generalized eigenvalues. ALPHAR(j) + ALPHAI(j)*i,
334
+ * and BETA(j),j=1,...,N are the diagonals of the complex Schur
335
+ * form (S,T) that would result if the 2-by-2 diagonal blocks of
336
+ * the real Schur form of (A,B) were further reduced to
337
+ * triangular form using 2-by-2 complex unitary transformations.
338
+ * If ALPHAI(j) is zero, then the j-th eigenvalue is real; if
339
+ * positive, then the j-th and (j+1)-st eigenvalues are a
340
+ * complex conjugate pair, with ALPHAI(j+1) negative.
341
+ *
342
+ * Note: the quotients ALPHAR(j)/BETA(j) and ALPHAI(j)/BETA(j)
343
+ * may easily over- or underflow, and BETA(j) may even be zero.
344
+ * Thus, the user should avoid naively computing the ratio.
345
+ * However, ALPHAR and ALPHAI will be always less than and
346
+ * usually comparable with norm(A) in magnitude, and BETA always
347
+ * less than and usually comparable with norm(B).
348
+ *
349
+ * VSL (output) REAL array, dimension (LDVSL,N)
350
+ * If JOBVSL = 'V', VSL will contain the left Schur vectors.
351
+ * Not referenced if JOBVSL = 'N'.
352
+ *
353
+ * LDVSL (input) INTEGER
354
+ * The leading dimension of the matrix VSL. LDVSL >=1, and
355
+ * if JOBVSL = 'V', LDVSL >= N.
356
+ *
357
+ * VSR (output) REAL array, dimension (LDVSR,N)
358
+ * If JOBVSR = 'V', VSR will contain the right Schur vectors.
359
+ * Not referenced if JOBVSR = 'N'.
360
+ *
361
+ * LDVSR (input) INTEGER
362
+ * The leading dimension of the matrix VSR. LDVSR >= 1, and
363
+ * if JOBVSR = 'V', LDVSR >= N.
364
+ *
365
+ * WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
366
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
367
+ *
368
+ * LWORK (input) INTEGER
369
+ * The dimension of the array WORK.
370
+ * If N = 0, LWORK >= 1, else LWORK >= max(8*N,6*N+16).
371
+ * For good performance , LWORK must generally be larger.
372
+ *
373
+ * If LWORK = -1, then a workspace query is assumed; the routine
374
+ * only calculates the optimal size of the WORK array, returns
375
+ * this value as the first entry of the WORK array, and no error
376
+ * message related to LWORK is issued by XERBLA.
377
+ *
378
+ * BWORK (workspace) LOGICAL array, dimension (N)
379
+ * Not referenced if SORT = 'N'.
380
+ *
381
+ * INFO (output) INTEGER
382
+ * = 0: successful exit
383
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
384
+ * = 1,...,N:
385
+ * The QZ iteration failed. (A,B) are not in Schur
386
+ * form, but ALPHAR(j), ALPHAI(j), and BETA(j) should
387
+ * be correct for j=INFO+1,...,N.
388
+ * > N: =N+1: other than QZ iteration failed in SHGEQZ.
389
+ * =N+2: after reordering, roundoff changed values of
390
+ * some complex eigenvalues so that leading
391
+ * eigenvalues in the Generalized Schur form no
392
+ * longer satisfy SELCTG=.TRUE. This could also
393
+ * be caused due to scaling.
394
+ * =N+3: reordering failed in STGSEN.
395
+ *
396
+
397
+ * =====================================================================
398
+ *
399
+
400
+
401
+ </PRE>
402
+ <A HREF="#top">go to the page top</A>
403
+
404
+ <A NAME="sggesx"></A>
405
+ <H2>sggesx</H2>
406
+ <PRE>
407
+ USAGE:
408
+ sdim, alphar, alphai, beta, vsl, vsr, rconde, rcondv, work, info, a, b = NumRu::Lapack.sggesx( jobvsl, jobvsr, sort, sense, a, b, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help]){|a,b,c| ... }
409
+
410
+
411
+ FORTRAN MANUAL
412
+ SUBROUTINE SGGESX( JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, LDA, B, LDB, SDIM, ALPHAR, ALPHAI, BETA, VSL, LDVSL, VSR, LDVSR, RCONDE, RCONDV, WORK, LWORK, IWORK, LIWORK, BWORK, INFO )
413
+
414
+ * Purpose
415
+ * =======
416
+ *
417
+ * SGGESX computes for a pair of N-by-N real nonsymmetric matrices
418
+ * (A,B), the generalized eigenvalues, the real Schur form (S,T), and,
419
+ * optionally, the left and/or right matrices of Schur vectors (VSL and
420
+ * VSR). This gives the generalized Schur factorization
421
+ *
422
+ * (A,B) = ( (VSL) S (VSR)**T, (VSL) T (VSR)**T )
423
+ *
424
+ * Optionally, it also orders the eigenvalues so that a selected cluster
425
+ * of eigenvalues appears in the leading diagonal blocks of the upper
426
+ * quasi-triangular matrix S and the upper triangular matrix T; computes
427
+ * a reciprocal condition number for the average of the selected
428
+ * eigenvalues (RCONDE); and computes a reciprocal condition number for
429
+ * the right and left deflating subspaces corresponding to the selected
430
+ * eigenvalues (RCONDV). The leading columns of VSL and VSR then form
431
+ * an orthonormal basis for the corresponding left and right eigenspaces
432
+ * (deflating subspaces).
433
+ *
434
+ * A generalized eigenvalue for a pair of matrices (A,B) is a scalar w
435
+ * or a ratio alpha/beta = w, such that A - w*B is singular. It is
436
+ * usually represented as the pair (alpha,beta), as there is a
437
+ * reasonable interpretation for beta=0 or for both being zero.
438
+ *
439
+ * A pair of matrices (S,T) is in generalized real Schur form if T is
440
+ * upper triangular with non-negative diagonal and S is block upper
441
+ * triangular with 1-by-1 and 2-by-2 blocks. 1-by-1 blocks correspond
442
+ * to real generalized eigenvalues, while 2-by-2 blocks of S will be
443
+ * "standardized" by making the corresponding elements of T have the
444
+ * form:
445
+ * [ a 0 ]
446
+ * [ 0 b ]
447
+ *
448
+ * and the pair of corresponding 2-by-2 blocks in S and T will have a
449
+ * complex conjugate pair of generalized eigenvalues.
450
+ *
451
+ *
452
+
453
+ * Arguments
454
+ * =========
455
+ *
456
+ * JOBVSL (input) CHARACTER*1
457
+ * = 'N': do not compute the left Schur vectors;
458
+ * = 'V': compute the left Schur vectors.
459
+ *
460
+ * JOBVSR (input) CHARACTER*1
461
+ * = 'N': do not compute the right Schur vectors;
462
+ * = 'V': compute the right Schur vectors.
463
+ *
464
+ * SORT (input) CHARACTER*1
465
+ * Specifies whether or not to order the eigenvalues on the
466
+ * diagonal of the generalized Schur form.
467
+ * = 'N': Eigenvalues are not ordered;
468
+ * = 'S': Eigenvalues are ordered (see SELCTG).
469
+ *
470
+ * SELCTG (external procedure) LOGICAL FUNCTION of three REAL arguments
471
+ * SELCTG must be declared EXTERNAL in the calling subroutine.
472
+ * If SORT = 'N', SELCTG is not referenced.
473
+ * If SORT = 'S', SELCTG is used to select eigenvalues to sort
474
+ * to the top left of the Schur form.
475
+ * An eigenvalue (ALPHAR(j)+ALPHAI(j))/BETA(j) is selected if
476
+ * SELCTG(ALPHAR(j),ALPHAI(j),BETA(j)) is true; i.e. if either
477
+ * one of a complex conjugate pair of eigenvalues is selected,
478
+ * then both complex eigenvalues are selected.
479
+ * Note that a selected complex eigenvalue may no longer satisfy
480
+ * SELCTG(ALPHAR(j),ALPHAI(j),BETA(j)) = .TRUE. after ordering,
481
+ * since ordering may change the value of complex eigenvalues
482
+ * (especially if the eigenvalue is ill-conditioned), in this
483
+ * case INFO is set to N+3.
484
+ *
485
+ * SENSE (input) CHARACTER*1
486
+ * Determines which reciprocal condition numbers are computed.
487
+ * = 'N' : None are computed;
488
+ * = 'E' : Computed for average of selected eigenvalues only;
489
+ * = 'V' : Computed for selected deflating subspaces only;
490
+ * = 'B' : Computed for both.
491
+ * If SENSE = 'E', 'V', or 'B', SORT must equal 'S'.
492
+ *
493
+ * N (input) INTEGER
494
+ * The order of the matrices A, B, VSL, and VSR. N >= 0.
495
+ *
496
+ * A (input/output) REAL array, dimension (LDA, N)
497
+ * On entry, the first of the pair of matrices.
498
+ * On exit, A has been overwritten by its generalized Schur
499
+ * form S.
500
+ *
501
+ * LDA (input) INTEGER
502
+ * The leading dimension of A. LDA >= max(1,N).
503
+ *
504
+ * B (input/output) REAL array, dimension (LDB, N)
505
+ * On entry, the second of the pair of matrices.
506
+ * On exit, B has been overwritten by its generalized Schur
507
+ * form T.
508
+ *
509
+ * LDB (input) INTEGER
510
+ * The leading dimension of B. LDB >= max(1,N).
511
+ *
512
+ * SDIM (output) INTEGER
513
+ * If SORT = 'N', SDIM = 0.
514
+ * If SORT = 'S', SDIM = number of eigenvalues (after sorting)
515
+ * for which SELCTG is true. (Complex conjugate pairs for which
516
+ * SELCTG is true for either eigenvalue count as 2.)
517
+ *
518
+ * ALPHAR (output) REAL array, dimension (N)
519
+ * ALPHAI (output) REAL array, dimension (N)
520
+ * BETA (output) REAL array, dimension (N)
521
+ * On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
522
+ * be the generalized eigenvalues. ALPHAR(j) + ALPHAI(j)*i
523
+ * and BETA(j),j=1,...,N are the diagonals of the complex Schur
524
+ * form (S,T) that would result if the 2-by-2 diagonal blocks of
525
+ * the real Schur form of (A,B) were further reduced to
526
+ * triangular form using 2-by-2 complex unitary transformations.
527
+ * If ALPHAI(j) is zero, then the j-th eigenvalue is real; if
528
+ * positive, then the j-th and (j+1)-st eigenvalues are a
529
+ * complex conjugate pair, with ALPHAI(j+1) negative.
530
+ *
531
+ * Note: the quotients ALPHAR(j)/BETA(j) and ALPHAI(j)/BETA(j)
532
+ * may easily over- or underflow, and BETA(j) may even be zero.
533
+ * Thus, the user should avoid naively computing the ratio.
534
+ * However, ALPHAR and ALPHAI will be always less than and
535
+ * usually comparable with norm(A) in magnitude, and BETA always
536
+ * less than and usually comparable with norm(B).
537
+ *
538
+ * VSL (output) REAL array, dimension (LDVSL,N)
539
+ * If JOBVSL = 'V', VSL will contain the left Schur vectors.
540
+ * Not referenced if JOBVSL = 'N'.
541
+ *
542
+ * LDVSL (input) INTEGER
543
+ * The leading dimension of the matrix VSL. LDVSL >=1, and
544
+ * if JOBVSL = 'V', LDVSL >= N.
545
+ *
546
+ * VSR (output) REAL array, dimension (LDVSR,N)
547
+ * If JOBVSR = 'V', VSR will contain the right Schur vectors.
548
+ * Not referenced if JOBVSR = 'N'.
549
+ *
550
+ * LDVSR (input) INTEGER
551
+ * The leading dimension of the matrix VSR. LDVSR >= 1, and
552
+ * if JOBVSR = 'V', LDVSR >= N.
553
+ *
554
+ * RCONDE (output) REAL array, dimension ( 2 )
555
+ * If SENSE = 'E' or 'B', RCONDE(1) and RCONDE(2) contain the
556
+ * reciprocal condition numbers for the average of the selected
557
+ * eigenvalues.
558
+ * Not referenced if SENSE = 'N' or 'V'.
559
+ *
560
+ * RCONDV (output) REAL array, dimension ( 2 )
561
+ * If SENSE = 'V' or 'B', RCONDV(1) and RCONDV(2) contain the
562
+ * reciprocal condition numbers for the selected deflating
563
+ * subspaces.
564
+ * Not referenced if SENSE = 'N' or 'E'.
565
+ *
566
+ * WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
567
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
568
+ *
569
+ * LWORK (input) INTEGER
570
+ * The dimension of the array WORK.
571
+ * If N = 0, LWORK >= 1, else if SENSE = 'E', 'V', or 'B',
572
+ * LWORK >= max( 8*N, 6*N+16, 2*SDIM*(N-SDIM) ), else
573
+ * LWORK >= max( 8*N, 6*N+16 ).
574
+ * Note that 2*SDIM*(N-SDIM) <= N*N/2.
575
+ * Note also that an error is only returned if
576
+ * LWORK < max( 8*N, 6*N+16), but if SENSE = 'E' or 'V' or 'B'
577
+ * this may not be large enough.
578
+ *
579
+ * If LWORK = -1, then a workspace query is assumed; the routine
580
+ * only calculates the bound on the optimal size of the WORK
581
+ * array and the minimum size of the IWORK array, returns these
582
+ * values as the first entries of the WORK and IWORK arrays, and
583
+ * no error message related to LWORK or LIWORK is issued by
584
+ * XERBLA.
585
+ *
586
+ * IWORK (workspace) INTEGER array, dimension (MAX(1,LIWORK))
587
+ * On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.
588
+ *
589
+ * LIWORK (input) INTEGER
590
+ * The dimension of the array IWORK.
591
+ * If SENSE = 'N' or N = 0, LIWORK >= 1, otherwise
592
+ * LIWORK >= N+6.
593
+ *
594
+ * If LIWORK = -1, then a workspace query is assumed; the
595
+ * routine only calculates the bound on the optimal size of the
596
+ * WORK array and the minimum size of the IWORK array, returns
597
+ * these values as the first entries of the WORK and IWORK
598
+ * arrays, and no error message related to LWORK or LIWORK is
599
+ * issued by XERBLA.
600
+ *
601
+ * BWORK (workspace) LOGICAL array, dimension (N)
602
+ * Not referenced if SORT = 'N'.
603
+ *
604
+ * INFO (output) INTEGER
605
+ * = 0: successful exit
606
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
607
+ * = 1,...,N:
608
+ * The QZ iteration failed. (A,B) are not in Schur
609
+ * form, but ALPHAR(j), ALPHAI(j), and BETA(j) should
610
+ * be correct for j=INFO+1,...,N.
611
+ * > N: =N+1: other than QZ iteration failed in SHGEQZ
612
+ * =N+2: after reordering, roundoff changed values of
613
+ * some complex eigenvalues so that leading
614
+ * eigenvalues in the Generalized Schur form no
615
+ * longer satisfy SELCTG=.TRUE. This could also
616
+ * be caused due to scaling.
617
+ * =N+3: reordering failed in STGSEN.
618
+ *
619
+
620
+ * Further Details
621
+ * ===============
622
+ *
623
+ * An approximate (asymptotic) bound on the average absolute error of
624
+ * the selected eigenvalues is
625
+ *
626
+ * EPS * norm((A, B)) / RCONDE( 1 ).
627
+ *
628
+ * An approximate (asymptotic) bound on the maximum angular error in
629
+ * the computed deflating subspaces is
630
+ *
631
+ * EPS * norm((A, B)) / RCONDV( 2 ).
632
+ *
633
+ * See LAPACK User's Guide, section 4.11 for more information.
634
+ *
635
+ * =====================================================================
636
+ *
637
+
638
+
639
+ </PRE>
640
+ <A HREF="#top">go to the page top</A>
641
+
642
+ <A NAME="sggev"></A>
643
+ <H2>sggev</H2>
644
+ <PRE>
645
+ USAGE:
646
+ alphar, alphai, beta, vl, vr, work, info, a, b = NumRu::Lapack.sggev( jobvl, jobvr, a, b, [:lwork => lwork, :usage => usage, :help => help])
647
+
648
+
649
+ FORTRAN MANUAL
650
+ SUBROUTINE SGGEV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, INFO )
651
+
652
+ * Purpose
653
+ * =======
654
+ *
655
+ * SGGEV computes for a pair of N-by-N real nonsymmetric matrices (A,B)
656
+ * the generalized eigenvalues, and optionally, the left and/or right
657
+ * generalized eigenvectors.
658
+ *
659
+ * A generalized eigenvalue for a pair of matrices (A,B) is a scalar
660
+ * lambda or a ratio alpha/beta = lambda, such that A - lambda*B is
661
+ * singular. It is usually represented as the pair (alpha,beta), as
662
+ * there is a reasonable interpretation for beta=0, and even for both
663
+ * being zero.
664
+ *
665
+ * The right eigenvector v(j) corresponding to the eigenvalue lambda(j)
666
+ * of (A,B) satisfies
667
+ *
668
+ * A * v(j) = lambda(j) * B * v(j).
669
+ *
670
+ * The left eigenvector u(j) corresponding to the eigenvalue lambda(j)
671
+ * of (A,B) satisfies
672
+ *
673
+ * u(j)**H * A = lambda(j) * u(j)**H * B .
674
+ *
675
+ * where u(j)**H is the conjugate-transpose of u(j).
676
+ *
677
+ *
678
+
679
+ * Arguments
680
+ * =========
681
+ *
682
+ * JOBVL (input) CHARACTER*1
683
+ * = 'N': do not compute the left generalized eigenvectors;
684
+ * = 'V': compute the left generalized eigenvectors.
685
+ *
686
+ * JOBVR (input) CHARACTER*1
687
+ * = 'N': do not compute the right generalized eigenvectors;
688
+ * = 'V': compute the right generalized eigenvectors.
689
+ *
690
+ * N (input) INTEGER
691
+ * The order of the matrices A, B, VL, and VR. N >= 0.
692
+ *
693
+ * A (input/output) REAL array, dimension (LDA, N)
694
+ * On entry, the matrix A in the pair (A,B).
695
+ * On exit, A has been overwritten.
696
+ *
697
+ * LDA (input) INTEGER
698
+ * The leading dimension of A. LDA >= max(1,N).
699
+ *
700
+ * B (input/output) REAL array, dimension (LDB, N)
701
+ * On entry, the matrix B in the pair (A,B).
702
+ * On exit, B has been overwritten.
703
+ *
704
+ * LDB (input) INTEGER
705
+ * The leading dimension of B. LDB >= max(1,N).
706
+ *
707
+ * ALPHAR (output) REAL array, dimension (N)
708
+ * ALPHAI (output) REAL array, dimension (N)
709
+ * BETA (output) REAL array, dimension (N)
710
+ * On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
711
+ * be the generalized eigenvalues. If ALPHAI(j) is zero, then
712
+ * the j-th eigenvalue is real; if positive, then the j-th and
713
+ * (j+1)-st eigenvalues are a complex conjugate pair, with
714
+ * ALPHAI(j+1) negative.
715
+ *
716
+ * Note: the quotients ALPHAR(j)/BETA(j) and ALPHAI(j)/BETA(j)
717
+ * may easily over- or underflow, and BETA(j) may even be zero.
718
+ * Thus, the user should avoid naively computing the ratio
719
+ * alpha/beta. However, ALPHAR and ALPHAI will be always less
720
+ * than and usually comparable with norm(A) in magnitude, and
721
+ * BETA always less than and usually comparable with norm(B).
722
+ *
723
+ * VL (output) REAL array, dimension (LDVL,N)
724
+ * If JOBVL = 'V', the left eigenvectors u(j) are stored one
725
+ * after another in the columns of VL, in the same order as
726
+ * their eigenvalues. If the j-th eigenvalue is real, then
727
+ * u(j) = VL(:,j), the j-th column of VL. If the j-th and
728
+ * (j+1)-th eigenvalues form a complex conjugate pair, then
729
+ * u(j) = VL(:,j)+i*VL(:,j+1) and u(j+1) = VL(:,j)-i*VL(:,j+1).
730
+ * Each eigenvector is scaled so the largest component has
731
+ * abs(real part)+abs(imag. part)=1.
732
+ * Not referenced if JOBVL = 'N'.
733
+ *
734
+ * LDVL (input) INTEGER
735
+ * The leading dimension of the matrix VL. LDVL >= 1, and
736
+ * if JOBVL = 'V', LDVL >= N.
737
+ *
738
+ * VR (output) REAL array, dimension (LDVR,N)
739
+ * If JOBVR = 'V', the right eigenvectors v(j) are stored one
740
+ * after another in the columns of VR, in the same order as
741
+ * their eigenvalues. If the j-th eigenvalue is real, then
742
+ * v(j) = VR(:,j), the j-th column of VR. If the j-th and
743
+ * (j+1)-th eigenvalues form a complex conjugate pair, then
744
+ * v(j) = VR(:,j)+i*VR(:,j+1) and v(j+1) = VR(:,j)-i*VR(:,j+1).
745
+ * Each eigenvector is scaled so the largest component has
746
+ * abs(real part)+abs(imag. part)=1.
747
+ * Not referenced if JOBVR = 'N'.
748
+ *
749
+ * LDVR (input) INTEGER
750
+ * The leading dimension of the matrix VR. LDVR >= 1, and
751
+ * if JOBVR = 'V', LDVR >= N.
752
+ *
753
+ * WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
754
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
755
+ *
756
+ * LWORK (input) INTEGER
757
+ * The dimension of the array WORK. LWORK >= max(1,8*N).
758
+ * For good performance, LWORK must generally be larger.
759
+ *
760
+ * If LWORK = -1, then a workspace query is assumed; the routine
761
+ * only calculates the optimal size of the WORK array, returns
762
+ * this value as the first entry of the WORK array, and no error
763
+ * message related to LWORK is issued by XERBLA.
764
+ *
765
+ * INFO (output) INTEGER
766
+ * = 0: successful exit
767
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
768
+ * = 1,...,N:
769
+ * The QZ iteration failed. No eigenvectors have been
770
+ * calculated, but ALPHAR(j), ALPHAI(j), and BETA(j)
771
+ * should be correct for j=INFO+1,...,N.
772
+ * > N: =N+1: other than QZ iteration failed in SHGEQZ.
773
+ * =N+2: error return from STGEVC.
774
+ *
775
+
776
+ * =====================================================================
777
+ *
778
+
779
+
780
+ </PRE>
781
+ <A HREF="#top">go to the page top</A>
782
+
783
+ <A NAME="sggevx"></A>
784
+ <H2>sggevx</H2>
785
+ <PRE>
786
+ USAGE:
787
+ alphar, alphai, beta, vl, vr, ilo, ihi, lscale, rscale, abnrm, bbnrm, rconde, rcondv, work, info, a, b = NumRu::Lapack.sggevx( balanc, jobvl, jobvr, sense, a, b, [:lwork => lwork, :usage => usage, :help => help])
788
+
789
+
790
+ FORTRAN MANUAL
791
+ SUBROUTINE SGGEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, B, LDB, ALPHAR, ALPHAI, BETA, VL, LDVL, VR, LDVR, ILO, IHI, LSCALE, RSCALE, ABNRM, BBNRM, RCONDE, RCONDV, WORK, LWORK, IWORK, BWORK, INFO )
792
+
793
+ * Purpose
794
+ * =======
795
+ *
796
+ * SGGEVX computes for a pair of N-by-N real nonsymmetric matrices (A,B)
797
+ * the generalized eigenvalues, and optionally, the left and/or right
798
+ * generalized eigenvectors.
799
+ *
800
+ * Optionally also, it computes a balancing transformation to improve
801
+ * the conditioning of the eigenvalues and eigenvectors (ILO, IHI,
802
+ * LSCALE, RSCALE, ABNRM, and BBNRM), reciprocal condition numbers for
803
+ * the eigenvalues (RCONDE), and reciprocal condition numbers for the
804
+ * right eigenvectors (RCONDV).
805
+ *
806
+ * A generalized eigenvalue for a pair of matrices (A,B) is a scalar
807
+ * lambda or a ratio alpha/beta = lambda, such that A - lambda*B is
808
+ * singular. It is usually represented as the pair (alpha,beta), as
809
+ * there is a reasonable interpretation for beta=0, and even for both
810
+ * being zero.
811
+ *
812
+ * The right eigenvector v(j) corresponding to the eigenvalue lambda(j)
813
+ * of (A,B) satisfies
814
+ *
815
+ * A * v(j) = lambda(j) * B * v(j) .
816
+ *
817
+ * The left eigenvector u(j) corresponding to the eigenvalue lambda(j)
818
+ * of (A,B) satisfies
819
+ *
820
+ * u(j)**H * A = lambda(j) * u(j)**H * B.
821
+ *
822
+ * where u(j)**H is the conjugate-transpose of u(j).
823
+ *
824
+ *
825
+
826
+ * Arguments
827
+ * =========
828
+ *
829
+ * BALANC (input) CHARACTER*1
830
+ * Specifies the balance option to be performed.
831
+ * = 'N': do not diagonally scale or permute;
832
+ * = 'P': permute only;
833
+ * = 'S': scale only;
834
+ * = 'B': both permute and scale.
835
+ * Computed reciprocal condition numbers will be for the
836
+ * matrices after permuting and/or balancing. Permuting does
837
+ * not change condition numbers (in exact arithmetic), but
838
+ * balancing does.
839
+ *
840
+ * JOBVL (input) CHARACTER*1
841
+ * = 'N': do not compute the left generalized eigenvectors;
842
+ * = 'V': compute the left generalized eigenvectors.
843
+ *
844
+ * JOBVR (input) CHARACTER*1
845
+ * = 'N': do not compute the right generalized eigenvectors;
846
+ * = 'V': compute the right generalized eigenvectors.
847
+ *
848
+ * SENSE (input) CHARACTER*1
849
+ * Determines which reciprocal condition numbers are computed.
850
+ * = 'N': none are computed;
851
+ * = 'E': computed for eigenvalues only;
852
+ * = 'V': computed for eigenvectors only;
853
+ * = 'B': computed for eigenvalues and eigenvectors.
854
+ *
855
+ * N (input) INTEGER
856
+ * The order of the matrices A, B, VL, and VR. N >= 0.
857
+ *
858
+ * A (input/output) REAL array, dimension (LDA, N)
859
+ * On entry, the matrix A in the pair (A,B).
860
+ * On exit, A has been overwritten. If JOBVL='V' or JOBVR='V'
861
+ * or both, then A contains the first part of the real Schur
862
+ * form of the "balanced" versions of the input A and B.
863
+ *
864
+ * LDA (input) INTEGER
865
+ * The leading dimension of A. LDA >= max(1,N).
866
+ *
867
+ * B (input/output) REAL array, dimension (LDB, N)
868
+ * On entry, the matrix B in the pair (A,B).
869
+ * On exit, B has been overwritten. If JOBVL='V' or JOBVR='V'
870
+ * or both, then B contains the second part of the real Schur
871
+ * form of the "balanced" versions of the input A and B.
872
+ *
873
+ * LDB (input) INTEGER
874
+ * The leading dimension of B. LDB >= max(1,N).
875
+ *
876
+ * ALPHAR (output) REAL array, dimension (N)
877
+ * ALPHAI (output) REAL array, dimension (N)
878
+ * BETA (output) REAL array, dimension (N)
879
+ * On exit, (ALPHAR(j) + ALPHAI(j)*i)/BETA(j), j=1,...,N, will
880
+ * be the generalized eigenvalues. If ALPHAI(j) is zero, then
881
+ * the j-th eigenvalue is real; if positive, then the j-th and
882
+ * (j+1)-st eigenvalues are a complex conjugate pair, with
883
+ * ALPHAI(j+1) negative.
884
+ *
885
+ * Note: the quotients ALPHAR(j)/BETA(j) and ALPHAI(j)/BETA(j)
886
+ * may easily over- or underflow, and BETA(j) may even be zero.
887
+ * Thus, the user should avoid naively computing the ratio
888
+ * ALPHA/BETA. However, ALPHAR and ALPHAI will be always less
889
+ * than and usually comparable with norm(A) in magnitude, and
890
+ * BETA always less than and usually comparable with norm(B).
891
+ *
892
+ * VL (output) REAL array, dimension (LDVL,N)
893
+ * If JOBVL = 'V', the left eigenvectors u(j) are stored one
894
+ * after another in the columns of VL, in the same order as
895
+ * their eigenvalues. If the j-th eigenvalue is real, then
896
+ * u(j) = VL(:,j), the j-th column of VL. If the j-th and
897
+ * (j+1)-th eigenvalues form a complex conjugate pair, then
898
+ * u(j) = VL(:,j)+i*VL(:,j+1) and u(j+1) = VL(:,j)-i*VL(:,j+1).
899
+ * Each eigenvector will be scaled so the largest component have
900
+ * abs(real part) + abs(imag. part) = 1.
901
+ * Not referenced if JOBVL = 'N'.
902
+ *
903
+ * LDVL (input) INTEGER
904
+ * The leading dimension of the matrix VL. LDVL >= 1, and
905
+ * if JOBVL = 'V', LDVL >= N.
906
+ *
907
+ * VR (output) REAL array, dimension (LDVR,N)
908
+ * If JOBVR = 'V', the right eigenvectors v(j) are stored one
909
+ * after another in the columns of VR, in the same order as
910
+ * their eigenvalues. If the j-th eigenvalue is real, then
911
+ * v(j) = VR(:,j), the j-th column of VR. If the j-th and
912
+ * (j+1)-th eigenvalues form a complex conjugate pair, then
913
+ * v(j) = VR(:,j)+i*VR(:,j+1) and v(j+1) = VR(:,j)-i*VR(:,j+1).
914
+ * Each eigenvector will be scaled so the largest component have
915
+ * abs(real part) + abs(imag. part) = 1.
916
+ * Not referenced if JOBVR = 'N'.
917
+ *
918
+ * LDVR (input) INTEGER
919
+ * The leading dimension of the matrix VR. LDVR >= 1, and
920
+ * if JOBVR = 'V', LDVR >= N.
921
+ *
922
+ * ILO (output) INTEGER
923
+ * IHI (output) INTEGER
924
+ * ILO and IHI are integer values such that on exit
925
+ * A(i,j) = 0 and B(i,j) = 0 if i > j and
926
+ * j = 1,...,ILO-1 or i = IHI+1,...,N.
927
+ * If BALANC = 'N' or 'S', ILO = 1 and IHI = N.
928
+ *
929
+ * LSCALE (output) REAL array, dimension (N)
930
+ * Details of the permutations and scaling factors applied
931
+ * to the left side of A and B. If PL(j) is the index of the
932
+ * row interchanged with row j, and DL(j) is the scaling
933
+ * factor applied to row j, then
934
+ * LSCALE(j) = PL(j) for j = 1,...,ILO-1
935
+ * = DL(j) for j = ILO,...,IHI
936
+ * = PL(j) for j = IHI+1,...,N.
937
+ * The order in which the interchanges are made is N to IHI+1,
938
+ * then 1 to ILO-1.
939
+ *
940
+ * RSCALE (output) REAL array, dimension (N)
941
+ * Details of the permutations and scaling factors applied
942
+ * to the right side of A and B. If PR(j) is the index of the
943
+ * column interchanged with column j, and DR(j) is the scaling
944
+ * factor applied to column j, then
945
+ * RSCALE(j) = PR(j) for j = 1,...,ILO-1
946
+ * = DR(j) for j = ILO,...,IHI
947
+ * = PR(j) for j = IHI+1,...,N
948
+ * The order in which the interchanges are made is N to IHI+1,
949
+ * then 1 to ILO-1.
950
+ *
951
+ * ABNRM (output) REAL
952
+ * The one-norm of the balanced matrix A.
953
+ *
954
+ * BBNRM (output) REAL
955
+ * The one-norm of the balanced matrix B.
956
+ *
957
+ * RCONDE (output) REAL array, dimension (N)
958
+ * If SENSE = 'E' or 'B', the reciprocal condition numbers of
959
+ * the eigenvalues, stored in consecutive elements of the array.
960
+ * For a complex conjugate pair of eigenvalues two consecutive
961
+ * elements of RCONDE are set to the same value. Thus RCONDE(j),
962
+ * RCONDV(j), and the j-th columns of VL and VR all correspond
963
+ * to the j-th eigenpair.
964
+ * If SENSE = 'N' or 'V', RCONDE is not referenced.
965
+ *
966
+ * RCONDV (output) REAL array, dimension (N)
967
+ * If SENSE = 'V' or 'B', the estimated reciprocal condition
968
+ * numbers of the eigenvectors, stored in consecutive elements
969
+ * of the array. For a complex eigenvector two consecutive
970
+ * elements of RCONDV are set to the same value. If the
971
+ * eigenvalues cannot be reordered to compute RCONDV(j),
972
+ * RCONDV(j) is set to 0; this can only occur when the true
973
+ * value would be very small anyway.
974
+ * If SENSE = 'N' or 'E', RCONDV is not referenced.
975
+ *
976
+ * WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
977
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
978
+ *
979
+ * LWORK (input) INTEGER
980
+ * The dimension of the array WORK. LWORK >= max(1,2*N).
981
+ * If BALANC = 'S' or 'B', or JOBVL = 'V', or JOBVR = 'V',
982
+ * LWORK >= max(1,6*N).
983
+ * If SENSE = 'E', LWORK >= max(1,10*N).
984
+ * If SENSE = 'V' or 'B', LWORK >= 2*N*N+8*N+16.
985
+ *
986
+ * If LWORK = -1, then a workspace query is assumed; the routine
987
+ * only calculates the optimal size of the WORK array, returns
988
+ * this value as the first entry of the WORK array, and no error
989
+ * message related to LWORK is issued by XERBLA.
990
+ *
991
+ * IWORK (workspace) INTEGER array, dimension (N+6)
992
+ * If SENSE = 'E', IWORK is not referenced.
993
+ *
994
+ * BWORK (workspace) LOGICAL array, dimension (N)
995
+ * If SENSE = 'N', BWORK is not referenced.
996
+ *
997
+ * INFO (output) INTEGER
998
+ * = 0: successful exit
999
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
1000
+ * = 1,...,N:
1001
+ * The QZ iteration failed. No eigenvectors have been
1002
+ * calculated, but ALPHAR(j), ALPHAI(j), and BETA(j)
1003
+ * should be correct for j=INFO+1,...,N.
1004
+ * > N: =N+1: other than QZ iteration failed in SHGEQZ.
1005
+ * =N+2: error return from STGEVC.
1006
+ *
1007
+
1008
+ * Further Details
1009
+ * ===============
1010
+ *
1011
+ * Balancing a matrix pair (A,B) includes, first, permuting rows and
1012
+ * columns to isolate eigenvalues, second, applying diagonal similarity
1013
+ * transformation to the rows and columns to make the rows and columns
1014
+ * as close in norm as possible. The computed reciprocal condition
1015
+ * numbers correspond to the balanced matrix. Permuting rows and columns
1016
+ * will not change the condition numbers (in exact arithmetic) but
1017
+ * diagonal scaling will. For further explanation of balancing, see
1018
+ * section 4.11.1.2 of LAPACK Users' Guide.
1019
+ *
1020
+ * An approximate error bound on the chordal distance between the i-th
1021
+ * computed generalized eigenvalue w and the corresponding exact
1022
+ * eigenvalue lambda is
1023
+ *
1024
+ * chord(w, lambda) <= EPS * norm(ABNRM, BBNRM) / RCONDE(I)
1025
+ *
1026
+ * An approximate error bound for the angle between the i-th computed
1027
+ * eigenvector VL(i) or VR(i) is given by
1028
+ *
1029
+ * EPS * norm(ABNRM, BBNRM) / DIF(i).
1030
+ *
1031
+ * For further explanation of the reciprocal condition numbers RCONDE
1032
+ * and RCONDV, see section 4.11 of LAPACK User's Guide.
1033
+ *
1034
+ * =====================================================================
1035
+ *
1036
+
1037
+
1038
+ </PRE>
1039
+ <A HREF="#top">go to the page top</A>
1040
+
1041
+ <A NAME="sggglm"></A>
1042
+ <H2>sggglm</H2>
1043
+ <PRE>
1044
+ USAGE:
1045
+ x, y, work, info, a, b, d = NumRu::Lapack.sggglm( a, b, d, [:lwork => lwork, :usage => usage, :help => help])
1046
+
1047
+
1048
+ FORTRAN MANUAL
1049
+ SUBROUTINE SGGGLM( N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO )
1050
+
1051
+ * Purpose
1052
+ * =======
1053
+ *
1054
+ * SGGGLM solves a general Gauss-Markov linear model (GLM) problem:
1055
+ *
1056
+ * minimize || y ||_2 subject to d = A*x + B*y
1057
+ * x
1058
+ *
1059
+ * where A is an N-by-M matrix, B is an N-by-P matrix, and d is a
1060
+ * given N-vector. It is assumed that M <= N <= M+P, and
1061
+ *
1062
+ * rank(A) = M and rank( A B ) = N.
1063
+ *
1064
+ * Under these assumptions, the constrained equation is always
1065
+ * consistent, and there is a unique solution x and a minimal 2-norm
1066
+ * solution y, which is obtained using a generalized QR factorization
1067
+ * of the matrices (A, B) given by
1068
+ *
1069
+ * A = Q*(R), B = Q*T*Z.
1070
+ * (0)
1071
+ *
1072
+ * In particular, if matrix B is square nonsingular, then the problem
1073
+ * GLM is equivalent to the following weighted linear least squares
1074
+ * problem
1075
+ *
1076
+ * minimize || inv(B)*(d-A*x) ||_2
1077
+ * x
1078
+ *
1079
+ * where inv(B) denotes the inverse of B.
1080
+ *
1081
+
1082
+ * Arguments
1083
+ * =========
1084
+ *
1085
+ * N (input) INTEGER
1086
+ * The number of rows of the matrices A and B. N >= 0.
1087
+ *
1088
+ * M (input) INTEGER
1089
+ * The number of columns of the matrix A. 0 <= M <= N.
1090
+ *
1091
+ * P (input) INTEGER
1092
+ * The number of columns of the matrix B. P >= N-M.
1093
+ *
1094
+ * A (input/output) REAL array, dimension (LDA,M)
1095
+ * On entry, the N-by-M matrix A.
1096
+ * On exit, the upper triangular part of the array A contains
1097
+ * the M-by-M upper triangular matrix R.
1098
+ *
1099
+ * LDA (input) INTEGER
1100
+ * The leading dimension of the array A. LDA >= max(1,N).
1101
+ *
1102
+ * B (input/output) REAL array, dimension (LDB,P)
1103
+ * On entry, the N-by-P matrix B.
1104
+ * On exit, if N <= P, the upper triangle of the subarray
1105
+ * B(1:N,P-N+1:P) contains the N-by-N upper triangular matrix T;
1106
+ * if N > P, the elements on and above the (N-P)th subdiagonal
1107
+ * contain the N-by-P upper trapezoidal matrix T.
1108
+ *
1109
+ * LDB (input) INTEGER
1110
+ * The leading dimension of the array B. LDB >= max(1,N).
1111
+ *
1112
+ * D (input/output) REAL array, dimension (N)
1113
+ * On entry, D is the left hand side of the GLM equation.
1114
+ * On exit, D is destroyed.
1115
+ *
1116
+ * X (output) REAL array, dimension (M)
1117
+ * Y (output) REAL array, dimension (P)
1118
+ * On exit, X and Y are the solutions of the GLM problem.
1119
+ *
1120
+ * WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
1121
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1122
+ *
1123
+ * LWORK (input) INTEGER
1124
+ * The dimension of the array WORK. LWORK >= max(1,N+M+P).
1125
+ * For optimum performance, LWORK >= M+min(N,P)+max(N,P)*NB,
1126
+ * where NB is an upper bound for the optimal blocksizes for
1127
+ * SGEQRF, SGERQF, SORMQR and SORMRQ.
1128
+ *
1129
+ * If LWORK = -1, then a workspace query is assumed; the routine
1130
+ * only calculates the optimal size of the WORK array, returns
1131
+ * this value as the first entry of the WORK array, and no error
1132
+ * message related to LWORK is issued by XERBLA.
1133
+ *
1134
+ * INFO (output) INTEGER
1135
+ * = 0: successful exit.
1136
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
1137
+ * = 1: the upper triangular factor R associated with A in the
1138
+ * generalized QR factorization of the pair (A, B) is
1139
+ * singular, so that rank(A) < M; the least squares
1140
+ * solution could not be computed.
1141
+ * = 2: the bottom (N-M) by (N-M) part of the upper trapezoidal
1142
+ * factor T associated with B in the generalized QR
1143
+ * factorization of the pair (A, B) is singular, so that
1144
+ * rank( A B ) < N; the least squares solution could not
1145
+ * be computed.
1146
+ *
1147
+
1148
+ * ===================================================================
1149
+ *
1150
+
1151
+
1152
+ </PRE>
1153
+ <A HREF="#top">go to the page top</A>
1154
+
1155
+ <A NAME="sgghrd"></A>
1156
+ <H2>sgghrd</H2>
1157
+ <PRE>
1158
+ USAGE:
1159
+ info, a, b, q, z = NumRu::Lapack.sgghrd( compq, compz, ilo, ihi, a, b, q, z, [:usage => usage, :help => help])
1160
+
1161
+
1162
+ FORTRAN MANUAL
1163
+ SUBROUTINE SGGHRD( COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO )
1164
+
1165
+ * Purpose
1166
+ * =======
1167
+ *
1168
+ * SGGHRD reduces a pair of real matrices (A,B) to generalized upper
1169
+ * Hessenberg form using orthogonal transformations, where A is a
1170
+ * general matrix and B is upper triangular. The form of the
1171
+ * generalized eigenvalue problem is
1172
+ * A*x = lambda*B*x,
1173
+ * and B is typically made upper triangular by computing its QR
1174
+ * factorization and moving the orthogonal matrix Q to the left side
1175
+ * of the equation.
1176
+ *
1177
+ * This subroutine simultaneously reduces A to a Hessenberg matrix H:
1178
+ * Q**T*A*Z = H
1179
+ * and transforms B to another upper triangular matrix T:
1180
+ * Q**T*B*Z = T
1181
+ * in order to reduce the problem to its standard form
1182
+ * H*y = lambda*T*y
1183
+ * where y = Z**T*x.
1184
+ *
1185
+ * The orthogonal matrices Q and Z are determined as products of Givens
1186
+ * rotations. They may either be formed explicitly, or they may be
1187
+ * postmultiplied into input matrices Q1 and Z1, so that
1188
+ *
1189
+ * Q1 * A * Z1**T = (Q1*Q) * H * (Z1*Z)**T
1190
+ *
1191
+ * Q1 * B * Z1**T = (Q1*Q) * T * (Z1*Z)**T
1192
+ *
1193
+ * If Q1 is the orthogonal matrix from the QR factorization of B in the
1194
+ * original equation A*x = lambda*B*x, then SGGHRD reduces the original
1195
+ * problem to generalized Hessenberg form.
1196
+ *
1197
+
1198
+ * Arguments
1199
+ * =========
1200
+ *
1201
+ * COMPQ (input) CHARACTER*1
1202
+ * = 'N': do not compute Q;
1203
+ * = 'I': Q is initialized to the unit matrix, and the
1204
+ * orthogonal matrix Q is returned;
1205
+ * = 'V': Q must contain an orthogonal matrix Q1 on entry,
1206
+ * and the product Q1*Q is returned.
1207
+ *
1208
+ * COMPZ (input) CHARACTER*1
1209
+ * = 'N': do not compute Z;
1210
+ * = 'I': Z is initialized to the unit matrix, and the
1211
+ * orthogonal matrix Z is returned;
1212
+ * = 'V': Z must contain an orthogonal matrix Z1 on entry,
1213
+ * and the product Z1*Z is returned.
1214
+ *
1215
+ * N (input) INTEGER
1216
+ * The order of the matrices A and B. N >= 0.
1217
+ *
1218
+ * ILO (input) INTEGER
1219
+ * IHI (input) INTEGER
1220
+ * ILO and IHI mark the rows and columns of A which are to be
1221
+ * reduced. It is assumed that A is already upper triangular
1222
+ * in rows and columns 1:ILO-1 and IHI+1:N. ILO and IHI are
1223
+ * normally set by a previous call to SGGBAL; otherwise they
1224
+ * should be set to 1 and N respectively.
1225
+ * 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
1226
+ *
1227
+ * A (input/output) REAL array, dimension (LDA, N)
1228
+ * On entry, the N-by-N general matrix to be reduced.
1229
+ * On exit, the upper triangle and the first subdiagonal of A
1230
+ * are overwritten with the upper Hessenberg matrix H, and the
1231
+ * rest is set to zero.
1232
+ *
1233
+ * LDA (input) INTEGER
1234
+ * The leading dimension of the array A. LDA >= max(1,N).
1235
+ *
1236
+ * B (input/output) REAL array, dimension (LDB, N)
1237
+ * On entry, the N-by-N upper triangular matrix B.
1238
+ * On exit, the upper triangular matrix T = Q**T B Z. The
1239
+ * elements below the diagonal are set to zero.
1240
+ *
1241
+ * LDB (input) INTEGER
1242
+ * The leading dimension of the array B. LDB >= max(1,N).
1243
+ *
1244
+ * Q (input/output) REAL array, dimension (LDQ, N)
1245
+ * On entry, if COMPQ = 'V', the orthogonal matrix Q1,
1246
+ * typically from the QR factorization of B.
1247
+ * On exit, if COMPQ='I', the orthogonal matrix Q, and if
1248
+ * COMPQ = 'V', the product Q1*Q.
1249
+ * Not referenced if COMPQ='N'.
1250
+ *
1251
+ * LDQ (input) INTEGER
1252
+ * The leading dimension of the array Q.
1253
+ * LDQ >= N if COMPQ='V' or 'I'; LDQ >= 1 otherwise.
1254
+ *
1255
+ * Z (input/output) REAL array, dimension (LDZ, N)
1256
+ * On entry, if COMPZ = 'V', the orthogonal matrix Z1.
1257
+ * On exit, if COMPZ='I', the orthogonal matrix Z, and if
1258
+ * COMPZ = 'V', the product Z1*Z.
1259
+ * Not referenced if COMPZ='N'.
1260
+ *
1261
+ * LDZ (input) INTEGER
1262
+ * The leading dimension of the array Z.
1263
+ * LDZ >= N if COMPZ='V' or 'I'; LDZ >= 1 otherwise.
1264
+ *
1265
+ * INFO (output) INTEGER
1266
+ * = 0: successful exit.
1267
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
1268
+ *
1269
+
1270
+ * Further Details
1271
+ * ===============
1272
+ *
1273
+ * This routine reduces A to Hessenberg and B to triangular form by
1274
+ * an unblocked reduction, as described in _Matrix_Computations_,
1275
+ * by Golub and Van Loan (Johns Hopkins Press.)
1276
+ *
1277
+ * =====================================================================
1278
+ *
1279
+
1280
+
1281
+ </PRE>
1282
+ <A HREF="#top">go to the page top</A>
1283
+
1284
+ <A NAME="sgglse"></A>
1285
+ <H2>sgglse</H2>
1286
+ <PRE>
1287
+ USAGE:
1288
+ x, work, info, a, b, c, d = NumRu::Lapack.sgglse( a, b, c, d, [:lwork => lwork, :usage => usage, :help => help])
1289
+
1290
+
1291
+ FORTRAN MANUAL
1292
+ SUBROUTINE SGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO )
1293
+
1294
+ * Purpose
1295
+ * =======
1296
+ *
1297
+ * SGGLSE solves the linear equality-constrained least squares (LSE)
1298
+ * problem:
1299
+ *
1300
+ * minimize || c - A*x ||_2 subject to B*x = d
1301
+ *
1302
+ * where A is an M-by-N matrix, B is a P-by-N matrix, c is a given
1303
+ * M-vector, and d is a given P-vector. It is assumed that
1304
+ * P <= N <= M+P, and
1305
+ *
1306
+ * rank(B) = P and rank( (A) ) = N.
1307
+ * ( (B) )
1308
+ *
1309
+ * These conditions ensure that the LSE problem has a unique solution,
1310
+ * which is obtained using a generalized RQ factorization of the
1311
+ * matrices (B, A) given by
1312
+ *
1313
+ * B = (0 R)*Q, A = Z*T*Q.
1314
+ *
1315
+
1316
+ * Arguments
1317
+ * =========
1318
+ *
1319
+ * M (input) INTEGER
1320
+ * The number of rows of the matrix A. M >= 0.
1321
+ *
1322
+ * N (input) INTEGER
1323
+ * The number of columns of the matrices A and B. N >= 0.
1324
+ *
1325
+ * P (input) INTEGER
1326
+ * The number of rows of the matrix B. 0 <= P <= N <= M+P.
1327
+ *
1328
+ * A (input/output) REAL array, dimension (LDA,N)
1329
+ * On entry, the M-by-N matrix A.
1330
+ * On exit, the elements on and above the diagonal of the array
1331
+ * contain the min(M,N)-by-N upper trapezoidal matrix T.
1332
+ *
1333
+ * LDA (input) INTEGER
1334
+ * The leading dimension of the array A. LDA >= max(1,M).
1335
+ *
1336
+ * B (input/output) REAL array, dimension (LDB,N)
1337
+ * On entry, the P-by-N matrix B.
1338
+ * On exit, the upper triangle of the subarray B(1:P,N-P+1:N)
1339
+ * contains the P-by-P upper triangular matrix R.
1340
+ *
1341
+ * LDB (input) INTEGER
1342
+ * The leading dimension of the array B. LDB >= max(1,P).
1343
+ *
1344
+ * C (input/output) REAL array, dimension (M)
1345
+ * On entry, C contains the right hand side vector for the
1346
+ * least squares part of the LSE problem.
1347
+ * On exit, the residual sum of squares for the solution
1348
+ * is given by the sum of squares of elements N-P+1 to M of
1349
+ * vector C.
1350
+ *
1351
+ * D (input/output) REAL array, dimension (P)
1352
+ * On entry, D contains the right hand side vector for the
1353
+ * constrained equation.
1354
+ * On exit, D is destroyed.
1355
+ *
1356
+ * X (output) REAL array, dimension (N)
1357
+ * On exit, X is the solution of the LSE problem.
1358
+ *
1359
+ * WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
1360
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1361
+ *
1362
+ * LWORK (input) INTEGER
1363
+ * The dimension of the array WORK. LWORK >= max(1,M+N+P).
1364
+ * For optimum performance LWORK >= P+min(M,N)+max(M,N)*NB,
1365
+ * where NB is an upper bound for the optimal blocksizes for
1366
+ * SGEQRF, SGERQF, SORMQR and SORMRQ.
1367
+ *
1368
+ * If LWORK = -1, then a workspace query is assumed; the routine
1369
+ * only calculates the optimal size of the WORK array, returns
1370
+ * this value as the first entry of the WORK array, and no error
1371
+ * message related to LWORK is issued by XERBLA.
1372
+ *
1373
+ * INFO (output) INTEGER
1374
+ * = 0: successful exit.
1375
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
1376
+ * = 1: the upper triangular factor R associated with B in the
1377
+ * generalized RQ factorization of the pair (B, A) is
1378
+ * singular, so that rank(B) < P; the least squares
1379
+ * solution could not be computed.
1380
+ * = 2: the (N-P) by (N-P) part of the upper trapezoidal factor
1381
+ * T associated with A in the generalized RQ factorization
1382
+ * of the pair (B, A) is singular, so that
1383
+ * rank( (A) ) < N; the least squares solution could not
1384
+ * ( (B) )
1385
+ * be computed.
1386
+ *
1387
+
1388
+ * =====================================================================
1389
+ *
1390
+
1391
+
1392
+ </PRE>
1393
+ <A HREF="#top">go to the page top</A>
1394
+
1395
+ <A NAME="sggqrf"></A>
1396
+ <H2>sggqrf</H2>
1397
+ <PRE>
1398
+ USAGE:
1399
+ taua, taub, work, info, a, b = NumRu::Lapack.sggqrf( n, a, b, [:lwork => lwork, :usage => usage, :help => help])
1400
+
1401
+
1402
+ FORTRAN MANUAL
1403
+ SUBROUTINE SGGQRF( N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO )
1404
+
1405
+ * Purpose
1406
+ * =======
1407
+ *
1408
+ * SGGQRF computes a generalized QR factorization of an N-by-M matrix A
1409
+ * and an N-by-P matrix B:
1410
+ *
1411
+ * A = Q*R, B = Q*T*Z,
1412
+ *
1413
+ * where Q is an N-by-N orthogonal matrix, Z is a P-by-P orthogonal
1414
+ * matrix, and R and T assume one of the forms:
1415
+ *
1416
+ * if N >= M, R = ( R11 ) M , or if N < M, R = ( R11 R12 ) N,
1417
+ * ( 0 ) N-M N M-N
1418
+ * M
1419
+ *
1420
+ * where R11 is upper triangular, and
1421
+ *
1422
+ * if N <= P, T = ( 0 T12 ) N, or if N > P, T = ( T11 ) N-P,
1423
+ * P-N N ( T21 ) P
1424
+ * P
1425
+ *
1426
+ * where T12 or T21 is upper triangular.
1427
+ *
1428
+ * In particular, if B is square and nonsingular, the GQR factorization
1429
+ * of A and B implicitly gives the QR factorization of inv(B)*A:
1430
+ *
1431
+ * inv(B)*A = Z'*(inv(T)*R)
1432
+ *
1433
+ * where inv(B) denotes the inverse of the matrix B, and Z' denotes the
1434
+ * transpose of the matrix Z.
1435
+ *
1436
+
1437
+ * Arguments
1438
+ * =========
1439
+ *
1440
+ * N (input) INTEGER
1441
+ * The number of rows of the matrices A and B. N >= 0.
1442
+ *
1443
+ * M (input) INTEGER
1444
+ * The number of columns of the matrix A. M >= 0.
1445
+ *
1446
+ * P (input) INTEGER
1447
+ * The number of columns of the matrix B. P >= 0.
1448
+ *
1449
+ * A (input/output) REAL array, dimension (LDA,M)
1450
+ * On entry, the N-by-M matrix A.
1451
+ * On exit, the elements on and above the diagonal of the array
1452
+ * contain the min(N,M)-by-M upper trapezoidal matrix R (R is
1453
+ * upper triangular if N >= M); the elements below the diagonal,
1454
+ * with the array TAUA, represent the orthogonal matrix Q as a
1455
+ * product of min(N,M) elementary reflectors (see Further
1456
+ * Details).
1457
+ *
1458
+ * LDA (input) INTEGER
1459
+ * The leading dimension of the array A. LDA >= max(1,N).
1460
+ *
1461
+ * TAUA (output) REAL array, dimension (min(N,M))
1462
+ * The scalar factors of the elementary reflectors which
1463
+ * represent the orthogonal matrix Q (see Further Details).
1464
+ *
1465
+ * B (input/output) REAL array, dimension (LDB,P)
1466
+ * On entry, the N-by-P matrix B.
1467
+ * On exit, if N <= P, the upper triangle of the subarray
1468
+ * B(1:N,P-N+1:P) contains the N-by-N upper triangular matrix T;
1469
+ * if N > P, the elements on and above the (N-P)-th subdiagonal
1470
+ * contain the N-by-P upper trapezoidal matrix T; the remaining
1471
+ * elements, with the array TAUB, represent the orthogonal
1472
+ * matrix Z as a product of elementary reflectors (see Further
1473
+ * Details).
1474
+ *
1475
+ * LDB (input) INTEGER
1476
+ * The leading dimension of the array B. LDB >= max(1,N).
1477
+ *
1478
+ * TAUB (output) REAL array, dimension (min(N,P))
1479
+ * The scalar factors of the elementary reflectors which
1480
+ * represent the orthogonal matrix Z (see Further Details).
1481
+ *
1482
+ * WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
1483
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1484
+ *
1485
+ * LWORK (input) INTEGER
1486
+ * The dimension of the array WORK. LWORK >= max(1,N,M,P).
1487
+ * For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
1488
+ * where NB1 is the optimal blocksize for the QR factorization
1489
+ * of an N-by-M matrix, NB2 is the optimal blocksize for the
1490
+ * RQ factorization of an N-by-P matrix, and NB3 is the optimal
1491
+ * blocksize for a call of SORMQR.
1492
+ *
1493
+ * If LWORK = -1, then a workspace query is assumed; the routine
1494
+ * only calculates the optimal size of the WORK array, returns
1495
+ * this value as the first entry of the WORK array, and no error
1496
+ * message related to LWORK is issued by XERBLA.
1497
+ *
1498
+ * INFO (output) INTEGER
1499
+ * = 0: successful exit
1500
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
1501
+ *
1502
+
1503
+ * Further Details
1504
+ * ===============
1505
+ *
1506
+ * The matrix Q is represented as a product of elementary reflectors
1507
+ *
1508
+ * Q = H(1) H(2) . . . H(k), where k = min(n,m).
1509
+ *
1510
+ * Each H(i) has the form
1511
+ *
1512
+ * H(i) = I - taua * v * v'
1513
+ *
1514
+ * where taua is a real scalar, and v is a real vector with
1515
+ * v(1:i-1) = 0 and v(i) = 1; v(i+1:n) is stored on exit in A(i+1:n,i),
1516
+ * and taua in TAUA(i).
1517
+ * To form Q explicitly, use LAPACK subroutine SORGQR.
1518
+ * To use Q to update another matrix, use LAPACK subroutine SORMQR.
1519
+ *
1520
+ * The matrix Z is represented as a product of elementary reflectors
1521
+ *
1522
+ * Z = H(1) H(2) . . . H(k), where k = min(n,p).
1523
+ *
1524
+ * Each H(i) has the form
1525
+ *
1526
+ * H(i) = I - taub * v * v'
1527
+ *
1528
+ * where taub is a real scalar, and v is a real vector with
1529
+ * v(p-k+i+1:p) = 0 and v(p-k+i) = 1; v(1:p-k+i-1) is stored on exit in
1530
+ * B(n-k+i,1:p-k+i-1), and taub in TAUB(i).
1531
+ * To form Z explicitly, use LAPACK subroutine SORGRQ.
1532
+ * To use Z to update another matrix, use LAPACK subroutine SORMRQ.
1533
+ *
1534
+ * =====================================================================
1535
+ *
1536
+ * .. Local Scalars ..
1537
+ LOGICAL LQUERY
1538
+ INTEGER LOPT, LWKOPT, NB, NB1, NB2, NB3
1539
+ * ..
1540
+ * .. External Subroutines ..
1541
+ EXTERNAL SGEQRF, SGERQF, SORMQR, XERBLA
1542
+ * ..
1543
+ * .. External Functions ..
1544
+ INTEGER ILAENV
1545
+ EXTERNAL ILAENV
1546
+ * ..
1547
+ * .. Intrinsic Functions ..
1548
+ INTRINSIC INT, MAX, MIN
1549
+ * ..
1550
+
1551
+
1552
+ </PRE>
1553
+ <A HREF="#top">go to the page top</A>
1554
+
1555
+ <A NAME="sggrqf"></A>
1556
+ <H2>sggrqf</H2>
1557
+ <PRE>
1558
+ USAGE:
1559
+ taua, taub, work, info, a, b = NumRu::Lapack.sggrqf( m, p, a, b, [:lwork => lwork, :usage => usage, :help => help])
1560
+
1561
+
1562
+ FORTRAN MANUAL
1563
+ SUBROUTINE SGGRQF( M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO )
1564
+
1565
+ * Purpose
1566
+ * =======
1567
+ *
1568
+ * SGGRQF computes a generalized RQ factorization of an M-by-N matrix A
1569
+ * and a P-by-N matrix B:
1570
+ *
1571
+ * A = R*Q, B = Z*T*Q,
1572
+ *
1573
+ * where Q is an N-by-N orthogonal matrix, Z is a P-by-P orthogonal
1574
+ * matrix, and R and T assume one of the forms:
1575
+ *
1576
+ * if M <= N, R = ( 0 R12 ) M, or if M > N, R = ( R11 ) M-N,
1577
+ * N-M M ( R21 ) N
1578
+ * N
1579
+ *
1580
+ * where R12 or R21 is upper triangular, and
1581
+ *
1582
+ * if P >= N, T = ( T11 ) N , or if P < N, T = ( T11 T12 ) P,
1583
+ * ( 0 ) P-N P N-P
1584
+ * N
1585
+ *
1586
+ * where T11 is upper triangular.
1587
+ *
1588
+ * In particular, if B is square and nonsingular, the GRQ factorization
1589
+ * of A and B implicitly gives the RQ factorization of A*inv(B):
1590
+ *
1591
+ * A*inv(B) = (R*inv(T))*Z'
1592
+ *
1593
+ * where inv(B) denotes the inverse of the matrix B, and Z' denotes the
1594
+ * transpose of the matrix Z.
1595
+ *
1596
+
1597
+ * Arguments
1598
+ * =========
1599
+ *
1600
+ * M (input) INTEGER
1601
+ * The number of rows of the matrix A. M >= 0.
1602
+ *
1603
+ * P (input) INTEGER
1604
+ * The number of rows of the matrix B. P >= 0.
1605
+ *
1606
+ * N (input) INTEGER
1607
+ * The number of columns of the matrices A and B. N >= 0.
1608
+ *
1609
+ * A (input/output) REAL array, dimension (LDA,N)
1610
+ * On entry, the M-by-N matrix A.
1611
+ * On exit, if M <= N, the upper triangle of the subarray
1612
+ * A(1:M,N-M+1:N) contains the M-by-M upper triangular matrix R;
1613
+ * if M > N, the elements on and above the (M-N)-th subdiagonal
1614
+ * contain the M-by-N upper trapezoidal matrix R; the remaining
1615
+ * elements, with the array TAUA, represent the orthogonal
1616
+ * matrix Q as a product of elementary reflectors (see Further
1617
+ * Details).
1618
+ *
1619
+ * LDA (input) INTEGER
1620
+ * The leading dimension of the array A. LDA >= max(1,M).
1621
+ *
1622
+ * TAUA (output) REAL array, dimension (min(M,N))
1623
+ * The scalar factors of the elementary reflectors which
1624
+ * represent the orthogonal matrix Q (see Further Details).
1625
+ *
1626
+ * B (input/output) REAL array, dimension (LDB,N)
1627
+ * On entry, the P-by-N matrix B.
1628
+ * On exit, the elements on and above the diagonal of the array
1629
+ * contain the min(P,N)-by-N upper trapezoidal matrix T (T is
1630
+ * upper triangular if P >= N); the elements below the diagonal,
1631
+ * with the array TAUB, represent the orthogonal matrix Z as a
1632
+ * product of elementary reflectors (see Further Details).
1633
+ *
1634
+ * LDB (input) INTEGER
1635
+ * The leading dimension of the array B. LDB >= max(1,P).
1636
+ *
1637
+ * TAUB (output) REAL array, dimension (min(P,N))
1638
+ * The scalar factors of the elementary reflectors which
1639
+ * represent the orthogonal matrix Z (see Further Details).
1640
+ *
1641
+ * WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))
1642
+ * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1643
+ *
1644
+ * LWORK (input) INTEGER
1645
+ * The dimension of the array WORK. LWORK >= max(1,N,M,P).
1646
+ * For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
1647
+ * where NB1 is the optimal blocksize for the RQ factorization
1648
+ * of an M-by-N matrix, NB2 is the optimal blocksize for the
1649
+ * QR factorization of a P-by-N matrix, and NB3 is the optimal
1650
+ * blocksize for a call of SORMRQ.
1651
+ *
1652
+ * If LWORK = -1, then a workspace query is assumed; the routine
1653
+ * only calculates the optimal size of the WORK array, returns
1654
+ * this value as the first entry of the WORK array, and no error
1655
+ * message related to LWORK is issued by XERBLA.
1656
+ *
1657
+ * INFO (output) INTEGER
1658
+ * = 0: successful exit
1659
+ * < 0: if INF0= -i, the i-th argument had an illegal value.
1660
+ *
1661
+
1662
+ * Further Details
1663
+ * ===============
1664
+ *
1665
+ * The matrix Q is represented as a product of elementary reflectors
1666
+ *
1667
+ * Q = H(1) H(2) . . . H(k), where k = min(m,n).
1668
+ *
1669
+ * Each H(i) has the form
1670
+ *
1671
+ * H(i) = I - taua * v * v'
1672
+ *
1673
+ * where taua is a real scalar, and v is a real vector with
1674
+ * v(n-k+i+1:n) = 0 and v(n-k+i) = 1; v(1:n-k+i-1) is stored on exit in
1675
+ * A(m-k+i,1:n-k+i-1), and taua in TAUA(i).
1676
+ * To form Q explicitly, use LAPACK subroutine SORGRQ.
1677
+ * To use Q to update another matrix, use LAPACK subroutine SORMRQ.
1678
+ *
1679
+ * The matrix Z is represented as a product of elementary reflectors
1680
+ *
1681
+ * Z = H(1) H(2) . . . H(k), where k = min(p,n).
1682
+ *
1683
+ * Each H(i) has the form
1684
+ *
1685
+ * H(i) = I - taub * v * v'
1686
+ *
1687
+ * where taub is a real scalar, and v is a real vector with
1688
+ * v(1:i-1) = 0 and v(i) = 1; v(i+1:p) is stored on exit in B(i+1:p,i),
1689
+ * and taub in TAUB(i).
1690
+ * To form Z explicitly, use LAPACK subroutine SORGQR.
1691
+ * To use Z to update another matrix, use LAPACK subroutine SORMQR.
1692
+ *
1693
+ * =====================================================================
1694
+ *
1695
+ * .. Local Scalars ..
1696
+ LOGICAL LQUERY
1697
+ INTEGER LOPT, LWKOPT, NB, NB1, NB2, NB3
1698
+ * ..
1699
+ * .. External Subroutines ..
1700
+ EXTERNAL SGEQRF, SGERQF, SORMRQ, XERBLA
1701
+ * ..
1702
+ * .. External Functions ..
1703
+ INTEGER ILAENV
1704
+ EXTERNAL ILAENV
1705
+ * ..
1706
+ * .. Intrinsic Functions ..
1707
+ INTRINSIC INT, MAX, MIN
1708
+ * ..
1709
+
1710
+
1711
+ </PRE>
1712
+ <A HREF="#top">go to the page top</A>
1713
+
1714
+ <A NAME="sggsvd"></A>
1715
+ <H2>sggsvd</H2>
1716
+ <PRE>
1717
+ USAGE:
1718
+ k, l, alpha, beta, u, v, q, iwork, info, a, b = NumRu::Lapack.sggsvd( jobu, jobv, jobq, a, b, [:usage => usage, :help => help])
1719
+
1720
+
1721
+ FORTRAN MANUAL
1722
+ SUBROUTINE SGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, IWORK, INFO )
1723
+
1724
+ * Purpose
1725
+ * =======
1726
+ *
1727
+ * SGGSVD computes the generalized singular value decomposition (GSVD)
1728
+ * of an M-by-N real matrix A and P-by-N real matrix B:
1729
+ *
1730
+ * U'*A*Q = D1*( 0 R ), V'*B*Q = D2*( 0 R )
1731
+ *
1732
+ * where U, V and Q are orthogonal matrices, and Z' is the transpose
1733
+ * of Z. Let K+L = the effective numerical rank of the matrix (A',B')',
1734
+ * then R is a K+L-by-K+L nonsingular upper triangular matrix, D1 and
1735
+ * D2 are M-by-(K+L) and P-by-(K+L) "diagonal" matrices and of the
1736
+ * following structures, respectively:
1737
+ *
1738
+ * If M-K-L >= 0,
1739
+ *
1740
+ * K L
1741
+ * D1 = K ( I 0 )
1742
+ * L ( 0 C )
1743
+ * M-K-L ( 0 0 )
1744
+ *
1745
+ * K L
1746
+ * D2 = L ( 0 S )
1747
+ * P-L ( 0 0 )
1748
+ *
1749
+ * N-K-L K L
1750
+ * ( 0 R ) = K ( 0 R11 R12 )
1751
+ * L ( 0 0 R22 )
1752
+ *
1753
+ * where
1754
+ *
1755
+ * C = diag( ALPHA(K+1), ... , ALPHA(K+L) ),
1756
+ * S = diag( BETA(K+1), ... , BETA(K+L) ),
1757
+ * C**2 + S**2 = I.
1758
+ *
1759
+ * R is stored in A(1:K+L,N-K-L+1:N) on exit.
1760
+ *
1761
+ * If M-K-L < 0,
1762
+ *
1763
+ * K M-K K+L-M
1764
+ * D1 = K ( I 0 0 )
1765
+ * M-K ( 0 C 0 )
1766
+ *
1767
+ * K M-K K+L-M
1768
+ * D2 = M-K ( 0 S 0 )
1769
+ * K+L-M ( 0 0 I )
1770
+ * P-L ( 0 0 0 )
1771
+ *
1772
+ * N-K-L K M-K K+L-M
1773
+ * ( 0 R ) = K ( 0 R11 R12 R13 )
1774
+ * M-K ( 0 0 R22 R23 )
1775
+ * K+L-M ( 0 0 0 R33 )
1776
+ *
1777
+ * where
1778
+ *
1779
+ * C = diag( ALPHA(K+1), ... , ALPHA(M) ),
1780
+ * S = diag( BETA(K+1), ... , BETA(M) ),
1781
+ * C**2 + S**2 = I.
1782
+ *
1783
+ * (R11 R12 R13 ) is stored in A(1:M, N-K-L+1:N), and R33 is stored
1784
+ * ( 0 R22 R23 )
1785
+ * in B(M-K+1:L,N+M-K-L+1:N) on exit.
1786
+ *
1787
+ * The routine computes C, S, R, and optionally the orthogonal
1788
+ * transformation matrices U, V and Q.
1789
+ *
1790
+ * In particular, if B is an N-by-N nonsingular matrix, then the GSVD of
1791
+ * A and B implicitly gives the SVD of A*inv(B):
1792
+ * A*inv(B) = U*(D1*inv(D2))*V'.
1793
+ * If ( A',B')' has orthonormal columns, then the GSVD of A and B is
1794
+ * also equal to the CS decomposition of A and B. Furthermore, the GSVD
1795
+ * can be used to derive the solution of the eigenvalue problem:
1796
+ * A'*A x = lambda* B'*B x.
1797
+ * In some literature, the GSVD of A and B is presented in the form
1798
+ * U'*A*X = ( 0 D1 ), V'*B*X = ( 0 D2 )
1799
+ * where U and V are orthogonal and X is nonsingular, D1 and D2 are
1800
+ * ``diagonal''. The former GSVD form can be converted to the latter
1801
+ * form by taking the nonsingular matrix X as
1802
+ *
1803
+ * X = Q*( I 0 )
1804
+ * ( 0 inv(R) ).
1805
+ *
1806
+
1807
+ * Arguments
1808
+ * =========
1809
+ *
1810
+ * JOBU (input) CHARACTER*1
1811
+ * = 'U': Orthogonal matrix U is computed;
1812
+ * = 'N': U is not computed.
1813
+ *
1814
+ * JOBV (input) CHARACTER*1
1815
+ * = 'V': Orthogonal matrix V is computed;
1816
+ * = 'N': V is not computed.
1817
+ *
1818
+ * JOBQ (input) CHARACTER*1
1819
+ * = 'Q': Orthogonal matrix Q is computed;
1820
+ * = 'N': Q is not computed.
1821
+ *
1822
+ * M (input) INTEGER
1823
+ * The number of rows of the matrix A. M >= 0.
1824
+ *
1825
+ * N (input) INTEGER
1826
+ * The number of columns of the matrices A and B. N >= 0.
1827
+ *
1828
+ * P (input) INTEGER
1829
+ * The number of rows of the matrix B. P >= 0.
1830
+ *
1831
+ * K (output) INTEGER
1832
+ * L (output) INTEGER
1833
+ * On exit, K and L specify the dimension of the subblocks
1834
+ * described in the Purpose section.
1835
+ * K + L = effective numerical rank of (A',B')'.
1836
+ *
1837
+ * A (input/output) REAL array, dimension (LDA,N)
1838
+ * On entry, the M-by-N matrix A.
1839
+ * On exit, A contains the triangular matrix R, or part of R.
1840
+ * See Purpose for details.
1841
+ *
1842
+ * LDA (input) INTEGER
1843
+ * The leading dimension of the array A. LDA >= max(1,M).
1844
+ *
1845
+ * B (input/output) REAL array, dimension (LDB,N)
1846
+ * On entry, the P-by-N matrix B.
1847
+ * On exit, B contains the triangular matrix R if M-K-L < 0.
1848
+ * See Purpose for details.
1849
+ *
1850
+ * LDB (input) INTEGER
1851
+ * The leading dimension of the array B. LDB >= max(1,P).
1852
+ *
1853
+ * ALPHA (output) REAL array, dimension (N)
1854
+ * BETA (output) REAL array, dimension (N)
1855
+ * On exit, ALPHA and BETA contain the generalized singular
1856
+ * value pairs of A and B;
1857
+ * ALPHA(1:K) = 1,
1858
+ * BETA(1:K) = 0,
1859
+ * and if M-K-L >= 0,
1860
+ * ALPHA(K+1:K+L) = C,
1861
+ * BETA(K+1:K+L) = S,
1862
+ * or if M-K-L < 0,
1863
+ * ALPHA(K+1:M)=C, ALPHA(M+1:K+L)=0
1864
+ * BETA(K+1:M) =S, BETA(M+1:K+L) =1
1865
+ * and
1866
+ * ALPHA(K+L+1:N) = 0
1867
+ * BETA(K+L+1:N) = 0
1868
+ *
1869
+ * U (output) REAL array, dimension (LDU,M)
1870
+ * If JOBU = 'U', U contains the M-by-M orthogonal matrix U.
1871
+ * If JOBU = 'N', U is not referenced.
1872
+ *
1873
+ * LDU (input) INTEGER
1874
+ * The leading dimension of the array U. LDU >= max(1,M) if
1875
+ * JOBU = 'U'; LDU >= 1 otherwise.
1876
+ *
1877
+ * V (output) REAL array, dimension (LDV,P)
1878
+ * If JOBV = 'V', V contains the P-by-P orthogonal matrix V.
1879
+ * If JOBV = 'N', V is not referenced.
1880
+ *
1881
+ * LDV (input) INTEGER
1882
+ * The leading dimension of the array V. LDV >= max(1,P) if
1883
+ * JOBV = 'V'; LDV >= 1 otherwise.
1884
+ *
1885
+ * Q (output) REAL array, dimension (LDQ,N)
1886
+ * If JOBQ = 'Q', Q contains the N-by-N orthogonal matrix Q.
1887
+ * If JOBQ = 'N', Q is not referenced.
1888
+ *
1889
+ * LDQ (input) INTEGER
1890
+ * The leading dimension of the array Q. LDQ >= max(1,N) if
1891
+ * JOBQ = 'Q'; LDQ >= 1 otherwise.
1892
+ *
1893
+ * WORK (workspace) REAL array,
1894
+ * dimension (max(3*N,M,P)+N)
1895
+ *
1896
+ * IWORK (workspace/output) INTEGER array, dimension (N)
1897
+ * On exit, IWORK stores the sorting information. More
1898
+ * precisely, the following loop will sort ALPHA
1899
+ * for I = K+1, min(M,K+L)
1900
+ * swap ALPHA(I) and ALPHA(IWORK(I))
1901
+ * endfor
1902
+ * such that ALPHA(1) >= ALPHA(2) >= ... >= ALPHA(N).
1903
+ *
1904
+ * INFO (output) INTEGER
1905
+ * = 0: successful exit
1906
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
1907
+ * > 0: if INFO = 1, the Jacobi-type procedure failed to
1908
+ * converge. For further details, see subroutine STGSJA.
1909
+ *
1910
+ * Internal Parameters
1911
+ * ===================
1912
+ *
1913
+ * TOLA REAL
1914
+ * TOLB REAL
1915
+ * TOLA and TOLB are the thresholds to determine the effective
1916
+ * rank of (A',B')'. Generally, they are set to
1917
+ * TOLA = MAX(M,N)*norm(A)*MACHEPS,
1918
+ * TOLB = MAX(P,N)*norm(B)*MACHEPS.
1919
+ * The size of TOLA and TOLB may affect the size of backward
1920
+ * errors of the decomposition.
1921
+ *
1922
+
1923
+ * Further Details
1924
+ * ===============
1925
+ *
1926
+ * 2-96 Based on modifications by
1927
+ * Ming Gu and Huan Ren, Computer Science Division, University of
1928
+ * California at Berkeley, USA
1929
+ *
1930
+ * =====================================================================
1931
+ *
1932
+ * .. Local Scalars ..
1933
+ LOGICAL WANTQ, WANTU, WANTV
1934
+ INTEGER I, IBND, ISUB, J, NCYCLE
1935
+ REAL ANORM, BNORM, SMAX, TEMP, TOLA, TOLB, ULP, UNFL
1936
+ * ..
1937
+ * .. External Functions ..
1938
+ LOGICAL LSAME
1939
+ REAL SLAMCH, SLANGE
1940
+ EXTERNAL LSAME, SLAMCH, SLANGE
1941
+ * ..
1942
+ * .. External Subroutines ..
1943
+ EXTERNAL SCOPY, SGGSVP, STGSJA, XERBLA
1944
+ * ..
1945
+ * .. Intrinsic Functions ..
1946
+ INTRINSIC MAX, MIN
1947
+ * ..
1948
+
1949
+
1950
+ </PRE>
1951
+ <A HREF="#top">go to the page top</A>
1952
+
1953
+ <A NAME="sggsvp"></A>
1954
+ <H2>sggsvp</H2>
1955
+ <PRE>
1956
+ USAGE:
1957
+ k, l, u, v, q, info, a, b = NumRu::Lapack.sggsvp( jobu, jobv, jobq, a, b, tola, tolb, [:usage => usage, :help => help])
1958
+
1959
+
1960
+ FORTRAN MANUAL
1961
+ SUBROUTINE SGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, TAU, WORK, INFO )
1962
+
1963
+ * Purpose
1964
+ * =======
1965
+ *
1966
+ * SGGSVP computes orthogonal matrices U, V and Q such that
1967
+ *
1968
+ * N-K-L K L
1969
+ * U'*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0;
1970
+ * L ( 0 0 A23 )
1971
+ * M-K-L ( 0 0 0 )
1972
+ *
1973
+ * N-K-L K L
1974
+ * = K ( 0 A12 A13 ) if M-K-L < 0;
1975
+ * M-K ( 0 0 A23 )
1976
+ *
1977
+ * N-K-L K L
1978
+ * V'*B*Q = L ( 0 0 B13 )
1979
+ * P-L ( 0 0 0 )
1980
+ *
1981
+ * where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular
1982
+ * upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0,
1983
+ * otherwise A23 is (M-K)-by-L upper trapezoidal. K+L = the effective
1984
+ * numerical rank of the (M+P)-by-N matrix (A',B')'. Z' denotes the
1985
+ * transpose of Z.
1986
+ *
1987
+ * This decomposition is the preprocessing step for computing the
1988
+ * Generalized Singular Value Decomposition (GSVD), see subroutine
1989
+ * SGGSVD.
1990
+ *
1991
+
1992
+ * Arguments
1993
+ * =========
1994
+ *
1995
+ * JOBU (input) CHARACTER*1
1996
+ * = 'U': Orthogonal matrix U is computed;
1997
+ * = 'N': U is not computed.
1998
+ *
1999
+ * JOBV (input) CHARACTER*1
2000
+ * = 'V': Orthogonal matrix V is computed;
2001
+ * = 'N': V is not computed.
2002
+ *
2003
+ * JOBQ (input) CHARACTER*1
2004
+ * = 'Q': Orthogonal matrix Q is computed;
2005
+ * = 'N': Q is not computed.
2006
+ *
2007
+ * M (input) INTEGER
2008
+ * The number of rows of the matrix A. M >= 0.
2009
+ *
2010
+ * P (input) INTEGER
2011
+ * The number of rows of the matrix B. P >= 0.
2012
+ *
2013
+ * N (input) INTEGER
2014
+ * The number of columns of the matrices A and B. N >= 0.
2015
+ *
2016
+ * A (input/output) REAL array, dimension (LDA,N)
2017
+ * On entry, the M-by-N matrix A.
2018
+ * On exit, A contains the triangular (or trapezoidal) matrix
2019
+ * described in the Purpose section.
2020
+ *
2021
+ * LDA (input) INTEGER
2022
+ * The leading dimension of the array A. LDA >= max(1,M).
2023
+ *
2024
+ * B (input/output) REAL array, dimension (LDB,N)
2025
+ * On entry, the P-by-N matrix B.
2026
+ * On exit, B contains the triangular matrix described in
2027
+ * the Purpose section.
2028
+ *
2029
+ * LDB (input) INTEGER
2030
+ * The leading dimension of the array B. LDB >= max(1,P).
2031
+ *
2032
+ * TOLA (input) REAL
2033
+ * TOLB (input) REAL
2034
+ * TOLA and TOLB are the thresholds to determine the effective
2035
+ * numerical rank of matrix B and a subblock of A. Generally,
2036
+ * they are set to
2037
+ * TOLA = MAX(M,N)*norm(A)*MACHEPS,
2038
+ * TOLB = MAX(P,N)*norm(B)*MACHEPS.
2039
+ * The size of TOLA and TOLB may affect the size of backward
2040
+ * errors of the decomposition.
2041
+ *
2042
+ * K (output) INTEGER
2043
+ * L (output) INTEGER
2044
+ * On exit, K and L specify the dimension of the subblocks
2045
+ * described in Purpose.
2046
+ * K + L = effective numerical rank of (A',B')'.
2047
+ *
2048
+ * U (output) REAL array, dimension (LDU,M)
2049
+ * If JOBU = 'U', U contains the orthogonal matrix U.
2050
+ * If JOBU = 'N', U is not referenced.
2051
+ *
2052
+ * LDU (input) INTEGER
2053
+ * The leading dimension of the array U. LDU >= max(1,M) if
2054
+ * JOBU = 'U'; LDU >= 1 otherwise.
2055
+ *
2056
+ * V (output) REAL array, dimension (LDV,P)
2057
+ * If JOBV = 'V', V contains the orthogonal matrix V.
2058
+ * If JOBV = 'N', V is not referenced.
2059
+ *
2060
+ * LDV (input) INTEGER
2061
+ * The leading dimension of the array V. LDV >= max(1,P) if
2062
+ * JOBV = 'V'; LDV >= 1 otherwise.
2063
+ *
2064
+ * Q (output) REAL array, dimension (LDQ,N)
2065
+ * If JOBQ = 'Q', Q contains the orthogonal matrix Q.
2066
+ * If JOBQ = 'N', Q is not referenced.
2067
+ *
2068
+ * LDQ (input) INTEGER
2069
+ * The leading dimension of the array Q. LDQ >= max(1,N) if
2070
+ * JOBQ = 'Q'; LDQ >= 1 otherwise.
2071
+ *
2072
+ * IWORK (workspace) INTEGER array, dimension (N)
2073
+ *
2074
+ * TAU (workspace) REAL array, dimension (N)
2075
+ *
2076
+ * WORK (workspace) REAL array, dimension (max(3*N,M,P))
2077
+ *
2078
+ * INFO (output) INTEGER
2079
+ * = 0: successful exit
2080
+ * < 0: if INFO = -i, the i-th argument had an illegal value.
2081
+ *
2082
+ *
2083
+
2084
+ * Further Details
2085
+ * ===============
2086
+ *
2087
+ * The subroutine uses LAPACK subroutine SGEQPF for the QR factorization
2088
+ * with column pivoting to detect the effective numerical rank of the
2089
+ * a matrix. It may be replaced by a better rank determination strategy.
2090
+ *
2091
+ * =====================================================================
2092
+ *
2093
+
2094
+
2095
+ </PRE>
2096
+ <A HREF="#top">go to the page top</A>
2097
+
2098
+ <HR />
2099
+ <A HREF="s.html">back to matrix types</A><BR>
2100
+ <A HREF="s.html">back to data types</A>
2101
+ </BODY>
2102
+ </HTML>