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