ruby-lapack 1.4.1a → 1.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1638) hide show
  1. data/Rakefile +1 -2
  2. data/ext/cbbcsd.c +34 -34
  3. data/ext/cbdsqr.c +20 -20
  4. data/ext/cgbbrd.c +12 -12
  5. data/ext/cgbcon.c +13 -13
  6. data/ext/cgbequ.c +3 -3
  7. data/ext/cgbequb.c +2 -2
  8. data/ext/cgbrfs.c +22 -22
  9. data/ext/cgbrfsx.c +43 -43
  10. data/ext/cgbsv.c +2 -2
  11. data/ext/cgbsvx.c +25 -25
  12. data/ext/cgbsvxx.c +36 -36
  13. data/ext/cgbtf2.c +3 -3
  14. data/ext/cgbtrf.c +3 -3
  15. data/ext/cgbtrs.c +11 -11
  16. data/ext/cgebak.c +11 -11
  17. data/ext/cgebal.c +1 -1
  18. data/ext/cgebd2.c +1 -1
  19. data/ext/cgebrd.c +1 -1
  20. data/ext/cgecon.c +1 -1
  21. data/ext/cgees.c +3 -3
  22. data/ext/cgeesx.c +4 -4
  23. data/ext/cgeev.c +4 -4
  24. data/ext/cgeevx.c +5 -5
  25. data/ext/cgegs.c +2 -2
  26. data/ext/cgegv.c +3 -3
  27. data/ext/cgehd2.c +1 -1
  28. data/ext/cgehrd.c +2 -2
  29. data/ext/cgelqf.c +6 -6
  30. data/ext/cgels.c +2 -2
  31. data/ext/cgelsd.c +9 -9
  32. data/ext/cgelss.c +2 -2
  33. data/ext/cgelsx.c +12 -12
  34. data/ext/cgelsy.c +12 -12
  35. data/ext/cgeql2.c +1 -1
  36. data/ext/cgeqlf.c +1 -1
  37. data/ext/cgeqp3.c +11 -11
  38. data/ext/cgeqpf.c +11 -11
  39. data/ext/cgeqr2.c +1 -1
  40. data/ext/cgeqr2p.c +1 -1
  41. data/ext/cgeqrf.c +1 -1
  42. data/ext/cgeqrfp.c +1 -1
  43. data/ext/cgerfs.c +31 -31
  44. data/ext/cgerfsx.c +25 -25
  45. data/ext/cgerqf.c +6 -6
  46. data/ext/cgesc2.c +13 -13
  47. data/ext/cgesdd.c +3 -3
  48. data/ext/cgesvd.c +4 -4
  49. data/ext/cgesvx.c +32 -32
  50. data/ext/cgesvxx.c +26 -26
  51. data/ext/cgetf2.c +1 -1
  52. data/ext/cgetrf.c +1 -1
  53. data/ext/cgetri.c +10 -10
  54. data/ext/cgetrs.c +10 -10
  55. data/ext/cggbak.c +11 -11
  56. data/ext/cggbal.c +11 -11
  57. data/ext/cgges.c +15 -15
  58. data/ext/cggesx.c +6 -6
  59. data/ext/cggev.c +3 -3
  60. data/ext/cggevx.c +5 -5
  61. data/ext/cgghrd.c +14 -14
  62. data/ext/cggqrf.c +9 -9
  63. data/ext/cggrqf.c +1 -1
  64. data/ext/cggsvd.c +3 -3
  65. data/ext/cggsvp.c +4 -4
  66. data/ext/cgtcon.c +20 -20
  67. data/ext/cgtrfs.c +48 -48
  68. data/ext/cgtsv.c +8 -8
  69. data/ext/cgtsvx.c +55 -55
  70. data/ext/cgttrs.c +19 -19
  71. data/ext/cgtts2.c +20 -20
  72. data/ext/chbev.c +3 -3
  73. data/ext/chbevd.c +9 -9
  74. data/ext/chbevx.c +7 -7
  75. data/ext/chbgst.c +15 -15
  76. data/ext/chbgv.c +15 -15
  77. data/ext/chbgvd.c +20 -20
  78. data/ext/chbgvx.c +9 -9
  79. data/ext/chbtrd.c +13 -13
  80. data/ext/checon.c +12 -12
  81. data/ext/cheequb.c +1 -1
  82. data/ext/cheev.c +2 -2
  83. data/ext/cheevd.c +7 -7
  84. data/ext/cheevr.c +12 -12
  85. data/ext/cheevx.c +7 -7
  86. data/ext/chegs2.c +2 -2
  87. data/ext/chegst.c +2 -2
  88. data/ext/chegv.c +13 -13
  89. data/ext/chegvd.c +18 -18
  90. data/ext/chegvx.c +19 -19
  91. data/ext/cherfs.c +31 -31
  92. data/ext/cherfsx.c +43 -43
  93. data/ext/chesv.c +10 -10
  94. data/ext/chesvx.c +15 -15
  95. data/ext/chesvxx.c +41 -41
  96. data/ext/chetd2.c +1 -1
  97. data/ext/chetf2.c +1 -1
  98. data/ext/chetrd.c +2 -2
  99. data/ext/chetrf.c +2 -2
  100. data/ext/chetri.c +1 -1
  101. data/ext/chetrs.c +10 -10
  102. data/ext/chetrs2.c +10 -10
  103. data/ext/chfrk.c +6 -6
  104. data/ext/chgeqz.c +27 -27
  105. data/ext/chpcon.c +1 -1
  106. data/ext/chpev.c +2 -2
  107. data/ext/chpevd.c +2 -2
  108. data/ext/chpevx.c +7 -7
  109. data/ext/chpgst.c +10 -10
  110. data/ext/chpgv.c +2 -2
  111. data/ext/chpgvd.c +11 -11
  112. data/ext/chpgvx.c +8 -8
  113. data/ext/chprfs.c +10 -10
  114. data/ext/chpsv.c +1 -1
  115. data/ext/chpsvx.c +20 -20
  116. data/ext/chptrd.c +1 -1
  117. data/ext/chptrf.c +1 -1
  118. data/ext/chptri.c +1 -1
  119. data/ext/chptrs.c +1 -1
  120. data/ext/chsein.c +21 -21
  121. data/ext/chseqr.c +4 -4
  122. data/ext/cla_gbamv.c +14 -14
  123. data/ext/cla_gbrcond_c.c +33 -33
  124. data/ext/cla_gbrcond_x.c +32 -32
  125. data/ext/cla_gbrfsx_extended.c +75 -75
  126. data/ext/cla_gbrpvgrw.c +13 -13
  127. data/ext/cla_geamv.c +6 -6
  128. data/ext/cla_gercond_c.c +31 -31
  129. data/ext/cla_gercond_x.c +30 -30
  130. data/ext/cla_gerfsx_extended.c +81 -81
  131. data/ext/cla_heamv.c +12 -12
  132. data/ext/cla_hercond_c.c +31 -31
  133. data/ext/cla_hercond_x.c +30 -30
  134. data/ext/cla_herfsx_extended.c +82 -82
  135. data/ext/cla_herpvgrw.c +14 -14
  136. data/ext/cla_lin_berr.c +14 -14
  137. data/ext/cla_porcond_c.c +23 -23
  138. data/ext/cla_porcond_x.c +22 -22
  139. data/ext/cla_porfsx_extended.c +74 -74
  140. data/ext/cla_porpvgrw.c +2 -2
  141. data/ext/cla_rpvgrw.c +12 -12
  142. data/ext/cla_syamv.c +13 -13
  143. data/ext/cla_syrcond_c.c +31 -31
  144. data/ext/cla_syrcond_x.c +30 -30
  145. data/ext/cla_syrfsx_extended.c +82 -82
  146. data/ext/cla_syrpvgrw.c +14 -14
  147. data/ext/cla_wwaddw.c +11 -11
  148. data/ext/clabrd.c +2 -2
  149. data/ext/clacn2.c +2 -2
  150. data/ext/clacp2.c +1 -1
  151. data/ext/clacpy.c +1 -1
  152. data/ext/clacrm.c +11 -11
  153. data/ext/clacrt.c +12 -12
  154. data/ext/claed7.c +42 -42
  155. data/ext/claed8.c +27 -27
  156. data/ext/claein.c +14 -14
  157. data/ext/clags2.c +5 -5
  158. data/ext/clagtm.c +21 -21
  159. data/ext/clahef.c +1 -1
  160. data/ext/clahqr.c +6 -6
  161. data/ext/clahr2.c +1 -1
  162. data/ext/clahrd.c +1 -1
  163. data/ext/claic1.c +12 -12
  164. data/ext/clals0.c +37 -37
  165. data/ext/clalsa.c +72 -72
  166. data/ext/clalsd.c +4 -4
  167. data/ext/clangb.c +3 -3
  168. data/ext/clange.c +1 -1
  169. data/ext/clangt.c +10 -10
  170. data/ext/clanhb.c +2 -2
  171. data/ext/clanhe.c +1 -1
  172. data/ext/clanhf.c +3 -3
  173. data/ext/clanhp.c +2 -2
  174. data/ext/clanhs.c +1 -1
  175. data/ext/clanht.c +1 -1
  176. data/ext/clansb.c +2 -2
  177. data/ext/clansp.c +2 -2
  178. data/ext/clansy.c +1 -1
  179. data/ext/clantb.c +3 -3
  180. data/ext/clantp.c +2 -2
  181. data/ext/clantr.c +3 -3
  182. data/ext/clapll.c +10 -10
  183. data/ext/clapmr.c +1 -1
  184. data/ext/clapmt.c +11 -11
  185. data/ext/claqgb.c +2 -2
  186. data/ext/claqge.c +10 -10
  187. data/ext/claqhb.c +2 -2
  188. data/ext/claqhe.c +12 -12
  189. data/ext/claqhp.c +2 -2
  190. data/ext/claqp2.c +10 -10
  191. data/ext/claqps.c +20 -20
  192. data/ext/claqr0.c +3 -3
  193. data/ext/claqr1.c +4 -4
  194. data/ext/claqr2.c +18 -18
  195. data/ext/claqr3.c +18 -18
  196. data/ext/claqr4.c +3 -3
  197. data/ext/claqr5.c +21 -21
  198. data/ext/claqsb.c +13 -13
  199. data/ext/claqsp.c +2 -2
  200. data/ext/claqsy.c +12 -12
  201. data/ext/clar1v.c +15 -15
  202. data/ext/clar2v.c +19 -19
  203. data/ext/clarf.c +2 -2
  204. data/ext/clarfb.c +16 -16
  205. data/ext/clarfg.c +1 -1
  206. data/ext/clarfgp.c +1 -1
  207. data/ext/clarft.c +2 -2
  208. data/ext/clarfx.c +3 -3
  209. data/ext/clargv.c +2 -2
  210. data/ext/clarnv.c +1 -1
  211. data/ext/clarrv.c +40 -40
  212. data/ext/clarscl2.c +8 -8
  213. data/ext/clartv.c +20 -20
  214. data/ext/clarz.c +11 -11
  215. data/ext/clarzb.c +14 -14
  216. data/ext/clarzt.c +2 -2
  217. data/ext/clascl.c +4 -4
  218. data/ext/clascl2.c +8 -8
  219. data/ext/claset.c +4 -4
  220. data/ext/clasr.c +2 -2
  221. data/ext/classq.c +2 -2
  222. data/ext/claswp.c +2 -2
  223. data/ext/clasyf.c +1 -1
  224. data/ext/clatbs.c +14 -14
  225. data/ext/clatdf.c +21 -21
  226. data/ext/clatps.c +12 -12
  227. data/ext/clatrd.c +1 -1
  228. data/ext/clatrs.c +15 -15
  229. data/ext/clatrz.c +1 -1
  230. data/ext/clatzm.c +3 -3
  231. data/ext/clauu2.c +1 -1
  232. data/ext/clauum.c +1 -1
  233. data/ext/cpbcon.c +3 -3
  234. data/ext/cpbequ.c +1 -1
  235. data/ext/cpbrfs.c +12 -12
  236. data/ext/cpbstf.c +1 -1
  237. data/ext/cpbsv.c +1 -1
  238. data/ext/cpbsvx.c +23 -23
  239. data/ext/cpbtf2.c +1 -1
  240. data/ext/cpbtrf.c +1 -1
  241. data/ext/cpbtrs.c +1 -1
  242. data/ext/cpftrf.c +2 -2
  243. data/ext/cpftri.c +2 -2
  244. data/ext/cpftrs.c +2 -2
  245. data/ext/cpocon.c +1 -1
  246. data/ext/cporfs.c +23 -23
  247. data/ext/cporfsx.c +22 -22
  248. data/ext/cposv.c +9 -9
  249. data/ext/cposvx.c +12 -12
  250. data/ext/cposvxx.c +20 -20
  251. data/ext/cpotf2.c +1 -1
  252. data/ext/cpotrf.c +1 -1
  253. data/ext/cpotri.c +1 -1
  254. data/ext/cpotrs.c +9 -9
  255. data/ext/cppcon.c +1 -1
  256. data/ext/cppequ.c +1 -1
  257. data/ext/cpprfs.c +20 -20
  258. data/ext/cppsv.c +1 -1
  259. data/ext/cppsvx.c +12 -12
  260. data/ext/cpptrf.c +1 -1
  261. data/ext/cpptri.c +1 -1
  262. data/ext/cpptrs.c +1 -1
  263. data/ext/cpstf2.c +2 -2
  264. data/ext/cpstrf.c +2 -2
  265. data/ext/cptcon.c +1 -1
  266. data/ext/cpteqr.c +10 -10
  267. data/ext/cptrfs.c +12 -12
  268. data/ext/cptsv.c +8 -8
  269. data/ext/cptsvx.c +19 -19
  270. data/ext/cpttrs.c +1 -1
  271. data/ext/cptts2.c +1 -1
  272. data/ext/crot.c +11 -11
  273. data/ext/cspcon.c +1 -1
  274. data/ext/cspmv.c +3 -3
  275. data/ext/cspr.c +11 -11
  276. data/ext/csprfs.c +10 -10
  277. data/ext/cspsv.c +1 -1
  278. data/ext/cspsvx.c +20 -20
  279. data/ext/csptrf.c +1 -1
  280. data/ext/csptri.c +1 -1
  281. data/ext/csptrs.c +1 -1
  282. data/ext/csrscl.c +2 -2
  283. data/ext/cstedc.c +10 -10
  284. data/ext/cstegr.c +18 -18
  285. data/ext/cstein.c +14 -14
  286. data/ext/cstemr.c +22 -22
  287. data/ext/csteqr.c +10 -10
  288. data/ext/csycon.c +12 -12
  289. data/ext/csyconv.c +12 -12
  290. data/ext/csyequb.c +1 -1
  291. data/ext/csymv.c +13 -13
  292. data/ext/csyr.c +4 -4
  293. data/ext/csyrfs.c +31 -31
  294. data/ext/csyrfsx.c +43 -43
  295. data/ext/csysv.c +10 -10
  296. data/ext/csysvx.c +15 -15
  297. data/ext/csysvxx.c +41 -41
  298. data/ext/csyswapr.c +2 -2
  299. data/ext/csytf2.c +1 -1
  300. data/ext/csytrf.c +2 -2
  301. data/ext/csytri.c +1 -1
  302. data/ext/csytri2.c +3 -3
  303. data/ext/csytri2x.c +2 -2
  304. data/ext/csytrs.c +10 -10
  305. data/ext/csytrs2.c +10 -10
  306. data/ext/ctbcon.c +3 -3
  307. data/ext/ctbrfs.c +14 -14
  308. data/ext/ctbtrs.c +2 -2
  309. data/ext/ctfsm.c +5 -5
  310. data/ext/ctftri.c +1 -1
  311. data/ext/ctfttp.c +1 -1
  312. data/ext/ctfttr.c +1 -1
  313. data/ext/ctgevc.c +32 -32
  314. data/ext/ctgex2.c +14 -14
  315. data/ext/ctgexc.c +25 -25
  316. data/ext/ctgsen.c +37 -37
  317. data/ext/ctgsja.c +26 -26
  318. data/ext/ctgsna.c +24 -24
  319. data/ext/ctgsy2.c +22 -22
  320. data/ext/ctgsyl.c +42 -42
  321. data/ext/ctpcon.c +2 -2
  322. data/ext/ctprfs.c +13 -13
  323. data/ext/ctptri.c +1 -1
  324. data/ext/ctptrs.c +3 -3
  325. data/ext/ctpttf.c +1 -1
  326. data/ext/ctpttr.c +1 -1
  327. data/ext/ctrcon.c +3 -3
  328. data/ext/ctrevc.c +12 -12
  329. data/ext/ctrexc.c +1 -1
  330. data/ext/ctrrfs.c +11 -11
  331. data/ext/ctrsen.c +13 -13
  332. data/ext/ctrsna.c +20 -20
  333. data/ext/ctrsyl.c +11 -11
  334. data/ext/ctrti2.c +1 -1
  335. data/ext/ctrtri.c +1 -1
  336. data/ext/ctrtrs.c +10 -10
  337. data/ext/ctrttf.c +1 -1
  338. data/ext/ctrttp.c +1 -1
  339. data/ext/cunbdb.c +15 -15
  340. data/ext/cuncsd.c +27 -27
  341. data/ext/cung2l.c +9 -9
  342. data/ext/cung2r.c +9 -9
  343. data/ext/cungbr.c +1 -1
  344. data/ext/cunghr.c +7 -7
  345. data/ext/cungl2.c +1 -1
  346. data/ext/cunglq.c +9 -9
  347. data/ext/cungql.c +9 -9
  348. data/ext/cungqr.c +9 -9
  349. data/ext/cungr2.c +1 -1
  350. data/ext/cungrq.c +9 -9
  351. data/ext/cungtr.c +6 -6
  352. data/ext/cunm2l.c +12 -12
  353. data/ext/cunm2r.c +12 -12
  354. data/ext/cunmbr.c +3 -3
  355. data/ext/cunmhr.c +12 -12
  356. data/ext/cunml2.c +1 -1
  357. data/ext/cunmlq.c +7 -7
  358. data/ext/cunmql.c +12 -12
  359. data/ext/cunmqr.c +12 -12
  360. data/ext/cunmr2.c +1 -1
  361. data/ext/cunmr3.c +10 -10
  362. data/ext/cunmrq.c +7 -7
  363. data/ext/cunmrz.c +10 -10
  364. data/ext/cunmtr.c +17 -17
  365. data/ext/cupgtr.c +8 -8
  366. data/ext/cupmtr.c +2 -2
  367. data/ext/dbbcsd.c +29 -29
  368. data/ext/dbdsdc.c +6 -6
  369. data/ext/dbdsqr.c +20 -20
  370. data/ext/ddisna.c +1 -1
  371. data/ext/dgbbrd.c +12 -12
  372. data/ext/dgbcon.c +13 -13
  373. data/ext/dgbequ.c +3 -3
  374. data/ext/dgbequb.c +2 -2
  375. data/ext/dgbrfs.c +22 -22
  376. data/ext/dgbrfsx.c +43 -43
  377. data/ext/dgbsv.c +2 -2
  378. data/ext/dgbsvx.c +25 -25
  379. data/ext/dgbsvxx.c +36 -36
  380. data/ext/dgbtf2.c +3 -3
  381. data/ext/dgbtrf.c +3 -3
  382. data/ext/dgbtrs.c +11 -11
  383. data/ext/dgebak.c +11 -11
  384. data/ext/dgebal.c +1 -1
  385. data/ext/dgebd2.c +1 -1
  386. data/ext/dgebrd.c +1 -1
  387. data/ext/dgecon.c +1 -1
  388. data/ext/dgees.c +3 -3
  389. data/ext/dgeesx.c +4 -4
  390. data/ext/dgeev.c +3 -3
  391. data/ext/dgeevx.c +5 -5
  392. data/ext/dgegs.c +2 -2
  393. data/ext/dgegv.c +3 -3
  394. data/ext/dgehd2.c +1 -1
  395. data/ext/dgehrd.c +2 -2
  396. data/ext/dgejsv.c +16 -16
  397. data/ext/dgelqf.c +6 -6
  398. data/ext/dgels.c +2 -2
  399. data/ext/dgelsd.c +7 -7
  400. data/ext/dgelss.c +2 -2
  401. data/ext/dgelsx.c +12 -12
  402. data/ext/dgelsy.c +12 -12
  403. data/ext/dgeql2.c +1 -1
  404. data/ext/dgeqlf.c +1 -1
  405. data/ext/dgeqp3.c +11 -11
  406. data/ext/dgeqpf.c +11 -11
  407. data/ext/dgeqr2.c +1 -1
  408. data/ext/dgeqr2p.c +1 -1
  409. data/ext/dgeqrf.c +1 -1
  410. data/ext/dgeqrfp.c +1 -1
  411. data/ext/dgerfs.c +31 -31
  412. data/ext/dgerfsx.c +25 -25
  413. data/ext/dgerqf.c +6 -6
  414. data/ext/dgesc2.c +13 -13
  415. data/ext/dgesdd.c +3 -3
  416. data/ext/dgesvd.c +4 -4
  417. data/ext/dgesvj.c +15 -15
  418. data/ext/dgesvx.c +32 -32
  419. data/ext/dgesvxx.c +26 -26
  420. data/ext/dgetf2.c +1 -1
  421. data/ext/dgetrf.c +1 -1
  422. data/ext/dgetri.c +10 -10
  423. data/ext/dgetrs.c +10 -10
  424. data/ext/dggbak.c +11 -11
  425. data/ext/dggbal.c +11 -11
  426. data/ext/dgges.c +15 -15
  427. data/ext/dggesx.c +6 -6
  428. data/ext/dggev.c +3 -3
  429. data/ext/dggevx.c +4 -4
  430. data/ext/dgghrd.c +14 -14
  431. data/ext/dggqrf.c +9 -9
  432. data/ext/dggrqf.c +1 -1
  433. data/ext/dggsvd.c +3 -3
  434. data/ext/dggsvp.c +4 -4
  435. data/ext/dgsvj0.c +20 -20
  436. data/ext/dgsvj1.c +26 -26
  437. data/ext/dgtcon.c +20 -20
  438. data/ext/dgtrfs.c +48 -48
  439. data/ext/dgtsv.c +8 -8
  440. data/ext/dgtsvx.c +55 -55
  441. data/ext/dgttrs.c +19 -19
  442. data/ext/dgtts2.c +20 -20
  443. data/ext/dhgeqz.c +27 -27
  444. data/ext/dhsein.c +42 -42
  445. data/ext/dhseqr.c +4 -4
  446. data/ext/dla_gbamv.c +16 -16
  447. data/ext/dla_gbrcond.c +25 -25
  448. data/ext/dla_gbrfsx_extended.c +56 -56
  449. data/ext/dla_gbrpvgrw.c +13 -13
  450. data/ext/dla_geamv.c +4 -4
  451. data/ext/dla_gercond.c +31 -31
  452. data/ext/dla_gerfsx_extended.c +70 -70
  453. data/ext/dla_lin_berr.c +14 -14
  454. data/ext/dla_porcond.c +15 -15
  455. data/ext/dla_porfsx_extended.c +74 -74
  456. data/ext/dla_porpvgrw.c +2 -2
  457. data/ext/dla_rpvgrw.c +12 -12
  458. data/ext/dla_syamv.c +12 -12
  459. data/ext/dla_syrcond.c +31 -31
  460. data/ext/dla_syrfsx_extended.c +82 -82
  461. data/ext/dla_syrpvgrw.c +14 -14
  462. data/ext/dla_wwaddw.c +11 -11
  463. data/ext/dlabad.c +1 -1
  464. data/ext/dlabrd.c +2 -2
  465. data/ext/dlacn2.c +2 -2
  466. data/ext/dlacpy.c +1 -1
  467. data/ext/dlaebz.c +43 -43
  468. data/ext/dlaed0.c +2 -2
  469. data/ext/dlaed1.c +20 -20
  470. data/ext/dlaed2.c +21 -21
  471. data/ext/dlaed3.c +30 -30
  472. data/ext/dlaed4.c +12 -12
  473. data/ext/dlaed5.c +11 -11
  474. data/ext/dlaed6.c +12 -12
  475. data/ext/dlaed7.c +35 -35
  476. data/ext/dlaed8.c +16 -16
  477. data/ext/dlaed9.c +14 -14
  478. data/ext/dlaeda.c +31 -31
  479. data/ext/dlaein.c +13 -13
  480. data/ext/dlaexc.c +14 -14
  481. data/ext/dlag2s.c +2 -2
  482. data/ext/dlags2.c +4 -4
  483. data/ext/dlagtf.c +10 -10
  484. data/ext/dlagtm.c +21 -21
  485. data/ext/dlagts.c +13 -13
  486. data/ext/dlahqr.c +6 -6
  487. data/ext/dlahr2.c +1 -1
  488. data/ext/dlahrd.c +1 -1
  489. data/ext/dlaic1.c +12 -12
  490. data/ext/dlaln2.c +16 -16
  491. data/ext/dlals0.c +37 -37
  492. data/ext/dlalsa.c +72 -72
  493. data/ext/dlalsd.c +4 -4
  494. data/ext/dlamrg.c +1 -1
  495. data/ext/dlaneg.c +1 -1
  496. data/ext/dlangb.c +3 -3
  497. data/ext/dlange.c +1 -1
  498. data/ext/dlangt.c +10 -10
  499. data/ext/dlanhs.c +1 -1
  500. data/ext/dlansb.c +2 -2
  501. data/ext/dlansf.c +3 -3
  502. data/ext/dlansp.c +3 -3
  503. data/ext/dlanst.c +1 -1
  504. data/ext/dlansy.c +2 -2
  505. data/ext/dlantb.c +2 -2
  506. data/ext/dlantp.c +2 -2
  507. data/ext/dlantr.c +3 -3
  508. data/ext/dlapll.c +10 -10
  509. data/ext/dlapmr.c +1 -1
  510. data/ext/dlapmt.c +11 -11
  511. data/ext/dlaqgb.c +2 -2
  512. data/ext/dlaqge.c +10 -10
  513. data/ext/dlaqp2.c +10 -10
  514. data/ext/dlaqps.c +20 -20
  515. data/ext/dlaqr0.c +3 -3
  516. data/ext/dlaqr1.c +2 -2
  517. data/ext/dlaqr2.c +18 -18
  518. data/ext/dlaqr3.c +18 -18
  519. data/ext/dlaqr4.c +3 -3
  520. data/ext/dlaqr5.c +9 -9
  521. data/ext/dlaqsb.c +13 -13
  522. data/ext/dlaqsp.c +2 -2
  523. data/ext/dlaqsy.c +12 -12
  524. data/ext/dlaqtr.c +12 -12
  525. data/ext/dlar1v.c +15 -15
  526. data/ext/dlar2v.c +19 -19
  527. data/ext/dlarf.c +2 -2
  528. data/ext/dlarfb.c +16 -16
  529. data/ext/dlarfg.c +1 -1
  530. data/ext/dlarfgp.c +1 -1
  531. data/ext/dlarft.c +2 -2
  532. data/ext/dlarfx.c +2 -2
  533. data/ext/dlargv.c +2 -2
  534. data/ext/dlarnv.c +1 -1
  535. data/ext/dlarra.c +20 -20
  536. data/ext/dlarrb.c +22 -22
  537. data/ext/dlarrc.c +13 -13
  538. data/ext/dlarrd.c +25 -25
  539. data/ext/dlarre.c +17 -17
  540. data/ext/dlarrf.c +21 -21
  541. data/ext/dlarrj.c +23 -23
  542. data/ext/dlarrk.c +3 -3
  543. data/ext/dlarrv.c +40 -40
  544. data/ext/dlarscl2.c +8 -8
  545. data/ext/dlartv.c +20 -20
  546. data/ext/dlaruv.c +1 -1
  547. data/ext/dlarz.c +11 -11
  548. data/ext/dlarzb.c +14 -14
  549. data/ext/dlarzt.c +2 -2
  550. data/ext/dlascl.c +4 -4
  551. data/ext/dlascl2.c +8 -8
  552. data/ext/dlasd0.c +3 -3
  553. data/ext/dlasd1.c +13 -13
  554. data/ext/dlasd2.c +18 -18
  555. data/ext/dlasd3.c +15 -15
  556. data/ext/dlasd4.c +12 -12
  557. data/ext/dlasd5.c +11 -11
  558. data/ext/dlasd6.c +14 -14
  559. data/ext/dlasd7.c +25 -25
  560. data/ext/dlasd8.c +27 -27
  561. data/ext/dlasda.c +5 -5
  562. data/ext/dlasdq.c +20 -20
  563. data/ext/dlaset.c +3 -3
  564. data/ext/dlasq3.c +8 -8
  565. data/ext/dlasq4.c +5 -5
  566. data/ext/dlasq5.c +3 -3
  567. data/ext/dlasq6.c +1 -1
  568. data/ext/dlasr.c +2 -2
  569. data/ext/dlasrt.c +1 -1
  570. data/ext/dlassq.c +2 -2
  571. data/ext/dlaswp.c +2 -2
  572. data/ext/dlasy2.c +24 -24
  573. data/ext/dlasyf.c +1 -1
  574. data/ext/dlat2s.c +1 -1
  575. data/ext/dlatbs.c +14 -14
  576. data/ext/dlatdf.c +21 -21
  577. data/ext/dlatps.c +12 -12
  578. data/ext/dlatrd.c +1 -1
  579. data/ext/dlatrs.c +15 -15
  580. data/ext/dlatrz.c +1 -1
  581. data/ext/dlatzm.c +2 -2
  582. data/ext/dlauu2.c +1 -1
  583. data/ext/dlauum.c +1 -1
  584. data/ext/dopgtr.c +8 -8
  585. data/ext/dopmtr.c +2 -2
  586. data/ext/dorbdb.c +15 -15
  587. data/ext/dorcsd.c +13 -13
  588. data/ext/dorg2l.c +9 -9
  589. data/ext/dorg2r.c +9 -9
  590. data/ext/dorgbr.c +1 -1
  591. data/ext/dorghr.c +7 -7
  592. data/ext/dorgl2.c +1 -1
  593. data/ext/dorglq.c +9 -9
  594. data/ext/dorgql.c +9 -9
  595. data/ext/dorgqr.c +9 -9
  596. data/ext/dorgr2.c +1 -1
  597. data/ext/dorgrq.c +9 -9
  598. data/ext/dorgtr.c +6 -6
  599. data/ext/dorm2l.c +12 -12
  600. data/ext/dorm2r.c +12 -12
  601. data/ext/dormbr.c +3 -3
  602. data/ext/dormhr.c +12 -12
  603. data/ext/dorml2.c +1 -1
  604. data/ext/dormlq.c +7 -7
  605. data/ext/dormql.c +12 -12
  606. data/ext/dormqr.c +12 -12
  607. data/ext/dormr2.c +1 -1
  608. data/ext/dormr3.c +10 -10
  609. data/ext/dormrq.c +7 -7
  610. data/ext/dormrz.c +10 -10
  611. data/ext/dormtr.c +17 -17
  612. data/ext/dpbcon.c +3 -3
  613. data/ext/dpbequ.c +1 -1
  614. data/ext/dpbrfs.c +12 -12
  615. data/ext/dpbstf.c +1 -1
  616. data/ext/dpbsv.c +1 -1
  617. data/ext/dpbsvx.c +23 -23
  618. data/ext/dpbtf2.c +1 -1
  619. data/ext/dpbtrf.c +1 -1
  620. data/ext/dpbtrs.c +1 -1
  621. data/ext/dpftrf.c +2 -2
  622. data/ext/dpftri.c +2 -2
  623. data/ext/dpftrs.c +2 -2
  624. data/ext/dpocon.c +1 -1
  625. data/ext/dporfs.c +23 -23
  626. data/ext/dporfsx.c +22 -22
  627. data/ext/dposv.c +9 -9
  628. data/ext/dposvx.c +12 -12
  629. data/ext/dposvxx.c +20 -20
  630. data/ext/dpotf2.c +1 -1
  631. data/ext/dpotrf.c +1 -1
  632. data/ext/dpotri.c +1 -1
  633. data/ext/dpotrs.c +9 -9
  634. data/ext/dppcon.c +1 -1
  635. data/ext/dppequ.c +1 -1
  636. data/ext/dpprfs.c +20 -20
  637. data/ext/dppsv.c +1 -1
  638. data/ext/dppsvx.c +12 -12
  639. data/ext/dpptrf.c +1 -1
  640. data/ext/dpptri.c +1 -1
  641. data/ext/dpptrs.c +1 -1
  642. data/ext/dpstf2.c +2 -2
  643. data/ext/dpstrf.c +2 -2
  644. data/ext/dptcon.c +1 -1
  645. data/ext/dpteqr.c +10 -10
  646. data/ext/dptrfs.c +30 -30
  647. data/ext/dptsv.c +8 -8
  648. data/ext/dptsvx.c +19 -19
  649. data/ext/dpttrs.c +8 -8
  650. data/ext/dptts2.c +8 -8
  651. data/ext/drscl.c +2 -2
  652. data/ext/dsbev.c +3 -3
  653. data/ext/dsbevd.c +9 -9
  654. data/ext/dsbevx.c +7 -7
  655. data/ext/dsbgst.c +15 -15
  656. data/ext/dsbgv.c +15 -15
  657. data/ext/dsbgvd.c +20 -20
  658. data/ext/dsbgvx.c +10 -10
  659. data/ext/dsbtrd.c +13 -13
  660. data/ext/dsfrk.c +5 -5
  661. data/ext/dspcon.c +1 -1
  662. data/ext/dspev.c +2 -2
  663. data/ext/dspevd.c +7 -7
  664. data/ext/dspevx.c +7 -7
  665. data/ext/dspgst.c +10 -10
  666. data/ext/dspgv.c +2 -2
  667. data/ext/dspgvd.c +7 -7
  668. data/ext/dspgvx.c +8 -8
  669. data/ext/dsposv.c +10 -10
  670. data/ext/dsprfs.c +10 -10
  671. data/ext/dspsv.c +1 -1
  672. data/ext/dspsvx.c +20 -20
  673. data/ext/dsptrd.c +1 -1
  674. data/ext/dsptrf.c +1 -1
  675. data/ext/dsptri.c +1 -1
  676. data/ext/dsptrs.c +1 -1
  677. data/ext/dstebz.c +5 -5
  678. data/ext/dstedc.c +5 -5
  679. data/ext/dstegr.c +18 -18
  680. data/ext/dstein.c +14 -14
  681. data/ext/dstemr.c +22 -22
  682. data/ext/dsteqr.c +10 -10
  683. data/ext/dstev.c +1 -1
  684. data/ext/dstevd.c +7 -7
  685. data/ext/dstevr.c +16 -16
  686. data/ext/dstevx.c +6 -6
  687. data/ext/dsycon.c +12 -12
  688. data/ext/dsyconv.c +12 -12
  689. data/ext/dsyequb.c +1 -1
  690. data/ext/dsyev.c +2 -2
  691. data/ext/dsyevd.c +1 -1
  692. data/ext/dsyevr.c +6 -6
  693. data/ext/dsyevx.c +7 -7
  694. data/ext/dsygs2.c +2 -2
  695. data/ext/dsygst.c +2 -2
  696. data/ext/dsygv.c +13 -13
  697. data/ext/dsygvd.c +18 -18
  698. data/ext/dsygvx.c +19 -19
  699. data/ext/dsyrfs.c +31 -31
  700. data/ext/dsyrfsx.c +43 -43
  701. data/ext/dsysv.c +10 -10
  702. data/ext/dsysvx.c +15 -15
  703. data/ext/dsysvxx.c +41 -41
  704. data/ext/dsyswapr.c +2 -2
  705. data/ext/dsytd2.c +1 -1
  706. data/ext/dsytf2.c +1 -1
  707. data/ext/dsytrd.c +2 -2
  708. data/ext/dsytrf.c +2 -2
  709. data/ext/dsytri.c +1 -1
  710. data/ext/dsytri2.c +3 -3
  711. data/ext/dsytri2x.c +2 -2
  712. data/ext/dsytrs.c +10 -10
  713. data/ext/dsytrs2.c +10 -10
  714. data/ext/dtbcon.c +3 -3
  715. data/ext/dtbrfs.c +14 -14
  716. data/ext/dtbtrs.c +2 -2
  717. data/ext/dtfsm.c +13 -13
  718. data/ext/dtftri.c +1 -1
  719. data/ext/dtfttp.c +1 -1
  720. data/ext/dtfttr.c +2 -2
  721. data/ext/dtgevc.c +32 -32
  722. data/ext/dtgex2.c +23 -23
  723. data/ext/dtgexc.c +24 -24
  724. data/ext/dtgsen.c +37 -37
  725. data/ext/dtgsja.c +26 -26
  726. data/ext/dtgsna.c +24 -24
  727. data/ext/dtgsy2.c +22 -22
  728. data/ext/dtgsyl.c +42 -42
  729. data/ext/dtpcon.c +2 -2
  730. data/ext/dtprfs.c +13 -13
  731. data/ext/dtptri.c +1 -1
  732. data/ext/dtptrs.c +3 -3
  733. data/ext/dtpttf.c +1 -1
  734. data/ext/dtpttr.c +1 -1
  735. data/ext/dtrcon.c +3 -3
  736. data/ext/dtrevc.c +12 -12
  737. data/ext/dtrexc.c +1 -1
  738. data/ext/dtrrfs.c +11 -11
  739. data/ext/dtrsen.c +13 -13
  740. data/ext/dtrsna.c +20 -20
  741. data/ext/dtrsyl.c +11 -11
  742. data/ext/dtrti2.c +1 -1
  743. data/ext/dtrtri.c +1 -1
  744. data/ext/dtrtrs.c +10 -10
  745. data/ext/dtrttf.c +1 -1
  746. data/ext/dtrttp.c +1 -1
  747. data/ext/dzsum1.c +1 -1
  748. data/ext/icmax1.c +1 -1
  749. data/ext/ieeeck.c +1 -1
  750. data/ext/ilaclc.c +1 -1
  751. data/ext/ilaclr.c +1 -1
  752. data/ext/iladlc.c +1 -1
  753. data/ext/iladlr.c +1 -1
  754. data/ext/ilaenv.c +4 -4
  755. data/ext/ilaslc.c +1 -1
  756. data/ext/ilaslr.c +1 -1
  757. data/ext/ilazlc.c +1 -1
  758. data/ext/ilazlr.c +1 -1
  759. data/ext/iparmq.c +3 -3
  760. data/ext/izmax1.c +1 -1
  761. data/ext/rb_lapack.c +3146 -3146
  762. data/ext/rb_lapack.h +1 -1
  763. data/ext/sbbcsd.c +29 -29
  764. data/ext/sbdsdc.c +10 -10
  765. data/ext/sbdsqr.c +20 -20
  766. data/ext/scsum1.c +1 -1
  767. data/ext/sdisna.c +1 -1
  768. data/ext/sgbbrd.c +12 -12
  769. data/ext/sgbcon.c +13 -13
  770. data/ext/sgbequ.c +3 -3
  771. data/ext/sgbequb.c +2 -2
  772. data/ext/sgbrfs.c +22 -22
  773. data/ext/sgbrfsx.c +43 -43
  774. data/ext/sgbsv.c +2 -2
  775. data/ext/sgbsvx.c +25 -25
  776. data/ext/sgbsvxx.c +36 -36
  777. data/ext/sgbtf2.c +3 -3
  778. data/ext/sgbtrf.c +3 -3
  779. data/ext/sgbtrs.c +11 -11
  780. data/ext/sgebak.c +11 -11
  781. data/ext/sgebal.c +1 -1
  782. data/ext/sgebd2.c +1 -1
  783. data/ext/sgebrd.c +1 -1
  784. data/ext/sgecon.c +1 -1
  785. data/ext/sgees.c +3 -3
  786. data/ext/sgeesx.c +4 -4
  787. data/ext/sgeev.c +3 -3
  788. data/ext/sgeevx.c +5 -5
  789. data/ext/sgegs.c +2 -2
  790. data/ext/sgegv.c +3 -3
  791. data/ext/sgehd2.c +1 -1
  792. data/ext/sgehrd.c +2 -2
  793. data/ext/sgejsv.c +16 -16
  794. data/ext/sgelqf.c +6 -6
  795. data/ext/sgels.c +2 -2
  796. data/ext/sgelsd.c +7 -7
  797. data/ext/sgelss.c +2 -2
  798. data/ext/sgelsx.c +12 -12
  799. data/ext/sgelsy.c +12 -12
  800. data/ext/sgeql2.c +1 -1
  801. data/ext/sgeqlf.c +1 -1
  802. data/ext/sgeqp3.c +11 -11
  803. data/ext/sgeqpf.c +11 -11
  804. data/ext/sgeqr2.c +1 -1
  805. data/ext/sgeqr2p.c +1 -1
  806. data/ext/sgeqrf.c +1 -1
  807. data/ext/sgeqrfp.c +1 -1
  808. data/ext/sgerfs.c +31 -31
  809. data/ext/sgerfsx.c +25 -25
  810. data/ext/sgerqf.c +6 -6
  811. data/ext/sgesc2.c +13 -13
  812. data/ext/sgesdd.c +3 -3
  813. data/ext/sgesvd.c +4 -4
  814. data/ext/sgesvj.c +15 -15
  815. data/ext/sgesvx.c +32 -32
  816. data/ext/sgesvxx.c +26 -26
  817. data/ext/sgetf2.c +1 -1
  818. data/ext/sgetrf.c +1 -1
  819. data/ext/sgetri.c +10 -10
  820. data/ext/sgetrs.c +10 -10
  821. data/ext/sggbak.c +11 -11
  822. data/ext/sggbal.c +11 -11
  823. data/ext/sgges.c +15 -15
  824. data/ext/sggesx.c +6 -6
  825. data/ext/sggev.c +3 -3
  826. data/ext/sggevx.c +4 -4
  827. data/ext/sgghrd.c +14 -14
  828. data/ext/sggqrf.c +9 -9
  829. data/ext/sggrqf.c +1 -1
  830. data/ext/sggsvd.c +3 -3
  831. data/ext/sggsvp.c +4 -4
  832. data/ext/sgsvj0.c +20 -20
  833. data/ext/sgsvj1.c +26 -26
  834. data/ext/sgtcon.c +20 -20
  835. data/ext/sgtrfs.c +48 -48
  836. data/ext/sgtsv.c +8 -8
  837. data/ext/sgtsvx.c +55 -55
  838. data/ext/sgttrs.c +19 -19
  839. data/ext/sgtts2.c +20 -20
  840. data/ext/shgeqz.c +27 -27
  841. data/ext/shsein.c +42 -42
  842. data/ext/shseqr.c +4 -4
  843. data/ext/sla_gbamv.c +16 -16
  844. data/ext/sla_gbrcond.c +25 -25
  845. data/ext/sla_gbrfsx_extended.c +66 -66
  846. data/ext/sla_gbrpvgrw.c +13 -13
  847. data/ext/sla_geamv.c +4 -4
  848. data/ext/sla_gercond.c +31 -31
  849. data/ext/sla_gerfsx_extended.c +82 -82
  850. data/ext/sla_lin_berr.c +14 -14
  851. data/ext/sla_porcond.c +15 -15
  852. data/ext/sla_porfsx_extended.c +74 -74
  853. data/ext/sla_porpvgrw.c +2 -2
  854. data/ext/sla_rpvgrw.c +12 -12
  855. data/ext/sla_syamv.c +12 -12
  856. data/ext/sla_syrcond.c +31 -31
  857. data/ext/sla_syrfsx_extended.c +82 -82
  858. data/ext/sla_syrpvgrw.c +14 -14
  859. data/ext/sla_wwaddw.c +11 -11
  860. data/ext/slabad.c +1 -1
  861. data/ext/slabrd.c +2 -2
  862. data/ext/slacn2.c +2 -2
  863. data/ext/slacpy.c +1 -1
  864. data/ext/slaebz.c +43 -43
  865. data/ext/slaed0.c +2 -2
  866. data/ext/slaed1.c +20 -20
  867. data/ext/slaed2.c +21 -21
  868. data/ext/slaed3.c +30 -30
  869. data/ext/slaed4.c +12 -12
  870. data/ext/slaed5.c +11 -11
  871. data/ext/slaed6.c +12 -12
  872. data/ext/slaed7.c +35 -35
  873. data/ext/slaed8.c +16 -16
  874. data/ext/slaed9.c +14 -14
  875. data/ext/slaeda.c +31 -31
  876. data/ext/slaein.c +13 -13
  877. data/ext/slaexc.c +14 -14
  878. data/ext/slags2.c +4 -4
  879. data/ext/slagtf.c +10 -10
  880. data/ext/slagtm.c +21 -21
  881. data/ext/slagts.c +13 -13
  882. data/ext/slahqr.c +6 -6
  883. data/ext/slahr2.c +1 -1
  884. data/ext/slahrd.c +3 -3
  885. data/ext/slaic1.c +12 -12
  886. data/ext/slaln2.c +16 -16
  887. data/ext/slals0.c +37 -37
  888. data/ext/slalsa.c +72 -72
  889. data/ext/slalsd.c +4 -4
  890. data/ext/slamrg.c +2 -2
  891. data/ext/slaneg.c +1 -1
  892. data/ext/slangb.c +3 -3
  893. data/ext/slange.c +1 -1
  894. data/ext/slangt.c +10 -10
  895. data/ext/slanhs.c +1 -1
  896. data/ext/slansb.c +2 -2
  897. data/ext/slansf.c +3 -3
  898. data/ext/slansp.c +3 -3
  899. data/ext/slanst.c +1 -1
  900. data/ext/slansy.c +2 -2
  901. data/ext/slantb.c +2 -2
  902. data/ext/slantp.c +2 -2
  903. data/ext/slantr.c +3 -3
  904. data/ext/slapll.c +10 -10
  905. data/ext/slapmr.c +1 -1
  906. data/ext/slapmt.c +11 -11
  907. data/ext/slaqgb.c +2 -2
  908. data/ext/slaqge.c +10 -10
  909. data/ext/slaqp2.c +10 -10
  910. data/ext/slaqps.c +20 -20
  911. data/ext/slaqr0.c +3 -3
  912. data/ext/slaqr1.c +2 -2
  913. data/ext/slaqr2.c +18 -18
  914. data/ext/slaqr3.c +18 -18
  915. data/ext/slaqr4.c +3 -3
  916. data/ext/slaqr5.c +9 -9
  917. data/ext/slaqsb.c +13 -13
  918. data/ext/slaqsp.c +2 -2
  919. data/ext/slaqsy.c +12 -12
  920. data/ext/slaqtr.c +12 -12
  921. data/ext/slar1v.c +15 -15
  922. data/ext/slar2v.c +19 -19
  923. data/ext/slarf.c +2 -2
  924. data/ext/slarfb.c +16 -16
  925. data/ext/slarfg.c +1 -1
  926. data/ext/slarfgp.c +1 -1
  927. data/ext/slarft.c +2 -2
  928. data/ext/slarfx.c +2 -2
  929. data/ext/slargv.c +2 -2
  930. data/ext/slarnv.c +1 -1
  931. data/ext/slarra.c +20 -20
  932. data/ext/slarrb.c +22 -22
  933. data/ext/slarrc.c +13 -13
  934. data/ext/slarrd.c +25 -25
  935. data/ext/slarre.c +17 -17
  936. data/ext/slarrf.c +21 -21
  937. data/ext/slarrj.c +23 -23
  938. data/ext/slarrk.c +3 -3
  939. data/ext/slarrv.c +40 -40
  940. data/ext/slarscl2.c +8 -8
  941. data/ext/slartv.c +20 -20
  942. data/ext/slaruv.c +1 -1
  943. data/ext/slarz.c +11 -11
  944. data/ext/slarzb.c +14 -14
  945. data/ext/slarzt.c +2 -2
  946. data/ext/slascl.c +4 -4
  947. data/ext/slascl2.c +8 -8
  948. data/ext/slasd0.c +3 -3
  949. data/ext/slasd1.c +12 -12
  950. data/ext/slasd2.c +18 -18
  951. data/ext/slasd3.c +15 -15
  952. data/ext/slasd4.c +12 -12
  953. data/ext/slasd5.c +11 -11
  954. data/ext/slasd6.c +14 -14
  955. data/ext/slasd7.c +25 -25
  956. data/ext/slasd8.c +27 -27
  957. data/ext/slasda.c +5 -5
  958. data/ext/slasdq.c +20 -20
  959. data/ext/slaset.c +3 -3
  960. data/ext/slasq3.c +8 -8
  961. data/ext/slasq4.c +5 -5
  962. data/ext/slasq5.c +3 -3
  963. data/ext/slasq6.c +1 -1
  964. data/ext/slasr.c +2 -2
  965. data/ext/slasrt.c +1 -1
  966. data/ext/slassq.c +2 -2
  967. data/ext/slaswp.c +2 -2
  968. data/ext/slasy2.c +24 -24
  969. data/ext/slasyf.c +1 -1
  970. data/ext/slatbs.c +14 -14
  971. data/ext/slatdf.c +21 -21
  972. data/ext/slatps.c +12 -12
  973. data/ext/slatrd.c +1 -1
  974. data/ext/slatrs.c +15 -15
  975. data/ext/slatrz.c +1 -1
  976. data/ext/slatzm.c +2 -2
  977. data/ext/slauu2.c +1 -1
  978. data/ext/slauum.c +1 -1
  979. data/ext/sopgtr.c +8 -8
  980. data/ext/sopmtr.c +2 -2
  981. data/ext/sorbdb.c +15 -15
  982. data/ext/sorcsd.c +13 -13
  983. data/ext/sorg2l.c +9 -9
  984. data/ext/sorg2r.c +9 -9
  985. data/ext/sorgbr.c +1 -1
  986. data/ext/sorghr.c +7 -7
  987. data/ext/sorgl2.c +1 -1
  988. data/ext/sorglq.c +9 -9
  989. data/ext/sorgql.c +9 -9
  990. data/ext/sorgqr.c +9 -9
  991. data/ext/sorgr2.c +1 -1
  992. data/ext/sorgrq.c +9 -9
  993. data/ext/sorgtr.c +6 -6
  994. data/ext/sorm2l.c +12 -12
  995. data/ext/sorm2r.c +12 -12
  996. data/ext/sormbr.c +3 -3
  997. data/ext/sormhr.c +12 -12
  998. data/ext/sorml2.c +1 -1
  999. data/ext/sormlq.c +7 -7
  1000. data/ext/sormql.c +12 -12
  1001. data/ext/sormqr.c +12 -12
  1002. data/ext/sormr2.c +1 -1
  1003. data/ext/sormr3.c +10 -10
  1004. data/ext/sormrq.c +7 -7
  1005. data/ext/sormrz.c +10 -10
  1006. data/ext/sormtr.c +17 -17
  1007. data/ext/spbcon.c +3 -3
  1008. data/ext/spbequ.c +1 -1
  1009. data/ext/spbrfs.c +12 -12
  1010. data/ext/spbstf.c +1 -1
  1011. data/ext/spbsv.c +1 -1
  1012. data/ext/spbsvx.c +23 -23
  1013. data/ext/spbtf2.c +1 -1
  1014. data/ext/spbtrf.c +1 -1
  1015. data/ext/spbtrs.c +1 -1
  1016. data/ext/spftrf.c +2 -2
  1017. data/ext/spftri.c +2 -2
  1018. data/ext/spftrs.c +2 -2
  1019. data/ext/spocon.c +1 -1
  1020. data/ext/sporfs.c +23 -23
  1021. data/ext/sporfsx.c +22 -22
  1022. data/ext/sposv.c +9 -9
  1023. data/ext/sposvx.c +12 -12
  1024. data/ext/sposvxx.c +20 -20
  1025. data/ext/spotf2.c +1 -1
  1026. data/ext/spotrf.c +1 -1
  1027. data/ext/spotri.c +1 -1
  1028. data/ext/spotrs.c +9 -9
  1029. data/ext/sppcon.c +1 -1
  1030. data/ext/sppequ.c +1 -1
  1031. data/ext/spprfs.c +20 -20
  1032. data/ext/sppsv.c +1 -1
  1033. data/ext/sppsvx.c +12 -12
  1034. data/ext/spptrf.c +1 -1
  1035. data/ext/spptri.c +1 -1
  1036. data/ext/spptrs.c +1 -1
  1037. data/ext/spstf2.c +2 -2
  1038. data/ext/spstrf.c +2 -2
  1039. data/ext/sptcon.c +1 -1
  1040. data/ext/spteqr.c +10 -10
  1041. data/ext/sptrfs.c +30 -30
  1042. data/ext/sptsv.c +8 -8
  1043. data/ext/sptsvx.c +19 -19
  1044. data/ext/spttrs.c +8 -8
  1045. data/ext/sptts2.c +8 -8
  1046. data/ext/srscl.c +2 -2
  1047. data/ext/ssbev.c +3 -3
  1048. data/ext/ssbevd.c +9 -9
  1049. data/ext/ssbevx.c +7 -7
  1050. data/ext/ssbgst.c +15 -15
  1051. data/ext/ssbgv.c +15 -15
  1052. data/ext/ssbgvd.c +20 -20
  1053. data/ext/ssbgvx.c +10 -10
  1054. data/ext/ssbtrd.c +13 -13
  1055. data/ext/ssfrk.c +5 -5
  1056. data/ext/sspcon.c +1 -1
  1057. data/ext/sspev.c +2 -2
  1058. data/ext/sspevd.c +7 -7
  1059. data/ext/sspevx.c +7 -7
  1060. data/ext/sspgst.c +10 -10
  1061. data/ext/sspgv.c +2 -2
  1062. data/ext/sspgvd.c +7 -7
  1063. data/ext/sspgvx.c +8 -8
  1064. data/ext/ssprfs.c +10 -10
  1065. data/ext/sspsv.c +1 -1
  1066. data/ext/sspsvx.c +20 -20
  1067. data/ext/ssptrd.c +1 -1
  1068. data/ext/ssptrf.c +1 -1
  1069. data/ext/ssptri.c +1 -1
  1070. data/ext/ssptrs.c +1 -1
  1071. data/ext/sstebz.c +5 -5
  1072. data/ext/sstedc.c +5 -5
  1073. data/ext/sstegr.c +18 -18
  1074. data/ext/sstein.c +14 -14
  1075. data/ext/sstemr.c +22 -22
  1076. data/ext/ssteqr.c +10 -10
  1077. data/ext/sstev.c +1 -1
  1078. data/ext/sstevd.c +7 -7
  1079. data/ext/sstevr.c +16 -16
  1080. data/ext/sstevx.c +6 -6
  1081. data/ext/ssycon.c +12 -12
  1082. data/ext/ssyconv.c +12 -12
  1083. data/ext/ssyequb.c +1 -1
  1084. data/ext/ssyev.c +2 -2
  1085. data/ext/ssyevd.c +1 -1
  1086. data/ext/ssyevr.c +6 -6
  1087. data/ext/ssyevx.c +7 -7
  1088. data/ext/ssygs2.c +2 -2
  1089. data/ext/ssygst.c +2 -2
  1090. data/ext/ssygv.c +13 -13
  1091. data/ext/ssygvd.c +18 -18
  1092. data/ext/ssygvx.c +22 -22
  1093. data/ext/ssyrfs.c +31 -31
  1094. data/ext/ssyrfsx.c +43 -43
  1095. data/ext/ssysv.c +10 -10
  1096. data/ext/ssysvx.c +15 -15
  1097. data/ext/ssysvxx.c +41 -41
  1098. data/ext/ssyswapr.c +2 -2
  1099. data/ext/ssytd2.c +1 -1
  1100. data/ext/ssytf2.c +1 -1
  1101. data/ext/ssytrd.c +2 -2
  1102. data/ext/ssytrf.c +2 -2
  1103. data/ext/ssytri.c +1 -1
  1104. data/ext/ssytri2.c +11 -11
  1105. data/ext/ssytri2x.c +2 -2
  1106. data/ext/ssytrs.c +10 -10
  1107. data/ext/ssytrs2.c +10 -10
  1108. data/ext/stbcon.c +3 -3
  1109. data/ext/stbrfs.c +14 -14
  1110. data/ext/stbtrs.c +2 -2
  1111. data/ext/stfsm.c +13 -13
  1112. data/ext/stftri.c +1 -1
  1113. data/ext/stfttp.c +1 -1
  1114. data/ext/stfttr.c +1 -1
  1115. data/ext/stgevc.c +32 -32
  1116. data/ext/stgex2.c +16 -16
  1117. data/ext/stgexc.c +26 -26
  1118. data/ext/stgsen.c +37 -37
  1119. data/ext/stgsja.c +26 -26
  1120. data/ext/stgsna.c +24 -24
  1121. data/ext/stgsy2.c +22 -22
  1122. data/ext/stgsyl.c +42 -42
  1123. data/ext/stpcon.c +2 -2
  1124. data/ext/stprfs.c +13 -13
  1125. data/ext/stptri.c +1 -1
  1126. data/ext/stptrs.c +3 -3
  1127. data/ext/stpttf.c +1 -1
  1128. data/ext/stpttr.c +1 -1
  1129. data/ext/strcon.c +3 -3
  1130. data/ext/strevc.c +12 -12
  1131. data/ext/strexc.c +1 -1
  1132. data/ext/strrfs.c +11 -11
  1133. data/ext/strsen.c +13 -13
  1134. data/ext/strsna.c +20 -20
  1135. data/ext/strsyl.c +11 -11
  1136. data/ext/strti2.c +1 -1
  1137. data/ext/strtri.c +1 -1
  1138. data/ext/strtrs.c +10 -10
  1139. data/ext/strttf.c +1 -1
  1140. data/ext/strttp.c +1 -1
  1141. data/ext/xerbla_array.c +1 -1
  1142. data/ext/zbbcsd.c +34 -34
  1143. data/ext/zbdsqr.c +20 -20
  1144. data/ext/zcposv.c +10 -10
  1145. data/ext/zdrscl.c +2 -2
  1146. data/ext/zgbbrd.c +12 -12
  1147. data/ext/zgbcon.c +13 -13
  1148. data/ext/zgbequ.c +3 -3
  1149. data/ext/zgbequb.c +2 -2
  1150. data/ext/zgbrfs.c +22 -22
  1151. data/ext/zgbrfsx.c +43 -43
  1152. data/ext/zgbsv.c +2 -2
  1153. data/ext/zgbsvx.c +25 -25
  1154. data/ext/zgbsvxx.c +36 -36
  1155. data/ext/zgbtf2.c +3 -3
  1156. data/ext/zgbtrf.c +3 -3
  1157. data/ext/zgbtrs.c +11 -11
  1158. data/ext/zgebak.c +11 -11
  1159. data/ext/zgebal.c +1 -1
  1160. data/ext/zgebd2.c +1 -1
  1161. data/ext/zgebrd.c +1 -1
  1162. data/ext/zgecon.c +1 -1
  1163. data/ext/zgees.c +3 -3
  1164. data/ext/zgeesx.c +4 -4
  1165. data/ext/zgeev.c +4 -4
  1166. data/ext/zgeevx.c +5 -5
  1167. data/ext/zgegs.c +2 -2
  1168. data/ext/zgegv.c +3 -3
  1169. data/ext/zgehd2.c +1 -1
  1170. data/ext/zgehrd.c +2 -2
  1171. data/ext/zgelqf.c +6 -6
  1172. data/ext/zgels.c +2 -2
  1173. data/ext/zgelsd.c +9 -9
  1174. data/ext/zgelss.c +2 -2
  1175. data/ext/zgelsx.c +12 -12
  1176. data/ext/zgelsy.c +12 -12
  1177. data/ext/zgeql2.c +1 -1
  1178. data/ext/zgeqlf.c +1 -1
  1179. data/ext/zgeqp3.c +11 -11
  1180. data/ext/zgeqpf.c +11 -11
  1181. data/ext/zgeqr2.c +1 -1
  1182. data/ext/zgeqr2p.c +1 -1
  1183. data/ext/zgeqrf.c +1 -1
  1184. data/ext/zgeqrfp.c +1 -1
  1185. data/ext/zgerfs.c +31 -31
  1186. data/ext/zgerfsx.c +25 -25
  1187. data/ext/zgerqf.c +6 -6
  1188. data/ext/zgesc2.c +13 -13
  1189. data/ext/zgesdd.c +3 -3
  1190. data/ext/zgesvd.c +4 -4
  1191. data/ext/zgesvx.c +32 -32
  1192. data/ext/zgesvxx.c +26 -26
  1193. data/ext/zgetf2.c +1 -1
  1194. data/ext/zgetrf.c +1 -1
  1195. data/ext/zgetri.c +10 -10
  1196. data/ext/zgetrs.c +10 -10
  1197. data/ext/zggbak.c +11 -11
  1198. data/ext/zggbal.c +11 -11
  1199. data/ext/zgges.c +15 -15
  1200. data/ext/zggesx.c +6 -6
  1201. data/ext/zggev.c +3 -3
  1202. data/ext/zggevx.c +5 -5
  1203. data/ext/zgghrd.c +14 -14
  1204. data/ext/zggqrf.c +9 -9
  1205. data/ext/zggrqf.c +1 -1
  1206. data/ext/zggsvd.c +3 -3
  1207. data/ext/zggsvp.c +4 -4
  1208. data/ext/zgtcon.c +20 -20
  1209. data/ext/zgtrfs.c +48 -48
  1210. data/ext/zgtsv.c +8 -8
  1211. data/ext/zgtsvx.c +55 -55
  1212. data/ext/zgttrs.c +19 -19
  1213. data/ext/zgtts2.c +20 -20
  1214. data/ext/zhbev.c +3 -3
  1215. data/ext/zhbevd.c +9 -9
  1216. data/ext/zhbevx.c +7 -7
  1217. data/ext/zhbgst.c +15 -15
  1218. data/ext/zhbgv.c +15 -15
  1219. data/ext/zhbgvd.c +20 -20
  1220. data/ext/zhbgvx.c +9 -9
  1221. data/ext/zhbtrd.c +13 -13
  1222. data/ext/zhecon.c +12 -12
  1223. data/ext/zheequb.c +1 -1
  1224. data/ext/zheev.c +2 -2
  1225. data/ext/zheevd.c +7 -7
  1226. data/ext/zheevr.c +12 -12
  1227. data/ext/zheevx.c +7 -7
  1228. data/ext/zhegs2.c +2 -2
  1229. data/ext/zhegst.c +2 -2
  1230. data/ext/zhegv.c +13 -13
  1231. data/ext/zhegvd.c +18 -18
  1232. data/ext/zhegvx.c +19 -19
  1233. data/ext/zherfs.c +31 -31
  1234. data/ext/zherfsx.c +43 -43
  1235. data/ext/zhesv.c +10 -10
  1236. data/ext/zhesvx.c +15 -15
  1237. data/ext/zhesvxx.c +41 -41
  1238. data/ext/zhetd2.c +1 -1
  1239. data/ext/zhetf2.c +1 -1
  1240. data/ext/zhetrd.c +2 -2
  1241. data/ext/zhetrf.c +2 -2
  1242. data/ext/zhetri.c +1 -1
  1243. data/ext/zhetrs.c +10 -10
  1244. data/ext/zhetrs2.c +10 -10
  1245. data/ext/zhfrk.c +6 -6
  1246. data/ext/zhgeqz.c +27 -27
  1247. data/ext/zhpcon.c +1 -1
  1248. data/ext/zhpev.c +2 -2
  1249. data/ext/zhpevd.c +2 -2
  1250. data/ext/zhpevx.c +7 -7
  1251. data/ext/zhpgst.c +10 -10
  1252. data/ext/zhpgv.c +2 -2
  1253. data/ext/zhpgvd.c +11 -11
  1254. data/ext/zhpgvx.c +8 -8
  1255. data/ext/zhprfs.c +10 -10
  1256. data/ext/zhpsv.c +1 -1
  1257. data/ext/zhpsvx.c +20 -20
  1258. data/ext/zhptrd.c +1 -1
  1259. data/ext/zhptrf.c +1 -1
  1260. data/ext/zhptri.c +1 -1
  1261. data/ext/zhptrs.c +1 -1
  1262. data/ext/zhsein.c +21 -21
  1263. data/ext/zhseqr.c +4 -4
  1264. data/ext/zla_gbamv.c +14 -14
  1265. data/ext/zla_gbrcond_c.c +33 -33
  1266. data/ext/zla_gbrcond_x.c +32 -32
  1267. data/ext/zla_gbrfsx_extended.c +78 -78
  1268. data/ext/zla_gbrpvgrw.c +13 -13
  1269. data/ext/zla_geamv.c +4 -4
  1270. data/ext/zla_gercond_c.c +31 -31
  1271. data/ext/zla_gercond_x.c +30 -30
  1272. data/ext/zla_gerfsx_extended.c +70 -70
  1273. data/ext/zla_heamv.c +12 -12
  1274. data/ext/zla_hercond_c.c +31 -31
  1275. data/ext/zla_hercond_x.c +30 -30
  1276. data/ext/zla_herfsx_extended.c +82 -82
  1277. data/ext/zla_herpvgrw.c +14 -14
  1278. data/ext/zla_lin_berr.c +14 -14
  1279. data/ext/zla_porcond_c.c +23 -23
  1280. data/ext/zla_porcond_x.c +22 -22
  1281. data/ext/zla_porfsx_extended.c +74 -74
  1282. data/ext/zla_porpvgrw.c +2 -2
  1283. data/ext/zla_rpvgrw.c +12 -12
  1284. data/ext/zla_syamv.c +12 -12
  1285. data/ext/zla_syrcond_c.c +31 -31
  1286. data/ext/zla_syrcond_x.c +30 -30
  1287. data/ext/zla_syrfsx_extended.c +82 -82
  1288. data/ext/zla_syrpvgrw.c +14 -14
  1289. data/ext/zla_wwaddw.c +11 -11
  1290. data/ext/zlabrd.c +2 -2
  1291. data/ext/zlacn2.c +2 -2
  1292. data/ext/zlacp2.c +1 -1
  1293. data/ext/zlacpy.c +1 -1
  1294. data/ext/zlacrm.c +11 -11
  1295. data/ext/zlacrt.c +12 -12
  1296. data/ext/zlaed7.c +42 -42
  1297. data/ext/zlaed8.c +27 -27
  1298. data/ext/zlaein.c +14 -14
  1299. data/ext/zlag2c.c +2 -2
  1300. data/ext/zlags2.c +5 -5
  1301. data/ext/zlagtm.c +21 -21
  1302. data/ext/zlahef.c +1 -1
  1303. data/ext/zlahqr.c +6 -6
  1304. data/ext/zlahr2.c +1 -1
  1305. data/ext/zlahrd.c +1 -1
  1306. data/ext/zlaic1.c +12 -12
  1307. data/ext/zlals0.c +37 -37
  1308. data/ext/zlalsa.c +72 -72
  1309. data/ext/zlalsd.c +4 -4
  1310. data/ext/zlangb.c +3 -3
  1311. data/ext/zlange.c +1 -1
  1312. data/ext/zlangt.c +10 -10
  1313. data/ext/zlanhb.c +2 -2
  1314. data/ext/zlanhe.c +2 -2
  1315. data/ext/zlanhf.c +3 -3
  1316. data/ext/zlanhp.c +3 -3
  1317. data/ext/zlanhs.c +1 -1
  1318. data/ext/zlanht.c +1 -1
  1319. data/ext/zlansb.c +2 -2
  1320. data/ext/zlansp.c +3 -3
  1321. data/ext/zlansy.c +2 -2
  1322. data/ext/zlantb.c +2 -2
  1323. data/ext/zlantp.c +2 -2
  1324. data/ext/zlantr.c +3 -3
  1325. data/ext/zlapll.c +10 -10
  1326. data/ext/zlapmr.c +1 -1
  1327. data/ext/zlapmt.c +11 -11
  1328. data/ext/zlaqgb.c +2 -2
  1329. data/ext/zlaqge.c +10 -10
  1330. data/ext/zlaqhb.c +2 -2
  1331. data/ext/zlaqhe.c +12 -12
  1332. data/ext/zlaqhp.c +2 -2
  1333. data/ext/zlaqp2.c +10 -10
  1334. data/ext/zlaqps.c +20 -20
  1335. data/ext/zlaqr0.c +17 -17
  1336. data/ext/zlaqr1.c +4 -4
  1337. data/ext/zlaqr2.c +18 -18
  1338. data/ext/zlaqr3.c +18 -18
  1339. data/ext/zlaqr4.c +7 -7
  1340. data/ext/zlaqr5.c +21 -21
  1341. data/ext/zlaqsb.c +13 -13
  1342. data/ext/zlaqsp.c +2 -2
  1343. data/ext/zlaqsy.c +12 -12
  1344. data/ext/zlar1v.c +15 -15
  1345. data/ext/zlar2v.c +19 -19
  1346. data/ext/zlarf.c +2 -2
  1347. data/ext/zlarfb.c +16 -16
  1348. data/ext/zlarfg.c +1 -1
  1349. data/ext/zlarfgp.c +1 -1
  1350. data/ext/zlarft.c +2 -2
  1351. data/ext/zlarfx.c +3 -3
  1352. data/ext/zlargv.c +2 -2
  1353. data/ext/zlarnv.c +1 -1
  1354. data/ext/zlarrv.c +40 -40
  1355. data/ext/zlarscl2.c +8 -8
  1356. data/ext/zlartv.c +20 -20
  1357. data/ext/zlarz.c +11 -11
  1358. data/ext/zlarzb.c +14 -14
  1359. data/ext/zlarzt.c +2 -2
  1360. data/ext/zlascl.c +4 -4
  1361. data/ext/zlascl2.c +8 -8
  1362. data/ext/zlaset.c +4 -4
  1363. data/ext/zlasr.c +2 -2
  1364. data/ext/zlassq.c +2 -2
  1365. data/ext/zlaswp.c +2 -2
  1366. data/ext/zlasyf.c +1 -1
  1367. data/ext/zlat2c.c +1 -1
  1368. data/ext/zlatbs.c +14 -14
  1369. data/ext/zlatdf.c +21 -21
  1370. data/ext/zlatps.c +12 -12
  1371. data/ext/zlatrd.c +1 -1
  1372. data/ext/zlatrs.c +15 -15
  1373. data/ext/zlatrz.c +1 -1
  1374. data/ext/zlatzm.c +3 -3
  1375. data/ext/zlauu2.c +1 -1
  1376. data/ext/zlauum.c +1 -1
  1377. data/ext/zpbcon.c +3 -3
  1378. data/ext/zpbequ.c +1 -1
  1379. data/ext/zpbrfs.c +12 -12
  1380. data/ext/zpbstf.c +1 -1
  1381. data/ext/zpbsv.c +1 -1
  1382. data/ext/zpbsvx.c +23 -23
  1383. data/ext/zpbtf2.c +1 -1
  1384. data/ext/zpbtrf.c +1 -1
  1385. data/ext/zpbtrs.c +1 -1
  1386. data/ext/zpftrf.c +2 -2
  1387. data/ext/zpftri.c +2 -2
  1388. data/ext/zpftrs.c +2 -2
  1389. data/ext/zpocon.c +1 -1
  1390. data/ext/zporfs.c +23 -23
  1391. data/ext/zporfsx.c +22 -22
  1392. data/ext/zposv.c +9 -9
  1393. data/ext/zposvx.c +12 -12
  1394. data/ext/zposvxx.c +20 -20
  1395. data/ext/zpotf2.c +1 -1
  1396. data/ext/zpotrf.c +1 -1
  1397. data/ext/zpotri.c +1 -1
  1398. data/ext/zpotrs.c +9 -9
  1399. data/ext/zppcon.c +1 -1
  1400. data/ext/zppequ.c +1 -1
  1401. data/ext/zpprfs.c +20 -20
  1402. data/ext/zppsv.c +1 -1
  1403. data/ext/zppsvx.c +12 -12
  1404. data/ext/zpptrf.c +1 -1
  1405. data/ext/zpptri.c +1 -1
  1406. data/ext/zpptrs.c +1 -1
  1407. data/ext/zpstf2.c +2 -2
  1408. data/ext/zpstrf.c +2 -2
  1409. data/ext/zptcon.c +1 -1
  1410. data/ext/zpteqr.c +10 -10
  1411. data/ext/zptrfs.c +12 -12
  1412. data/ext/zptsv.c +1 -1
  1413. data/ext/zptsvx.c +19 -19
  1414. data/ext/zpttrs.c +1 -1
  1415. data/ext/zptts2.c +1 -1
  1416. data/ext/zrot.c +11 -11
  1417. data/ext/zspcon.c +1 -1
  1418. data/ext/zspmv.c +15 -15
  1419. data/ext/zspr.c +11 -11
  1420. data/ext/zsprfs.c +10 -10
  1421. data/ext/zspsv.c +1 -1
  1422. data/ext/zspsvx.c +20 -20
  1423. data/ext/zsptrf.c +1 -1
  1424. data/ext/zsptri.c +1 -1
  1425. data/ext/zsptrs.c +1 -1
  1426. data/ext/zstedc.c +10 -10
  1427. data/ext/zstegr.c +18 -18
  1428. data/ext/zstein.c +14 -14
  1429. data/ext/zstemr.c +22 -22
  1430. data/ext/zsteqr.c +10 -10
  1431. data/ext/zsycon.c +12 -12
  1432. data/ext/zsyconv.c +12 -12
  1433. data/ext/zsyequb.c +1 -1
  1434. data/ext/zsymv.c +13 -13
  1435. data/ext/zsyr.c +4 -4
  1436. data/ext/zsyrfs.c +31 -31
  1437. data/ext/zsyrfsx.c +43 -43
  1438. data/ext/zsysv.c +10 -10
  1439. data/ext/zsysvx.c +15 -15
  1440. data/ext/zsysvxx.c +41 -41
  1441. data/ext/zsyswapr.c +2 -2
  1442. data/ext/zsytf2.c +1 -1
  1443. data/ext/zsytrf.c +2 -2
  1444. data/ext/zsytri.c +1 -1
  1445. data/ext/zsytri2.c +3 -3
  1446. data/ext/zsytri2x.c +2 -2
  1447. data/ext/zsytrs.c +10 -10
  1448. data/ext/zsytrs2.c +10 -10
  1449. data/ext/ztbcon.c +3 -3
  1450. data/ext/ztbrfs.c +14 -14
  1451. data/ext/ztbtrs.c +2 -2
  1452. data/ext/ztfsm.c +5 -5
  1453. data/ext/ztftri.c +1 -1
  1454. data/ext/ztfttp.c +1 -1
  1455. data/ext/ztfttr.c +1 -1
  1456. data/ext/ztgevc.c +32 -32
  1457. data/ext/ztgex2.c +14 -14
  1458. data/ext/ztgexc.c +25 -25
  1459. data/ext/ztgsen.c +37 -37
  1460. data/ext/ztgsja.c +26 -26
  1461. data/ext/ztgsna.c +24 -24
  1462. data/ext/ztgsy2.c +22 -22
  1463. data/ext/ztgsyl.c +42 -42
  1464. data/ext/ztpcon.c +2 -2
  1465. data/ext/ztprfs.c +13 -13
  1466. data/ext/ztptri.c +1 -1
  1467. data/ext/ztptrs.c +3 -3
  1468. data/ext/ztpttf.c +1 -1
  1469. data/ext/ztpttr.c +1 -1
  1470. data/ext/ztrcon.c +3 -3
  1471. data/ext/ztrevc.c +12 -12
  1472. data/ext/ztrexc.c +1 -1
  1473. data/ext/ztrrfs.c +11 -11
  1474. data/ext/ztrsen.c +13 -13
  1475. data/ext/ztrsna.c +20 -20
  1476. data/ext/ztrsyl.c +11 -11
  1477. data/ext/ztrti2.c +1 -1
  1478. data/ext/ztrtri.c +1 -1
  1479. data/ext/ztrtrs.c +10 -10
  1480. data/ext/ztrttf.c +1 -1
  1481. data/ext/ztrttp.c +1 -1
  1482. data/ext/zunbdb.c +15 -15
  1483. data/ext/zuncsd.c +27 -27
  1484. data/ext/zung2l.c +9 -9
  1485. data/ext/zung2r.c +9 -9
  1486. data/ext/zungbr.c +1 -1
  1487. data/ext/zunghr.c +7 -7
  1488. data/ext/zungl2.c +1 -1
  1489. data/ext/zunglq.c +9 -9
  1490. data/ext/zungql.c +9 -9
  1491. data/ext/zungqr.c +9 -9
  1492. data/ext/zungr2.c +1 -1
  1493. data/ext/zungrq.c +9 -9
  1494. data/ext/zungtr.c +6 -6
  1495. data/ext/zunm2l.c +12 -12
  1496. data/ext/zunm2r.c +12 -12
  1497. data/ext/zunmbr.c +3 -3
  1498. data/ext/zunmhr.c +12 -12
  1499. data/ext/zunml2.c +1 -1
  1500. data/ext/zunmlq.c +7 -7
  1501. data/ext/zunmql.c +12 -12
  1502. data/ext/zunmqr.c +12 -12
  1503. data/ext/zunmr2.c +1 -1
  1504. data/ext/zunmr3.c +10 -10
  1505. data/ext/zunmrq.c +7 -7
  1506. data/ext/zunmrz.c +10 -10
  1507. data/ext/zunmtr.c +17 -17
  1508. data/ext/zupgtr.c +8 -8
  1509. data/ext/zupmtr.c +2 -2
  1510. metadata +3183 -3329
  1511. data/doc/bd.html +0 -16
  1512. data/doc/c.html +0 -36
  1513. data/doc/cbd.html +0 -161
  1514. data/doc/cgb.html +0 -1865
  1515. data/doc/cge.html +0 -5261
  1516. data/doc/cgg.html +0 -2027
  1517. data/doc/cgt.html +0 -711
  1518. data/doc/chb.html +0 -1031
  1519. data/doc/che.html +0 -3165
  1520. data/doc/chg.html +0 -201
  1521. data/doc/chp.html +0 -1696
  1522. data/doc/chs.html +0 -386
  1523. data/doc/cpb.html +0 -994
  1524. data/doc/cpo.html +0 -1520
  1525. data/doc/cpp.html +0 -770
  1526. data/doc/cpt.html +0 -706
  1527. data/doc/csp.html +0 -905
  1528. data/doc/cst.html +0 -742
  1529. data/doc/csy.html +0 -2194
  1530. data/doc/ctb.html +0 -284
  1531. data/doc/ctg.html +0 -1544
  1532. data/doc/ctp.html +0 -553
  1533. data/doc/ctr.html +0 -1281
  1534. data/doc/ctz.html +0 -211
  1535. data/doc/cun.html +0 -2553
  1536. data/doc/cup.html +0 -166
  1537. data/doc/d.html +0 -35
  1538. data/doc/dbd.html +0 -304
  1539. data/doc/ddi.html +0 -87
  1540. data/doc/dgb.html +0 -1857
  1541. data/doc/dge.html +0 -7267
  1542. data/doc/dgg.html +0 -2102
  1543. data/doc/dgt.html +0 -713
  1544. data/doc/dhg.html +0 -225
  1545. data/doc/dhs.html +0 -414
  1546. data/doc/di.html +0 -14
  1547. data/doc/dop.html +0 -166
  1548. data/doc/dor.html +0 -2540
  1549. data/doc/dpb.html +0 -992
  1550. data/doc/dpo.html +0 -1517
  1551. data/doc/dpp.html +0 -770
  1552. data/doc/dpt.html +0 -675
  1553. data/doc/dsb.html +0 -995
  1554. data/doc/dsp.html +0 -1777
  1555. data/doc/dst.html +0 -1422
  1556. data/doc/dsy.html +0 -3433
  1557. data/doc/dtb.html +0 -284
  1558. data/doc/dtg.html +0 -1730
  1559. data/doc/dtp.html +0 -532
  1560. data/doc/dtr.html +0 -1346
  1561. data/doc/dtz.html +0 -211
  1562. data/doc/gb.html +0 -16
  1563. data/doc/ge.html +0 -16
  1564. data/doc/gg.html +0 -16
  1565. data/doc/gt.html +0 -16
  1566. data/doc/hb.html +0 -14
  1567. data/doc/he.html +0 -14
  1568. data/doc/hg.html +0 -16
  1569. data/doc/hp.html +0 -14
  1570. data/doc/hs.html +0 -16
  1571. data/doc/index.html +0 -53
  1572. data/doc/op.html +0 -14
  1573. data/doc/or.html +0 -14
  1574. data/doc/others.html +0 -1142
  1575. data/doc/pb.html +0 -16
  1576. data/doc/po.html +0 -16
  1577. data/doc/pp.html +0 -16
  1578. data/doc/pt.html +0 -16
  1579. data/doc/s.html +0 -35
  1580. data/doc/sb.html +0 -14
  1581. data/doc/sbd.html +0 -303
  1582. data/doc/sdi.html +0 -87
  1583. data/doc/sgb.html +0 -1863
  1584. data/doc/sge.html +0 -7263
  1585. data/doc/sgg.html +0 -2102
  1586. data/doc/sgt.html +0 -713
  1587. data/doc/shg.html +0 -225
  1588. data/doc/shs.html +0 -414
  1589. data/doc/sop.html +0 -166
  1590. data/doc/sor.html +0 -2540
  1591. data/doc/sp.html +0 -16
  1592. data/doc/spb.html +0 -992
  1593. data/doc/spo.html +0 -1520
  1594. data/doc/spp.html +0 -770
  1595. data/doc/spt.html +0 -675
  1596. data/doc/ssb.html +0 -995
  1597. data/doc/ssp.html +0 -1647
  1598. data/doc/sst.html +0 -1423
  1599. data/doc/ssy.html +0 -3438
  1600. data/doc/st.html +0 -16
  1601. data/doc/stb.html +0 -284
  1602. data/doc/stg.html +0 -1729
  1603. data/doc/stp.html +0 -532
  1604. data/doc/str.html +0 -1346
  1605. data/doc/stz.html +0 -211
  1606. data/doc/sy.html +0 -16
  1607. data/doc/tb.html +0 -16
  1608. data/doc/tg.html +0 -16
  1609. data/doc/tp.html +0 -16
  1610. data/doc/tr.html +0 -16
  1611. data/doc/tz.html +0 -16
  1612. data/doc/un.html +0 -14
  1613. data/doc/up.html +0 -14
  1614. data/doc/z.html +0 -36
  1615. data/doc/zbd.html +0 -161
  1616. data/doc/zgb.html +0 -1862
  1617. data/doc/zge.html +0 -5258
  1618. data/doc/zgg.html +0 -2027
  1619. data/doc/zgt.html +0 -711
  1620. data/doc/zhb.html +0 -1031
  1621. data/doc/zhe.html +0 -3162
  1622. data/doc/zhg.html +0 -201
  1623. data/doc/zhp.html +0 -1697
  1624. data/doc/zhs.html +0 -386
  1625. data/doc/zpb.html +0 -994
  1626. data/doc/zpo.html +0 -1517
  1627. data/doc/zpp.html +0 -770
  1628. data/doc/zpt.html +0 -706
  1629. data/doc/zsp.html +0 -905
  1630. data/doc/zst.html +0 -743
  1631. data/doc/zsy.html +0 -2191
  1632. data/doc/ztb.html +0 -284
  1633. data/doc/ztg.html +0 -1544
  1634. data/doc/ztp.html +0 -553
  1635. data/doc/ztr.html +0 -1281
  1636. data/doc/ztz.html +0 -211
  1637. data/doc/zun.html +0 -2553
  1638. data/doc/zup.html +0 -166
