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/ctz.html DELETED
@@ -1,211 +0,0 @@
1
- <HTML>
2
- <HEAD>
3
- <TITLE>COMPLEX routines for trapezoidal matrix</TITLE>
4
- </HEAD>
5
- <BODY>
6
- <A NAME="top"></A>
7
- <H1>COMPLEX routines for trapezoidal matrix</H1>
8
- <UL>
9
- <LI><A HREF="#ctzrqf">ctzrqf</A></LI>
10
- <LI><A HREF="#ctzrzf">ctzrzf</A></LI>
11
- </UL>
12
-
13
- <A NAME="ctzrqf"></A>
14
- <H2>ctzrqf</H2>
15
- <PRE>
16
- USAGE:
17
- tau, info, a = NumRu::Lapack.ctzrqf( a, [:usage => usage, :help => help])
18
-
19
-
20
- FORTRAN MANUAL
21
- SUBROUTINE CTZRQF( M, N, A, LDA, TAU, INFO )
22
-
23
- * Purpose
24
- * =======
25
- *
26
- * This routine is deprecated and has been replaced by routine CTZRZF.
27
- *
28
- * CTZRQF reduces the M-by-N ( M<=N ) complex upper trapezoidal matrix A
29
- * to upper triangular form by means of unitary transformations.
30
- *
31
- * The upper trapezoidal matrix A is factored as
32
- *
33
- * A = ( R 0 ) * Z,
34
- *
35
- * where Z is an N-by-N unitary matrix and R is an M-by-M upper
36
- * triangular matrix.
37
- *
38
-
39
- * Arguments
40
- * =========
41
- *
42
- * M (input) INTEGER
43
- * The number of rows of the matrix A. M >= 0.
44
- *
45
- * N (input) INTEGER
46
- * The number of columns of the matrix A. N >= M.
47
- *
48
- * A (input/output) COMPLEX array, dimension (LDA,N)
49
- * On entry, the leading M-by-N upper trapezoidal part of the
50
- * array A must contain the matrix to be factorized.
51
- * On exit, the leading M-by-M upper triangular part of A
52
- * contains the upper triangular matrix R, and elements M+1 to
53
- * N of the first M rows of A, with the array TAU, represent the
54
- * unitary matrix Z as a product of M elementary reflectors.
55
- *
56
- * LDA (input) INTEGER
57
- * The leading dimension of the array A. LDA >= max(1,M).
58
- *
59
- * TAU (output) COMPLEX array, dimension (M)
60
- * The scalar factors of the elementary reflectors.
61
- *
62
- * INFO (output) INTEGER
63
- * = 0: successful exit
64
- * < 0: if INFO = -i, the i-th argument had an illegal value
65
- *
66
-
67
- * Further Details
68
- * ===============
69
- *
70
- * The factorization is obtained by Householder's method. The kth
71
- * transformation matrix, Z( k ), whose conjugate transpose is used to
72
- * introduce zeros into the (m - k + 1)th row of A, is given in the form
73
- *
74
- * Z( k ) = ( I 0 ),
75
- * ( 0 T( k ) )
76
- *
77
- * where
78
- *
79
- * T( k ) = I - tau*u( k )*u( k )', u( k ) = ( 1 ),
80
- * ( 0 )
81
- * ( z( k ) )
82
- *
83
- * tau is a scalar and z( k ) is an ( n - m ) element vector.
84
- * tau and z( k ) are chosen to annihilate the elements of the kth row
85
- * of X.
86
- *
87
- * The scalar tau is returned in the kth element of TAU and the vector
88
- * u( k ) in the kth row of A, such that the elements of z( k ) are
89
- * in a( k, m + 1 ), ..., a( k, n ). The elements of R are returned in
90
- * the upper triangular part of A.
91
- *
92
- * Z is given by
93
- *
94
- * Z = Z( 1 ) * Z( 2 ) * ... * Z( m ).
95
- *
96
- * =====================================================================
97
- *
98
-
99
-
100
- </PRE>
101
- <A HREF="#top">go to the page top</A>
102
-
103
- <A NAME="ctzrzf"></A>
104
- <H2>ctzrzf</H2>
105
- <PRE>
106
- USAGE:
107
- tau, work, info, a = NumRu::Lapack.ctzrzf( a, [:lwork => lwork, :usage => usage, :help => help])
108
-
109
-
110
- FORTRAN MANUAL
111
- SUBROUTINE CTZRZF( M, N, A, LDA, TAU, WORK, LWORK, INFO )
112
-
113
- * Purpose
114
- * =======
115
- *
116
- * CTZRZF reduces the M-by-N ( M<=N ) complex upper trapezoidal matrix A
117
- * to upper triangular form by means of unitary transformations.
118
- *
119
- * The upper trapezoidal matrix A is factored as
120
- *
121
- * A = ( R 0 ) * Z,
122
- *
123
- * where Z is an N-by-N unitary matrix and R is an M-by-M upper
124
- * triangular matrix.
125
- *
126
-
127
- * Arguments
128
- * =========
129
- *
130
- * M (input) INTEGER
131
- * The number of rows of the matrix A. M >= 0.
132
- *
133
- * N (input) INTEGER
134
- * The number of columns of the matrix A. N >= M.
135
- *
136
- * A (input/output) COMPLEX array, dimension (LDA,N)
137
- * On entry, the leading M-by-N upper trapezoidal part of the
138
- * array A must contain the matrix to be factorized.
139
- * On exit, the leading M-by-M upper triangular part of A
140
- * contains the upper triangular matrix R, and elements M+1 to
141
- * N of the first M rows of A, with the array TAU, represent the
142
- * unitary matrix Z as a product of M elementary reflectors.
143
- *
144
- * LDA (input) INTEGER
145
- * The leading dimension of the array A. LDA >= max(1,M).
146
- *
147
- * TAU (output) COMPLEX array, dimension (M)
148
- * The scalar factors of the elementary reflectors.
149
- *
150
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
151
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
152
- *
153
- * LWORK (input) INTEGER
154
- * The dimension of the array WORK. LWORK >= max(1,M).
155
- * For optimum performance LWORK >= M*NB, where NB is
156
- * the optimal blocksize.
157
- *
158
- * If LWORK = -1, then a workspace query is assumed; the routine
159
- * only calculates the optimal size of the WORK array, returns
160
- * this value as the first entry of the WORK array, and no error
161
- * message related to LWORK is issued by XERBLA.
162
- *
163
- * INFO (output) INTEGER
164
- * = 0: successful exit
165
- * < 0: if INFO = -i, the i-th argument had an illegal value
166
- *
167
-
168
- * Further Details
169
- * ===============
170
- *
171
- * Based on contributions by
172
- * A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
173
- *
174
- * The factorization is obtained by Householder's method. The kth
175
- * transformation matrix, Z( k ), which is used to introduce zeros into
176
- * the ( m - k + 1 )th row of A, is given in the form
177
- *
178
- * Z( k ) = ( I 0 ),
179
- * ( 0 T( k ) )
180
- *
181
- * where
182
- *
183
- * T( k ) = I - tau*u( k )*u( k )', u( k ) = ( 1 ),
184
- * ( 0 )
185
- * ( z( k ) )
186
- *
187
- * tau is a scalar and z( k ) is an ( n - m ) element vector.
188
- * tau and z( k ) are chosen to annihilate the elements of the kth row
189
- * of X.
190
- *
191
- * The scalar tau is returned in the kth element of TAU and the vector
192
- * u( k ) in the kth row of A, such that the elements of z( k ) are
193
- * in a( k, m + 1 ), ..., a( k, n ). The elements of R are returned in
194
- * the upper triangular part of A.
195
- *
196
- * Z is given by
197
- *
198
- * Z = Z( 1 ) * Z( 2 ) * ... * Z( m ).
199
- *
200
- * =====================================================================
201
- *
202
-
203
-
204
- </PRE>
205
- <A HREF="#top">go to the page top</A>
206
-
207
- <HR />
208
- <A HREF="c.html">back to matrix types</A><BR>
209
- <A HREF="c.html">back to data types</A>
210
- </BODY>
211
- </HTML>
data/doc/cun.html DELETED
@@ -1,2553 +0,0 @@
1
- <HTML>
2
- <HEAD>
3
- <TITLE>COMPLEX routines for (complex) unitary matrix</TITLE>
4
- </HEAD>
5
- <BODY>
6
- <A NAME="top"></A>
7
- <H1>COMPLEX routines for (complex) unitary matrix</H1>
8
- <UL>
9
- <LI><A HREF="#cunbdb">cunbdb</A></LI>
10
- <LI><A HREF="#cuncsd">cuncsd</A></LI>
11
- <LI><A HREF="#cung2l">cung2l</A></LI>
12
- <LI><A HREF="#cung2r">cung2r</A></LI>
13
- <LI><A HREF="#cungbr">cungbr</A></LI>
14
- <LI><A HREF="#cunghr">cunghr</A></LI>
15
- <LI><A HREF="#cungl2">cungl2</A></LI>
16
- <LI><A HREF="#cunglq">cunglq</A></LI>
17
- <LI><A HREF="#cungql">cungql</A></LI>
18
- <LI><A HREF="#cungqr">cungqr</A></LI>
19
- <LI><A HREF="#cungr2">cungr2</A></LI>
20
- <LI><A HREF="#cungrq">cungrq</A></LI>
21
- <LI><A HREF="#cungtr">cungtr</A></LI>
22
- <LI><A HREF="#cunm2l">cunm2l</A></LI>
23
- <LI><A HREF="#cunm2r">cunm2r</A></LI>
24
- <LI><A HREF="#cunmbr">cunmbr</A></LI>
25
- <LI><A HREF="#cunmhr">cunmhr</A></LI>
26
- <LI><A HREF="#cunml2">cunml2</A></LI>
27
- <LI><A HREF="#cunmlq">cunmlq</A></LI>
28
- <LI><A HREF="#cunmql">cunmql</A></LI>
29
- <LI><A HREF="#cunmqr">cunmqr</A></LI>
30
- <LI><A HREF="#cunmr2">cunmr2</A></LI>
31
- <LI><A HREF="#cunmr3">cunmr3</A></LI>
32
- <LI><A HREF="#cunmrq">cunmrq</A></LI>
33
- <LI><A HREF="#cunmrz">cunmrz</A></LI>
34
- <LI><A HREF="#cunmtr">cunmtr</A></LI>
35
- </UL>
36
-
37
- <A NAME="cunbdb"></A>
38
- <H2>cunbdb</H2>
39
- <PRE>
40
- USAGE:
41
- theta, phi, taup1, taup2, tauq1, tauq2, info, x11, x12, x21, x22 = NumRu::Lapack.cunbdb( trans, signs, m, x11, x12, x21, x22, [:lwork => lwork, :usage => usage, :help => help])
42
-
43
-
44
- FORTRAN MANUAL
45
- SUBROUTINE CUNBDB( TRANS, SIGNS, M, P, Q, X11, LDX11, X12, LDX12, X21, LDX21, X22, LDX22, THETA, PHI, TAUP1, TAUP2, TAUQ1, TAUQ2, WORK, LWORK, INFO )
46
-
47
- * Purpose
48
- * =======
49
- *
50
- * CUNBDB simultaneously bidiagonalizes the blocks of an M-by-M
51
- * partitioned unitary matrix X:
52
- *
53
- * [ B11 | B12 0 0 ]
54
- * [ X11 | X12 ] [ P1 | ] [ 0 | 0 -I 0 ] [ Q1 | ]**H
55
- * X = [-----------] = [---------] [----------------] [---------] .
56
- * [ X21 | X22 ] [ | P2 ] [ B21 | B22 0 0 ] [ | Q2 ]
57
- * [ 0 | 0 0 I ]
58
- *
59
- * X11 is P-by-Q. Q must be no larger than P, M-P, or M-Q. (If this is
60
- * not the case, then X must be transposed and/or permuted. This can be
61
- * done in constant time using the TRANS and SIGNS options. See CUNCSD
62
- * for details.)
63
- *
64
- * The unitary matrices P1, P2, Q1, and Q2 are P-by-P, (M-P)-by-
65
- * (M-P), Q-by-Q, and (M-Q)-by-(M-Q), respectively. They are
66
- * represented implicitly by Householder vectors.
67
- *
68
- * B11, B12, B21, and B22 are Q-by-Q bidiagonal matrices represented
69
- * implicitly by angles THETA, PHI.
70
- *
71
-
72
- * Arguments
73
- * =========
74
- *
75
- * TRANS (input) CHARACTER
76
- * = 'T': X, U1, U2, V1T, and V2T are stored in row-major
77
- * order;
78
- * otherwise: X, U1, U2, V1T, and V2T are stored in column-
79
- * major order.
80
- *
81
- * SIGNS (input) CHARACTER
82
- * = 'O': The lower-left block is made nonpositive (the
83
- * "other" convention);
84
- * otherwise: The upper-right block is made nonpositive (the
85
- * "default" convention).
86
- *
87
- * M (input) INTEGER
88
- * The number of rows and columns in X.
89
- *
90
- * P (input) INTEGER
91
- * The number of rows in X11 and X12. 0 <= P <= M.
92
- *
93
- * Q (input) INTEGER
94
- * The number of columns in X11 and X21. 0 <= Q <=
95
- * MIN(P,M-P,M-Q).
96
- *
97
- * X11 (input/output) COMPLEX array, dimension (LDX11,Q)
98
- * On entry, the top-left block of the unitary matrix to be
99
- * reduced. On exit, the form depends on TRANS:
100
- * If TRANS = 'N', then
101
- * the columns of tril(X11) specify reflectors for P1,
102
- * the rows of triu(X11,1) specify reflectors for Q1;
103
- * else TRANS = 'T', and
104
- * the rows of triu(X11) specify reflectors for P1,
105
- * the columns of tril(X11,-1) specify reflectors for Q1.
106
- *
107
- * LDX11 (input) INTEGER
108
- * The leading dimension of X11. If TRANS = 'N', then LDX11 >=
109
- * P; else LDX11 >= Q.
110
- *
111
- * X12 (input/output) CMPLX array, dimension (LDX12,M-Q)
112
- * On entry, the top-right block of the unitary matrix to
113
- * be reduced. On exit, the form depends on TRANS:
114
- * If TRANS = 'N', then
115
- * the rows of triu(X12) specify the first P reflectors for
116
- * Q2;
117
- * else TRANS = 'T', and
118
- * the columns of tril(X12) specify the first P reflectors
119
- * for Q2.
120
- *
121
- * LDX12 (input) INTEGER
122
- * The leading dimension of X12. If TRANS = 'N', then LDX12 >=
123
- * P; else LDX11 >= M-Q.
124
- *
125
- * X21 (input/output) COMPLEX array, dimension (LDX21,Q)
126
- * On entry, the bottom-left block of the unitary matrix to
127
- * be reduced. On exit, the form depends on TRANS:
128
- * If TRANS = 'N', then
129
- * the columns of tril(X21) specify reflectors for P2;
130
- * else TRANS = 'T', and
131
- * the rows of triu(X21) specify reflectors for P2.
132
- *
133
- * LDX21 (input) INTEGER
134
- * The leading dimension of X21. If TRANS = 'N', then LDX21 >=
135
- * M-P; else LDX21 >= Q.
136
- *
137
- * X22 (input/output) COMPLEX array, dimension (LDX22,M-Q)
138
- * On entry, the bottom-right block of the unitary matrix to
139
- * be reduced. On exit, the form depends on TRANS:
140
- * If TRANS = 'N', then
141
- * the rows of triu(X22(Q+1:M-P,P+1:M-Q)) specify the last
142
- * M-P-Q reflectors for Q2,
143
- * else TRANS = 'T', and
144
- * the columns of tril(X22(P+1:M-Q,Q+1:M-P)) specify the last
145
- * M-P-Q reflectors for P2.
146
- *
147
- * LDX22 (input) INTEGER
148
- * The leading dimension of X22. If TRANS = 'N', then LDX22 >=
149
- * M-P; else LDX22 >= M-Q.
150
- *
151
- * THETA (output) REAL array, dimension (Q)
152
- * The entries of the bidiagonal blocks B11, B12, B21, B22 can
153
- * be computed from the angles THETA and PHI. See Further
154
- * Details.
155
- *
156
- * PHI (output) REAL array, dimension (Q-1)
157
- * The entries of the bidiagonal blocks B11, B12, B21, B22 can
158
- * be computed from the angles THETA and PHI. See Further
159
- * Details.
160
- *
161
- * TAUP1 (output) COMPLEX array, dimension (P)
162
- * The scalar factors of the elementary reflectors that define
163
- * P1.
164
- *
165
- * TAUP2 (output) COMPLEX array, dimension (M-P)
166
- * The scalar factors of the elementary reflectors that define
167
- * P2.
168
- *
169
- * TAUQ1 (output) COMPLEX array, dimension (Q)
170
- * The scalar factors of the elementary reflectors that define
171
- * Q1.
172
- *
173
- * TAUQ2 (output) COMPLEX array, dimension (M-Q)
174
- * The scalar factors of the elementary reflectors that define
175
- * Q2.
176
- *
177
- * WORK (workspace) COMPLEX array, dimension (LWORK)
178
- *
179
- * LWORK (input) INTEGER
180
- * The dimension of the array WORK. LWORK >= M-Q.
181
- *
182
- * If LWORK = -1, then a workspace query is assumed; the routine
183
- * only calculates the optimal size of the WORK array, returns
184
- * this value as the first entry of the WORK array, and no error
185
- * message related to LWORK is issued by XERBLA.
186
- *
187
- * INFO (output) INTEGER
188
- * = 0: successful exit.
189
- * < 0: if INFO = -i, the i-th argument had an illegal value.
190
- *
191
-
192
- * Further Details
193
- * ===============
194
- *
195
- * The bidiagonal blocks B11, B12, B21, and B22 are represented
196
- * implicitly by angles THETA(1), ..., THETA(Q) and PHI(1), ...,
197
- * PHI(Q-1). B11 and B21 are upper bidiagonal, while B21 and B22 are
198
- * lower bidiagonal. Every entry in each bidiagonal band is a product
199
- * of a sine or cosine of a THETA with a sine or cosine of a PHI. See
200
- * [1] or CUNCSD for details.
201
- *
202
- * P1, P2, Q1, and Q2 are represented as products of elementary
203
- * reflectors. See CUNCSD for details on generating P1, P2, Q1, and Q2
204
- * using CUNGQR and CUNGLQ.
205
- *
206
- * Reference
207
- * =========
208
- *
209
- * [1] Brian D. Sutton. Computing the complete CS decomposition. Numer.
210
- * Algorithms, 50(1):33-65, 2009.
211
- *
212
- * ====================================================================
213
- *
214
-
215
-
216
- </PRE>
217
- <A HREF="#top">go to the page top</A>
218
-
219
- <A NAME="cuncsd"></A>
220
- <H2>cuncsd</H2>
221
- <PRE>
222
- USAGE:
223
- theta, u1, u2, v1t, v2t, info = NumRu::Lapack.cuncsd( jobu1, jobu2, jobv1t, jobv2t, trans, signs, m, x11, x12, x21, x22, lwork, lrwork, [:usage => usage, :help => help])
224
-
225
-
226
- FORTRAN MANUAL
227
- RECURSIVE SUBROUTINE CUNCSD( JOBU1, JOBU2, JOBV1T, JOBV2T, TRANS, SIGNS, M, P, Q, X11, LDX11, X12, LDX12, X21, LDX21, X22, LDX22, THETA, U1, LDU1, U2, LDU2, V1T, LDV1T, V2T, LDV2T, WORK, LWORK, RWORK, LRWORK, IWORK, INFO )
228
-
229
- * Purpose
230
- * =======
231
- *
232
- * CUNCSD computes the CS decomposition of an M-by-M partitioned
233
- * unitary matrix X:
234
- *
235
- * [ I 0 0 | 0 0 0 ]
236
- * [ 0 C 0 | 0 -S 0 ]
237
- * [ X11 | X12 ] [ U1 | ] [ 0 0 0 | 0 0 -I ] [ V1 | ]**H
238
- * X = [-----------] = [---------] [---------------------] [---------] .
239
- * [ X21 | X22 ] [ | U2 ] [ 0 0 0 | I 0 0 ] [ | V2 ]
240
- * [ 0 S 0 | 0 C 0 ]
241
- * [ 0 0 I | 0 0 0 ]
242
- *
243
- * X11 is P-by-Q. The unitary matrices U1, U2, V1, and V2 are P-by-P,
244
- * (M-P)-by-(M-P), Q-by-Q, and (M-Q)-by-(M-Q), respectively. C and S are
245
- * R-by-R nonnegative diagonal matrices satisfying C^2 + S^2 = I, in
246
- * which R = MIN(P,M-P,Q,M-Q).
247
- *
248
-
249
- * Arguments
250
- * =========
251
- *
252
- * JOBU1 (input) CHARACTER
253
- * = 'Y': U1 is computed;
254
- * otherwise: U1 is not computed.
255
- *
256
- * JOBU2 (input) CHARACTER
257
- * = 'Y': U2 is computed;
258
- * otherwise: U2 is not computed.
259
- *
260
- * JOBV1T (input) CHARACTER
261
- * = 'Y': V1T is computed;
262
- * otherwise: V1T is not computed.
263
- *
264
- * JOBV2T (input) CHARACTER
265
- * = 'Y': V2T is computed;
266
- * otherwise: V2T is not computed.
267
- *
268
- * TRANS (input) CHARACTER
269
- * = 'T': X, U1, U2, V1T, and V2T are stored in row-major
270
- * order;
271
- * otherwise: X, U1, U2, V1T, and V2T are stored in column-
272
- * major order.
273
- *
274
- * SIGNS (input) CHARACTER
275
- * = 'O': The lower-left block is made nonpositive (the
276
- * "other" convention);
277
- * otherwise: The upper-right block is made nonpositive (the
278
- * "default" convention).
279
- *
280
- * M (input) INTEGER
281
- * The number of rows and columns in X.
282
- *
283
- * P (input) INTEGER
284
- * The number of rows in X11 and X12. 0 <= P <= M.
285
- *
286
- * Q (input) INTEGER
287
- * The number of columns in X11 and X21. 0 <= Q <= M.
288
- *
289
- * X (input/workspace) COMPLEX array, dimension (LDX,M)
290
- * On entry, the unitary matrix whose CSD is desired.
291
- *
292
- * LDX (input) INTEGER
293
- * The leading dimension of X. LDX >= MAX(1,M).
294
- *
295
- * THETA (output) REAL array, dimension (R), in which R =
296
- * MIN(P,M-P,Q,M-Q).
297
- * C = DIAG( COS(THETA(1)), ... , COS(THETA(R)) ) and
298
- * S = DIAG( SIN(THETA(1)), ... , SIN(THETA(R)) ).
299
- *
300
- * U1 (output) COMPLEX array, dimension (P)
301
- * If JOBU1 = 'Y', U1 contains the P-by-P unitary matrix U1.
302
- *
303
- * LDU1 (input) INTEGER
304
- * The leading dimension of U1. If JOBU1 = 'Y', LDU1 >=
305
- * MAX(1,P).
306
- *
307
- * U2 (output) COMPLEX array, dimension (M-P)
308
- * If JOBU2 = 'Y', U2 contains the (M-P)-by-(M-P) unitary
309
- * matrix U2.
310
- *
311
- * LDU2 (input) INTEGER
312
- * The leading dimension of U2. If JOBU2 = 'Y', LDU2 >=
313
- * MAX(1,M-P).
314
- *
315
- * V1T (output) COMPLEX array, dimension (Q)
316
- * If JOBV1T = 'Y', V1T contains the Q-by-Q matrix unitary
317
- * matrix V1**H.
318
- *
319
- * LDV1T (input) INTEGER
320
- * The leading dimension of V1T. If JOBV1T = 'Y', LDV1T >=
321
- * MAX(1,Q).
322
- *
323
- * V2T (output) COMPLEX array, dimension (M-Q)
324
- * If JOBV2T = 'Y', V2T contains the (M-Q)-by-(M-Q) unitary
325
- * matrix V2**H.
326
- *
327
- * LDV2T (input) INTEGER
328
- * The leading dimension of V2T. If JOBV2T = 'Y', LDV2T >=
329
- * MAX(1,M-Q).
330
- *
331
- * WORK (workspace) COMPLEX array, dimension (MAX(1,LWORK))
332
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
333
- *
334
- * LWORK (input) INTEGER
335
- * The dimension of the array WORK.
336
- *
337
- * If LWORK = -1, then a workspace query is assumed; the routine
338
- * only calculates the optimal size of the WORK array, returns
339
- * this value as the first entry of the work array, and no error
340
- * message related to LWORK is issued by XERBLA.
341
- *
342
- * RWORK (workspace) REAL array, dimension MAX(1,LRWORK)
343
- * On exit, if INFO = 0, RWORK(1) returns the optimal LRWORK.
344
- * If INFO > 0 on exit, RWORK(2:R) contains the values PHI(1),
345
- * ..., PHI(R-1) that, together with THETA(1), ..., THETA(R),
346
- * define the matrix in intermediate bidiagonal-block form
347
- * remaining after nonconvergence. INFO specifies the number
348
- * of nonzero PHI's.
349
- *
350
- * LRWORK (input) INTEGER
351
- * The dimension of the array RWORK.
352
- *
353
- * If LRWORK = -1, then a workspace query is assumed; the routine
354
- * only calculates the optimal size of the RWORK array, returns
355
- * this value as the first entry of the work array, and no error
356
- * message related to LRWORK is issued by XERBLA.
357
- *
358
- * IWORK (workspace) INTEGER array, dimension (M-Q)
359
- *
360
- * INFO (output) INTEGER
361
- * = 0: successful exit.
362
- * < 0: if INFO = -i, the i-th argument had an illegal value.
363
- * > 0: CBBCSD did not converge. See the description of RWORK
364
- * above for details.
365
- *
366
- * Reference
367
- * =========
368
- *
369
- * [1] Brian D. Sutton. Computing the complete CS decomposition. Numer.
370
- * Algorithms, 50(1):33-65, 2009.
371
- *
372
-
373
- * ===================================================================
374
- *
375
-
376
-
377
- </PRE>
378
- <A HREF="#top">go to the page top</A>
379
-
380
- <A NAME="cung2l"></A>
381
- <H2>cung2l</H2>
382
- <PRE>
383
- USAGE:
384
- info, a = NumRu::Lapack.cung2l( m, a, tau, [:usage => usage, :help => help])
385
-
386
-
387
- FORTRAN MANUAL
388
- SUBROUTINE CUNG2L( M, N, K, A, LDA, TAU, WORK, INFO )
389
-
390
- * Purpose
391
- * =======
392
- *
393
- * CUNG2L generates an m by n complex matrix Q with orthonormal columns,
394
- * which is defined as the last n columns of a product of k elementary
395
- * reflectors of order m
396
- *
397
- * Q = H(k) . . . H(2) H(1)
398
- *
399
- * as returned by CGEQLF.
400
- *
401
-
402
- * Arguments
403
- * =========
404
- *
405
- * M (input) INTEGER
406
- * The number of rows of the matrix Q. M >= 0.
407
- *
408
- * N (input) INTEGER
409
- * The number of columns of the matrix Q. M >= N >= 0.
410
- *
411
- * K (input) INTEGER
412
- * The number of elementary reflectors whose product defines the
413
- * matrix Q. N >= K >= 0.
414
- *
415
- * A (input/output) COMPLEX array, dimension (LDA,N)
416
- * On entry, the (n-k+i)-th column must contain the vector which
417
- * defines the elementary reflector H(i), for i = 1,2,...,k, as
418
- * returned by CGEQLF in the last k columns of its array
419
- * argument A.
420
- * On exit, the m-by-n matrix Q.
421
- *
422
- * LDA (input) INTEGER
423
- * The first dimension of the array A. LDA >= max(1,M).
424
- *
425
- * TAU (input) COMPLEX array, dimension (K)
426
- * TAU(i) must contain the scalar factor of the elementary
427
- * reflector H(i), as returned by CGEQLF.
428
- *
429
- * WORK (workspace) COMPLEX array, dimension (N)
430
- *
431
- * INFO (output) INTEGER
432
- * = 0: successful exit
433
- * < 0: if INFO = -i, the i-th argument has an illegal value
434
- *
435
-
436
- * =====================================================================
437
- *
438
-
439
-
440
- </PRE>
441
- <A HREF="#top">go to the page top</A>
442
-
443
- <A NAME="cung2r"></A>
444
- <H2>cung2r</H2>
445
- <PRE>
446
- USAGE:
447
- info, a = NumRu::Lapack.cung2r( m, a, tau, [:usage => usage, :help => help])
448
-
449
-
450
- FORTRAN MANUAL
451
- SUBROUTINE CUNG2R( M, N, K, A, LDA, TAU, WORK, INFO )
452
-
453
- * Purpose
454
- * =======
455
- *
456
- * CUNG2R generates an m by n complex matrix Q with orthonormal columns,
457
- * which is defined as the first n columns of a product of k elementary
458
- * reflectors of order m
459
- *
460
- * Q = H(1) H(2) . . . H(k)
461
- *
462
- * as returned by CGEQRF.
463
- *
464
-
465
- * Arguments
466
- * =========
467
- *
468
- * M (input) INTEGER
469
- * The number of rows of the matrix Q. M >= 0.
470
- *
471
- * N (input) INTEGER
472
- * The number of columns of the matrix Q. M >= N >= 0.
473
- *
474
- * K (input) INTEGER
475
- * The number of elementary reflectors whose product defines the
476
- * matrix Q. N >= K >= 0.
477
- *
478
- * A (input/output) COMPLEX array, dimension (LDA,N)
479
- * On entry, the i-th column must contain the vector which
480
- * defines the elementary reflector H(i), for i = 1,2,...,k, as
481
- * returned by CGEQRF in the first k columns of its array
482
- * argument A.
483
- * On exit, the m by n matrix Q.
484
- *
485
- * LDA (input) INTEGER
486
- * The first dimension of the array A. LDA >= max(1,M).
487
- *
488
- * TAU (input) COMPLEX array, dimension (K)
489
- * TAU(i) must contain the scalar factor of the elementary
490
- * reflector H(i), as returned by CGEQRF.
491
- *
492
- * WORK (workspace) COMPLEX array, dimension (N)
493
- *
494
- * INFO (output) INTEGER
495
- * = 0: successful exit
496
- * < 0: if INFO = -i, the i-th argument has an illegal value
497
- *
498
-
499
- * =====================================================================
500
- *
501
-
502
-
503
- </PRE>
504
- <A HREF="#top">go to the page top</A>
505
-
506
- <A NAME="cungbr"></A>
507
- <H2>cungbr</H2>
508
- <PRE>
509
- USAGE:
510
- work, info, a = NumRu::Lapack.cungbr( vect, m, k, a, tau, [:lwork => lwork, :usage => usage, :help => help])
511
-
512
-
513
- FORTRAN MANUAL
514
- SUBROUTINE CUNGBR( VECT, M, N, K, A, LDA, TAU, WORK, LWORK, INFO )
515
-
516
- * Purpose
517
- * =======
518
- *
519
- * CUNGBR generates one of the complex unitary matrices Q or P**H
520
- * determined by CGEBRD when reducing a complex matrix A to bidiagonal
521
- * form: A = Q * B * P**H. Q and P**H are defined as products of
522
- * elementary reflectors H(i) or G(i) respectively.
523
- *
524
- * If VECT = 'Q', A is assumed to have been an M-by-K matrix, and Q
525
- * is of order M:
526
- * if m >= k, Q = H(1) H(2) . . . H(k) and CUNGBR returns the first n
527
- * columns of Q, where m >= n >= k;
528
- * if m < k, Q = H(1) H(2) . . . H(m-1) and CUNGBR returns Q as an
529
- * M-by-M matrix.
530
- *
531
- * If VECT = 'P', A is assumed to have been a K-by-N matrix, and P**H
532
- * is of order N:
533
- * if k < n, P**H = G(k) . . . G(2) G(1) and CUNGBR returns the first m
534
- * rows of P**H, where n >= m >= k;
535
- * if k >= n, P**H = G(n-1) . . . G(2) G(1) and CUNGBR returns P**H as
536
- * an N-by-N matrix.
537
- *
538
-
539
- * Arguments
540
- * =========
541
- *
542
- * VECT (input) CHARACTER*1
543
- * Specifies whether the matrix Q or the matrix P**H is
544
- * required, as defined in the transformation applied by CGEBRD:
545
- * = 'Q': generate Q;
546
- * = 'P': generate P**H.
547
- *
548
- * M (input) INTEGER
549
- * The number of rows of the matrix Q or P**H to be returned.
550
- * M >= 0.
551
- *
552
- * N (input) INTEGER
553
- * The number of columns of the matrix Q or P**H to be returned.
554
- * N >= 0.
555
- * If VECT = 'Q', M >= N >= min(M,K);
556
- * if VECT = 'P', N >= M >= min(N,K).
557
- *
558
- * K (input) INTEGER
559
- * If VECT = 'Q', the number of columns in the original M-by-K
560
- * matrix reduced by CGEBRD.
561
- * If VECT = 'P', the number of rows in the original K-by-N
562
- * matrix reduced by CGEBRD.
563
- * K >= 0.
564
- *
565
- * A (input/output) COMPLEX array, dimension (LDA,N)
566
- * On entry, the vectors which define the elementary reflectors,
567
- * as returned by CGEBRD.
568
- * On exit, the M-by-N matrix Q or P**H.
569
- *
570
- * LDA (input) INTEGER
571
- * The leading dimension of the array A. LDA >= M.
572
- *
573
- * TAU (input) COMPLEX array, dimension
574
- * (min(M,K)) if VECT = 'Q'
575
- * (min(N,K)) if VECT = 'P'
576
- * TAU(i) must contain the scalar factor of the elementary
577
- * reflector H(i) or G(i), which determines Q or P**H, as
578
- * returned by CGEBRD in its array argument TAUQ or TAUP.
579
- *
580
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
581
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
582
- *
583
- * LWORK (input) INTEGER
584
- * The dimension of the array WORK. LWORK >= max(1,min(M,N)).
585
- * For optimum performance LWORK >= min(M,N)*NB, where NB
586
- * is the optimal blocksize.
587
- *
588
- * If LWORK = -1, then a workspace query is assumed; the routine
589
- * only calculates the optimal size of the WORK array, returns
590
- * this value as the first entry of the WORK array, and no error
591
- * message related to LWORK is issued by XERBLA.
592
- *
593
- * INFO (output) INTEGER
594
- * = 0: successful exit
595
- * < 0: if INFO = -i, the i-th argument had an illegal value
596
- *
597
-
598
- * =====================================================================
599
- *
600
-
601
-
602
- </PRE>
603
- <A HREF="#top">go to the page top</A>
604
-
605
- <A NAME="cunghr"></A>
606
- <H2>cunghr</H2>
607
- <PRE>
608
- USAGE:
609
- work, info, a = NumRu::Lapack.cunghr( ilo, ihi, a, tau, [:lwork => lwork, :usage => usage, :help => help])
610
-
611
-
612
- FORTRAN MANUAL
613
- SUBROUTINE CUNGHR( N, ILO, IHI, A, LDA, TAU, WORK, LWORK, INFO )
614
-
615
- * Purpose
616
- * =======
617
- *
618
- * CUNGHR generates a complex unitary matrix Q which is defined as the
619
- * product of IHI-ILO elementary reflectors of order N, as returned by
620
- * CGEHRD:
621
- *
622
- * Q = H(ilo) H(ilo+1) . . . H(ihi-1).
623
- *
624
-
625
- * Arguments
626
- * =========
627
- *
628
- * N (input) INTEGER
629
- * The order of the matrix Q. N >= 0.
630
- *
631
- * ILO (input) INTEGER
632
- * IHI (input) INTEGER
633
- * ILO and IHI must have the same values as in the previous call
634
- * of CGEHRD. Q is equal to the unit matrix except in the
635
- * submatrix Q(ilo+1:ihi,ilo+1:ihi).
636
- * 1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.
637
- *
638
- * A (input/output) COMPLEX array, dimension (LDA,N)
639
- * On entry, the vectors which define the elementary reflectors,
640
- * as returned by CGEHRD.
641
- * On exit, the N-by-N unitary matrix Q.
642
- *
643
- * LDA (input) INTEGER
644
- * The leading dimension of the array A. LDA >= max(1,N).
645
- *
646
- * TAU (input) COMPLEX array, dimension (N-1)
647
- * TAU(i) must contain the scalar factor of the elementary
648
- * reflector H(i), as returned by CGEHRD.
649
- *
650
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
651
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
652
- *
653
- * LWORK (input) INTEGER
654
- * The dimension of the array WORK. LWORK >= IHI-ILO.
655
- * For optimum performance LWORK >= (IHI-ILO)*NB, where NB is
656
- * the optimal blocksize.
657
- *
658
- * If LWORK = -1, then a workspace query is assumed; the routine
659
- * only calculates the optimal size of the WORK array, returns
660
- * this value as the first entry of the WORK array, and no error
661
- * message related to LWORK is issued by XERBLA.
662
- *
663
- * INFO (output) INTEGER
664
- * = 0: successful exit
665
- * < 0: if INFO = -i, the i-th argument had an illegal value
666
- *
667
-
668
- * =====================================================================
669
- *
670
-
671
-
672
- </PRE>
673
- <A HREF="#top">go to the page top</A>
674
-
675
- <A NAME="cungl2"></A>
676
- <H2>cungl2</H2>
677
- <PRE>
678
- USAGE:
679
- info, a = NumRu::Lapack.cungl2( a, tau, [:usage => usage, :help => help])
680
-
681
-
682
- FORTRAN MANUAL
683
- SUBROUTINE CUNGL2( M, N, K, A, LDA, TAU, WORK, INFO )
684
-
685
- * Purpose
686
- * =======
687
- *
688
- * CUNGL2 generates an m-by-n complex matrix Q with orthonormal rows,
689
- * which is defined as the first m rows of a product of k elementary
690
- * reflectors of order n
691
- *
692
- * Q = H(k)' . . . H(2)' H(1)'
693
- *
694
- * as returned by CGELQF.
695
- *
696
-
697
- * Arguments
698
- * =========
699
- *
700
- * M (input) INTEGER
701
- * The number of rows of the matrix Q. M >= 0.
702
- *
703
- * N (input) INTEGER
704
- * The number of columns of the matrix Q. N >= M.
705
- *
706
- * K (input) INTEGER
707
- * The number of elementary reflectors whose product defines the
708
- * matrix Q. M >= K >= 0.
709
- *
710
- * A (input/output) COMPLEX array, dimension (LDA,N)
711
- * On entry, the i-th row must contain the vector which defines
712
- * the elementary reflector H(i), for i = 1,2,...,k, as returned
713
- * by CGELQF in the first k rows of its array argument A.
714
- * On exit, the m by n matrix Q.
715
- *
716
- * LDA (input) INTEGER
717
- * The first dimension of the array A. LDA >= max(1,M).
718
- *
719
- * TAU (input) COMPLEX array, dimension (K)
720
- * TAU(i) must contain the scalar factor of the elementary
721
- * reflector H(i), as returned by CGELQF.
722
- *
723
- * WORK (workspace) COMPLEX array, dimension (M)
724
- *
725
- * INFO (output) INTEGER
726
- * = 0: successful exit
727
- * < 0: if INFO = -i, the i-th argument has an illegal value
728
- *
729
-
730
- * =====================================================================
731
- *
732
-
733
-
734
- </PRE>
735
- <A HREF="#top">go to the page top</A>
736
-
737
- <A NAME="cunglq"></A>
738
- <H2>cunglq</H2>
739
- <PRE>
740
- USAGE:
741
- work, info, a = NumRu::Lapack.cunglq( m, a, tau, [:lwork => lwork, :usage => usage, :help => help])
742
-
743
-
744
- FORTRAN MANUAL
745
- SUBROUTINE CUNGLQ( M, N, K, A, LDA, TAU, WORK, LWORK, INFO )
746
-
747
- * Purpose
748
- * =======
749
- *
750
- * CUNGLQ generates an M-by-N complex matrix Q with orthonormal rows,
751
- * which is defined as the first M rows of a product of K elementary
752
- * reflectors of order N
753
- *
754
- * Q = H(k)' . . . H(2)' H(1)'
755
- *
756
- * as returned by CGELQF.
757
- *
758
-
759
- * Arguments
760
- * =========
761
- *
762
- * M (input) INTEGER
763
- * The number of rows of the matrix Q. M >= 0.
764
- *
765
- * N (input) INTEGER
766
- * The number of columns of the matrix Q. N >= M.
767
- *
768
- * K (input) INTEGER
769
- * The number of elementary reflectors whose product defines the
770
- * matrix Q. M >= K >= 0.
771
- *
772
- * A (input/output) COMPLEX array, dimension (LDA,N)
773
- * On entry, the i-th row must contain the vector which defines
774
- * the elementary reflector H(i), for i = 1,2,...,k, as returned
775
- * by CGELQF in the first k rows of its array argument A.
776
- * On exit, the M-by-N matrix Q.
777
- *
778
- * LDA (input) INTEGER
779
- * The first dimension of the array A. LDA >= max(1,M).
780
- *
781
- * TAU (input) COMPLEX array, dimension (K)
782
- * TAU(i) must contain the scalar factor of the elementary
783
- * reflector H(i), as returned by CGELQF.
784
- *
785
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
786
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
787
- *
788
- * LWORK (input) INTEGER
789
- * The dimension of the array WORK. LWORK >= max(1,M).
790
- * For optimum performance LWORK >= M*NB, where NB is
791
- * the optimal blocksize.
792
- *
793
- * If LWORK = -1, then a workspace query is assumed; the routine
794
- * only calculates the optimal size of the WORK array, returns
795
- * this value as the first entry of the WORK array, and no error
796
- * message related to LWORK is issued by XERBLA.
797
- *
798
- * INFO (output) INTEGER
799
- * = 0: successful exit;
800
- * < 0: if INFO = -i, the i-th argument has an illegal value
801
- *
802
-
803
- * =====================================================================
804
- *
805
-
806
-
807
- </PRE>
808
- <A HREF="#top">go to the page top</A>
809
-
810
- <A NAME="cungql"></A>
811
- <H2>cungql</H2>
812
- <PRE>
813
- USAGE:
814
- work, info, a = NumRu::Lapack.cungql( m, a, tau, [:lwork => lwork, :usage => usage, :help => help])
815
-
816
-
817
- FORTRAN MANUAL
818
- SUBROUTINE CUNGQL( M, N, K, A, LDA, TAU, WORK, LWORK, INFO )
819
-
820
- * Purpose
821
- * =======
822
- *
823
- * CUNGQL generates an M-by-N complex matrix Q with orthonormal columns,
824
- * which is defined as the last N columns of a product of K elementary
825
- * reflectors of order M
826
- *
827
- * Q = H(k) . . . H(2) H(1)
828
- *
829
- * as returned by CGEQLF.
830
- *
831
-
832
- * Arguments
833
- * =========
834
- *
835
- * M (input) INTEGER
836
- * The number of rows of the matrix Q. M >= 0.
837
- *
838
- * N (input) INTEGER
839
- * The number of columns of the matrix Q. M >= N >= 0.
840
- *
841
- * K (input) INTEGER
842
- * The number of elementary reflectors whose product defines the
843
- * matrix Q. N >= K >= 0.
844
- *
845
- * A (input/output) COMPLEX array, dimension (LDA,N)
846
- * On entry, the (n-k+i)-th column must contain the vector which
847
- * defines the elementary reflector H(i), for i = 1,2,...,k, as
848
- * returned by CGEQLF in the last k columns of its array
849
- * argument A.
850
- * On exit, the M-by-N matrix Q.
851
- *
852
- * LDA (input) INTEGER
853
- * The first dimension of the array A. LDA >= max(1,M).
854
- *
855
- * TAU (input) COMPLEX array, dimension (K)
856
- * TAU(i) must contain the scalar factor of the elementary
857
- * reflector H(i), as returned by CGEQLF.
858
- *
859
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
860
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
861
- *
862
- * LWORK (input) INTEGER
863
- * The dimension of the array WORK. LWORK >= max(1,N).
864
- * For optimum performance LWORK >= N*NB, where NB is the
865
- * optimal blocksize.
866
- *
867
- * If LWORK = -1, then a workspace query is assumed; the routine
868
- * only calculates the optimal size of the WORK array, returns
869
- * this value as the first entry of the WORK array, and no error
870
- * message related to LWORK is issued by XERBLA.
871
- *
872
- * INFO (output) INTEGER
873
- * = 0: successful exit
874
- * < 0: if INFO = -i, the i-th argument has an illegal value
875
- *
876
-
877
- * =====================================================================
878
- *
879
-
880
-
881
- </PRE>
882
- <A HREF="#top">go to the page top</A>
883
-
884
- <A NAME="cungqr"></A>
885
- <H2>cungqr</H2>
886
- <PRE>
887
- USAGE:
888
- work, info, a = NumRu::Lapack.cungqr( m, a, tau, [:lwork => lwork, :usage => usage, :help => help])
889
-
890
-
891
- FORTRAN MANUAL
892
- SUBROUTINE CUNGQR( M, N, K, A, LDA, TAU, WORK, LWORK, INFO )
893
-
894
- * Purpose
895
- * =======
896
- *
897
- * CUNGQR generates an M-by-N complex matrix Q with orthonormal columns,
898
- * which is defined as the first N columns of a product of K elementary
899
- * reflectors of order M
900
- *
901
- * Q = H(1) H(2) . . . H(k)
902
- *
903
- * as returned by CGEQRF.
904
- *
905
-
906
- * Arguments
907
- * =========
908
- *
909
- * M (input) INTEGER
910
- * The number of rows of the matrix Q. M >= 0.
911
- *
912
- * N (input) INTEGER
913
- * The number of columns of the matrix Q. M >= N >= 0.
914
- *
915
- * K (input) INTEGER
916
- * The number of elementary reflectors whose product defines the
917
- * matrix Q. N >= K >= 0.
918
- *
919
- * A (input/output) COMPLEX array, dimension (LDA,N)
920
- * On entry, the i-th column must contain the vector which
921
- * defines the elementary reflector H(i), for i = 1,2,...,k, as
922
- * returned by CGEQRF in the first k columns of its array
923
- * argument A.
924
- * On exit, the M-by-N matrix Q.
925
- *
926
- * LDA (input) INTEGER
927
- * The first dimension of the array A. LDA >= max(1,M).
928
- *
929
- * TAU (input) COMPLEX array, dimension (K)
930
- * TAU(i) must contain the scalar factor of the elementary
931
- * reflector H(i), as returned by CGEQRF.
932
- *
933
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
934
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
935
- *
936
- * LWORK (input) INTEGER
937
- * The dimension of the array WORK. LWORK >= max(1,N).
938
- * For optimum performance LWORK >= N*NB, where NB is the
939
- * optimal blocksize.
940
- *
941
- * If LWORK = -1, then a workspace query is assumed; the routine
942
- * only calculates the optimal size of the WORK array, returns
943
- * this value as the first entry of the WORK array, and no error
944
- * message related to LWORK is issued by XERBLA.
945
- *
946
- * INFO (output) INTEGER
947
- * = 0: successful exit
948
- * < 0: if INFO = -i, the i-th argument has an illegal value
949
- *
950
-
951
- * =====================================================================
952
- *
953
-
954
-
955
- </PRE>
956
- <A HREF="#top">go to the page top</A>
957
-
958
- <A NAME="cungr2"></A>
959
- <H2>cungr2</H2>
960
- <PRE>
961
- USAGE:
962
- info, a = NumRu::Lapack.cungr2( a, tau, [:usage => usage, :help => help])
963
-
964
-
965
- FORTRAN MANUAL
966
- SUBROUTINE CUNGR2( M, N, K, A, LDA, TAU, WORK, INFO )
967
-
968
- * Purpose
969
- * =======
970
- *
971
- * CUNGR2 generates an m by n complex matrix Q with orthonormal rows,
972
- * which is defined as the last m rows of a product of k elementary
973
- * reflectors of order n
974
- *
975
- * Q = H(1)' H(2)' . . . H(k)'
976
- *
977
- * as returned by CGERQF.
978
- *
979
-
980
- * Arguments
981
- * =========
982
- *
983
- * M (input) INTEGER
984
- * The number of rows of the matrix Q. M >= 0.
985
- *
986
- * N (input) INTEGER
987
- * The number of columns of the matrix Q. N >= M.
988
- *
989
- * K (input) INTEGER
990
- * The number of elementary reflectors whose product defines the
991
- * matrix Q. M >= K >= 0.
992
- *
993
- * A (input/output) COMPLEX array, dimension (LDA,N)
994
- * On entry, the (m-k+i)-th row must contain the vector which
995
- * defines the elementary reflector H(i), for i = 1,2,...,k, as
996
- * returned by CGERQF in the last k rows of its array argument
997
- * A.
998
- * On exit, the m-by-n matrix Q.
999
- *
1000
- * LDA (input) INTEGER
1001
- * The first dimension of the array A. LDA >= max(1,M).
1002
- *
1003
- * TAU (input) COMPLEX array, dimension (K)
1004
- * TAU(i) must contain the scalar factor of the elementary
1005
- * reflector H(i), as returned by CGERQF.
1006
- *
1007
- * WORK (workspace) COMPLEX array, dimension (M)
1008
- *
1009
- * INFO (output) INTEGER
1010
- * = 0: successful exit
1011
- * < 0: if INFO = -i, the i-th argument has an illegal value
1012
- *
1013
-
1014
- * =====================================================================
1015
- *
1016
-
1017
-
1018
- </PRE>
1019
- <A HREF="#top">go to the page top</A>
1020
-
1021
- <A NAME="cungrq"></A>
1022
- <H2>cungrq</H2>
1023
- <PRE>
1024
- USAGE:
1025
- work, info, a = NumRu::Lapack.cungrq( m, a, tau, [:lwork => lwork, :usage => usage, :help => help])
1026
-
1027
-
1028
- FORTRAN MANUAL
1029
- SUBROUTINE CUNGRQ( M, N, K, A, LDA, TAU, WORK, LWORK, INFO )
1030
-
1031
- * Purpose
1032
- * =======
1033
- *
1034
- * CUNGRQ generates an M-by-N complex matrix Q with orthonormal rows,
1035
- * which is defined as the last M rows of a product of K elementary
1036
- * reflectors of order N
1037
- *
1038
- * Q = H(1)' H(2)' . . . H(k)'
1039
- *
1040
- * as returned by CGERQF.
1041
- *
1042
-
1043
- * Arguments
1044
- * =========
1045
- *
1046
- * M (input) INTEGER
1047
- * The number of rows of the matrix Q. M >= 0.
1048
- *
1049
- * N (input) INTEGER
1050
- * The number of columns of the matrix Q. N >= M.
1051
- *
1052
- * K (input) INTEGER
1053
- * The number of elementary reflectors whose product defines the
1054
- * matrix Q. M >= K >= 0.
1055
- *
1056
- * A (input/output) COMPLEX array, dimension (LDA,N)
1057
- * On entry, the (m-k+i)-th row must contain the vector which
1058
- * defines the elementary reflector H(i), for i = 1,2,...,k, as
1059
- * returned by CGERQF in the last k rows of its array argument
1060
- * A.
1061
- * On exit, the M-by-N matrix Q.
1062
- *
1063
- * LDA (input) INTEGER
1064
- * The first dimension of the array A. LDA >= max(1,M).
1065
- *
1066
- * TAU (input) COMPLEX array, dimension (K)
1067
- * TAU(i) must contain the scalar factor of the elementary
1068
- * reflector H(i), as returned by CGERQF.
1069
- *
1070
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
1071
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1072
- *
1073
- * LWORK (input) INTEGER
1074
- * The dimension of the array WORK. LWORK >= max(1,M).
1075
- * For optimum performance LWORK >= M*NB, where NB is the
1076
- * optimal blocksize.
1077
- *
1078
- * If LWORK = -1, then a workspace query is assumed; the routine
1079
- * only calculates the optimal size of the WORK array, returns
1080
- * this value as the first entry of the WORK array, and no error
1081
- * message related to LWORK is issued by XERBLA.
1082
- *
1083
- * INFO (output) INTEGER
1084
- * = 0: successful exit
1085
- * < 0: if INFO = -i, the i-th argument has an illegal value
1086
- *
1087
-
1088
- * =====================================================================
1089
- *
1090
-
1091
-
1092
- </PRE>
1093
- <A HREF="#top">go to the page top</A>
1094
-
1095
- <A NAME="cungtr"></A>
1096
- <H2>cungtr</H2>
1097
- <PRE>
1098
- USAGE:
1099
- work, info, a = NumRu::Lapack.cungtr( uplo, a, tau, [:lwork => lwork, :usage => usage, :help => help])
1100
-
1101
-
1102
- FORTRAN MANUAL
1103
- SUBROUTINE CUNGTR( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO )
1104
-
1105
- * Purpose
1106
- * =======
1107
- *
1108
- * CUNGTR generates a complex unitary matrix Q which is defined as the
1109
- * product of n-1 elementary reflectors of order N, as returned by
1110
- * CHETRD:
1111
- *
1112
- * if UPLO = 'U', Q = H(n-1) . . . H(2) H(1),
1113
- *
1114
- * if UPLO = 'L', Q = H(1) H(2) . . . H(n-1).
1115
- *
1116
-
1117
- * Arguments
1118
- * =========
1119
- *
1120
- * UPLO (input) CHARACTER*1
1121
- * = 'U': Upper triangle of A contains elementary reflectors
1122
- * from CHETRD;
1123
- * = 'L': Lower triangle of A contains elementary reflectors
1124
- * from CHETRD.
1125
- *
1126
- * N (input) INTEGER
1127
- * The order of the matrix Q. N >= 0.
1128
- *
1129
- * A (input/output) COMPLEX array, dimension (LDA,N)
1130
- * On entry, the vectors which define the elementary reflectors,
1131
- * as returned by CHETRD.
1132
- * On exit, the N-by-N unitary matrix Q.
1133
- *
1134
- * LDA (input) INTEGER
1135
- * The leading dimension of the array A. LDA >= N.
1136
- *
1137
- * TAU (input) COMPLEX array, dimension (N-1)
1138
- * TAU(i) must contain the scalar factor of the elementary
1139
- * reflector H(i), as returned by CHETRD.
1140
- *
1141
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
1142
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1143
- *
1144
- * LWORK (input) INTEGER
1145
- * The dimension of the array WORK. LWORK >= N-1.
1146
- * For optimum performance LWORK >= (N-1)*NB, where NB is
1147
- * the optimal blocksize.
1148
- *
1149
- * If LWORK = -1, then a workspace query is assumed; the routine
1150
- * only calculates the optimal size of the WORK array, returns
1151
- * this value as the first entry of the WORK array, and no error
1152
- * message related to LWORK is issued by XERBLA.
1153
- *
1154
- * INFO (output) INTEGER
1155
- * = 0: successful exit
1156
- * < 0: if INFO = -i, the i-th argument had an illegal value
1157
- *
1158
-
1159
- * =====================================================================
1160
- *
1161
-
1162
-
1163
- </PRE>
1164
- <A HREF="#top">go to the page top</A>
1165
-
1166
- <A NAME="cunm2l"></A>
1167
- <H2>cunm2l</H2>
1168
- <PRE>
1169
- USAGE:
1170
- info, c = NumRu::Lapack.cunm2l( side, trans, m, a, tau, c, [:usage => usage, :help => help])
1171
-
1172
-
1173
- FORTRAN MANUAL
1174
- SUBROUTINE CUNM2L( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO )
1175
-
1176
- * Purpose
1177
- * =======
1178
- *
1179
- * CUNM2L overwrites the general complex m-by-n matrix C with
1180
- *
1181
- * Q * C if SIDE = 'L' and TRANS = 'N', or
1182
- *
1183
- * Q'* C if SIDE = 'L' and TRANS = 'C', or
1184
- *
1185
- * C * Q if SIDE = 'R' and TRANS = 'N', or
1186
- *
1187
- * C * Q' if SIDE = 'R' and TRANS = 'C',
1188
- *
1189
- * where Q is a complex unitary matrix defined as the product of k
1190
- * elementary reflectors
1191
- *
1192
- * Q = H(k) . . . H(2) H(1)
1193
- *
1194
- * as returned by CGEQLF. Q is of order m if SIDE = 'L' and of order n
1195
- * if SIDE = 'R'.
1196
- *
1197
-
1198
- * Arguments
1199
- * =========
1200
- *
1201
- * SIDE (input) CHARACTER*1
1202
- * = 'L': apply Q or Q' from the Left
1203
- * = 'R': apply Q or Q' from the Right
1204
- *
1205
- * TRANS (input) CHARACTER*1
1206
- * = 'N': apply Q (No transpose)
1207
- * = 'C': apply Q' (Conjugate transpose)
1208
- *
1209
- * M (input) INTEGER
1210
- * The number of rows of the matrix C. M >= 0.
1211
- *
1212
- * N (input) INTEGER
1213
- * The number of columns of the matrix C. N >= 0.
1214
- *
1215
- * K (input) INTEGER
1216
- * The number of elementary reflectors whose product defines
1217
- * the matrix Q.
1218
- * If SIDE = 'L', M >= K >= 0;
1219
- * if SIDE = 'R', N >= K >= 0.
1220
- *
1221
- * A (input) COMPLEX array, dimension (LDA,K)
1222
- * The i-th column must contain the vector which defines the
1223
- * elementary reflector H(i), for i = 1,2,...,k, as returned by
1224
- * CGEQLF in the last k columns of its array argument A.
1225
- * A is modified by the routine but restored on exit.
1226
- *
1227
- * LDA (input) INTEGER
1228
- * The leading dimension of the array A.
1229
- * If SIDE = 'L', LDA >= max(1,M);
1230
- * if SIDE = 'R', LDA >= max(1,N).
1231
- *
1232
- * TAU (input) COMPLEX array, dimension (K)
1233
- * TAU(i) must contain the scalar factor of the elementary
1234
- * reflector H(i), as returned by CGEQLF.
1235
- *
1236
- * C (input/output) COMPLEX array, dimension (LDC,N)
1237
- * On entry, the m-by-n matrix C.
1238
- * On exit, C is overwritten by Q*C or Q'*C or C*Q' or C*Q.
1239
- *
1240
- * LDC (input) INTEGER
1241
- * The leading dimension of the array C. LDC >= max(1,M).
1242
- *
1243
- * WORK (workspace) COMPLEX array, dimension
1244
- * (N) if SIDE = 'L',
1245
- * (M) if SIDE = 'R'
1246
- *
1247
- * INFO (output) INTEGER
1248
- * = 0: successful exit
1249
- * < 0: if INFO = -i, the i-th argument had an illegal value
1250
- *
1251
-
1252
- * =====================================================================
1253
- *
1254
-
1255
-
1256
- </PRE>
1257
- <A HREF="#top">go to the page top</A>
1258
-
1259
- <A NAME="cunm2r"></A>
1260
- <H2>cunm2r</H2>
1261
- <PRE>
1262
- USAGE:
1263
- info, c = NumRu::Lapack.cunm2r( side, trans, m, a, tau, c, [:usage => usage, :help => help])
1264
-
1265
-
1266
- FORTRAN MANUAL
1267
- SUBROUTINE CUNM2R( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO )
1268
-
1269
- * Purpose
1270
- * =======
1271
- *
1272
- * CUNM2R overwrites the general complex m-by-n matrix C with
1273
- *
1274
- * Q * C if SIDE = 'L' and TRANS = 'N', or
1275
- *
1276
- * Q'* C if SIDE = 'L' and TRANS = 'C', or
1277
- *
1278
- * C * Q if SIDE = 'R' and TRANS = 'N', or
1279
- *
1280
- * C * Q' if SIDE = 'R' and TRANS = 'C',
1281
- *
1282
- * where Q is a complex unitary matrix defined as the product of k
1283
- * elementary reflectors
1284
- *
1285
- * Q = H(1) H(2) . . . H(k)
1286
- *
1287
- * as returned by CGEQRF. Q is of order m if SIDE = 'L' and of order n
1288
- * if SIDE = 'R'.
1289
- *
1290
-
1291
- * Arguments
1292
- * =========
1293
- *
1294
- * SIDE (input) CHARACTER*1
1295
- * = 'L': apply Q or Q' from the Left
1296
- * = 'R': apply Q or Q' from the Right
1297
- *
1298
- * TRANS (input) CHARACTER*1
1299
- * = 'N': apply Q (No transpose)
1300
- * = 'C': apply Q' (Conjugate transpose)
1301
- *
1302
- * M (input) INTEGER
1303
- * The number of rows of the matrix C. M >= 0.
1304
- *
1305
- * N (input) INTEGER
1306
- * The number of columns of the matrix C. N >= 0.
1307
- *
1308
- * K (input) INTEGER
1309
- * The number of elementary reflectors whose product defines
1310
- * the matrix Q.
1311
- * If SIDE = 'L', M >= K >= 0;
1312
- * if SIDE = 'R', N >= K >= 0.
1313
- *
1314
- * A (input) COMPLEX array, dimension (LDA,K)
1315
- * The i-th column must contain the vector which defines the
1316
- * elementary reflector H(i), for i = 1,2,...,k, as returned by
1317
- * CGEQRF in the first k columns of its array argument A.
1318
- * A is modified by the routine but restored on exit.
1319
- *
1320
- * LDA (input) INTEGER
1321
- * The leading dimension of the array A.
1322
- * If SIDE = 'L', LDA >= max(1,M);
1323
- * if SIDE = 'R', LDA >= max(1,N).
1324
- *
1325
- * TAU (input) COMPLEX array, dimension (K)
1326
- * TAU(i) must contain the scalar factor of the elementary
1327
- * reflector H(i), as returned by CGEQRF.
1328
- *
1329
- * C (input/output) COMPLEX array, dimension (LDC,N)
1330
- * On entry, the m-by-n matrix C.
1331
- * On exit, C is overwritten by Q*C or Q'*C or C*Q' or C*Q.
1332
- *
1333
- * LDC (input) INTEGER
1334
- * The leading dimension of the array C. LDC >= max(1,M).
1335
- *
1336
- * WORK (workspace) COMPLEX array, dimension
1337
- * (N) if SIDE = 'L',
1338
- * (M) if SIDE = 'R'
1339
- *
1340
- * INFO (output) INTEGER
1341
- * = 0: successful exit
1342
- * < 0: if INFO = -i, the i-th argument had an illegal value
1343
- *
1344
-
1345
- * =====================================================================
1346
- *
1347
-
1348
-
1349
- </PRE>
1350
- <A HREF="#top">go to the page top</A>
1351
-
1352
- <A NAME="cunmbr"></A>
1353
- <H2>cunmbr</H2>
1354
- <PRE>
1355
- USAGE:
1356
- work, info, c = NumRu::Lapack.cunmbr( vect, side, trans, m, k, a, tau, c, [:lwork => lwork, :usage => usage, :help => help])
1357
-
1358
-
1359
- FORTRAN MANUAL
1360
- SUBROUTINE CUNMBR( VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO )
1361
-
1362
- * Purpose
1363
- * =======
1364
- *
1365
- * If VECT = 'Q', CUNMBR overwrites the general complex M-by-N matrix C
1366
- * with
1367
- * SIDE = 'L' SIDE = 'R'
1368
- * TRANS = 'N': Q * C C * Q
1369
- * TRANS = 'C': Q**H * C C * Q**H
1370
- *
1371
- * If VECT = 'P', CUNMBR overwrites the general complex M-by-N matrix C
1372
- * with
1373
- * SIDE = 'L' SIDE = 'R'
1374
- * TRANS = 'N': P * C C * P
1375
- * TRANS = 'C': P**H * C C * P**H
1376
- *
1377
- * Here Q and P**H are the unitary matrices determined by CGEBRD when
1378
- * reducing a complex matrix A to bidiagonal form: A = Q * B * P**H. Q
1379
- * and P**H are defined as products of elementary reflectors H(i) and
1380
- * G(i) respectively.
1381
- *
1382
- * Let nq = m if SIDE = 'L' and nq = n if SIDE = 'R'. Thus nq is the
1383
- * order of the unitary matrix Q or P**H that is applied.
1384
- *
1385
- * If VECT = 'Q', A is assumed to have been an NQ-by-K matrix:
1386
- * if nq >= k, Q = H(1) H(2) . . . H(k);
1387
- * if nq < k, Q = H(1) H(2) . . . H(nq-1).
1388
- *
1389
- * If VECT = 'P', A is assumed to have been a K-by-NQ matrix:
1390
- * if k < nq, P = G(1) G(2) . . . G(k);
1391
- * if k >= nq, P = G(1) G(2) . . . G(nq-1).
1392
- *
1393
-
1394
- * Arguments
1395
- * =========
1396
- *
1397
- * VECT (input) CHARACTER*1
1398
- * = 'Q': apply Q or Q**H;
1399
- * = 'P': apply P or P**H.
1400
- *
1401
- * SIDE (input) CHARACTER*1
1402
- * = 'L': apply Q, Q**H, P or P**H from the Left;
1403
- * = 'R': apply Q, Q**H, P or P**H from the Right.
1404
- *
1405
- * TRANS (input) CHARACTER*1
1406
- * = 'N': No transpose, apply Q or P;
1407
- * = 'C': Conjugate transpose, apply Q**H or P**H.
1408
- *
1409
- * M (input) INTEGER
1410
- * The number of rows of the matrix C. M >= 0.
1411
- *
1412
- * N (input) INTEGER
1413
- * The number of columns of the matrix C. N >= 0.
1414
- *
1415
- * K (input) INTEGER
1416
- * If VECT = 'Q', the number of columns in the original
1417
- * matrix reduced by CGEBRD.
1418
- * If VECT = 'P', the number of rows in the original
1419
- * matrix reduced by CGEBRD.
1420
- * K >= 0.
1421
- *
1422
- * A (input) COMPLEX array, dimension
1423
- * (LDA,min(nq,K)) if VECT = 'Q'
1424
- * (LDA,nq) if VECT = 'P'
1425
- * The vectors which define the elementary reflectors H(i) and
1426
- * G(i), whose products determine the matrices Q and P, as
1427
- * returned by CGEBRD.
1428
- *
1429
- * LDA (input) INTEGER
1430
- * The leading dimension of the array A.
1431
- * If VECT = 'Q', LDA >= max(1,nq);
1432
- * if VECT = 'P', LDA >= max(1,min(nq,K)).
1433
- *
1434
- * TAU (input) COMPLEX array, dimension (min(nq,K))
1435
- * TAU(i) must contain the scalar factor of the elementary
1436
- * reflector H(i) or G(i) which determines Q or P, as returned
1437
- * by CGEBRD in the array argument TAUQ or TAUP.
1438
- *
1439
- * C (input/output) COMPLEX array, dimension (LDC,N)
1440
- * On entry, the M-by-N matrix C.
1441
- * On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q
1442
- * or P*C or P**H*C or C*P or C*P**H.
1443
- *
1444
- * LDC (input) INTEGER
1445
- * The leading dimension of the array C. LDC >= max(1,M).
1446
- *
1447
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
1448
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1449
- *
1450
- * LWORK (input) INTEGER
1451
- * The dimension of the array WORK.
1452
- * If SIDE = 'L', LWORK >= max(1,N);
1453
- * if SIDE = 'R', LWORK >= max(1,M);
1454
- * if N = 0 or M = 0, LWORK >= 1.
1455
- * For optimum performance LWORK >= max(1,N*NB) if SIDE = 'L',
1456
- * and LWORK >= max(1,M*NB) if SIDE = 'R', where NB is the
1457
- * optimal blocksize. (NB = 0 if M = 0 or N = 0.)
1458
- *
1459
- * If LWORK = -1, then a workspace query is assumed; the routine
1460
- * only calculates the optimal size of the WORK array, returns
1461
- * this value as the first entry of the WORK array, and no error
1462
- * message related to LWORK is issued by XERBLA.
1463
- *
1464
- * INFO (output) INTEGER
1465
- * = 0: successful exit
1466
- * < 0: if INFO = -i, the i-th argument had an illegal value
1467
- *
1468
-
1469
- * =====================================================================
1470
- *
1471
- * .. Local Scalars ..
1472
- LOGICAL APPLYQ, LEFT, LQUERY, NOTRAN
1473
- CHARACTER TRANST
1474
- INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NI, NQ, NW
1475
- * ..
1476
- * .. External Functions ..
1477
- LOGICAL LSAME
1478
- INTEGER ILAENV
1479
- EXTERNAL ILAENV, LSAME
1480
- * ..
1481
- * .. External Subroutines ..
1482
- EXTERNAL CUNMLQ, CUNMQR, XERBLA
1483
- * ..
1484
- * .. Intrinsic Functions ..
1485
- INTRINSIC MAX, MIN
1486
- * ..
1487
-
1488
-
1489
- </PRE>
1490
- <A HREF="#top">go to the page top</A>
1491
-
1492
- <A NAME="cunmhr"></A>
1493
- <H2>cunmhr</H2>
1494
- <PRE>
1495
- USAGE:
1496
- work, info, c = NumRu::Lapack.cunmhr( side, trans, ilo, ihi, a, tau, c, [:lwork => lwork, :usage => usage, :help => help])
1497
-
1498
-
1499
- FORTRAN MANUAL
1500
- SUBROUTINE CUNMHR( SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C, LDC, WORK, LWORK, INFO )
1501
-
1502
- * Purpose
1503
- * =======
1504
- *
1505
- * CUNMHR overwrites the general complex M-by-N matrix C with
1506
- *
1507
- * SIDE = 'L' SIDE = 'R'
1508
- * TRANS = 'N': Q * C C * Q
1509
- * TRANS = 'C': Q**H * C C * Q**H
1510
- *
1511
- * where Q is a complex unitary matrix of order nq, with nq = m if
1512
- * SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of
1513
- * IHI-ILO elementary reflectors, as returned by CGEHRD:
1514
- *
1515
- * Q = H(ilo) H(ilo+1) . . . H(ihi-1).
1516
- *
1517
-
1518
- * Arguments
1519
- * =========
1520
- *
1521
- * SIDE (input) CHARACTER*1
1522
- * = 'L': apply Q or Q**H from the Left;
1523
- * = 'R': apply Q or Q**H from the Right.
1524
- *
1525
- * TRANS (input) CHARACTER*1
1526
- * = 'N': apply Q (No transpose)
1527
- * = 'C': apply Q**H (Conjugate transpose)
1528
- *
1529
- * M (input) INTEGER
1530
- * The number of rows of the matrix C. M >= 0.
1531
- *
1532
- * N (input) INTEGER
1533
- * The number of columns of the matrix C. N >= 0.
1534
- *
1535
- * ILO (input) INTEGER
1536
- * IHI (input) INTEGER
1537
- * ILO and IHI must have the same values as in the previous call
1538
- * of CGEHRD. Q is equal to the unit matrix except in the
1539
- * submatrix Q(ilo+1:ihi,ilo+1:ihi).
1540
- * If SIDE = 'L', then 1 <= ILO <= IHI <= M, if M > 0, and
1541
- * ILO = 1 and IHI = 0, if M = 0;
1542
- * if SIDE = 'R', then 1 <= ILO <= IHI <= N, if N > 0, and
1543
- * ILO = 1 and IHI = 0, if N = 0.
1544
- *
1545
- * A (input) COMPLEX array, dimension
1546
- * (LDA,M) if SIDE = 'L'
1547
- * (LDA,N) if SIDE = 'R'
1548
- * The vectors which define the elementary reflectors, as
1549
- * returned by CGEHRD.
1550
- *
1551
- * LDA (input) INTEGER
1552
- * The leading dimension of the array A.
1553
- * LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'.
1554
- *
1555
- * TAU (input) COMPLEX array, dimension
1556
- * (M-1) if SIDE = 'L'
1557
- * (N-1) if SIDE = 'R'
1558
- * TAU(i) must contain the scalar factor of the elementary
1559
- * reflector H(i), as returned by CGEHRD.
1560
- *
1561
- * C (input/output) COMPLEX array, dimension (LDC,N)
1562
- * On entry, the M-by-N matrix C.
1563
- * On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
1564
- *
1565
- * LDC (input) INTEGER
1566
- * The leading dimension of the array C. LDC >= max(1,M).
1567
- *
1568
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
1569
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1570
- *
1571
- * LWORK (input) INTEGER
1572
- * The dimension of the array WORK.
1573
- * If SIDE = 'L', LWORK >= max(1,N);
1574
- * if SIDE = 'R', LWORK >= max(1,M).
1575
- * For optimum performance LWORK >= N*NB if SIDE = 'L', and
1576
- * LWORK >= M*NB if SIDE = 'R', where NB is the optimal
1577
- * blocksize.
1578
- *
1579
- * If LWORK = -1, then a workspace query is assumed; the routine
1580
- * only calculates the optimal size of the WORK array, returns
1581
- * this value as the first entry of the WORK array, and no error
1582
- * message related to LWORK is issued by XERBLA.
1583
- *
1584
- * INFO (output) INTEGER
1585
- * = 0: successful exit
1586
- * < 0: if INFO = -i, the i-th argument had an illegal value
1587
- *
1588
-
1589
- * =====================================================================
1590
- *
1591
- * .. Local Scalars ..
1592
- LOGICAL LEFT, LQUERY
1593
- INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NH, NI, NQ, NW
1594
- * ..
1595
- * .. External Functions ..
1596
- LOGICAL LSAME
1597
- INTEGER ILAENV
1598
- EXTERNAL ILAENV, LSAME
1599
- * ..
1600
- * .. External Subroutines ..
1601
- EXTERNAL CUNMQR, XERBLA
1602
- * ..
1603
- * .. Intrinsic Functions ..
1604
- INTRINSIC MAX, MIN
1605
- * ..
1606
-
1607
-
1608
- </PRE>
1609
- <A HREF="#top">go to the page top</A>
1610
-
1611
- <A NAME="cunml2"></A>
1612
- <H2>cunml2</H2>
1613
- <PRE>
1614
- USAGE:
1615
- info, c = NumRu::Lapack.cunml2( side, trans, a, tau, c, [:usage => usage, :help => help])
1616
-
1617
-
1618
- FORTRAN MANUAL
1619
- SUBROUTINE CUNML2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO )
1620
-
1621
- * Purpose
1622
- * =======
1623
- *
1624
- * CUNML2 overwrites the general complex m-by-n matrix C with
1625
- *
1626
- * Q * C if SIDE = 'L' and TRANS = 'N', or
1627
- *
1628
- * Q'* C if SIDE = 'L' and TRANS = 'C', or
1629
- *
1630
- * C * Q if SIDE = 'R' and TRANS = 'N', or
1631
- *
1632
- * C * Q' if SIDE = 'R' and TRANS = 'C',
1633
- *
1634
- * where Q is a complex unitary matrix defined as the product of k
1635
- * elementary reflectors
1636
- *
1637
- * Q = H(k)' . . . H(2)' H(1)'
1638
- *
1639
- * as returned by CGELQF. Q is of order m if SIDE = 'L' and of order n
1640
- * if SIDE = 'R'.
1641
- *
1642
-
1643
- * Arguments
1644
- * =========
1645
- *
1646
- * SIDE (input) CHARACTER*1
1647
- * = 'L': apply Q or Q' from the Left
1648
- * = 'R': apply Q or Q' from the Right
1649
- *
1650
- * TRANS (input) CHARACTER*1
1651
- * = 'N': apply Q (No transpose)
1652
- * = 'C': apply Q' (Conjugate transpose)
1653
- *
1654
- * M (input) INTEGER
1655
- * The number of rows of the matrix C. M >= 0.
1656
- *
1657
- * N (input) INTEGER
1658
- * The number of columns of the matrix C. N >= 0.
1659
- *
1660
- * K (input) INTEGER
1661
- * The number of elementary reflectors whose product defines
1662
- * the matrix Q.
1663
- * If SIDE = 'L', M >= K >= 0;
1664
- * if SIDE = 'R', N >= K >= 0.
1665
- *
1666
- * A (input) COMPLEX array, dimension
1667
- * (LDA,M) if SIDE = 'L',
1668
- * (LDA,N) if SIDE = 'R'
1669
- * The i-th row must contain the vector which defines the
1670
- * elementary reflector H(i), for i = 1,2,...,k, as returned by
1671
- * CGELQF in the first k rows of its array argument A.
1672
- * A is modified by the routine but restored on exit.
1673
- *
1674
- * LDA (input) INTEGER
1675
- * The leading dimension of the array A. LDA >= max(1,K).
1676
- *
1677
- * TAU (input) COMPLEX array, dimension (K)
1678
- * TAU(i) must contain the scalar factor of the elementary
1679
- * reflector H(i), as returned by CGELQF.
1680
- *
1681
- * C (input/output) COMPLEX array, dimension (LDC,N)
1682
- * On entry, the m-by-n matrix C.
1683
- * On exit, C is overwritten by Q*C or Q'*C or C*Q' or C*Q.
1684
- *
1685
- * LDC (input) INTEGER
1686
- * The leading dimension of the array C. LDC >= max(1,M).
1687
- *
1688
- * WORK (workspace) COMPLEX array, dimension
1689
- * (N) if SIDE = 'L',
1690
- * (M) if SIDE = 'R'
1691
- *
1692
- * INFO (output) INTEGER
1693
- * = 0: successful exit
1694
- * < 0: if INFO = -i, the i-th argument had an illegal value
1695
- *
1696
-
1697
- * =====================================================================
1698
- *
1699
-
1700
-
1701
- </PRE>
1702
- <A HREF="#top">go to the page top</A>
1703
-
1704
- <A NAME="cunmlq"></A>
1705
- <H2>cunmlq</H2>
1706
- <PRE>
1707
- USAGE:
1708
- work, info, c = NumRu::Lapack.cunmlq( side, trans, a, tau, c, [:lwork => lwork, :usage => usage, :help => help])
1709
-
1710
-
1711
- FORTRAN MANUAL
1712
- SUBROUTINE CUNMLQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO )
1713
-
1714
- * Purpose
1715
- * =======
1716
- *
1717
- * CUNMLQ overwrites the general complex M-by-N matrix C with
1718
- *
1719
- * SIDE = 'L' SIDE = 'R'
1720
- * TRANS = 'N': Q * C C * Q
1721
- * TRANS = 'C': Q**H * C C * Q**H
1722
- *
1723
- * where Q is a complex unitary matrix defined as the product of k
1724
- * elementary reflectors
1725
- *
1726
- * Q = H(k)' . . . H(2)' H(1)'
1727
- *
1728
- * as returned by CGELQF. Q is of order M if SIDE = 'L' and of order N
1729
- * if SIDE = 'R'.
1730
- *
1731
-
1732
- * Arguments
1733
- * =========
1734
- *
1735
- * SIDE (input) CHARACTER*1
1736
- * = 'L': apply Q or Q**H from the Left;
1737
- * = 'R': apply Q or Q**H from the Right.
1738
- *
1739
- * TRANS (input) CHARACTER*1
1740
- * = 'N': No transpose, apply Q;
1741
- * = 'C': Conjugate transpose, apply Q**H.
1742
- *
1743
- * M (input) INTEGER
1744
- * The number of rows of the matrix C. M >= 0.
1745
- *
1746
- * N (input) INTEGER
1747
- * The number of columns of the matrix C. N >= 0.
1748
- *
1749
- * K (input) INTEGER
1750
- * The number of elementary reflectors whose product defines
1751
- * the matrix Q.
1752
- * If SIDE = 'L', M >= K >= 0;
1753
- * if SIDE = 'R', N >= K >= 0.
1754
- *
1755
- * A (input) COMPLEX array, dimension
1756
- * (LDA,M) if SIDE = 'L',
1757
- * (LDA,N) if SIDE = 'R'
1758
- * The i-th row must contain the vector which defines the
1759
- * elementary reflector H(i), for i = 1,2,...,k, as returned by
1760
- * CGELQF in the first k rows of its array argument A.
1761
- * A is modified by the routine but restored on exit.
1762
- *
1763
- * LDA (input) INTEGER
1764
- * The leading dimension of the array A. LDA >= max(1,K).
1765
- *
1766
- * TAU (input) COMPLEX array, dimension (K)
1767
- * TAU(i) must contain the scalar factor of the elementary
1768
- * reflector H(i), as returned by CGELQF.
1769
- *
1770
- * C (input/output) COMPLEX array, dimension (LDC,N)
1771
- * On entry, the M-by-N matrix C.
1772
- * On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
1773
- *
1774
- * LDC (input) INTEGER
1775
- * The leading dimension of the array C. LDC >= max(1,M).
1776
- *
1777
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
1778
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1779
- *
1780
- * LWORK (input) INTEGER
1781
- * The dimension of the array WORK.
1782
- * If SIDE = 'L', LWORK >= max(1,N);
1783
- * if SIDE = 'R', LWORK >= max(1,M).
1784
- * For optimum performance LWORK >= N*NB if SIDE 'L', and
1785
- * LWORK >= M*NB if SIDE = 'R', where NB is the optimal
1786
- * blocksize.
1787
- *
1788
- * If LWORK = -1, then a workspace query is assumed; the routine
1789
- * only calculates the optimal size of the WORK array, returns
1790
- * this value as the first entry of the WORK array, and no error
1791
- * message related to LWORK is issued by XERBLA.
1792
- *
1793
- * INFO (output) INTEGER
1794
- * = 0: successful exit
1795
- * < 0: if INFO = -i, the i-th argument had an illegal value
1796
- *
1797
-
1798
- * =====================================================================
1799
- *
1800
-
1801
-
1802
- </PRE>
1803
- <A HREF="#top">go to the page top</A>
1804
-
1805
- <A NAME="cunmql"></A>
1806
- <H2>cunmql</H2>
1807
- <PRE>
1808
- USAGE:
1809
- work, info, c = NumRu::Lapack.cunmql( side, trans, m, a, tau, c, [:lwork => lwork, :usage => usage, :help => help])
1810
-
1811
-
1812
- FORTRAN MANUAL
1813
- SUBROUTINE CUNMQL( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO )
1814
-
1815
- * Purpose
1816
- * =======
1817
- *
1818
- * CUNMQL overwrites the general complex M-by-N matrix C with
1819
- *
1820
- * SIDE = 'L' SIDE = 'R'
1821
- * TRANS = 'N': Q * C C * Q
1822
- * TRANS = 'C': Q**H * C C * Q**H
1823
- *
1824
- * where Q is a complex unitary matrix defined as the product of k
1825
- * elementary reflectors
1826
- *
1827
- * Q = H(k) . . . H(2) H(1)
1828
- *
1829
- * as returned by CGEQLF. Q is of order M if SIDE = 'L' and of order N
1830
- * if SIDE = 'R'.
1831
- *
1832
-
1833
- * Arguments
1834
- * =========
1835
- *
1836
- * SIDE (input) CHARACTER*1
1837
- * = 'L': apply Q or Q**H from the Left;
1838
- * = 'R': apply Q or Q**H from the Right.
1839
- *
1840
- * TRANS (input) CHARACTER*1
1841
- * = 'N': No transpose, apply Q;
1842
- * = 'C': Transpose, apply Q**H.
1843
- *
1844
- * M (input) INTEGER
1845
- * The number of rows of the matrix C. M >= 0.
1846
- *
1847
- * N (input) INTEGER
1848
- * The number of columns of the matrix C. N >= 0.
1849
- *
1850
- * K (input) INTEGER
1851
- * The number of elementary reflectors whose product defines
1852
- * the matrix Q.
1853
- * If SIDE = 'L', M >= K >= 0;
1854
- * if SIDE = 'R', N >= K >= 0.
1855
- *
1856
- * A (input) COMPLEX array, dimension (LDA,K)
1857
- * The i-th column must contain the vector which defines the
1858
- * elementary reflector H(i), for i = 1,2,...,k, as returned by
1859
- * CGEQLF in the last k columns of its array argument A.
1860
- * A is modified by the routine but restored on exit.
1861
- *
1862
- * LDA (input) INTEGER
1863
- * The leading dimension of the array A.
1864
- * If SIDE = 'L', LDA >= max(1,M);
1865
- * if SIDE = 'R', LDA >= max(1,N).
1866
- *
1867
- * TAU (input) COMPLEX array, dimension (K)
1868
- * TAU(i) must contain the scalar factor of the elementary
1869
- * reflector H(i), as returned by CGEQLF.
1870
- *
1871
- * C (input/output) COMPLEX array, dimension (LDC,N)
1872
- * On entry, the M-by-N matrix C.
1873
- * On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
1874
- *
1875
- * LDC (input) INTEGER
1876
- * The leading dimension of the array C. LDC >= max(1,M).
1877
- *
1878
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
1879
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1880
- *
1881
- * LWORK (input) INTEGER
1882
- * The dimension of the array WORK.
1883
- * If SIDE = 'L', LWORK >= max(1,N);
1884
- * if SIDE = 'R', LWORK >= max(1,M).
1885
- * For optimum performance LWORK >= N*NB if SIDE = 'L', and
1886
- * LWORK >= M*NB if SIDE = 'R', where NB is the optimal
1887
- * blocksize.
1888
- *
1889
- * If LWORK = -1, then a workspace query is assumed; the routine
1890
- * only calculates the optimal size of the WORK array, returns
1891
- * this value as the first entry of the WORK array, and no error
1892
- * message related to LWORK is issued by XERBLA.
1893
- *
1894
- * INFO (output) INTEGER
1895
- * = 0: successful exit
1896
- * < 0: if INFO = -i, the i-th argument had an illegal value
1897
- *
1898
-
1899
- * =====================================================================
1900
- *
1901
-
1902
-
1903
- </PRE>
1904
- <A HREF="#top">go to the page top</A>
1905
-
1906
- <A NAME="cunmqr"></A>
1907
- <H2>cunmqr</H2>
1908
- <PRE>
1909
- USAGE:
1910
- work, info, c = NumRu::Lapack.cunmqr( side, trans, m, a, tau, c, [:lwork => lwork, :usage => usage, :help => help])
1911
-
1912
-
1913
- FORTRAN MANUAL
1914
- SUBROUTINE CUNMQR( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO )
1915
-
1916
- * Purpose
1917
- * =======
1918
- *
1919
- * CUNMQR overwrites the general complex M-by-N matrix C with
1920
- *
1921
- * SIDE = 'L' SIDE = 'R'
1922
- * TRANS = 'N': Q * C C * Q
1923
- * TRANS = 'C': Q**H * C C * Q**H
1924
- *
1925
- * where Q is a complex unitary matrix defined as the product of k
1926
- * elementary reflectors
1927
- *
1928
- * Q = H(1) H(2) . . . H(k)
1929
- *
1930
- * as returned by CGEQRF. Q is of order M if SIDE = 'L' and of order N
1931
- * if SIDE = 'R'.
1932
- *
1933
-
1934
- * Arguments
1935
- * =========
1936
- *
1937
- * SIDE (input) CHARACTER*1
1938
- * = 'L': apply Q or Q**H from the Left;
1939
- * = 'R': apply Q or Q**H from the Right.
1940
- *
1941
- * TRANS (input) CHARACTER*1
1942
- * = 'N': No transpose, apply Q;
1943
- * = 'C': Conjugate transpose, apply Q**H.
1944
- *
1945
- * M (input) INTEGER
1946
- * The number of rows of the matrix C. M >= 0.
1947
- *
1948
- * N (input) INTEGER
1949
- * The number of columns of the matrix C. N >= 0.
1950
- *
1951
- * K (input) INTEGER
1952
- * The number of elementary reflectors whose product defines
1953
- * the matrix Q.
1954
- * If SIDE = 'L', M >= K >= 0;
1955
- * if SIDE = 'R', N >= K >= 0.
1956
- *
1957
- * A (input) COMPLEX array, dimension (LDA,K)
1958
- * The i-th column must contain the vector which defines the
1959
- * elementary reflector H(i), for i = 1,2,...,k, as returned by
1960
- * CGEQRF in the first k columns of its array argument A.
1961
- * A is modified by the routine but restored on exit.
1962
- *
1963
- * LDA (input) INTEGER
1964
- * The leading dimension of the array A.
1965
- * If SIDE = 'L', LDA >= max(1,M);
1966
- * if SIDE = 'R', LDA >= max(1,N).
1967
- *
1968
- * TAU (input) COMPLEX array, dimension (K)
1969
- * TAU(i) must contain the scalar factor of the elementary
1970
- * reflector H(i), as returned by CGEQRF.
1971
- *
1972
- * C (input/output) COMPLEX array, dimension (LDC,N)
1973
- * On entry, the M-by-N matrix C.
1974
- * On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
1975
- *
1976
- * LDC (input) INTEGER
1977
- * The leading dimension of the array C. LDC >= max(1,M).
1978
- *
1979
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
1980
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
1981
- *
1982
- * LWORK (input) INTEGER
1983
- * The dimension of the array WORK.
1984
- * If SIDE = 'L', LWORK >= max(1,N);
1985
- * if SIDE = 'R', LWORK >= max(1,M).
1986
- * For optimum performance LWORK >= N*NB if SIDE = 'L', and
1987
- * LWORK >= M*NB if SIDE = 'R', where NB is the optimal
1988
- * blocksize.
1989
- *
1990
- * If LWORK = -1, then a workspace query is assumed; the routine
1991
- * only calculates the optimal size of the WORK array, returns
1992
- * this value as the first entry of the WORK array, and no error
1993
- * message related to LWORK is issued by XERBLA.
1994
- *
1995
- * INFO (output) INTEGER
1996
- * = 0: successful exit
1997
- * < 0: if INFO = -i, the i-th argument had an illegal value
1998
- *
1999
-
2000
- * =====================================================================
2001
- *
2002
-
2003
-
2004
- </PRE>
2005
- <A HREF="#top">go to the page top</A>
2006
-
2007
- <A NAME="cunmr2"></A>
2008
- <H2>cunmr2</H2>
2009
- <PRE>
2010
- USAGE:
2011
- info, c = NumRu::Lapack.cunmr2( side, trans, a, tau, c, [:usage => usage, :help => help])
2012
-
2013
-
2014
- FORTRAN MANUAL
2015
- SUBROUTINE CUNMR2( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO )
2016
-
2017
- * Purpose
2018
- * =======
2019
- *
2020
- * CUNMR2 overwrites the general complex m-by-n matrix C with
2021
- *
2022
- * Q * C if SIDE = 'L' and TRANS = 'N', or
2023
- *
2024
- * Q'* C if SIDE = 'L' and TRANS = 'C', or
2025
- *
2026
- * C * Q if SIDE = 'R' and TRANS = 'N', or
2027
- *
2028
- * C * Q' if SIDE = 'R' and TRANS = 'C',
2029
- *
2030
- * where Q is a complex unitary matrix defined as the product of k
2031
- * elementary reflectors
2032
- *
2033
- * Q = H(1)' H(2)' . . . H(k)'
2034
- *
2035
- * as returned by CGERQF. Q is of order m if SIDE = 'L' and of order n
2036
- * if SIDE = 'R'.
2037
- *
2038
-
2039
- * Arguments
2040
- * =========
2041
- *
2042
- * SIDE (input) CHARACTER*1
2043
- * = 'L': apply Q or Q' from the Left
2044
- * = 'R': apply Q or Q' from the Right
2045
- *
2046
- * TRANS (input) CHARACTER*1
2047
- * = 'N': apply Q (No transpose)
2048
- * = 'C': apply Q' (Conjugate transpose)
2049
- *
2050
- * M (input) INTEGER
2051
- * The number of rows of the matrix C. M >= 0.
2052
- *
2053
- * N (input) INTEGER
2054
- * The number of columns of the matrix C. N >= 0.
2055
- *
2056
- * K (input) INTEGER
2057
- * The number of elementary reflectors whose product defines
2058
- * the matrix Q.
2059
- * If SIDE = 'L', M >= K >= 0;
2060
- * if SIDE = 'R', N >= K >= 0.
2061
- *
2062
- * A (input) COMPLEX array, dimension
2063
- * (LDA,M) if SIDE = 'L',
2064
- * (LDA,N) if SIDE = 'R'
2065
- * The i-th row must contain the vector which defines the
2066
- * elementary reflector H(i), for i = 1,2,...,k, as returned by
2067
- * CGERQF in the last k rows of its array argument A.
2068
- * A is modified by the routine but restored on exit.
2069
- *
2070
- * LDA (input) INTEGER
2071
- * The leading dimension of the array A. LDA >= max(1,K).
2072
- *
2073
- * TAU (input) COMPLEX array, dimension (K)
2074
- * TAU(i) must contain the scalar factor of the elementary
2075
- * reflector H(i), as returned by CGERQF.
2076
- *
2077
- * C (input/output) COMPLEX array, dimension (LDC,N)
2078
- * On entry, the m-by-n matrix C.
2079
- * On exit, C is overwritten by Q*C or Q'*C or C*Q' or C*Q.
2080
- *
2081
- * LDC (input) INTEGER
2082
- * The leading dimension of the array C. LDC >= max(1,M).
2083
- *
2084
- * WORK (workspace) COMPLEX array, dimension
2085
- * (N) if SIDE = 'L',
2086
- * (M) if SIDE = 'R'
2087
- *
2088
- * INFO (output) INTEGER
2089
- * = 0: successful exit
2090
- * < 0: if INFO = -i, the i-th argument had an illegal value
2091
- *
2092
-
2093
- * =====================================================================
2094
- *
2095
-
2096
-
2097
- </PRE>
2098
- <A HREF="#top">go to the page top</A>
2099
-
2100
- <A NAME="cunmr3"></A>
2101
- <H2>cunmr3</H2>
2102
- <PRE>
2103
- USAGE:
2104
- info, c = NumRu::Lapack.cunmr3( side, trans, l, a, tau, c, [:usage => usage, :help => help])
2105
-
2106
-
2107
- FORTRAN MANUAL
2108
- SUBROUTINE CUNMR3( SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, INFO )
2109
-
2110
- * Purpose
2111
- * =======
2112
- *
2113
- * CUNMR3 overwrites the general complex m by n matrix C with
2114
- *
2115
- * Q * C if SIDE = 'L' and TRANS = 'N', or
2116
- *
2117
- * Q'* C if SIDE = 'L' and TRANS = 'C', or
2118
- *
2119
- * C * Q if SIDE = 'R' and TRANS = 'N', or
2120
- *
2121
- * C * Q' if SIDE = 'R' and TRANS = 'C',
2122
- *
2123
- * where Q is a complex unitary matrix defined as the product of k
2124
- * elementary reflectors
2125
- *
2126
- * Q = H(1) H(2) . . . H(k)
2127
- *
2128
- * as returned by CTZRZF. Q is of order m if SIDE = 'L' and of order n
2129
- * if SIDE = 'R'.
2130
- *
2131
-
2132
- * Arguments
2133
- * =========
2134
- *
2135
- * SIDE (input) CHARACTER*1
2136
- * = 'L': apply Q or Q' from the Left
2137
- * = 'R': apply Q or Q' from the Right
2138
- *
2139
- * TRANS (input) CHARACTER*1
2140
- * = 'N': apply Q (No transpose)
2141
- * = 'C': apply Q' (Conjugate transpose)
2142
- *
2143
- * M (input) INTEGER
2144
- * The number of rows of the matrix C. M >= 0.
2145
- *
2146
- * N (input) INTEGER
2147
- * The number of columns of the matrix C. N >= 0.
2148
- *
2149
- * K (input) INTEGER
2150
- * The number of elementary reflectors whose product defines
2151
- * the matrix Q.
2152
- * If SIDE = 'L', M >= K >= 0;
2153
- * if SIDE = 'R', N >= K >= 0.
2154
- *
2155
- * L (input) INTEGER
2156
- * The number of columns of the matrix A containing
2157
- * the meaningful part of the Householder reflectors.
2158
- * If SIDE = 'L', M >= L >= 0, if SIDE = 'R', N >= L >= 0.
2159
- *
2160
- * A (input) COMPLEX array, dimension
2161
- * (LDA,M) if SIDE = 'L',
2162
- * (LDA,N) if SIDE = 'R'
2163
- * The i-th row must contain the vector which defines the
2164
- * elementary reflector H(i), for i = 1,2,...,k, as returned by
2165
- * CTZRZF in the last k rows of its array argument A.
2166
- * A is modified by the routine but restored on exit.
2167
- *
2168
- * LDA (input) INTEGER
2169
- * The leading dimension of the array A. LDA >= max(1,K).
2170
- *
2171
- * TAU (input) COMPLEX array, dimension (K)
2172
- * TAU(i) must contain the scalar factor of the elementary
2173
- * reflector H(i), as returned by CTZRZF.
2174
- *
2175
- * C (input/output) COMPLEX array, dimension (LDC,N)
2176
- * On entry, the m-by-n matrix C.
2177
- * On exit, C is overwritten by Q*C or Q'*C or C*Q' or C*Q.
2178
- *
2179
- * LDC (input) INTEGER
2180
- * The leading dimension of the array C. LDC >= max(1,M).
2181
- *
2182
- * WORK (workspace) COMPLEX array, dimension
2183
- * (N) if SIDE = 'L',
2184
- * (M) if SIDE = 'R'
2185
- *
2186
- * INFO (output) INTEGER
2187
- * = 0: successful exit
2188
- * < 0: if INFO = -i, the i-th argument had an illegal value
2189
- *
2190
-
2191
- * Further Details
2192
- * ===============
2193
- *
2194
- * Based on contributions by
2195
- * A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
2196
- *
2197
- * =====================================================================
2198
- *
2199
- * .. Local Scalars ..
2200
- LOGICAL LEFT, NOTRAN
2201
- INTEGER I, I1, I2, I3, IC, JA, JC, MI, NI, NQ
2202
- COMPLEX TAUI
2203
- * ..
2204
- * .. External Functions ..
2205
- LOGICAL LSAME
2206
- EXTERNAL LSAME
2207
- * ..
2208
- * .. External Subroutines ..
2209
- EXTERNAL CLARZ, XERBLA
2210
- * ..
2211
- * .. Intrinsic Functions ..
2212
- INTRINSIC CONJG, MAX
2213
- * ..
2214
-
2215
-
2216
- </PRE>
2217
- <A HREF="#top">go to the page top</A>
2218
-
2219
- <A NAME="cunmrq"></A>
2220
- <H2>cunmrq</H2>
2221
- <PRE>
2222
- USAGE:
2223
- work, info, c = NumRu::Lapack.cunmrq( side, trans, a, tau, c, [:lwork => lwork, :usage => usage, :help => help])
2224
-
2225
-
2226
- FORTRAN MANUAL
2227
- SUBROUTINE CUNMRQ( SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO )
2228
-
2229
- * Purpose
2230
- * =======
2231
- *
2232
- * CUNMRQ overwrites the general complex M-by-N matrix C with
2233
- *
2234
- * SIDE = 'L' SIDE = 'R'
2235
- * TRANS = 'N': Q * C C * Q
2236
- * TRANS = 'C': Q**H * C C * Q**H
2237
- *
2238
- * where Q is a complex unitary matrix defined as the product of k
2239
- * elementary reflectors
2240
- *
2241
- * Q = H(1)' H(2)' . . . H(k)'
2242
- *
2243
- * as returned by CGERQF. Q is of order M if SIDE = 'L' and of order N
2244
- * if SIDE = 'R'.
2245
- *
2246
-
2247
- * Arguments
2248
- * =========
2249
- *
2250
- * SIDE (input) CHARACTER*1
2251
- * = 'L': apply Q or Q**H from the Left;
2252
- * = 'R': apply Q or Q**H from the Right.
2253
- *
2254
- * TRANS (input) CHARACTER*1
2255
- * = 'N': No transpose, apply Q;
2256
- * = 'C': Transpose, apply Q**H.
2257
- *
2258
- * M (input) INTEGER
2259
- * The number of rows of the matrix C. M >= 0.
2260
- *
2261
- * N (input) INTEGER
2262
- * The number of columns of the matrix C. N >= 0.
2263
- *
2264
- * K (input) INTEGER
2265
- * The number of elementary reflectors whose product defines
2266
- * the matrix Q.
2267
- * If SIDE = 'L', M >= K >= 0;
2268
- * if SIDE = 'R', N >= K >= 0.
2269
- *
2270
- * A (input) COMPLEX array, dimension
2271
- * (LDA,M) if SIDE = 'L',
2272
- * (LDA,N) if SIDE = 'R'
2273
- * The i-th row must contain the vector which defines the
2274
- * elementary reflector H(i), for i = 1,2,...,k, as returned by
2275
- * CGERQF in the last k rows of its array argument A.
2276
- * A is modified by the routine but restored on exit.
2277
- *
2278
- * LDA (input) INTEGER
2279
- * The leading dimension of the array A. LDA >= max(1,K).
2280
- *
2281
- * TAU (input) COMPLEX array, dimension (K)
2282
- * TAU(i) must contain the scalar factor of the elementary
2283
- * reflector H(i), as returned by CGERQF.
2284
- *
2285
- * C (input/output) COMPLEX array, dimension (LDC,N)
2286
- * On entry, the M-by-N matrix C.
2287
- * On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
2288
- *
2289
- * LDC (input) INTEGER
2290
- * The leading dimension of the array C. LDC >= max(1,M).
2291
- *
2292
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
2293
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
2294
- *
2295
- * LWORK (input) INTEGER
2296
- * The dimension of the array WORK.
2297
- * If SIDE = 'L', LWORK >= max(1,N);
2298
- * if SIDE = 'R', LWORK >= max(1,M).
2299
- * For optimum performance LWORK >= N*NB if SIDE = 'L', and
2300
- * LWORK >= M*NB if SIDE = 'R', where NB is the optimal
2301
- * blocksize.
2302
- *
2303
- * If LWORK = -1, then a workspace query is assumed; the routine
2304
- * only calculates the optimal size of the WORK array, returns
2305
- * this value as the first entry of the WORK array, and no error
2306
- * message related to LWORK is issued by XERBLA.
2307
- *
2308
- * INFO (output) INTEGER
2309
- * = 0: successful exit
2310
- * < 0: if INFO = -i, the i-th argument had an illegal value
2311
- *
2312
-
2313
- * =====================================================================
2314
- *
2315
-
2316
-
2317
- </PRE>
2318
- <A HREF="#top">go to the page top</A>
2319
-
2320
- <A NAME="cunmrz"></A>
2321
- <H2>cunmrz</H2>
2322
- <PRE>
2323
- USAGE:
2324
- work, info, c = NumRu::Lapack.cunmrz( side, trans, l, a, tau, c, [:lwork => lwork, :usage => usage, :help => help])
2325
-
2326
-
2327
- FORTRAN MANUAL
2328
- SUBROUTINE CUNMRZ( SIDE, TRANS, M, N, K, L, A, LDA, TAU, C, LDC, WORK, LWORK, INFO )
2329
-
2330
- * Purpose
2331
- * =======
2332
- *
2333
- * CUNMRZ overwrites the general complex M-by-N matrix C with
2334
- *
2335
- * SIDE = 'L' SIDE = 'R'
2336
- * TRANS = 'N': Q * C C * Q
2337
- * TRANS = 'C': Q**H * C C * Q**H
2338
- *
2339
- * where Q is a complex unitary matrix defined as the product of k
2340
- * elementary reflectors
2341
- *
2342
- * Q = H(1) H(2) . . . H(k)
2343
- *
2344
- * as returned by CTZRZF. Q is of order M if SIDE = 'L' and of order N
2345
- * if SIDE = 'R'.
2346
- *
2347
-
2348
- * Arguments
2349
- * =========
2350
- *
2351
- * SIDE (input) CHARACTER*1
2352
- * = 'L': apply Q or Q**H from the Left;
2353
- * = 'R': apply Q or Q**H from the Right.
2354
- *
2355
- * TRANS (input) CHARACTER*1
2356
- * = 'N': No transpose, apply Q;
2357
- * = 'C': Conjugate transpose, apply Q**H.
2358
- *
2359
- * M (input) INTEGER
2360
- * The number of rows of the matrix C. M >= 0.
2361
- *
2362
- * N (input) INTEGER
2363
- * The number of columns of the matrix C. N >= 0.
2364
- *
2365
- * K (input) INTEGER
2366
- * The number of elementary reflectors whose product defines
2367
- * the matrix Q.
2368
- * If SIDE = 'L', M >= K >= 0;
2369
- * if SIDE = 'R', N >= K >= 0.
2370
- *
2371
- * L (input) INTEGER
2372
- * The number of columns of the matrix A containing
2373
- * the meaningful part of the Householder reflectors.
2374
- * If SIDE = 'L', M >= L >= 0, if SIDE = 'R', N >= L >= 0.
2375
- *
2376
- * A (input) COMPLEX array, dimension
2377
- * (LDA,M) if SIDE = 'L',
2378
- * (LDA,N) if SIDE = 'R'
2379
- * The i-th row must contain the vector which defines the
2380
- * elementary reflector H(i), for i = 1,2,...,k, as returned by
2381
- * CTZRZF in the last k rows of its array argument A.
2382
- * A is modified by the routine but restored on exit.
2383
- *
2384
- * LDA (input) INTEGER
2385
- * The leading dimension of the array A. LDA >= max(1,K).
2386
- *
2387
- * TAU (input) COMPLEX array, dimension (K)
2388
- * TAU(i) must contain the scalar factor of the elementary
2389
- * reflector H(i), as returned by CTZRZF.
2390
- *
2391
- * C (input/output) COMPLEX array, dimension (LDC,N)
2392
- * On entry, the M-by-N matrix C.
2393
- * On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
2394
- *
2395
- * LDC (input) INTEGER
2396
- * The leading dimension of the array C. LDC >= max(1,M).
2397
- *
2398
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
2399
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
2400
- *
2401
- * LWORK (input) INTEGER
2402
- * The dimension of the array WORK.
2403
- * If SIDE = 'L', LWORK >= max(1,N);
2404
- * if SIDE = 'R', LWORK >= max(1,M).
2405
- * For optimum performance LWORK >= N*NB if SIDE = 'L', and
2406
- * LWORK >= M*NB if SIDE = 'R', where NB is the optimal
2407
- * blocksize.
2408
- *
2409
- * If LWORK = -1, then a workspace query is assumed; the routine
2410
- * only calculates the optimal size of the WORK array, returns
2411
- * this value as the first entry of the WORK array, and no error
2412
- * message related to LWORK is issued by XERBLA.
2413
- *
2414
- * INFO (output) INTEGER
2415
- * = 0: successful exit
2416
- * < 0: if INFO = -i, the i-th argument had an illegal value
2417
- *
2418
-
2419
- * Further Details
2420
- * ===============
2421
- *
2422
- * Based on contributions by
2423
- * A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA
2424
- *
2425
- * =====================================================================
2426
- *
2427
-
2428
-
2429
- </PRE>
2430
- <A HREF="#top">go to the page top</A>
2431
-
2432
- <A NAME="cunmtr"></A>
2433
- <H2>cunmtr</H2>
2434
- <PRE>
2435
- USAGE:
2436
- work, info, c = NumRu::Lapack.cunmtr( side, uplo, trans, a, tau, c, [:lwork => lwork, :usage => usage, :help => help])
2437
-
2438
-
2439
- FORTRAN MANUAL
2440
- SUBROUTINE CUNMTR( SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC, WORK, LWORK, INFO )
2441
-
2442
- * Purpose
2443
- * =======
2444
- *
2445
- * CUNMTR overwrites the general complex M-by-N matrix C with
2446
- *
2447
- * SIDE = 'L' SIDE = 'R'
2448
- * TRANS = 'N': Q * C C * Q
2449
- * TRANS = 'C': Q**H * C C * Q**H
2450
- *
2451
- * where Q is a complex unitary matrix of order nq, with nq = m if
2452
- * SIDE = 'L' and nq = n if SIDE = 'R'. Q is defined as the product of
2453
- * nq-1 elementary reflectors, as returned by CHETRD:
2454
- *
2455
- * if UPLO = 'U', Q = H(nq-1) . . . H(2) H(1);
2456
- *
2457
- * if UPLO = 'L', Q = H(1) H(2) . . . H(nq-1).
2458
- *
2459
-
2460
- * Arguments
2461
- * =========
2462
- *
2463
- * SIDE (input) CHARACTER*1
2464
- * = 'L': apply Q or Q**H from the Left;
2465
- * = 'R': apply Q or Q**H from the Right.
2466
- *
2467
- * UPLO (input) CHARACTER*1
2468
- * = 'U': Upper triangle of A contains elementary reflectors
2469
- * from CHETRD;
2470
- * = 'L': Lower triangle of A contains elementary reflectors
2471
- * from CHETRD.
2472
- *
2473
- * TRANS (input) CHARACTER*1
2474
- * = 'N': No transpose, apply Q;
2475
- * = 'C': Conjugate transpose, apply Q**H.
2476
- *
2477
- * M (input) INTEGER
2478
- * The number of rows of the matrix C. M >= 0.
2479
- *
2480
- * N (input) INTEGER
2481
- * The number of columns of the matrix C. N >= 0.
2482
- *
2483
- * A (input) COMPLEX array, dimension
2484
- * (LDA,M) if SIDE = 'L'
2485
- * (LDA,N) if SIDE = 'R'
2486
- * The vectors which define the elementary reflectors, as
2487
- * returned by CHETRD.
2488
- *
2489
- * LDA (input) INTEGER
2490
- * The leading dimension of the array A.
2491
- * LDA >= max(1,M) if SIDE = 'L'; LDA >= max(1,N) if SIDE = 'R'.
2492
- *
2493
- * TAU (input) COMPLEX array, dimension
2494
- * (M-1) if SIDE = 'L'
2495
- * (N-1) if SIDE = 'R'
2496
- * TAU(i) must contain the scalar factor of the elementary
2497
- * reflector H(i), as returned by CHETRD.
2498
- *
2499
- * C (input/output) COMPLEX array, dimension (LDC,N)
2500
- * On entry, the M-by-N matrix C.
2501
- * On exit, C is overwritten by Q*C or Q**H*C or C*Q**H or C*Q.
2502
- *
2503
- * LDC (input) INTEGER
2504
- * The leading dimension of the array C. LDC >= max(1,M).
2505
- *
2506
- * WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
2507
- * On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
2508
- *
2509
- * LWORK (input) INTEGER
2510
- * The dimension of the array WORK.
2511
- * If SIDE = 'L', LWORK >= max(1,N);
2512
- * if SIDE = 'R', LWORK >= max(1,M).
2513
- * For optimum performance LWORK >= N*NB if SIDE = 'L', and
2514
- * LWORK >=M*NB if SIDE = 'R', where NB is the optimal
2515
- * blocksize.
2516
- *
2517
- * If LWORK = -1, then a workspace query is assumed; the routine
2518
- * only calculates the optimal size of the WORK array, returns
2519
- * this value as the first entry of the WORK array, and no error
2520
- * message related to LWORK is issued by XERBLA.
2521
- *
2522
- * INFO (output) INTEGER
2523
- * = 0: successful exit
2524
- * < 0: if INFO = -i, the i-th argument had an illegal value
2525
- *
2526
-
2527
- * =====================================================================
2528
- *
2529
- * .. Local Scalars ..
2530
- LOGICAL LEFT, LQUERY, UPPER
2531
- INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NI, NQ, NW
2532
- * ..
2533
- * .. External Functions ..
2534
- LOGICAL LSAME
2535
- INTEGER ILAENV
2536
- EXTERNAL ILAENV, LSAME
2537
- * ..
2538
- * .. External Subroutines ..
2539
- EXTERNAL CUNMQL, CUNMQR, XERBLA
2540
- * ..
2541
- * .. Intrinsic Functions ..
2542
- INTRINSIC MAX
2543
- * ..
2544
-
2545
-
2546
- </PRE>
2547
- <A HREF="#top">go to the page top</A>
2548
-
2549
- <HR />
2550
- <A HREF="c.html">back to matrix types</A><BR>
2551
- <A HREF="c.html">back to data types</A>
2552
- </BODY>
2553
- </HTML>