data/doc/zgg.html DELETED
@@ -1,2027 +0,0 @@
1
- <HTML>
2
- <HEAD>
3
- <TITLE>COMPLEX*16 or DOUBLE COMPLEX 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>COMPLEX*16 or DOUBLE COMPLEX routines for general matrices, generalized problem (i.e., a pair of general matrices) matrix</H1>
8
- <UL>
9
- <LI><A HREF="#zggbak">zggbak</A></LI>
10
- <LI><A HREF="#zggbal">zggbal</A></LI>
11
- <LI><A HREF="#zgges">zgges</A></LI>
12
- <LI><A HREF="#zggesx">zggesx</A></LI>
13
- <LI><A HREF="#zggev">zggev</A></LI>
14
- <LI><A HREF="#zggevx">zggevx</A></LI>
15
- <LI><A HREF="#zggglm">zggglm</A></LI>
16
- <LI><A HREF="#zgghrd">zgghrd</A></LI>
17
- <LI><A HREF="#zgglse">zgglse</A></LI>
18
- <LI><A HREF="#zggqrf">zggqrf</A></LI>
19
- <LI><A HREF="#zggrqf">zggrqf</A></LI>
20
- <LI><A HREF="#zggsvd">zggsvd</A></LI>
21
- <LI><A HREF="#zggsvp">zggsvp</A></LI>
22
- </UL>
23
-
24
- <A NAME="zggbak"></A>
25
- <H2>zggbak</H2>
26
- <PRE>
27
- USAGE:
28
- info, v = NumRu::Lapack.zggbak( job, side, ilo, ihi, lscale, rscale, v, [:usage => usage, :help => help])
29
-
30
-
31
- FORTRAN MANUAL
32
- SUBROUTINE ZGGBAK( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V, LDV, INFO )
33
-
34
- * Purpose
35
- * =======
36
- *
37
- * ZGGBAK forms the right or left eigenvectors of a complex 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
- * ZGGBAL.
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 ZGGBAL.
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 ZGGBAL.
65
- * 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
66
- *
67
- * LSCALE (input) DOUBLE PRECISION 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 ZGGBAL.
70
- *
71
- * RSCALE (input) DOUBLE PRECISION 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 ZGGBAL.
74
- *
75
- * M (input) INTEGER
76
- * The number of columns of the matrix V. M >= 0.
77
- *
78
- * V (input/output) COMPLEX*16 array, dimension (LDV,M)
79
- * On entry, the matrix of right or left eigenvectors to be
80
- * transformed, as returned by ZTGEVC.
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 XERBLA, ZDSCAL, ZSWAP
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="zggbal"></A>
119
- <H2>zggbal</H2>
120
- <PRE>
121
- USAGE:
122
- ilo, ihi, lscale, rscale, info, a, b = NumRu::Lapack.zggbal( job, a, b, [:usage => usage, :help => help])
123
-
124
-
125
- FORTRAN MANUAL
126
- SUBROUTINE ZGGBAL( JOB, N, A, LDA, B, LDB, ILO, IHI, LSCALE, RSCALE, WORK, INFO )
127
-
128
- * Purpose
129
- * =======
130
- *
131
- * ZGGBAL balances a pair of general complex 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) COMPLEX*16 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) COMPLEX*16 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) DOUBLE PRECISION 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) is the scaling factor
184
- * 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) DOUBLE PRECISION 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) is the scaling
195
- * factor applied to column j, then
196
- * RSCALE(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="zgges"></A>
225
- <H2>zgges</H2>
226
- <PRE>
227
- USAGE:
228
- sdim, alpha, beta, vsl, vsr, work, info, a, b = NumRu::Lapack.zgges( jobvsl, jobvsr, sort, a, b, [:lwork => lwork, :usage => usage, :help => help]){|a,b| ... }
229
-
230
-
231
- FORTRAN MANUAL
232
- SUBROUTINE ZGGES( JOBVSL, JOBVSR, SORT, SELCTG, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, WORK, LWORK, RWORK, BWORK, INFO )
233
-
234
- * Purpose
235
- * =======
236
- *
237
- * ZGGES computes for a pair of N-by-N complex nonsymmetric matrices
238
- * (A,B), the generalized eigenvalues, the generalized complex Schur
239
- * form (S, T), and optionally left and/or right Schur vectors (VSL
240
- * and VSR). This gives the generalized Schur factorization
241
- *
242
- * (A,B) = ( (VSL)*S*(VSR)**H, (VSL)*T*(VSR)**H )
243
- *
244
- * where (VSR)**H is the conjugate-transpose of VSR.
245
- *
246
- * Optionally, it also orders the eigenvalues so that a selected cluster
247
- * of eigenvalues appears in the leading diagonal blocks of the upper
248
- * triangular matrix S and the upper triangular matrix T. The leading
249
- * columns of VSL and VSR then form an unitary basis for the
250
- * corresponding left and right eigenspaces (deflating subspaces).
251
- *
252
- * (If only the generalized eigenvalues are needed, use the driver
253
- * ZGGEV instead, which is faster.)
254
- *
255
- * A generalized eigenvalue for a pair of matrices (A,B) is a scalar w
256
- * or a ratio alpha/beta = w, such that A - w*B is singular. It is
257
- * usually represented as the pair (alpha,beta), as there is a
258
- * reasonable interpretation for beta=0, and even for both being zero.
259
- *
260
- * A pair of matrices (S,T) is in generalized complex Schur form if S
261
- * and T are upper triangular and, in addition, the diagonal elements
262
- * of T are non-negative real numbers.
263
- *
264
-
265
- * Arguments
266
- * =========
267
- *
268
- * JOBVSL (input) CHARACTER*1
269
- * = 'N': do not compute the left Schur vectors;
270
- * = 'V': compute the left Schur vectors.
271
- *
272
- * JOBVSR (input) CHARACTER*1
273
- * = 'N': do not compute the right Schur vectors;
274
- * = 'V': compute the right Schur vectors.
275
- *
276
- * SORT (input) CHARACTER*1
277
- * Specifies whether or not to order the eigenvalues on the
278
- * diagonal of the generalized Schur form.
279
- * = 'N': Eigenvalues are not ordered;
280
- * = 'S': Eigenvalues are ordered (see SELCTG).
281
- *
282
- * SELCTG (external procedure) LOGICAL FUNCTION of two COMPLEX*16 arguments
283
- * SELCTG must be declared EXTERNAL in the calling subroutine.
284
- * If SORT = 'N', SELCTG is not referenced.
285
- * If SORT = 'S', SELCTG is used to select eigenvalues to sort
286
- * to the top left of the Schur form.
287
- * An eigenvalue ALPHA(j)/BETA(j) is selected if
288
- * SELCTG(ALPHA(j),BETA(j)) is true.
289
- *
290
- * Note that a selected complex eigenvalue may no longer satisfy
291
- * SELCTG(ALPHA(j),BETA(j)) = .TRUE. after ordering, since
292
- * ordering may change the value of complex eigenvalues
293
- * (especially if the eigenvalue is ill-conditioned), in this
294
- * case INFO is set to N+2 (See INFO below).
295
- *
296
- * N (input) INTEGER
297
- * The order of the matrices A, B, VSL, and VSR. N >= 0.
298
- *
299
- * A (input/output) COMPLEX*16 array, dimension (LDA, N)
300
- * On entry, the first of the pair of matrices.
301
- * On exit, A has been overwritten by its generalized Schur
302
- * form S.
303
- *
304
- * LDA (input) INTEGER
305
- * The leading dimension of A. LDA >= max(1,N).
306
- *
307
- * B (input/output) COMPLEX*16 array, dimension (LDB, N)
308
- * On entry, the second of the pair of matrices.
309
- * On exit, B has been overwritten by its generalized Schur
310
- * form T.
311
- *
312
- * LDB (input) INTEGER
313
- * The leading dimension of B. LDB >= max(1,N).
314
- *
315
- * SDIM (output) INTEGER
316
- * If SORT = 'N', SDIM = 0.
317
- * If SORT = 'S', SDIM = number of eigenvalues (after sorting)
318
- * for which SELCTG is true.
319
- *
320
- * ALPHA (output) COMPLEX*16 array, dimension (N)
321
- * BETA (output) COMPLEX*16 array, dimension (N)
322
- * On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the
323
- * generalized eigenvalues. ALPHA(j), j=1,...,N and BETA(j),
324
- * j=1,...,N are the diagonals of the complex Schur form (A,B)
325
- * output by ZGGES. The BETA(j) will be non-negative real.
326
- *
327
- * Note: the quotients ALPHA(j)/BETA(j) may easily over- or
328
- * underflow, and BETA(j) may even be zero. Thus, the user
329
- * should avoid naively computing the ratio alpha/beta.
330
- * However, ALPHA will be always less than and usually
331
- * comparable with norm(A) in magnitude, and BETA always less
332
- * than and usually comparable with norm(B).
333
- *
334
- * VSL (output) COMPLEX*16 array, dimension (LDVSL,N)
335
- * If JOBVSL = 'V', VSL will contain the left Schur vectors.
336
- * Not referenced if JOBVSL = 'N'.
337
- *
338
- * LDVSL (input) INTEGER
339
- * The leading dimension of the matrix VSL. LDVSL >= 1, and
340
- * if JOBVSL = 'V', LDVSL >= N.
341
- *
342
- * VSR (output) COMPLEX*16 array, dimension (LDVSR,N)
343
- * If JOBVSR = 'V', VSR will contain the right Schur vectors.
344
- * Not referenced if JOBVSR = 'N'.
345
- *
346
- * LDVSR (input) INTEGER
347
- * The leading dimension of the matrix VSR. LDVSR >= 1, and
348
- * if JOBVSR = 'V', LDVSR >= N.
349
- *
350
- * WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
351
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
352
- *
353
- * LWORK (input) INTEGER
354
- * The dimension of the array WORK. LWORK >= max(1,2*N).
355
- * For good performance, LWORK must generally be larger.
356
- *
357
- * If LWORK = -1, then a workspace query is assumed; the routine
358
- * only calculates the optimal size of the WORK array, returns
359
- * this value as the first entry of the WORK array, and no error
360
- * message related to LWORK is issued by XERBLA.
361
- *
362
- * RWORK (workspace) DOUBLE PRECISION array, dimension (8*N)
363
- *
364
- * BWORK (workspace) LOGICAL array, dimension (N)
365
- * Not referenced if SORT = 'N'.
366
- *
367
- * INFO (output) INTEGER
368
- * = 0: successful exit
369
- * < 0: if INFO = -i, the i-th argument had an illegal value.
370
- * =1,...,N:
371
- * The QZ iteration failed. (A,B) are not in Schur
372
- * form, but ALPHA(j) and BETA(j) should be correct for
373
- * j=INFO+1,...,N.
374
- * > N: =N+1: other than QZ iteration failed in ZHGEQZ
375
- * =N+2: after reordering, roundoff changed values of
376
- * some complex eigenvalues so that leading
377
- * eigenvalues in the Generalized Schur form no
378
- * longer satisfy SELCTG=.TRUE. This could also
379
- * be caused due to scaling.
380
- * =N+3: reordering falied in ZTGSEN.
381
- *
382
-
383
- * =====================================================================
384
- *
385
-
386
-
387
- </PRE>
388
- <A HREF="#top">go to the page top</A>
389
-
390
- <A NAME="zggesx"></A>
391
- <H2>zggesx</H2>
392
- <PRE>
393
- USAGE:
394
- sdim, alpha, beta, vsl, vsr, rconde, rcondv, work, iwork, info, a, b = NumRu::Lapack.zggesx( jobvsl, jobvsr, sort, sense, a, b, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help]){|a,b| ... }
395
-
396
-
397
- FORTRAN MANUAL
398
- SUBROUTINE ZGGESX( JOBVSL, JOBVSR, SORT, SELCTG, SENSE, N, A, LDA, B, LDB, SDIM, ALPHA, BETA, VSL, LDVSL, VSR, LDVSR, RCONDE, RCONDV, WORK, LWORK, RWORK, IWORK, LIWORK, BWORK, INFO )
399
-
400
- * Purpose
401
- * =======
402
- *
403
- * ZGGESX computes for a pair of N-by-N complex nonsymmetric matrices
404
- * (A,B), the generalized eigenvalues, the complex Schur form (S,T),
405
- * and, optionally, the left and/or right matrices of Schur vectors (VSL
406
- * and VSR). This gives the generalized Schur factorization
407
- *
408
- * (A,B) = ( (VSL) S (VSR)**H, (VSL) T (VSR)**H )
409
- *
410
- * where (VSR)**H is the conjugate-transpose of VSR.
411
- *
412
- * Optionally, it also orders the eigenvalues so that a selected cluster
413
- * of eigenvalues appears in the leading diagonal blocks of the upper
414
- * triangular matrix S and the upper triangular matrix T; computes
415
- * a reciprocal condition number for the average of the selected
416
- * eigenvalues (RCONDE); and computes a reciprocal condition number for
417
- * the right and left deflating subspaces corresponding to the selected
418
- * eigenvalues (RCONDV). The leading columns of VSL and VSR then form
419
- * an orthonormal basis for the corresponding left and right eigenspaces
420
- * (deflating subspaces).
421
- *
422
- * A generalized eigenvalue for a pair of matrices (A,B) is a scalar w
423
- * or a ratio alpha/beta = w, such that A - w*B is singular. It is
424
- * usually represented as the pair (alpha,beta), as there is a
425
- * reasonable interpretation for beta=0 or for both being zero.
426
- *
427
- * A pair of matrices (S,T) is in generalized complex Schur form if T is
428
- * upper triangular with non-negative diagonal and S is upper
429
- * triangular.
430
- *
431
-
432
- * Arguments
433
- * =========
434
- *
435
- * JOBVSL (input) CHARACTER*1
436
- * = 'N': do not compute the left Schur vectors;
437
- * = 'V': compute the left Schur vectors.
438
- *
439
- * JOBVSR (input) CHARACTER*1
440
- * = 'N': do not compute the right Schur vectors;
441
- * = 'V': compute the right Schur vectors.
442
- *
443
- * SORT (input) CHARACTER*1
444
- * Specifies whether or not to order the eigenvalues on the
445
- * diagonal of the generalized Schur form.
446
- * = 'N': Eigenvalues are not ordered;
447
- * = 'S': Eigenvalues are ordered (see SELCTG).
448
- *
449
- * SELCTG (external procedure) LOGICAL FUNCTION of two COMPLEX*16 arguments
450
- * SELCTG must be declared EXTERNAL in the calling subroutine.
451
- * If SORT = 'N', SELCTG is not referenced.
452
- * If SORT = 'S', SELCTG is used to select eigenvalues to sort
453
- * to the top left of the Schur form.
454
- * Note that a selected complex eigenvalue may no longer satisfy
455
- * SELCTG(ALPHA(j),BETA(j)) = .TRUE. after ordering, since
456
- * ordering may change the value of complex eigenvalues
457
- * (especially if the eigenvalue is ill-conditioned), in this
458
- * case INFO is set to N+3 see INFO below).
459
- *
460
- * SENSE (input) CHARACTER*1
461
- * Determines which reciprocal condition numbers are computed.
462
- * = 'N' : None are computed;
463
- * = 'E' : Computed for average of selected eigenvalues only;
464
- * = 'V' : Computed for selected deflating subspaces only;
465
- * = 'B' : Computed for both.
466
- * If SENSE = 'E', 'V', or 'B', SORT must equal 'S'.
467
- *
468
- * N (input) INTEGER
469
- * The order of the matrices A, B, VSL, and VSR. N >= 0.
470
- *
471
- * A (input/output) COMPLEX*16 array, dimension (LDA, N)
472
- * On entry, the first of the pair of matrices.
473
- * On exit, A has been overwritten by its generalized Schur
474
- * form S.
475
- *
476
- * LDA (input) INTEGER
477
- * The leading dimension of A. LDA >= max(1,N).
478
- *
479
- * B (input/output) COMPLEX*16 array, dimension (LDB, N)
480
- * On entry, the second of the pair of matrices.
481
- * On exit, B has been overwritten by its generalized Schur
482
- * form T.
483
- *
484
- * LDB (input) INTEGER
485
- * The leading dimension of B. LDB >= max(1,N).
486
- *
487
- * SDIM (output) INTEGER
488
- * If SORT = 'N', SDIM = 0.
489
- * If SORT = 'S', SDIM = number of eigenvalues (after sorting)
490
- * for which SELCTG is true.
491
- *
492
- * ALPHA (output) COMPLEX*16 array, dimension (N)
493
- * BETA (output) COMPLEX*16 array, dimension (N)
494
- * On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the
495
- * generalized eigenvalues. ALPHA(j) and BETA(j),j=1,...,N are
496
- * the diagonals of the complex Schur form (S,T). BETA(j) will
497
- * be non-negative real.
498
- *
499
- * Note: the quotients ALPHA(j)/BETA(j) may easily over- or
500
- * underflow, and BETA(j) may even be zero. Thus, the user
501
- * should avoid naively computing the ratio alpha/beta.
502
- * However, ALPHA will be always less than and usually
503
- * comparable with norm(A) in magnitude, and BETA always less
504
- * than and usually comparable with norm(B).
505
- *
506
- * VSL (output) COMPLEX*16 array, dimension (LDVSL,N)
507
- * If JOBVSL = 'V', VSL will contain the left Schur vectors.
508
- * Not referenced if JOBVSL = 'N'.
509
- *
510
- * LDVSL (input) INTEGER
511
- * The leading dimension of the matrix VSL. LDVSL >=1, and
512
- * if JOBVSL = 'V', LDVSL >= N.
513
- *
514
- * VSR (output) COMPLEX*16 array, dimension (LDVSR,N)
515
- * If JOBVSR = 'V', VSR will contain the right Schur vectors.
516
- * Not referenced if JOBVSR = 'N'.
517
- *
518
- * LDVSR (input) INTEGER
519
- * The leading dimension of the matrix VSR. LDVSR >= 1, and
520
- * if JOBVSR = 'V', LDVSR >= N.
521
- *
522
- * RCONDE (output) DOUBLE PRECISION array, dimension ( 2 )
523
- * If SENSE = 'E' or 'B', RCONDE(1) and RCONDE(2) contain the
524
- * reciprocal condition numbers for the average of the selected
525
- * eigenvalues.
526
- * Not referenced if SENSE = 'N' or 'V'.
527
- *
528
- * RCONDV (output) DOUBLE PRECISION array, dimension ( 2 )
529
- * If SENSE = 'V' or 'B', RCONDV(1) and RCONDV(2) contain the
530
- * reciprocal condition number for the selected deflating
531
- * subspaces.
532
- * Not referenced if SENSE = 'N' or 'E'.
533
- *
534
- * WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
535
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
536
- *
537
- * LWORK (input) INTEGER
538
- * The dimension of the array WORK.
539
- * If N = 0, LWORK >= 1, else if SENSE = 'E', 'V', or 'B',
540
- * LWORK >= MAX(1,2*N,2*SDIM*(N-SDIM)), else
541
- * LWORK >= MAX(1,2*N). Note that 2*SDIM*(N-SDIM) <= N*N/2.
542
- * Note also that an error is only returned if
543
- * LWORK < MAX(1,2*N), but if SENSE = 'E' or 'V' or 'B' this may
544
- * not be large enough.
545
- *
546
- * If LWORK = -1, then a workspace query is assumed; the routine
547
- * only calculates the bound on the optimal size of the WORK
548
- * array and the minimum size of the IWORK array, returns these
549
- * values as the first entries of the WORK and IWORK arrays, and
550
- * no error message related to LWORK or LIWORK is issued by
551
- * XERBLA.
552
- *
553
- * RWORK (workspace) DOUBLE PRECISION array, dimension ( 8*N )
554
- * Real workspace.
555
- *
556
- * IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
557
- * On exit, if INFO = 0, IWORK(1) returns the minimum LIWORK.
558
- *
559
- * LIWORK (input) INTEGER
560
- * The dimension of the array IWORK.
561
- * If SENSE = 'N' or N = 0, LIWORK >= 1, otherwise
562
- * LIWORK >= N+2.
563
- *
564
- * If LIWORK = -1, then a workspace query is assumed; the
565
- * routine only calculates the bound on the optimal size of the
566
- * WORK array and the minimum size of the IWORK array, returns
567
- * these values as the first entries of the WORK and IWORK
568
- * arrays, and no error message related to LWORK or LIWORK is
569
- * issued by XERBLA.
570
- *
571
- * BWORK (workspace) LOGICAL array, dimension (N)
572
- * Not referenced if SORT = 'N'.
573
- *
574
- * INFO (output) INTEGER
575
- * = 0: successful exit
576
- * < 0: if INFO = -i, the i-th argument had an illegal value.
577
- * = 1,...,N:
578
- * The QZ iteration failed. (A,B) are not in Schur
579
- * form, but ALPHA(j) and BETA(j) should be correct for
580
- * j=INFO+1,...,N.
581
- * > N: =N+1: other than QZ iteration failed in ZHGEQZ
582
- * =N+2: after reordering, roundoff changed values of
583
- * some complex eigenvalues so that leading
584
- * eigenvalues in the Generalized Schur form no
585
- * longer satisfy SELCTG=.TRUE. This could also
586
- * be caused due to scaling.
587
- * =N+3: reordering failed in ZTGSEN.
588
- *
589
-
590
- * =====================================================================
591
- *
592
-
593
-
594
- </PRE>
595
- <A HREF="#top">go to the page top</A>
596
-
597
- <A NAME="zggev"></A>
598
- <H2>zggev</H2>
599
- <PRE>
600
- USAGE:
601
- alpha, beta, vl, vr, work, rwork, info, a, b = NumRu::Lapack.zggev( jobvl, jobvr, a, b, [:lwork => lwork, :usage => usage, :help => help])
602
-
603
-
604
- FORTRAN MANUAL
605
- SUBROUTINE ZGGEV( JOBVL, JOBVR, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, WORK, LWORK, RWORK, INFO )
606
-
607
- * Purpose
608
- * =======
609
- *
610
- * ZGGEV computes for a pair of N-by-N complex nonsymmetric matrices
611
- * (A,B), the generalized eigenvalues, and optionally, the left and/or
612
- * right generalized eigenvectors.
613
- *
614
- * A generalized eigenvalue for a pair of matrices (A,B) is a scalar
615
- * lambda or a ratio alpha/beta = lambda, such that A - lambda*B is
616
- * singular. It is usually represented as the pair (alpha,beta), as
617
- * there is a reasonable interpretation for beta=0, and even for both
618
- * being zero.
619
- *
620
- * The right generalized eigenvector v(j) corresponding to the
621
- * generalized eigenvalue lambda(j) of (A,B) satisfies
622
- *
623
- * A * v(j) = lambda(j) * B * v(j).
624
- *
625
- * The left generalized eigenvector u(j) corresponding to the
626
- * generalized eigenvalues lambda(j) of (A,B) satisfies
627
- *
628
- * u(j)**H * A = lambda(j) * u(j)**H * B
629
- *
630
- * where u(j)**H is the conjugate-transpose of u(j).
631
- *
632
-
633
- * Arguments
634
- * =========
635
- *
636
- * JOBVL (input) CHARACTER*1
637
- * = 'N': do not compute the left generalized eigenvectors;
638
- * = 'V': compute the left generalized eigenvectors.
639
- *
640
- * JOBVR (input) CHARACTER*1
641
- * = 'N': do not compute the right generalized eigenvectors;
642
- * = 'V': compute the right generalized eigenvectors.
643
- *
644
- * N (input) INTEGER
645
- * The order of the matrices A, B, VL, and VR. N >= 0.
646
- *
647
- * A (input/output) COMPLEX*16 array, dimension (LDA, N)
648
- * On entry, the matrix A in the pair (A,B).
649
- * On exit, A has been overwritten.
650
- *
651
- * LDA (input) INTEGER
652
- * The leading dimension of A. LDA >= max(1,N).
653
- *
654
- * B (input/output) COMPLEX*16 array, dimension (LDB, N)
655
- * On entry, the matrix B in the pair (A,B).
656
- * On exit, B has been overwritten.
657
- *
658
- * LDB (input) INTEGER
659
- * The leading dimension of B. LDB >= max(1,N).
660
- *
661
- * ALPHA (output) COMPLEX*16 array, dimension (N)
662
- * BETA (output) COMPLEX*16 array, dimension (N)
663
- * On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the
664
- * generalized eigenvalues.
665
- *
666
- * Note: the quotients ALPHA(j)/BETA(j) may easily over- or
667
- * underflow, and BETA(j) may even be zero. Thus, the user
668
- * should avoid naively computing the ratio alpha/beta.
669
- * However, ALPHA will be always less than and usually
670
- * comparable with norm(A) in magnitude, and BETA always less
671
- * than and usually comparable with norm(B).
672
- *
673
- * VL (output) COMPLEX*16 array, dimension (LDVL,N)
674
- * If JOBVL = 'V', the left generalized eigenvectors u(j) are
675
- * stored one after another in the columns of VL, in the same
676
- * order as their eigenvalues.
677
- * Each eigenvector is scaled so the largest component has
678
- * abs(real part) + abs(imag. part) = 1.
679
- * Not referenced if JOBVL = 'N'.
680
- *
681
- * LDVL (input) INTEGER
682
- * The leading dimension of the matrix VL. LDVL >= 1, and
683
- * if JOBVL = 'V', LDVL >= N.
684
- *
685
- * VR (output) COMPLEX*16 array, dimension (LDVR,N)
686
- * If JOBVR = 'V', the right generalized eigenvectors v(j) are
687
- * stored one after another in the columns of VR, in the same
688
- * order as their eigenvalues.
689
- * Each eigenvector is scaled so the largest component has
690
- * abs(real part) + abs(imag. part) = 1.
691
- * Not referenced if JOBVR = 'N'.
692
- *
693
- * LDVR (input) INTEGER
694
- * The leading dimension of the matrix VR. LDVR >= 1, and
695
- * if JOBVR = 'V', LDVR >= N.
696
- *
697
- * WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
698
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
699
- *
700
- * LWORK (input) INTEGER
701
- * The dimension of the array WORK. LWORK >= max(1,2*N).
702
- * For good performance, LWORK must generally be larger.
703
- *
704
- * If LWORK = -1, then a workspace query is assumed; the routine
705
- * only calculates the optimal size of the WORK array, returns
706
- * this value as the first entry of the WORK array, and no error
707
- * message related to LWORK is issued by XERBLA.
708
- *
709
- * RWORK (workspace/output) DOUBLE PRECISION array, dimension (8*N)
710
- *
711
- * INFO (output) INTEGER
712
- * = 0: successful exit
713
- * < 0: if INFO = -i, the i-th argument had an illegal value.
714
- * =1,...,N:
715
- * The QZ iteration failed. No eigenvectors have been
716
- * calculated, but ALPHA(j) and BETA(j) should be
717
- * correct for j=INFO+1,...,N.
718
- * > N: =N+1: other then QZ iteration failed in DHGEQZ,
719
- * =N+2: error return from DTGEVC.
720
- *
721
-
722
- * =====================================================================
723
- *
724
-
725
-
726
- </PRE>
727
- <A HREF="#top">go to the page top</A>
728
-
729
- <A NAME="zggevx"></A>
730
- <H2>zggevx</H2>
731
- <PRE>
732
- USAGE:
733
- alpha, beta, vl, vr, ilo, ihi, lscale, rscale, abnrm, bbnrm, rconde, rcondv, work, info, a, b = NumRu::Lapack.zggevx( balanc, jobvl, jobvr, sense, a, b, [:lwork => lwork, :usage => usage, :help => help])
734
-
735
-
736
- FORTRAN MANUAL
737
- SUBROUTINE ZGGEVX( BALANC, JOBVL, JOBVR, SENSE, N, A, LDA, B, LDB, ALPHA, BETA, VL, LDVL, VR, LDVR, ILO, IHI, LSCALE, RSCALE, ABNRM, BBNRM, RCONDE, RCONDV, WORK, LWORK, RWORK, IWORK, BWORK, INFO )
738
-
739
- * Purpose
740
- * =======
741
- *
742
- * ZGGEVX computes for a pair of N-by-N complex nonsymmetric matrices
743
- * (A,B) the generalized eigenvalues, and optionally, the left and/or
744
- * right generalized eigenvectors.
745
- *
746
- * Optionally, it also computes a balancing transformation to improve
747
- * the conditioning of the eigenvalues and eigenvectors (ILO, IHI,
748
- * LSCALE, RSCALE, ABNRM, and BBNRM), reciprocal condition numbers for
749
- * the eigenvalues (RCONDE), and reciprocal condition numbers for the
750
- * right eigenvectors (RCONDV).
751
- *
752
- * A generalized eigenvalue for a pair of matrices (A,B) is a scalar
753
- * lambda or a ratio alpha/beta = lambda, such that A - lambda*B is
754
- * singular. It is usually represented as the pair (alpha,beta), as
755
- * there is a reasonable interpretation for beta=0, and even for both
756
- * being zero.
757
- *
758
- * The right eigenvector v(j) corresponding to the eigenvalue lambda(j)
759
- * of (A,B) satisfies
760
- * A * v(j) = lambda(j) * B * v(j) .
761
- * The left eigenvector u(j) corresponding to the eigenvalue lambda(j)
762
- * of (A,B) satisfies
763
- * u(j)**H * A = lambda(j) * u(j)**H * B.
764
- * where u(j)**H is the conjugate-transpose of u(j).
765
- *
766
- *
767
-
768
- * Arguments
769
- * =========
770
- *
771
- * BALANC (input) CHARACTER*1
772
- * Specifies the balance option to be performed:
773
- * = 'N': do not diagonally scale or permute;
774
- * = 'P': permute only;
775
- * = 'S': scale only;
776
- * = 'B': both permute and scale.
777
- * Computed reciprocal condition numbers will be for the
778
- * matrices after permuting and/or balancing. Permuting does
779
- * not change condition numbers (in exact arithmetic), but
780
- * balancing does.
781
- *
782
- * JOBVL (input) CHARACTER*1
783
- * = 'N': do not compute the left generalized eigenvectors;
784
- * = 'V': compute the left generalized eigenvectors.
785
- *
786
- * JOBVR (input) CHARACTER*1
787
- * = 'N': do not compute the right generalized eigenvectors;
788
- * = 'V': compute the right generalized eigenvectors.
789
- *
790
- * SENSE (input) CHARACTER*1
791
- * Determines which reciprocal condition numbers are computed.
792
- * = 'N': none are computed;
793
- * = 'E': computed for eigenvalues only;
794
- * = 'V': computed for eigenvectors only;
795
- * = 'B': computed for eigenvalues and eigenvectors.
796
- *
797
- * N (input) INTEGER
798
- * The order of the matrices A, B, VL, and VR. N >= 0.
799
- *
800
- * A (input/output) COMPLEX*16 array, dimension (LDA, N)
801
- * On entry, the matrix A in the pair (A,B).
802
- * On exit, A has been overwritten. If JOBVL='V' or JOBVR='V'
803
- * or both, then A contains the first part of the complex Schur
804
- * form of the "balanced" versions of the input A and B.
805
- *
806
- * LDA (input) INTEGER
807
- * The leading dimension of A. LDA >= max(1,N).
808
- *
809
- * B (input/output) COMPLEX*16 array, dimension (LDB, N)
810
- * On entry, the matrix B in the pair (A,B).
811
- * On exit, B has been overwritten. If JOBVL='V' or JOBVR='V'
812
- * or both, then B contains the second part of the complex
813
- * Schur form of the "balanced" versions of the input A and B.
814
- *
815
- * LDB (input) INTEGER
816
- * The leading dimension of B. LDB >= max(1,N).
817
- *
818
- * ALPHA (output) COMPLEX*16 array, dimension (N)
819
- * BETA (output) COMPLEX*16 array, dimension (N)
820
- * On exit, ALPHA(j)/BETA(j), j=1,...,N, will be the generalized
821
- * eigenvalues.
822
- *
823
- * Note: the quotient ALPHA(j)/BETA(j) ) may easily over- or
824
- * underflow, and BETA(j) may even be zero. Thus, the user
825
- * should avoid naively computing the ratio ALPHA/BETA.
826
- * However, ALPHA will be always less than and usually
827
- * comparable with norm(A) in magnitude, and BETA always less
828
- * than and usually comparable with norm(B).
829
- *
830
- * VL (output) COMPLEX*16 array, dimension (LDVL,N)
831
- * If JOBVL = 'V', the left generalized eigenvectors u(j) are
832
- * stored one after another in the columns of VL, in the same
833
- * order as their eigenvalues.
834
- * Each eigenvector will be scaled so the largest component
835
- * will have abs(real part) + abs(imag. part) = 1.
836
- * Not referenced if JOBVL = 'N'.
837
- *
838
- * LDVL (input) INTEGER
839
- * The leading dimension of the matrix VL. LDVL >= 1, and
840
- * if JOBVL = 'V', LDVL >= N.
841
- *
842
- * VR (output) COMPLEX*16 array, dimension (LDVR,N)
843
- * If JOBVR = 'V', the right generalized eigenvectors v(j) are
844
- * stored one after another in the columns of VR, in the same
845
- * order as their eigenvalues.
846
- * Each eigenvector will be scaled so the largest component
847
- * will have abs(real part) + abs(imag. part) = 1.
848
- * Not referenced if JOBVR = 'N'.
849
- *
850
- * LDVR (input) INTEGER
851
- * The leading dimension of the matrix VR. LDVR >= 1, and
852
- * if JOBVR = 'V', LDVR >= N.
853
- *
854
- * ILO (output) INTEGER
855
- * IHI (output) INTEGER
856
- * ILO and IHI are integer values such that on exit
857
- * A(i,j) = 0 and B(i,j) = 0 if i > j and
858
- * j = 1,...,ILO-1 or i = IHI+1,...,N.
859
- * If BALANC = 'N' or 'S', ILO = 1 and IHI = N.
860
- *
861
- * LSCALE (output) DOUBLE PRECISION array, dimension (N)
862
- * Details of the permutations and scaling factors applied
863
- * to the left side of A and B. If PL(j) is the index of the
864
- * row interchanged with row j, and DL(j) is the scaling
865
- * factor applied to row j, then
866
- * LSCALE(j) = PL(j) for j = 1,...,ILO-1
867
- * = DL(j) for j = ILO,...,IHI
868
- * = PL(j) for j = IHI+1,...,N.
869
- * The order in which the interchanges are made is N to IHI+1,
870
- * then 1 to ILO-1.
871
- *
872
- * RSCALE (output) DOUBLE PRECISION array, dimension (N)
873
- * Details of the permutations and scaling factors applied
874
- * to the right side of A and B. If PR(j) is the index of the
875
- * column interchanged with column j, and DR(j) is the scaling
876
- * factor applied to column j, then
877
- * RSCALE(j) = PR(j) for j = 1,...,ILO-1
878
- * = DR(j) for j = ILO,...,IHI
879
- * = PR(j) for j = IHI+1,...,N
880
- * The order in which the interchanges are made is N to IHI+1,
881
- * then 1 to ILO-1.
882
- *
883
- * ABNRM (output) DOUBLE PRECISION
884
- * The one-norm of the balanced matrix A.
885
- *
886
- * BBNRM (output) DOUBLE PRECISION
887
- * The one-norm of the balanced matrix B.
888
- *
889
- * RCONDE (output) DOUBLE PRECISION array, dimension (N)
890
- * If SENSE = 'E' or 'B', the reciprocal condition numbers of
891
- * the eigenvalues, stored in consecutive elements of the array.
892
- * If SENSE = 'N' or 'V', RCONDE is not referenced.
893
- *
894
- * RCONDV (output) DOUBLE PRECISION array, dimension (N)
895
- * If JOB = 'V' or 'B', the estimated reciprocal condition
896
- * numbers of the eigenvectors, stored in consecutive elements
897
- * of the array. If the eigenvalues cannot be reordered to
898
- * compute RCONDV(j), RCONDV(j) is set to 0; this can only occur
899
- * when the true value would be very small anyway.
900
- * If SENSE = 'N' or 'E', RCONDV is not referenced.
901
- *
902
- * WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
903
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
904
- *
905
- * LWORK (input) INTEGER
906
- * The dimension of the array WORK. LWORK >= max(1,2*N).
907
- * If SENSE = 'E', LWORK >= max(1,4*N).
908
- * If SENSE = 'V' or 'B', LWORK >= max(1,2*N*N+2*N).
909
- *
910
- * If LWORK = -1, then a workspace query is assumed; the routine
911
- * only calculates the optimal size of the WORK array, returns
912
- * this value as the first entry of the WORK array, and no error
913
- * message related to LWORK is issued by XERBLA.
914
- *
915
- * RWORK (workspace) REAL array, dimension (lrwork)
916
- * lrwork must be at least max(1,6*N) if BALANC = 'S' or 'B',
917
- * and at least max(1,2*N) otherwise.
918
- * Real workspace.
919
- *
920
- * IWORK (workspace) INTEGER array, dimension (N+2)
921
- * If SENSE = 'E', IWORK is not referenced.
922
- *
923
- * BWORK (workspace) LOGICAL array, dimension (N)
924
- * If SENSE = 'N', BWORK is not referenced.
925
- *
926
- * INFO (output) INTEGER
927
- * = 0: successful exit
928
- * < 0: if INFO = -i, the i-th argument had an illegal value.
929
- * = 1,...,N:
930
- * The QZ iteration failed. No eigenvectors have been
931
- * calculated, but ALPHA(j) and BETA(j) should be correct
932
- * for j=INFO+1,...,N.
933
- * > N: =N+1: other than QZ iteration failed in ZHGEQZ.
934
- * =N+2: error return from ZTGEVC.
935
- *
936
-
937
- * Further Details
938
- * ===============
939
- *
940
- * Balancing a matrix pair (A,B) includes, first, permuting rows and
941
- * columns to isolate eigenvalues, second, applying diagonal similarity
942
- * transformation to the rows and columns to make the rows and columns
943
- * as close in norm as possible. The computed reciprocal condition
944
- * numbers correspond to the balanced matrix. Permuting rows and columns
945
- * will not change the condition numbers (in exact arithmetic) but
946
- * diagonal scaling will. For further explanation of balancing, see
947
- * section 4.11.1.2 of LAPACK Users' Guide.
948
- *
949
- * An approximate error bound on the chordal distance between the i-th
950
- * computed generalized eigenvalue w and the corresponding exact
951
- * eigenvalue lambda is
952
- *
953
- * chord(w, lambda) <= EPS * norm(ABNRM, BBNRM) / RCONDE(I)
954
- *
955
- * An approximate error bound for the angle between the i-th computed
956
- * eigenvector VL(i) or VR(i) is given by
957
- *
958
- * EPS * norm(ABNRM, BBNRM) / DIF(i).
959
- *
960
- * For further explanation of the reciprocal condition numbers RCONDE
961
- * and RCONDV, see section 4.11 of LAPACK User's Guide.
962
- *
963
-
964
-
965
- </PRE>
966
- <A HREF="#top">go to the page top</A>
967
-
968
- <A NAME="zggglm"></A>
969
- <H2>zggglm</H2>
970
- <PRE>
971
- USAGE:
972
- x, y, work, info, a, b, d = NumRu::Lapack.zggglm( a, b, d, [:lwork => lwork, :usage => usage, :help => help])
973
-
974
-
975
- FORTRAN MANUAL
976
- SUBROUTINE ZGGGLM( N, M, P, A, LDA, B, LDB, D, X, Y, WORK, LWORK, INFO )
977
-
978
- * Purpose
979
- * =======
980
- *
981
- * ZGGGLM solves a general Gauss-Markov linear model (GLM) problem:
982
- *
983
- * minimize || y ||_2 subject to d = A*x + B*y
984
- * x
985
- *
986
- * where A is an N-by-M matrix, B is an N-by-P matrix, and d is a
987
- * given N-vector. It is assumed that M <= N <= M+P, and
988
- *
989
- * rank(A) = M and rank( A B ) = N.
990
- *
991
- * Under these assumptions, the constrained equation is always
992
- * consistent, and there is a unique solution x and a minimal 2-norm
993
- * solution y, which is obtained using a generalized QR factorization
994
- * of the matrices (A, B) given by
995
- *
996
- * A = Q*(R), B = Q*T*Z.
997
- * (0)
998
- *
999
- * In particular, if matrix B is square nonsingular, then the problem
1000
- * GLM is equivalent to the following weighted linear least squares
1001
- * problem
1002
- *
1003
- * minimize || inv(B)*(d-A*x) ||_2
1004
- * x
1005
- *
1006
- * where inv(B) denotes the inverse of B.
1007
- *
1008
-
1009
- * Arguments
1010
- * =========
1011
- *
1012
- * N (input) INTEGER
1013
- * The number of rows of the matrices A and B. N >= 0.
1014
- *
1015
- * M (input) INTEGER
1016
- * The number of columns of the matrix A. 0 <= M <= N.
1017
- *
1018
- * P (input) INTEGER
1019
- * The number of columns of the matrix B. P >= N-M.
1020
- *
1021
- * A (input/output) COMPLEX*16 array, dimension (LDA,M)
1022
- * On entry, the N-by-M matrix A.
1023
- * On exit, the upper triangular part of the array A contains
1024
- * the M-by-M upper triangular matrix R.
1025
- *
1026
- * LDA (input) INTEGER
1027
- * The leading dimension of the array A. LDA >= max(1,N).
1028
- *
1029
- * B (input/output) COMPLEX*16 array, dimension (LDB,P)
1030
- * On entry, the N-by-P matrix B.
1031
- * On exit, if N <= P, the upper triangle of the subarray
1032
- * B(1:N,P-N+1:P) contains the N-by-N upper triangular matrix T;
1033
- * if N > P, the elements on and above the (N-P)th subdiagonal
1034
- * contain the N-by-P upper trapezoidal matrix T.
1035
- *
1036
- * LDB (input) INTEGER
1037
- * The leading dimension of the array B. LDB >= max(1,N).
1038
- *
1039
- * D (input/output) COMPLEX*16 array, dimension (N)
1040
- * On entry, D is the left hand side of the GLM equation.
1041
- * On exit, D is destroyed.
1042
- *
1043
- * X (output) COMPLEX*16 array, dimension (M)
1044
- * Y (output) COMPLEX*16 array, dimension (P)
1045
- * On exit, X and Y are the solutions of the GLM problem.
1046
- *
1047
- * WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
1048
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1049
- *
1050
- * LWORK (input) INTEGER
1051
- * The dimension of the array WORK. LWORK >= max(1,N+M+P).
1052
- * For optimum performance, LWORK >= M+min(N,P)+max(N,P)*NB,
1053
- * where NB is an upper bound for the optimal blocksizes for
1054
- * ZGEQRF, ZGERQF, ZUNMQR and ZUNMRQ.
1055
- *
1056
- * If LWORK = -1, then a workspace query is assumed; the routine
1057
- * only calculates the optimal size of the WORK array, returns
1058
- * this value as the first entry of the WORK array, and no error
1059
- * message related to LWORK is issued by XERBLA.
1060
- *
1061
- * INFO (output) INTEGER
1062
- * = 0: successful exit.
1063
- * < 0: if INFO = -i, the i-th argument had an illegal value.
1064
- * = 1: the upper triangular factor R associated with A in the
1065
- * generalized QR factorization of the pair (A, B) is
1066
- * singular, so that rank(A) < M; the least squares
1067
- * solution could not be computed.
1068
- * = 2: the bottom (N-M) by (N-M) part of the upper trapezoidal
1069
- * factor T associated with B in the generalized QR
1070
- * factorization of the pair (A, B) is singular, so that
1071
- * rank( A B ) < N; the least squares solution could not
1072
- * be computed.
1073
- *
1074
-
1075
- * ===================================================================
1076
- *
1077
-
1078
-
1079
- </PRE>
1080
- <A HREF="#top">go to the page top</A>
1081
-
1082
- <A NAME="zgghrd"></A>
1083
- <H2>zgghrd</H2>
1084
- <PRE>
1085
- USAGE:
1086
- info, a, b, q, z = NumRu::Lapack.zgghrd( compq, compz, ilo, ihi, a, b, q, z, [:usage => usage, :help => help])
1087
-
1088
-
1089
- FORTRAN MANUAL
1090
- SUBROUTINE ZGGHRD( COMPQ, COMPZ, N, ILO, IHI, A, LDA, B, LDB, Q, LDQ, Z, LDZ, INFO )
1091
-
1092
- * Purpose
1093
- * =======
1094
- *
1095
- * ZGGHRD reduces a pair of complex matrices (A,B) to generalized upper
1096
- * Hessenberg form using unitary transformations, where A is a
1097
- * general matrix and B is upper triangular. The form of the
1098
- * generalized eigenvalue problem is
1099
- * A*x = lambda*B*x,
1100
- * and B is typically made upper triangular by computing its QR
1101
- * factorization and moving the unitary matrix Q to the left side
1102
- * of the equation.
1103
- *
1104
- * This subroutine simultaneously reduces A to a Hessenberg matrix H:
1105
- * Q**H*A*Z = H
1106
- * and transforms B to another upper triangular matrix T:
1107
- * Q**H*B*Z = T
1108
- * in order to reduce the problem to its standard form
1109
- * H*y = lambda*T*y
1110
- * where y = Z**H*x.
1111
- *
1112
- * The unitary matrices Q and Z are determined as products of Givens
1113
- * rotations. They may either be formed explicitly, or they may be
1114
- * postmultiplied into input matrices Q1 and Z1, so that
1115
- * Q1 * A * Z1**H = (Q1*Q) * H * (Z1*Z)**H
1116
- * Q1 * B * Z1**H = (Q1*Q) * T * (Z1*Z)**H
1117
- * If Q1 is the unitary matrix from the QR factorization of B in the
1118
- * original equation A*x = lambda*B*x, then ZGGHRD reduces the original
1119
- * problem to generalized Hessenberg form.
1120
- *
1121
-
1122
- * Arguments
1123
- * =========
1124
- *
1125
- * COMPQ (input) CHARACTER*1
1126
- * = 'N': do not compute Q;
1127
- * = 'I': Q is initialized to the unit matrix, and the
1128
- * unitary matrix Q is returned;
1129
- * = 'V': Q must contain a unitary matrix Q1 on entry,
1130
- * and the product Q1*Q is returned.
1131
- *
1132
- * COMPZ (input) CHARACTER*1
1133
- * = 'N': do not compute Q;
1134
- * = 'I': Q is initialized to the unit matrix, and the
1135
- * unitary matrix Q is returned;
1136
- * = 'V': Q must contain a unitary matrix Q1 on entry,
1137
- * and the product Q1*Q is returned.
1138
- *
1139
- * N (input) INTEGER
1140
- * The order of the matrices A and B. N >= 0.
1141
- *
1142
- * ILO (input) INTEGER
1143
- * IHI (input) INTEGER
1144
- * ILO and IHI mark the rows and columns of A which are to be
1145
- * reduced. It is assumed that A is already upper triangular
1146
- * in rows and columns 1:ILO-1 and IHI+1:N. ILO and IHI are
1147
- * normally set by a previous call to ZGGBAL; otherwise they
1148
- * should be set to 1 and N respectively.
1149
- * 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
1150
- *
1151
- * A (input/output) COMPLEX*16 array, dimension (LDA, N)
1152
- * On entry, the N-by-N general matrix to be reduced.
1153
- * On exit, the upper triangle and the first subdiagonal of A
1154
- * are overwritten with the upper Hessenberg matrix H, and the
1155
- * rest is set to zero.
1156
- *
1157
- * LDA (input) INTEGER
1158
- * The leading dimension of the array A. LDA >= max(1,N).
1159
- *
1160
- * B (input/output) COMPLEX*16 array, dimension (LDB, N)
1161
- * On entry, the N-by-N upper triangular matrix B.
1162
- * On exit, the upper triangular matrix T = Q**H B Z. The
1163
- * elements below the diagonal are set to zero.
1164
- *
1165
- * LDB (input) INTEGER
1166
- * The leading dimension of the array B. LDB >= max(1,N).
1167
- *
1168
- * Q (input/output) COMPLEX*16 array, dimension (LDQ, N)
1169
- * On entry, if COMPQ = 'V', the unitary matrix Q1, typically
1170
- * from the QR factorization of B.
1171
- * On exit, if COMPQ='I', the unitary matrix Q, and if
1172
- * COMPQ = 'V', the product Q1*Q.
1173
- * Not referenced if COMPQ='N'.
1174
- *
1175
- * LDQ (input) INTEGER
1176
- * The leading dimension of the array Q.
1177
- * LDQ >= N if COMPQ='V' or 'I'; LDQ >= 1 otherwise.
1178
- *
1179
- * Z (input/output) COMPLEX*16 array, dimension (LDZ, N)
1180
- * On entry, if COMPZ = 'V', the unitary matrix Z1.
1181
- * On exit, if COMPZ='I', the unitary matrix Z, and if
1182
- * COMPZ = 'V', the product Z1*Z.
1183
- * Not referenced if COMPZ='N'.
1184
- *
1185
- * LDZ (input) INTEGER
1186
- * The leading dimension of the array Z.
1187
- * LDZ >= N if COMPZ='V' or 'I'; LDZ >= 1 otherwise.
1188
- *
1189
- * INFO (output) INTEGER
1190
- * = 0: successful exit.
1191
- * < 0: if INFO = -i, the i-th argument had an illegal value.
1192
- *
1193
-
1194
- * Further Details
1195
- * ===============
1196
- *
1197
- * This routine reduces A to Hessenberg and B to triangular form by
1198
- * an unblocked reduction, as described in _Matrix_Computations_,
1199
- * by Golub and van Loan (Johns Hopkins Press).
1200
- *
1201
- * =====================================================================
1202
- *
1203
-
1204
-
1205
- </PRE>
1206
- <A HREF="#top">go to the page top</A>
1207
-
1208
- <A NAME="zgglse"></A>
1209
- <H2>zgglse</H2>
1210
- <PRE>
1211
- USAGE:
1212
- x, work, info, a, b, c, d = NumRu::Lapack.zgglse( a, b, c, d, [:lwork => lwork, :usage => usage, :help => help])
1213
-
1214
-
1215
- FORTRAN MANUAL
1216
- SUBROUTINE ZGGLSE( M, N, P, A, LDA, B, LDB, C, D, X, WORK, LWORK, INFO )
1217
-
1218
- * Purpose
1219
- * =======
1220
- *
1221
- * ZGGLSE solves the linear equality-constrained least squares (LSE)
1222
- * problem:
1223
- *
1224
- * minimize || c - A*x ||_2 subject to B*x = d
1225
- *
1226
- * where A is an M-by-N matrix, B is a P-by-N matrix, c is a given
1227
- * M-vector, and d is a given P-vector. It is assumed that
1228
- * P <= N <= M+P, and
1229
- *
1230
- * rank(B) = P and rank( ( A ) ) = N.
1231
- * ( ( B ) )
1232
- *
1233
- * These conditions ensure that the LSE problem has a unique solution,
1234
- * which is obtained using a generalized RQ factorization of the
1235
- * matrices (B, A) given by
1236
- *
1237
- * B = (0 R)*Q, A = Z*T*Q.
1238
- *
1239
-
1240
- * Arguments
1241
- * =========
1242
- *
1243
- * M (input) INTEGER
1244
- * The number of rows of the matrix A. M >= 0.
1245
- *
1246
- * N (input) INTEGER
1247
- * The number of columns of the matrices A and B. N >= 0.
1248
- *
1249
- * P (input) INTEGER
1250
- * The number of rows of the matrix B. 0 <= P <= N <= M+P.
1251
- *
1252
- * A (input/output) COMPLEX*16 array, dimension (LDA,N)
1253
- * On entry, the M-by-N matrix A.
1254
- * On exit, the elements on and above the diagonal of the array
1255
- * contain the min(M,N)-by-N upper trapezoidal matrix T.
1256
- *
1257
- * LDA (input) INTEGER
1258
- * The leading dimension of the array A. LDA >= max(1,M).
1259
- *
1260
- * B (input/output) COMPLEX*16 array, dimension (LDB,N)
1261
- * On entry, the P-by-N matrix B.
1262
- * On exit, the upper triangle of the subarray B(1:P,N-P+1:N)
1263
- * contains the P-by-P upper triangular matrix R.
1264
- *
1265
- * LDB (input) INTEGER
1266
- * The leading dimension of the array B. LDB >= max(1,P).
1267
- *
1268
- * C (input/output) COMPLEX*16 array, dimension (M)
1269
- * On entry, C contains the right hand side vector for the
1270
- * least squares part of the LSE problem.
1271
- * On exit, the residual sum of squares for the solution
1272
- * is given by the sum of squares of elements N-P+1 to M of
1273
- * vector C.
1274
- *
1275
- * D (input/output) COMPLEX*16 array, dimension (P)
1276
- * On entry, D contains the right hand side vector for the
1277
- * constrained equation.
1278
- * On exit, D is destroyed.
1279
- *
1280
- * X (output) COMPLEX*16 array, dimension (N)
1281
- * On exit, X is the solution of the LSE problem.
1282
- *
1283
- * WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
1284
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1285
- *
1286
- * LWORK (input) INTEGER
1287
- * The dimension of the array WORK. LWORK >= max(1,M+N+P).
1288
- * For optimum performance LWORK >= P+min(M,N)+max(M,N)*NB,
1289
- * where NB is an upper bound for the optimal blocksizes for
1290
- * ZGEQRF, CGERQF, ZUNMQR and CUNMRQ.
1291
- *
1292
- * If LWORK = -1, then a workspace query is assumed; the routine
1293
- * only calculates the optimal size of the WORK array, returns
1294
- * this value as the first entry of the WORK array, and no error
1295
- * message related to LWORK is issued by XERBLA.
1296
- *
1297
- * INFO (output) INTEGER
1298
- * = 0: successful exit.
1299
- * < 0: if INFO = -i, the i-th argument had an illegal value.
1300
- * = 1: the upper triangular factor R associated with B in the
1301
- * generalized RQ factorization of the pair (B, A) is
1302
- * singular, so that rank(B) < P; the least squares
1303
- * solution could not be computed.
1304
- * = 2: the (N-P) by (N-P) part of the upper trapezoidal factor
1305
- * T associated with A in the generalized RQ factorization
1306
- * of the pair (B, A) is singular, so that
1307
- * rank( (A) ) < N; the least squares solution could not
1308
- * ( (B) )
1309
- * be computed.
1310
- *
1311
-
1312
- * =====================================================================
1313
- *
1314
-
1315
-
1316
- </PRE>
1317
- <A HREF="#top">go to the page top</A>
1318
-
1319
- <A NAME="zggqrf"></A>
1320
- <H2>zggqrf</H2>
1321
- <PRE>
1322
- USAGE:
1323
- taua, taub, work, info, a, b = NumRu::Lapack.zggqrf( n, a, b, [:lwork => lwork, :usage => usage, :help => help])
1324
-
1325
-
1326
- FORTRAN MANUAL
1327
- SUBROUTINE ZGGQRF( N, M, P, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO )
1328
-
1329
- * Purpose
1330
- * =======
1331
- *
1332
- * ZGGQRF computes a generalized QR factorization of an N-by-M matrix A
1333
- * and an N-by-P matrix B:
1334
- *
1335
- * A = Q*R, B = Q*T*Z,
1336
- *
1337
- * where Q is an N-by-N unitary matrix, Z is a P-by-P unitary matrix,
1338
- * and R and T assume one of the forms:
1339
- *
1340
- * if N >= M, R = ( R11 ) M , or if N < M, R = ( R11 R12 ) N,
1341
- * ( 0 ) N-M N M-N
1342
- * M
1343
- *
1344
- * where R11 is upper triangular, and
1345
- *
1346
- * if N <= P, T = ( 0 T12 ) N, or if N > P, T = ( T11 ) N-P,
1347
- * P-N N ( T21 ) P
1348
- * P
1349
- *
1350
- * where T12 or T21 is upper triangular.
1351
- *
1352
- * In particular, if B is square and nonsingular, the GQR factorization
1353
- * of A and B implicitly gives the QR factorization of inv(B)*A:
1354
- *
1355
- * inv(B)*A = Z'*(inv(T)*R)
1356
- *
1357
- * where inv(B) denotes the inverse of the matrix B, and Z' denotes the
1358
- * conjugate transpose of matrix Z.
1359
- *
1360
-
1361
- * Arguments
1362
- * =========
1363
- *
1364
- * N (input) INTEGER
1365
- * The number of rows of the matrices A and B. N >= 0.
1366
- *
1367
- * M (input) INTEGER
1368
- * The number of columns of the matrix A. M >= 0.
1369
- *
1370
- * P (input) INTEGER
1371
- * The number of columns of the matrix B. P >= 0.
1372
- *
1373
- * A (input/output) COMPLEX*16 array, dimension (LDA,M)
1374
- * On entry, the N-by-M matrix A.
1375
- * On exit, the elements on and above the diagonal of the array
1376
- * contain the min(N,M)-by-M upper trapezoidal matrix R (R is
1377
- * upper triangular if N >= M); the elements below the diagonal,
1378
- * with the array TAUA, represent the unitary matrix Q as a
1379
- * product of min(N,M) elementary reflectors (see Further
1380
- * Details).
1381
- *
1382
- * LDA (input) INTEGER
1383
- * The leading dimension of the array A. LDA >= max(1,N).
1384
- *
1385
- * TAUA (output) COMPLEX*16 array, dimension (min(N,M))
1386
- * The scalar factors of the elementary reflectors which
1387
- * represent the unitary matrix Q (see Further Details).
1388
- *
1389
- * B (input/output) COMPLEX*16 array, dimension (LDB,P)
1390
- * On entry, the N-by-P matrix B.
1391
- * On exit, if N <= P, the upper triangle of the subarray
1392
- * B(1:N,P-N+1:P) contains the N-by-N upper triangular matrix T;
1393
- * if N > P, the elements on and above the (N-P)-th subdiagonal
1394
- * contain the N-by-P upper trapezoidal matrix T; the remaining
1395
- * elements, with the array TAUB, represent the unitary
1396
- * matrix Z as a product of elementary reflectors (see Further
1397
- * Details).
1398
- *
1399
- * LDB (input) INTEGER
1400
- * The leading dimension of the array B. LDB >= max(1,N).
1401
- *
1402
- * TAUB (output) COMPLEX*16 array, dimension (min(N,P))
1403
- * The scalar factors of the elementary reflectors which
1404
- * represent the unitary matrix Z (see Further Details).
1405
- *
1406
- * WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
1407
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1408
- *
1409
- * LWORK (input) INTEGER
1410
- * The dimension of the array WORK. LWORK >= max(1,N,M,P).
1411
- * For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
1412
- * where NB1 is the optimal blocksize for the QR factorization
1413
- * of an N-by-M matrix, NB2 is the optimal blocksize for the
1414
- * RQ factorization of an N-by-P matrix, and NB3 is the optimal
1415
- * blocksize for a call of ZUNMQR.
1416
- *
1417
- * If LWORK = -1, then a workspace query is assumed; the routine
1418
- * only calculates the optimal size of the WORK array, returns
1419
- * this value as the first entry of the WORK array, and no error
1420
- * message related to LWORK is issued by XERBLA.
1421
- *
1422
- * INFO (output) INTEGER
1423
- * = 0: successful exit
1424
- * < 0: if INFO = -i, the i-th argument had an illegal value.
1425
- *
1426
-
1427
- * Further Details
1428
- * ===============
1429
- *
1430
- * The matrix Q is represented as a product of elementary reflectors
1431
- *
1432
- * Q = H(1) H(2) . . . H(k), where k = min(n,m).
1433
- *
1434
- * Each H(i) has the form
1435
- *
1436
- * H(i) = I - taua * v * v'
1437
- *
1438
- * where taua is a complex scalar, and v is a complex vector with
1439
- * v(1:i-1) = 0 and v(i) = 1; v(i+1:n) is stored on exit in A(i+1:n,i),
1440
- * and taua in TAUA(i).
1441
- * To form Q explicitly, use LAPACK subroutine ZUNGQR.
1442
- * To use Q to update another matrix, use LAPACK subroutine ZUNMQR.
1443
- *
1444
- * The matrix Z is represented as a product of elementary reflectors
1445
- *
1446
- * Z = H(1) H(2) . . . H(k), where k = min(n,p).
1447
- *
1448
- * Each H(i) has the form
1449
- *
1450
- * H(i) = I - taub * v * v'
1451
- *
1452
- * where taub is a complex scalar, and v is a complex vector with
1453
- * v(p-k+i+1:p) = 0 and v(p-k+i) = 1; v(1:p-k+i-1) is stored on exit in
1454
- * B(n-k+i,1:p-k+i-1), and taub in TAUB(i).
1455
- * To form Z explicitly, use LAPACK subroutine ZUNGRQ.
1456
- * To use Z to update another matrix, use LAPACK subroutine ZUNMRQ.
1457
- *
1458
- * =====================================================================
1459
- *
1460
- * .. Local Scalars ..
1461
- LOGICAL LQUERY
1462
- INTEGER LOPT, LWKOPT, NB, NB1, NB2, NB3
1463
- * ..
1464
- * .. External Subroutines ..
1465
- EXTERNAL XERBLA, ZGEQRF, ZGERQF, ZUNMQR
1466
- * ..
1467
- * .. External Functions ..
1468
- INTEGER ILAENV
1469
- EXTERNAL ILAENV
1470
- * ..
1471
- * .. Intrinsic Functions ..
1472
- INTRINSIC INT, MAX, MIN
1473
- * ..
1474
-
1475
-
1476
- </PRE>
1477
- <A HREF="#top">go to the page top</A>
1478
-
1479
- <A NAME="zggrqf"></A>
1480
- <H2>zggrqf</H2>
1481
- <PRE>
1482
- USAGE:
1483
- taua, taub, work, info, a, b = NumRu::Lapack.zggrqf( m, p, a, b, [:lwork => lwork, :usage => usage, :help => help])
1484
-
1485
-
1486
- FORTRAN MANUAL
1487
- SUBROUTINE ZGGRQF( M, P, N, A, LDA, TAUA, B, LDB, TAUB, WORK, LWORK, INFO )
1488
-
1489
- * Purpose
1490
- * =======
1491
- *
1492
- * ZGGRQF computes a generalized RQ factorization of an M-by-N matrix A
1493
- * and a P-by-N matrix B:
1494
- *
1495
- * A = R*Q, B = Z*T*Q,
1496
- *
1497
- * where Q is an N-by-N unitary matrix, Z is a P-by-P unitary
1498
- * matrix, and R and T assume one of the forms:
1499
- *
1500
- * if M <= N, R = ( 0 R12 ) M, or if M > N, R = ( R11 ) M-N,
1501
- * N-M M ( R21 ) N
1502
- * N
1503
- *
1504
- * where R12 or R21 is upper triangular, and
1505
- *
1506
- * if P >= N, T = ( T11 ) N , or if P < N, T = ( T11 T12 ) P,
1507
- * ( 0 ) P-N P N-P
1508
- * N
1509
- *
1510
- * where T11 is upper triangular.
1511
- *
1512
- * In particular, if B is square and nonsingular, the GRQ factorization
1513
- * of A and B implicitly gives the RQ factorization of A*inv(B):
1514
- *
1515
- * A*inv(B) = (R*inv(T))*Z'
1516
- *
1517
- * where inv(B) denotes the inverse of the matrix B, and Z' denotes the
1518
- * conjugate transpose of the matrix Z.
1519
- *
1520
-
1521
- * Arguments
1522
- * =========
1523
- *
1524
- * M (input) INTEGER
1525
- * The number of rows of the matrix A. M >= 0.
1526
- *
1527
- * P (input) INTEGER
1528
- * The number of rows of the matrix B. P >= 0.
1529
- *
1530
- * N (input) INTEGER
1531
- * The number of columns of the matrices A and B. N >= 0.
1532
- *
1533
- * A (input/output) COMPLEX*16 array, dimension (LDA,N)
1534
- * On entry, the M-by-N matrix A.
1535
- * On exit, if M <= N, the upper triangle of the subarray
1536
- * A(1:M,N-M+1:N) contains the M-by-M upper triangular matrix R;
1537
- * if M > N, the elements on and above the (M-N)-th subdiagonal
1538
- * contain the M-by-N upper trapezoidal matrix R; the remaining
1539
- * elements, with the array TAUA, represent the unitary
1540
- * matrix Q as a product of elementary reflectors (see Further
1541
- * Details).
1542
- *
1543
- * LDA (input) INTEGER
1544
- * The leading dimension of the array A. LDA >= max(1,M).
1545
- *
1546
- * TAUA (output) COMPLEX*16 array, dimension (min(M,N))
1547
- * The scalar factors of the elementary reflectors which
1548
- * represent the unitary matrix Q (see Further Details).
1549
- *
1550
- * B (input/output) COMPLEX*16 array, dimension (LDB,N)
1551
- * On entry, the P-by-N matrix B.
1552
- * On exit, the elements on and above the diagonal of the array
1553
- * contain the min(P,N)-by-N upper trapezoidal matrix T (T is
1554
- * upper triangular if P >= N); the elements below the diagonal,
1555
- * with the array TAUB, represent the unitary matrix Z as a
1556
- * product of elementary reflectors (see Further Details).
1557
- *
1558
- * LDB (input) INTEGER
1559
- * The leading dimension of the array B. LDB >= max(1,P).
1560
- *
1561
- * TAUB (output) COMPLEX*16 array, dimension (min(P,N))
1562
- * The scalar factors of the elementary reflectors which
1563
- * represent the unitary matrix Z (see Further Details).
1564
- *
1565
- * WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
1566
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1567
- *
1568
- * LWORK (input) INTEGER
1569
- * The dimension of the array WORK. LWORK >= max(1,N,M,P).
1570
- * For optimum performance LWORK >= max(N,M,P)*max(NB1,NB2,NB3),
1571
- * where NB1 is the optimal blocksize for the RQ factorization
1572
- * of an M-by-N matrix, NB2 is the optimal blocksize for the
1573
- * QR factorization of a P-by-N matrix, and NB3 is the optimal
1574
- * blocksize for a call of ZUNMRQ.
1575
- *
1576
- * If LWORK = -1, then a workspace query is assumed; the routine
1577
- * only calculates the optimal size of the WORK array, returns
1578
- * this value as the first entry of the WORK array, and no error
1579
- * message related to LWORK is issued by XERBLA.
1580
- *
1581
- * INFO (output) INTEGER
1582
- * = 0: successful exit
1583
- * < 0: if INFO=-i, the i-th argument had an illegal value.
1584
- *
1585
-
1586
- * Further Details
1587
- * ===============
1588
- *
1589
- * The matrix Q is represented as a product of elementary reflectors
1590
- *
1591
- * Q = H(1) H(2) . . . H(k), where k = min(m,n).
1592
- *
1593
- * Each H(i) has the form
1594
- *
1595
- * H(i) = I - taua * v * v'
1596
- *
1597
- * where taua is a complex scalar, and v is a complex vector with
1598
- * v(n-k+i+1:n) = 0 and v(n-k+i) = 1; v(1:n-k+i-1) is stored on exit in
1599
- * A(m-k+i,1:n-k+i-1), and taua in TAUA(i).
1600
- * To form Q explicitly, use LAPACK subroutine ZUNGRQ.
1601
- * To use Q to update another matrix, use LAPACK subroutine ZUNMRQ.
1602
- *
1603
- * The matrix Z is represented as a product of elementary reflectors
1604
- *
1605
- * Z = H(1) H(2) . . . H(k), where k = min(p,n).
1606
- *
1607
- * Each H(i) has the form
1608
- *
1609
- * H(i) = I - taub * v * v'
1610
- *
1611
- * where taub is a complex scalar, and v is a complex vector with
1612
- * v(1:i-1) = 0 and v(i) = 1; v(i+1:p) is stored on exit in B(i+1:p,i),
1613
- * and taub in TAUB(i).
1614
- * To form Z explicitly, use LAPACK subroutine ZUNGQR.
1615
- * To use Z to update another matrix, use LAPACK subroutine ZUNMQR.
1616
- *
1617
- * =====================================================================
1618
- *
1619
- * .. Local Scalars ..
1620
- LOGICAL LQUERY
1621
- INTEGER LOPT, LWKOPT, NB, NB1, NB2, NB3
1622
- * ..
1623
- * .. External Subroutines ..
1624
- EXTERNAL XERBLA, ZGEQRF, ZGERQF, ZUNMRQ
1625
- * ..
1626
- * .. External Functions ..
1627
- INTEGER ILAENV
1628
- EXTERNAL ILAENV
1629
- * ..
1630
- * .. Intrinsic Functions ..
1631
- INTRINSIC INT, MAX, MIN
1632
- * ..
1633
-
1634
-
1635
- </PRE>
1636
- <A HREF="#top">go to the page top</A>
1637
-
1638
- <A NAME="zggsvd"></A>
1639
- <H2>zggsvd</H2>
1640
- <PRE>
1641
- USAGE:
1642
- k, l, alpha, beta, u, v, q, iwork, info, a, b = NumRu::Lapack.zggsvd( jobu, jobv, jobq, a, b, [:usage => usage, :help => help])
1643
-
1644
-
1645
- FORTRAN MANUAL
1646
- SUBROUTINE ZGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, RWORK, IWORK, INFO )
1647
-
1648
- * Purpose
1649
- * =======
1650
- *
1651
- * ZGGSVD computes the generalized singular value decomposition (GSVD)
1652
- * of an M-by-N complex matrix A and P-by-N complex matrix B:
1653
- *
1654
- * U'*A*Q = D1*( 0 R ), V'*B*Q = D2*( 0 R )
1655
- *
1656
- * where U, V and Q are unitary matrices, and Z' means the conjugate
1657
- * transpose of Z. Let K+L = the effective numerical rank of the
1658
- * matrix (A',B')', then R is a (K+L)-by-(K+L) nonsingular upper
1659
- * triangular matrix, D1 and D2 are M-by-(K+L) and P-by-(K+L) "diagonal"
1660
- * matrices and of the following structures, respectively:
1661
- *
1662
- * If M-K-L >= 0,
1663
- *
1664
- * K L
1665
- * D1 = K ( I 0 )
1666
- * L ( 0 C )
1667
- * M-K-L ( 0 0 )
1668
- *
1669
- * K L
1670
- * D2 = L ( 0 S )
1671
- * P-L ( 0 0 )
1672
- *
1673
- * N-K-L K L
1674
- * ( 0 R ) = K ( 0 R11 R12 )
1675
- * L ( 0 0 R22 )
1676
- * where
1677
- *
1678
- * C = diag( ALPHA(K+1), ... , ALPHA(K+L) ),
1679
- * S = diag( BETA(K+1), ... , BETA(K+L) ),
1680
- * C**2 + S**2 = I.
1681
- *
1682
- * R is stored in A(1:K+L,N-K-L+1:N) on exit.
1683
- *
1684
- * If M-K-L < 0,
1685
- *
1686
- * K M-K K+L-M
1687
- * D1 = K ( I 0 0 )
1688
- * M-K ( 0 C 0 )
1689
- *
1690
- * K M-K K+L-M
1691
- * D2 = M-K ( 0 S 0 )
1692
- * K+L-M ( 0 0 I )
1693
- * P-L ( 0 0 0 )
1694
- *
1695
- * N-K-L K M-K K+L-M
1696
- * ( 0 R ) = K ( 0 R11 R12 R13 )
1697
- * M-K ( 0 0 R22 R23 )
1698
- * K+L-M ( 0 0 0 R33 )
1699
- *
1700
- * where
1701
- *
1702
- * C = diag( ALPHA(K+1), ... , ALPHA(M) ),
1703
- * S = diag( BETA(K+1), ... , BETA(M) ),
1704
- * C**2 + S**2 = I.
1705
- *
1706
- * (R11 R12 R13 ) is stored in A(1:M, N-K-L+1:N), and R33 is stored
1707
- * ( 0 R22 R23 )
1708
- * in B(M-K+1:L,N+M-K-L+1:N) on exit.
1709
- *
1710
- * The routine computes C, S, R, and optionally the unitary
1711
- * transformation matrices U, V and Q.
1712
- *
1713
- * In particular, if B is an N-by-N nonsingular matrix, then the GSVD of
1714
- * A and B implicitly gives the SVD of A*inv(B):
1715
- * A*inv(B) = U*(D1*inv(D2))*V'.
1716
- * If ( A',B')' has orthnormal columns, then the GSVD of A and B is also
1717
- * equal to the CS decomposition of A and B. Furthermore, the GSVD can
1718
- * be used to derive the solution of the eigenvalue problem:
1719
- * A'*A x = lambda* B'*B x.
1720
- * In some literature, the GSVD of A and B is presented in the form
1721
- * U'*A*X = ( 0 D1 ), V'*B*X = ( 0 D2 )
1722
- * where U and V are orthogonal and X is nonsingular, and D1 and D2 are
1723
- * ``diagonal''. The former GSVD form can be converted to the latter
1724
- * form by taking the nonsingular matrix X as
1725
- *
1726
- * X = Q*( I 0 )
1727
- * ( 0 inv(R) )
1728
- *
1729
-
1730
- * Arguments
1731
- * =========
1732
- *
1733
- * JOBU (input) CHARACTER*1
1734
- * = 'U': Unitary matrix U is computed;
1735
- * = 'N': U is not computed.
1736
- *
1737
- * JOBV (input) CHARACTER*1
1738
- * = 'V': Unitary matrix V is computed;
1739
- * = 'N': V is not computed.
1740
- *
1741
- * JOBQ (input) CHARACTER*1
1742
- * = 'Q': Unitary matrix Q is computed;
1743
- * = 'N': Q is not computed.
1744
- *
1745
- * M (input) INTEGER
1746
- * The number of rows of the matrix A. M >= 0.
1747
- *
1748
- * N (input) INTEGER
1749
- * The number of columns of the matrices A and B. N >= 0.
1750
- *
1751
- * P (input) INTEGER
1752
- * The number of rows of the matrix B. P >= 0.
1753
- *
1754
- * K (output) INTEGER
1755
- * L (output) INTEGER
1756
- * On exit, K and L specify the dimension of the subblocks
1757
- * described in Purpose.
1758
- * K + L = effective numerical rank of (A',B')'.
1759
- *
1760
- * A (input/output) COMPLEX*16 array, dimension (LDA,N)
1761
- * On entry, the M-by-N matrix A.
1762
- * On exit, A contains the triangular matrix R, or part of R.
1763
- * See Purpose for details.
1764
- *
1765
- * LDA (input) INTEGER
1766
- * The leading dimension of the array A. LDA >= max(1,M).
1767
- *
1768
- * B (input/output) COMPLEX*16 array, dimension (LDB,N)
1769
- * On entry, the P-by-N matrix B.
1770
- * On exit, B contains part of the triangular matrix R if
1771
- * M-K-L < 0. See Purpose for details.
1772
- *
1773
- * LDB (input) INTEGER
1774
- * The leading dimension of the array B. LDB >= max(1,P).
1775
- *
1776
- * ALPHA (output) DOUBLE PRECISION array, dimension (N)
1777
- * BETA (output) DOUBLE PRECISION array, dimension (N)
1778
- * On exit, ALPHA and BETA contain the generalized singular
1779
- * value pairs of A and B;
1780
- * ALPHA(1:K) = 1,
1781
- * BETA(1:K) = 0,
1782
- * and if M-K-L >= 0,
1783
- * ALPHA(K+1:K+L) = C,
1784
- * BETA(K+1:K+L) = S,
1785
- * or if M-K-L < 0,
1786
- * ALPHA(K+1:M)= C, ALPHA(M+1:K+L)= 0
1787
- * BETA(K+1:M) = S, BETA(M+1:K+L) = 1
1788
- * and
1789
- * ALPHA(K+L+1:N) = 0
1790
- * BETA(K+L+1:N) = 0
1791
- *
1792
- * U (output) COMPLEX*16 array, dimension (LDU,M)
1793
- * If JOBU = 'U', U contains the M-by-M unitary matrix U.
1794
- * If JOBU = 'N', U is not referenced.
1795
- *
1796
- * LDU (input) INTEGER
1797
- * The leading dimension of the array U. LDU >= max(1,M) if
1798
- * JOBU = 'U'; LDU >= 1 otherwise.
1799
- *
1800
- * V (output) COMPLEX*16 array, dimension (LDV,P)
1801
- * If JOBV = 'V', V contains the P-by-P unitary matrix V.
1802
- * If JOBV = 'N', V is not referenced.
1803
- *
1804
- * LDV (input) INTEGER
1805
- * The leading dimension of the array V. LDV >= max(1,P) if
1806
- * JOBV = 'V'; LDV >= 1 otherwise.
1807
- *
1808
- * Q (output) COMPLEX*16 array, dimension (LDQ,N)
1809
- * If JOBQ = 'Q', Q contains the N-by-N unitary matrix Q.
1810
- * If JOBQ = 'N', Q is not referenced.
1811
- *
1812
- * LDQ (input) INTEGER
1813
- * The leading dimension of the array Q. LDQ >= max(1,N) if
1814
- * JOBQ = 'Q'; LDQ >= 1 otherwise.
1815
- *
1816
- * WORK (workspace) COMPLEX*16 array, dimension (max(3*N,M,P)+N)
1817
- *
1818
- * RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
1819
- *
1820
- * IWORK (workspace/output) INTEGER array, dimension (N)
1821
- * On exit, IWORK stores the sorting information. More
1822
- * precisely, the following loop will sort ALPHA
1823
- * for I = K+1, min(M,K+L)
1824
- * swap ALPHA(I) and ALPHA(IWORK(I))
1825
- * endfor
1826
- * such that ALPHA(1) >= ALPHA(2) >= ... >= ALPHA(N).
1827
- *
1828
- * INFO (output) INTEGER
1829
- * = 0: successful exit.
1830
- * < 0: if INFO = -i, the i-th argument had an illegal value.
1831
- * > 0: if INFO = 1, the Jacobi-type procedure failed to
1832
- * converge. For further details, see subroutine ZTGSJA.
1833
- *
1834
- * Internal Parameters
1835
- * ===================
1836
- *
1837
- * TOLA DOUBLE PRECISION
1838
- * TOLB DOUBLE PRECISION
1839
- * TOLA and TOLB are the thresholds to determine the effective
1840
- * rank of (A',B')'. Generally, they are set to
1841
- * TOLA = MAX(M,N)*norm(A)*MAZHEPS,
1842
- * TOLB = MAX(P,N)*norm(B)*MAZHEPS.
1843
- * The size of TOLA and TOLB may affect the size of backward
1844
- * errors of the decomposition.
1845
- *
1846
-
1847
- * Further Details
1848
- * ===============
1849
- *
1850
- * 2-96 Based on modifications by
1851
- * Ming Gu and Huan Ren, Computer Science Division, University of
1852
- * California at Berkeley, USA
1853
- *
1854
- * =====================================================================
1855
- *
1856
- * .. Local Scalars ..
1857
- LOGICAL WANTQ, WANTU, WANTV
1858
- INTEGER I, IBND, ISUB, J, NCYCLE
1859
- DOUBLE PRECISION ANORM, BNORM, SMAX, TEMP, TOLA, TOLB, ULP, UNFL
1860
- * ..
1861
- * .. External Functions ..
1862
- LOGICAL LSAME
1863
- DOUBLE PRECISION DLAMCH, ZLANGE
1864
- EXTERNAL LSAME, DLAMCH, ZLANGE
1865
- * ..
1866
- * .. External Subroutines ..
1867
- EXTERNAL DCOPY, XERBLA, ZGGSVP, ZTGSJA
1868
- * ..
1869
- * .. Intrinsic Functions ..
1870
- INTRINSIC MAX, MIN
1871
- * ..
1872
-
1873
-
1874
- </PRE>
1875
- <A HREF="#top">go to the page top</A>
1876
-
1877
- <A NAME="zggsvp"></A>
1878
- <H2>zggsvp</H2>
1879
- <PRE>
1880
- USAGE:
1881
- k, l, u, v, q, info, a, b = NumRu::Lapack.zggsvp( jobu, jobv, jobq, a, b, tola, tolb, [:usage => usage, :help => help])
1882
-
1883
-
1884
- FORTRAN MANUAL
1885
- SUBROUTINE ZGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, RWORK, TAU, WORK, INFO )
1886
-
1887
- * Purpose
1888
- * =======
1889
- *
1890
- * ZGGSVP computes unitary matrices U, V and Q such that
1891
- *
1892
- * N-K-L K L
1893
- * U'*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0;
1894
- * L ( 0 0 A23 )
1895
- * M-K-L ( 0 0 0 )
1896
- *
1897
- * N-K-L K L
1898
- * = K ( 0 A12 A13 ) if M-K-L < 0;
1899
- * M-K ( 0 0 A23 )
1900
- *
1901
- * N-K-L K L
1902
- * V'*B*Q = L ( 0 0 B13 )
1903
- * P-L ( 0 0 0 )
1904
- *
1905
- * where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular
1906
- * upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0,
1907
- * otherwise A23 is (M-K)-by-L upper trapezoidal. K+L = the effective
1908
- * numerical rank of the (M+P)-by-N matrix (A',B')'. Z' denotes the
1909
- * conjugate transpose of Z.
1910
- *
1911
- * This decomposition is the preprocessing step for computing the
1912
- * Generalized Singular Value Decomposition (GSVD), see subroutine
1913
- * ZGGSVD.
1914
- *
1915
-
1916
- * Arguments
1917
- * =========
1918
- *
1919
- * JOBU (input) CHARACTER*1
1920
- * = 'U': Unitary matrix U is computed;
1921
- * = 'N': U is not computed.
1922
- *
1923
- * JOBV (input) CHARACTER*1
1924
- * = 'V': Unitary matrix V is computed;
1925
- * = 'N': V is not computed.
1926
- *
1927
- * JOBQ (input) CHARACTER*1
1928
- * = 'Q': Unitary matrix Q is computed;
1929
- * = 'N': Q is not computed.
1930
- *
1931
- * M (input) INTEGER
1932
- * The number of rows of the matrix A. M >= 0.
1933
- *
1934
- * P (input) INTEGER
1935
- * The number of rows of the matrix B. P >= 0.
1936
- *
1937
- * N (input) INTEGER
1938
- * The number of columns of the matrices A and B. N >= 0.
1939
- *
1940
- * A (input/output) COMPLEX*16 array, dimension (LDA,N)
1941
- * On entry, the M-by-N matrix A.
1942
- * On exit, A contains the triangular (or trapezoidal) matrix
1943
- * described in the Purpose section.
1944
- *
1945
- * LDA (input) INTEGER
1946
- * The leading dimension of the array A. LDA >= max(1,M).
1947
- *
1948
- * B (input/output) COMPLEX*16 array, dimension (LDB,N)
1949
- * On entry, the P-by-N matrix B.
1950
- * On exit, B contains the triangular matrix described in
1951
- * the Purpose section.
1952
- *
1953
- * LDB (input) INTEGER
1954
- * The leading dimension of the array B. LDB >= max(1,P).
1955
- *
1956
- * TOLA (input) DOUBLE PRECISION
1957
- * TOLB (input) DOUBLE PRECISION
1958
- * TOLA and TOLB are the thresholds to determine the effective
1959
- * numerical rank of matrix B and a subblock of A. Generally,
1960
- * they are set to
1961
- * TOLA = MAX(M,N)*norm(A)*MAZHEPS,
1962
- * TOLB = MAX(P,N)*norm(B)*MAZHEPS.
1963
- * The size of TOLA and TOLB may affect the size of backward
1964
- * errors of the decomposition.
1965
- *
1966
- * K (output) INTEGER
1967
- * L (output) INTEGER
1968
- * On exit, K and L specify the dimension of the subblocks
1969
- * described in Purpose section.
1970
- * K + L = effective numerical rank of (A',B')'.
1971
- *
1972
- * U (output) COMPLEX*16 array, dimension (LDU,M)
1973
- * If JOBU = 'U', U contains the unitary matrix U.
1974
- * If JOBU = 'N', U is not referenced.
1975
- *
1976
- * LDU (input) INTEGER
1977
- * The leading dimension of the array U. LDU >= max(1,M) if
1978
- * JOBU = 'U'; LDU >= 1 otherwise.
1979
- *
1980
- * V (output) COMPLEX*16 array, dimension (LDV,P)
1981
- * If JOBV = 'V', V contains the unitary matrix V.
1982
- * If JOBV = 'N', V is not referenced.
1983
- *
1984
- * LDV (input) INTEGER
1985
- * The leading dimension of the array V. LDV >= max(1,P) if
1986
- * JOBV = 'V'; LDV >= 1 otherwise.
1987
- *
1988
- * Q (output) COMPLEX*16 array, dimension (LDQ,N)
1989
- * If JOBQ = 'Q', Q contains the unitary matrix Q.
1990
- * If JOBQ = 'N', Q is not referenced.
1991
- *
1992
- * LDQ (input) INTEGER
1993
- * The leading dimension of the array Q. LDQ >= max(1,N) if
1994
- * JOBQ = 'Q'; LDQ >= 1 otherwise.
1995
- *
1996
- * IWORK (workspace) INTEGER array, dimension (N)
1997
- *
1998
- * RWORK (workspace) DOUBLE PRECISION array, dimension (2*N)
1999
- *
2000
- * TAU (workspace) COMPLEX*16 array, dimension (N)
2001
- *
2002
- * WORK (workspace) COMPLEX*16 array, dimension (max(3*N,M,P))
2003
- *
2004
- * INFO (output) INTEGER
2005
- * = 0: successful exit
2006
- * < 0: if INFO = -i, the i-th argument had an illegal value.
2007
- *
2008
-
2009
- * Further Details
2010
- * ===============
2011
- *
2012
- * The subroutine uses LAPACK subroutine ZGEQPF for the QR factorization
2013
- * with column pivoting to detect the effective numerical rank of the
2014
- * a matrix. It may be replaced by a better rank determination strategy.
2015
- *
2016
- * =====================================================================
2017
- *
2018
-
2019
-
2020
- </PRE>
2021
- <A HREF="#top">go to the page top</A>
2022
-
2023
- <HR />
2024
- <A HREF="z.html">back to matrix types</A><BR>
2025
- <A HREF="z.html">back to data types</A>
2026
- </BODY>
2027
- </HTML>