ruby-lapack 1.7 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/ext/cbbcsd.c +283 -0
- data/ext/cbdsqr.c +182 -0
- data/ext/cgbbrd.c +157 -0
- data/ext/cgbcon.c +98 -0
- data/ext/cgbequ.c +98 -0
- data/ext/cgbequb.c +96 -0
- data/ext/cgbrfs.c +161 -0
- data/ext/cgbrfsx.c +249 -0
- data/ext/cgbsv.c +115 -0
- data/ext/cgbsvx.c +286 -0
- data/ext/cgbsvxx.c +289 -0
- data/ext/cgbtf2.c +93 -0
- data/ext/cgbtrf.c +93 -0
- data/ext/cgbtrs.c +111 -0
- data/ext/cgebak.c +101 -0
- data/ext/cgebal.c +91 -0
- data/ext/cgebd2.c +112 -0
- data/ext/cgebrd.c +127 -0
- data/ext/cgecon.c +78 -0
- data/ext/cgeequ.c +88 -0
- data/ext/cgeequb.c +88 -0
- data/ext/cgees.c +142 -0
- data/ext/cgeesx.c +152 -0
- data/ext/cgeev.c +132 -0
- data/ext/cgeevx.c +173 -0
- data/ext/cgegs.c +166 -0
- data/ext/cgegv.c +171 -0
- data/ext/cgehd2.c +92 -0
- data/ext/cgehrd.c +107 -0
- data/ext/cgelq2.c +86 -0
- data/ext/cgelqf.c +103 -0
- data/ext/cgels.c +137 -0
- data/ext/cgelsd.c +154 -0
- data/ext/cgelss.c +151 -0
- data/ext/cgelsx.c +139 -0
- data/ext/cgelsy.c +166 -0
- data/ext/cgeql2.c +88 -0
- data/ext/cgeqlf.c +103 -0
- data/ext/cgeqp3.c +129 -0
- data/ext/cgeqpf.c +114 -0
- data/ext/cgeqr2.c +88 -0
- data/ext/cgeqr2p.c +88 -0
- data/ext/cgeqrf.c +103 -0
- data/ext/cgeqrfp.c +103 -0
- data/ext/cgerfs.c +153 -0
- data/ext/cgerfsx.c +219 -0
- data/ext/cgerq2.c +86 -0
- data/ext/cgerqf.c +103 -0
- data/ext/cgesc2.c +108 -0
- data/ext/cgesdd.c +135 -0
- data/ext/cgesv.c +107 -0
- data/ext/cgesvd.c +146 -0
- data/ext/cgesvx.c +278 -0
- data/ext/cgesvxx.c +281 -0
- data/ext/cgetc2.c +89 -0
- data/ext/cgetf2.c +85 -0
- data/ext/cgetrf.c +85 -0
- data/ext/cgetri.c +103 -0
- data/ext/cgetrs.c +103 -0
- data/ext/cggbak.c +113 -0
- data/ext/cggbal.c +128 -0
- data/ext/cgges.c +192 -0
- data/ext/cggesx.c +230 -0
- data/ext/cggev.c +171 -0
- data/ext/cggevx.c +226 -0
- data/ext/cggglm.c +156 -0
- data/ext/cgghrd.c +167 -0
- data/ext/cgglse.c +171 -0
- data/ext/cggqrf.c +137 -0
- data/ext/cggrqf.c +141 -0
- data/ext/cggsvd.c +184 -0
- data/ext/cggsvp.c +174 -0
- data/ext/cgtcon.c +121 -0
- data/ext/cgtrfs.c +209 -0
- data/ext/cgtsv.c +142 -0
- data/ext/cgtsvx.c +256 -0
- data/ext/cgttrf.c +132 -0
- data/ext/cgttrs.c +137 -0
- data/ext/cgtts2.c +134 -0
- data/ext/chbev.c +110 -0
- data/ext/chbevd.c +158 -0
- data/ext/chbevx.c +160 -0
- data/ext/chbgst.c +120 -0
- data/ext/chbgv.c +140 -0
- data/ext/chbgvd.c +188 -0
- data/ext/chbgvx.c +189 -0
- data/ext/chbtrd.c +130 -0
- data/ext/checon.c +87 -0
- data/ext/cheequb.c +82 -0
- data/ext/cheev.c +110 -0
- data/ext/cheevd.c +143 -0
- data/ext/cheevr.c +190 -0
- data/ext/cheevx.c +160 -0
- data/ext/chegs2.c +95 -0
- data/ext/chegst.c +95 -0
- data/ext/chegv.c +140 -0
- data/ext/chegvd.c +173 -0
- data/ext/chegvx.c +190 -0
- data/ext/cherfs.c +153 -0
- data/ext/cherfsx.c +218 -0
- data/ext/chesv.c +123 -0
- data/ext/chesvx.c +183 -0
- data/ext/chesvxx.c +258 -0
- data/ext/chetd2.c +101 -0
- data/ext/chetf2.c +85 -0
- data/ext/chetrd.c +113 -0
- data/ext/chetrf.c +97 -0
- data/ext/chetri.c +92 -0
- data/ext/chetrs.c +103 -0
- data/ext/chetrs2.c +106 -0
- data/ext/chfrk.c +109 -0
- data/ext/chgeqz.c +208 -0
- data/ext/chla_transtype.c +51 -0
- data/ext/chpcon.c +85 -0
- data/ext/chpev.c +105 -0
- data/ext/chpevd.c +153 -0
- data/ext/chpevx.c +144 -0
- data/ext/chpgst.c +94 -0
- data/ext/chpgv.c +132 -0
- data/ext/chpgvd.c +170 -0
- data/ext/chpgvx.c +170 -0
- data/ext/chprfs.c +149 -0
- data/ext/chpsv.c +110 -0
- data/ext/chpsvx.c +163 -0
- data/ext/chptrd.c +100 -0
- data/ext/chptrf.c +84 -0
- data/ext/chptri.c +89 -0
- data/ext/chptrs.c +101 -0
- data/ext/chsein.c +185 -0
- data/ext/chseqr.c +145 -0
- data/ext/cla_gbamv.c +127 -0
- data/ext/cla_gbrcond_c.c +142 -0
- data/ext/cla_gbrcond_x.c +138 -0
- data/ext/cla_gbrfsx_extended.c +295 -0
- data/ext/cla_gbrpvgrw.c +87 -0
- data/ext/cla_geamv.c +117 -0
- data/ext/cla_gercond_c.c +134 -0
- data/ext/cla_gercond_x.c +130 -0
- data/ext/cla_gerfsx_extended.c +281 -0
- data/ext/cla_heamv.c +116 -0
- data/ext/cla_hercond_c.c +134 -0
- data/ext/cla_hercond_x.c +130 -0
- data/ext/cla_herfsx_extended.c +283 -0
- data/ext/cla_herpvgrw.c +107 -0
- data/ext/cla_lin_berr.c +84 -0
- data/ext/cla_porcond_c.c +122 -0
- data/ext/cla_porcond_x.c +118 -0
- data/ext/cla_porfsx_extended.c +271 -0
- data/ext/cla_porpvgrw.c +95 -0
- data/ext/cla_rpvgrw.c +79 -0
- data/ext/cla_syamv.c +115 -0
- data/ext/cla_syrcond_c.c +134 -0
- data/ext/cla_syrcond_x.c +130 -0
- data/ext/cla_syrfsx_extended.c +283 -0
- data/ext/cla_syrpvgrw.c +107 -0
- data/ext/cla_wwaddw.c +102 -0
- data/ext/clabrd.c +132 -0
- data/ext/clacgv.c +75 -0
- data/ext/clacn2.c +103 -0
- data/ext/clacon.c +80 -0
- data/ext/clacp2.c +77 -0
- data/ext/clacpy.c +77 -0
- data/ext/clacrm.c +90 -0
- data/ext/clacrt.c +108 -0
- data/ext/cladiv.c +57 -0
- data/ext/claed0.c +134 -0
- data/ext/claed7.c +247 -0
- data/ext/claed8.c +198 -0
- data/ext/claein.c +113 -0
- data/ext/claesy.c +74 -0
- data/ext/claev2.c +71 -0
- data/ext/clag2z.c +76 -0
- data/ext/clags2.c +92 -0
- data/ext/clagtm.c +132 -0
- data/ext/clahef.c +97 -0
- data/ext/clahqr.c +135 -0
- data/ext/clahr2.c +112 -0
- data/ext/clahrd.c +112 -0
- data/ext/claic1.c +90 -0
- data/ext/clals0.c +201 -0
- data/ext/clalsa.c +270 -0
- data/ext/clalsd.c +145 -0
- data/ext/clangb.c +76 -0
- data/ext/clange.c +74 -0
- data/ext/clangt.c +87 -0
- data/ext/clanhb.c +78 -0
- data/ext/clanhe.c +72 -0
- data/ext/clanhf.c +80 -0
- data/ext/clanhp.c +74 -0
- data/ext/clanhs.c +70 -0
- data/ext/clanht.c +75 -0
- data/ext/clansb.c +78 -0
- data/ext/clansp.c +74 -0
- data/ext/clansy.c +72 -0
- data/ext/clantb.c +80 -0
- data/ext/clantp.c +80 -0
- data/ext/clantr.c +82 -0
- data/ext/clapll.c +105 -0
- data/ext/clapmr.c +97 -0
- data/ext/clapmt.c +101 -0
- data/ext/claqgb.c +117 -0
- data/ext/claqge.c +109 -0
- data/ext/claqhb.c +97 -0
- data/ext/claqhe.c +97 -0
- data/ext/claqhp.c +94 -0
- data/ext/claqp2.c +158 -0
- data/ext/claqps.c +208 -0
- data/ext/claqr0.c +145 -0
- data/ext/claqr1.c +76 -0
- data/ext/claqr2.c +174 -0
- data/ext/claqr3.c +174 -0
- data/ext/claqr4.c +145 -0
- data/ext/claqr5.c +179 -0
- data/ext/claqsb.c +101 -0
- data/ext/claqsp.c +94 -0
- data/ext/claqsy.c +97 -0
- data/ext/clar1v.c +173 -0
- data/ext/clar2v.c +149 -0
- data/ext/clarcm.c +86 -0
- data/ext/clarf.c +102 -0
- data/ext/clarfb.c +123 -0
- data/ext/clarfg.c +84 -0
- data/ext/clarfgp.c +84 -0
- data/ext/clarft.c +105 -0
- data/ext/clarfx.c +94 -0
- data/ext/clargv.c +114 -0
- data/ext/clarnv.c +83 -0
- data/ext/clarrv.c +271 -0
- data/ext/clarscl2.c +82 -0
- data/ext/clartg.c +63 -0
- data/ext/clartv.c +130 -0
- data/ext/clarz.c +106 -0
- data/ext/clarzb.c +127 -0
- data/ext/clarzt.c +105 -0
- data/ext/clascl.c +97 -0
- data/ext/clascl2.c +82 -0
- data/ext/claset.c +88 -0
- data/ext/clasr.c +110 -0
- data/ext/classq.c +70 -0
- data/ext/claswp.c +94 -0
- data/ext/clasyf.c +97 -0
- data/ext/clatbs.c +130 -0
- data/ext/clatdf.c +119 -0
- data/ext/clatps.c +124 -0
- data/ext/clatrd.c +105 -0
- data/ext/clatrs.c +126 -0
- data/ext/clatrz.c +87 -0
- data/ext/clatzm.c +132 -0
- data/ext/clauu2.c +77 -0
- data/ext/clauum.c +77 -0
- data/ext/cpbcon.c +82 -0
- data/ext/cpbequ.c +83 -0
- data/ext/cpbrfs.c +145 -0
- data/ext/cpbstf.c +81 -0
- data/ext/cpbsv.c +107 -0
- data/ext/cpbsvx.c +201 -0
- data/ext/cpbtf2.c +81 -0
- data/ext/cpbtrf.c +81 -0
- data/ext/cpbtrs.c +95 -0
- data/ext/cpftrf.c +82 -0
- data/ext/cpftri.c +82 -0
- data/ext/cpftrs.c +97 -0
- data/ext/cpocon.c +78 -0
- data/ext/cpoequ.c +75 -0
- data/ext/cpoequb.c +75 -0
- data/ext/cporfs.c +141 -0
- data/ext/cporfsx.c +206 -0
- data/ext/cposv.c +103 -0
- data/ext/cposvx.c +197 -0
- data/ext/cposvxx.c +235 -0
- data/ext/cpotf2.c +77 -0
- data/ext/cpotrf.c +77 -0
- data/ext/cpotri.c +77 -0
- data/ext/cpotrs.c +91 -0
- data/ext/cppcon.c +78 -0
- data/ext/cppequ.c +79 -0
- data/ext/cpprfs.c +139 -0
- data/ext/cppsv.c +104 -0
- data/ext/cppsvx.c +191 -0
- data/ext/cpptrf.c +78 -0
- data/ext/cpptri.c +78 -0
- data/ext/cpptrs.c +93 -0
- data/ext/cpstf2.c +95 -0
- data/ext/cpstrf.c +95 -0
- data/ext/cptcon.c +81 -0
- data/ext/cpteqr.c +126 -0
- data/ext/cptrfs.c +161 -0
- data/ext/cptsv.c +119 -0
- data/ext/cptsvx.c +171 -0
- data/ext/cpttrf.c +93 -0
- data/ext/cpttrs.c +101 -0
- data/ext/cptts2.c +98 -0
- data/ext/crot.c +107 -0
- data/ext/cspcon.c +85 -0
- data/ext/cspmv.c +115 -0
- data/ext/cspr.c +96 -0
- data/ext/csprfs.c +149 -0
- data/ext/cspsv.c +110 -0
- data/ext/cspsvx.c +163 -0
- data/ext/csptrf.c +84 -0
- data/ext/csptri.c +89 -0
- data/ext/csptrs.c +101 -0
- data/ext/csrscl.c +79 -0
- data/ext/cstedc.c +177 -0
- data/ext/cstegr.c +188 -0
- data/ext/cstein.c +134 -0
- data/ext/cstemr.c +193 -0
- data/ext/csteqr.c +126 -0
- data/ext/csycon.c +87 -0
- data/ext/csyconv.c +84 -0
- data/ext/csyequb.c +82 -0
- data/ext/csymv.c +115 -0
- data/ext/csyr.c +95 -0
- data/ext/csyrfs.c +153 -0
- data/ext/csyrfsx.c +218 -0
- data/ext/csysv.c +129 -0
- data/ext/csysvx.c +183 -0
- data/ext/csysvxx.c +258 -0
- data/ext/csyswapr.c +82 -0
- data/ext/csytf2.c +85 -0
- data/ext/csytrf.c +97 -0
- data/ext/csytri.c +92 -0
- data/ext/csytri2.c +108 -0
- data/ext/csytri2x.c +96 -0
- data/ext/csytrs.c +103 -0
- data/ext/csytrs2.c +106 -0
- data/ext/ctbcon.c +86 -0
- data/ext/ctbrfs.c +127 -0
- data/ext/ctbtrs.c +103 -0
- data/ext/ctfsm.c +111 -0
- data/ext/ctftri.c +86 -0
- data/ext/ctfttp.c +79 -0
- data/ext/ctfttr.c +80 -0
- data/ext/ctgevc.c +156 -0
- data/ext/ctgex2.c +171 -0
- data/ext/ctgexc.c +172 -0
- data/ext/ctgsen.c +244 -0
- data/ext/ctgsja.c +227 -0
- data/ext/ctgsna.c +164 -0
- data/ext/ctgsy2.c +176 -0
- data/ext/ctgsyl.c +190 -0
- data/ext/ctpcon.c +82 -0
- data/ext/ctprfs.c +123 -0
- data/ext/ctptri.c +82 -0
- data/ext/ctptrs.c +101 -0
- data/ext/ctpttf.c +79 -0
- data/ext/ctpttr.c +76 -0
- data/ext/ctrcon.c +82 -0
- data/ext/ctrevc.c +154 -0
- data/ext/ctrexc.c +111 -0
- data/ext/ctrrfs.c +123 -0
- data/ext/ctrsen.c +154 -0
- data/ext/ctrsna.c +137 -0
- data/ext/ctrsyl.c +116 -0
- data/ext/ctrti2.c +81 -0
- data/ext/ctrtri.c +81 -0
- data/ext/ctrtrs.c +99 -0
- data/ext/ctrttf.c +77 -0
- data/ext/ctrttp.c +73 -0
- data/ext/ctzrqf.c +83 -0
- data/ext/ctzrzf.c +101 -0
- data/ext/cunbdb.c +232 -0
- data/ext/cuncsd.c +204 -0
- data/ext/cung2l.c +92 -0
- data/ext/cung2r.c +92 -0
- data/ext/cungbr.c +115 -0
- data/ext/cunghr.c +111 -0
- data/ext/cungl2.c +90 -0
- data/ext/cunglq.c +107 -0
- data/ext/cungql.c +107 -0
- data/ext/cungqr.c +107 -0
- data/ext/cungr2.c +90 -0
- data/ext/cungrq.c +107 -0
- data/ext/cungtr.c +107 -0
- data/ext/cunm2l.c +114 -0
- data/ext/cunm2r.c +114 -0
- data/ext/cunmbr.c +139 -0
- data/ext/cunmhr.c +133 -0
- data/ext/cunml2.c +110 -0
- data/ext/cunmlq.c +125 -0
- data/ext/cunmql.c +129 -0
- data/ext/cunmqr.c +129 -0
- data/ext/cunmr2.c +110 -0
- data/ext/cunmr3.c +114 -0
- data/ext/cunmrq.c +125 -0
- data/ext/cunmrz.c +129 -0
- data/ext/cunmtr.c +129 -0
- data/ext/cupgtr.c +91 -0
- data/ext/cupmtr.c +116 -0
- data/ext/dbbcsd.c +287 -0
- data/ext/dbdsdc.c +151 -0
- data/ext/dbdsqr.c +182 -0
- data/ext/ddisna.c +75 -0
- data/ext/dgbbrd.c +154 -0
- data/ext/dgbcon.c +98 -0
- data/ext/dgbequ.c +98 -0
- data/ext/dgbequb.c +96 -0
- data/ext/dgbrfs.c +161 -0
- data/ext/dgbrfsx.c +249 -0
- data/ext/dgbsv.c +115 -0
- data/ext/dgbsvx.c +286 -0
- data/ext/dgbsvxx.c +289 -0
- data/ext/dgbtf2.c +93 -0
- data/ext/dgbtrf.c +93 -0
- data/ext/dgbtrs.c +111 -0
- data/ext/dgebak.c +101 -0
- data/ext/dgebal.c +91 -0
- data/ext/dgebd2.c +112 -0
- data/ext/dgebrd.c +127 -0
- data/ext/dgecon.c +78 -0
- data/ext/dgeequ.c +88 -0
- data/ext/dgeequb.c +88 -0
- data/ext/dgees.c +148 -0
- data/ext/dgeesx.c +170 -0
- data/ext/dgeev.c +137 -0
- data/ext/dgeevx.c +181 -0
- data/ext/dgegs.c +171 -0
- data/ext/dgegv.c +171 -0
- data/ext/dgehd2.c +92 -0
- data/ext/dgehrd.c +107 -0
- data/ext/dgejsv.c +159 -0
- data/ext/dgelq2.c +86 -0
- data/ext/dgelqf.c +103 -0
- data/ext/dgels.c +137 -0
- data/ext/dgelsd.c +149 -0
- data/ext/dgelss.c +148 -0
- data/ext/dgelsx.c +136 -0
- data/ext/dgelsy.c +163 -0
- data/ext/dgeql2.c +88 -0
- data/ext/dgeqlf.c +103 -0
- data/ext/dgeqp3.c +126 -0
- data/ext/dgeqpf.c +111 -0
- data/ext/dgeqr2.c +88 -0
- data/ext/dgeqr2p.c +88 -0
- data/ext/dgeqrf.c +103 -0
- data/ext/dgeqrfp.c +103 -0
- data/ext/dgerfs.c +153 -0
- data/ext/dgerfsx.c +219 -0
- data/ext/dgerq2.c +86 -0
- data/ext/dgerqf.c +103 -0
- data/ext/dgesc2.c +108 -0
- data/ext/dgesdd.c +132 -0
- data/ext/dgesv.c +107 -0
- data/ext/dgesvd.c +143 -0
- data/ext/dgesvj.c +156 -0
- data/ext/dgesvx.c +278 -0
- data/ext/dgesvxx.c +281 -0
- data/ext/dgetc2.c +89 -0
- data/ext/dgetf2.c +85 -0
- data/ext/dgetrf.c +85 -0
- data/ext/dgetri.c +103 -0
- data/ext/dgetrs.c +103 -0
- data/ext/dggbak.c +113 -0
- data/ext/dggbal.c +128 -0
- data/ext/dgges.c +198 -0
- data/ext/dggesx.c +231 -0
- data/ext/dggev.c +171 -0
- data/ext/dggevx.c +229 -0
- data/ext/dggglm.c +156 -0
- data/ext/dgghrd.c +167 -0
- data/ext/dgglse.c +171 -0
- data/ext/dggqrf.c +137 -0
- data/ext/dggrqf.c +141 -0
- data/ext/dggsvd.c +181 -0
- data/ext/dggsvp.c +171 -0
- data/ext/dgsvj0.c +182 -0
- data/ext/dgsvj1.c +186 -0
- data/ext/dgtcon.c +124 -0
- data/ext/dgtrfs.c +209 -0
- data/ext/dgtsv.c +142 -0
- data/ext/dgtsvx.c +256 -0
- data/ext/dgttrf.c +132 -0
- data/ext/dgttrs.c +137 -0
- data/ext/dgtts2.c +134 -0
- data/ext/dhgeqz.c +213 -0
- data/ext/dhsein.c +205 -0
- data/ext/dhseqr.c +153 -0
- data/ext/disnan.c +51 -0
- data/ext/dla_gbamv.c +129 -0
- data/ext/dla_gbrcond.c +142 -0
- data/ext/dla_gbrfsx_extended.c +293 -0
- data/ext/dla_gbrpvgrw.c +87 -0
- data/ext/dla_geamv.c +119 -0
- data/ext/dla_gercond.c +134 -0
- data/ext/dla_gerfsx_extended.c +281 -0
- data/ext/dla_lin_berr.c +84 -0
- data/ext/dla_porcond.c +122 -0
- data/ext/dla_porfsx_extended.c +271 -0
- data/ext/dla_porpvgrw.c +95 -0
- data/ext/dla_rpvgrw.c +79 -0
- data/ext/dla_syamv.c +113 -0
- data/ext/dla_syrcond.c +134 -0
- data/ext/dla_syrfsx_extended.c +283 -0
- data/ext/dla_syrpvgrw.c +107 -0
- data/ext/dla_wwaddw.c +102 -0
- data/ext/dlabad.c +54 -0
- data/ext/dlabrd.c +132 -0
- data/ext/dlacn2.c +106 -0
- data/ext/dlacon.c +83 -0
- data/ext/dlacpy.c +77 -0
- data/ext/dladiv.c +66 -0
- data/ext/dlae2.c +62 -0
- data/ext/dlaebz.c +218 -0
- data/ext/dlaed0.c +127 -0
- data/ext/dlaed1.c +133 -0
- data/ext/dlaed2.c +189 -0
- data/ext/dlaed3.c +161 -0
- data/ext/dlaed4.c +90 -0
- data/ext/dlaed5.c +87 -0
- data/ext/dlaed6.c +90 -0
- data/ext/dlaed7.c +248 -0
- data/ext/dlaed8.c +206 -0
- data/ext/dlaed9.c +111 -0
- data/ext/dlaeda.c +160 -0
- data/ext/dlaein.c +143 -0
- data/ext/dlaev2.c +68 -0
- data/ext/dlaexc.c +118 -0
- data/ext/dlag2.c +91 -0
- data/ext/dlag2s.c +76 -0
- data/ext/dlags2.c +90 -0
- data/ext/dlagtf.c +140 -0
- data/ext/dlagtm.c +132 -0
- data/ext/dlagts.c +139 -0
- data/ext/dlagv2.c +132 -0
- data/ext/dlahqr.c +143 -0
- data/ext/dlahr2.c +112 -0
- data/ext/dlahrd.c +112 -0
- data/ext/dlaic1.c +89 -0
- data/ext/dlaln2.c +120 -0
- data/ext/dlals0.c +201 -0
- data/ext/dlalsa.c +270 -0
- data/ext/dlalsd.c +142 -0
- data/ext/dlamrg.c +80 -0
- data/ext/dlaneg.c +83 -0
- data/ext/dlangb.c +78 -0
- data/ext/dlange.c +74 -0
- data/ext/dlangt.c +87 -0
- data/ext/dlanhs.c +70 -0
- data/ext/dlansb.c +78 -0
- data/ext/dlansf.c +80 -0
- data/ext/dlansp.c +76 -0
- data/ext/dlanst.c +75 -0
- data/ext/dlansy.c +74 -0
- data/ext/dlantb.c +82 -0
- data/ext/dlantp.c +80 -0
- data/ext/dlantr.c +82 -0
- data/ext/dlanv2.c +82 -0
- data/ext/dlapll.c +105 -0
- data/ext/dlapmr.c +97 -0
- data/ext/dlapmt.c +101 -0
- data/ext/dlapy2.c +55 -0
- data/ext/dlapy3.c +59 -0
- data/ext/dlaqgb.c +117 -0
- data/ext/dlaqge.c +109 -0
- data/ext/dlaqp2.c +158 -0
- data/ext/dlaqps.c +208 -0
- data/ext/dlaqr0.c +153 -0
- data/ext/dlaqr1.c +82 -0
- data/ext/dlaqr2.c +182 -0
- data/ext/dlaqr3.c +182 -0
- data/ext/dlaqr4.c +153 -0
- data/ext/dlaqr5.c +200 -0
- data/ext/dlaqsb.c +101 -0
- data/ext/dlaqsp.c +94 -0
- data/ext/dlaqsy.c +97 -0
- data/ext/dlaqtr.c +114 -0
- data/ext/dlar1v.c +173 -0
- data/ext/dlar2v.c +149 -0
- data/ext/dlarf.c +101 -0
- data/ext/dlarfb.c +123 -0
- data/ext/dlarfg.c +83 -0
- data/ext/dlarfgp.c +83 -0
- data/ext/dlarft.c +105 -0
- data/ext/dlarfx.c +93 -0
- data/ext/dlargv.c +114 -0
- data/ext/dlarnv.c +83 -0
- data/ext/dlarra.c +124 -0
- data/ext/dlarrb.c +178 -0
- data/ext/dlarrc.c +96 -0
- data/ext/dlarrd.c +190 -0
- data/ext/dlarre.c +221 -0
- data/ext/dlarrf.c +176 -0
- data/ext/dlarrj.c +147 -0
- data/ext/dlarrk.c +97 -0
- data/ext/dlarrr.c +82 -0
- data/ext/dlarrv.c +271 -0
- data/ext/dlarscl2.c +82 -0
- data/ext/dlartg.c +61 -0
- data/ext/dlartgp.c +61 -0
- data/ext/dlartgs.c +62 -0
- data/ext/dlartv.c +130 -0
- data/ext/dlaruv.c +79 -0
- data/ext/dlarz.c +105 -0
- data/ext/dlarzb.c +127 -0
- data/ext/dlarzt.c +105 -0
- data/ext/dlas2.c +62 -0
- data/ext/dlascl.c +97 -0
- data/ext/dlascl2.c +82 -0
- data/ext/dlasd0.c +120 -0
- data/ext/dlasd1.c +162 -0
- data/ext/dlasd2.c +228 -0
- data/ext/dlasd3.c +202 -0
- data/ext/dlasd4.c +93 -0
- data/ext/dlasd5.c +90 -0
- data/ext/dlasd6.c +236 -0
- data/ext/dlasd7.c +225 -0
- data/ext/dlasd8.c +173 -0
- data/ext/dlasda.c +221 -0
- data/ext/dlasdq.c +186 -0
- data/ext/dlasdt.c +82 -0
- data/ext/dlaset.c +86 -0
- data/ext/dlasq1.c +96 -0
- data/ext/dlasq2.c +74 -0
- data/ext/dlasq3.c +138 -0
- data/ext/dlasq4.c +107 -0
- data/ext/dlasq5.c +94 -0
- data/ext/dlasq6.c +86 -0
- data/ext/dlasr.c +110 -0
- data/ext/dlasrt.c +74 -0
- data/ext/dlassq.c +70 -0
- data/ext/dlasv2.c +74 -0
- data/ext/dlaswp.c +94 -0
- data/ext/dlasy2.c +126 -0
- data/ext/dlasyf.c +97 -0
- data/ext/dlat2s.c +76 -0
- data/ext/dlatbs.c +130 -0
- data/ext/dlatdf.c +119 -0
- data/ext/dlatps.c +124 -0
- data/ext/dlatrd.c +105 -0
- data/ext/dlatrs.c +126 -0
- data/ext/dlatrz.c +87 -0
- data/ext/dlatzm.c +131 -0
- data/ext/dlauu2.c +77 -0
- data/ext/dlauum.c +77 -0
- data/ext/dopgtr.c +91 -0
- data/ext/dopmtr.c +116 -0
- data/ext/dorbdb.c +232 -0
- data/ext/dorcsd.c +197 -0
- data/ext/dorg2l.c +92 -0
- data/ext/dorg2r.c +92 -0
- data/ext/dorgbr.c +115 -0
- data/ext/dorghr.c +111 -0
- data/ext/dorgl2.c +90 -0
- data/ext/dorglq.c +107 -0
- data/ext/dorgql.c +107 -0
- data/ext/dorgqr.c +107 -0
- data/ext/dorgr2.c +90 -0
- data/ext/dorgrq.c +107 -0
- data/ext/dorgtr.c +107 -0
- data/ext/dorm2l.c +114 -0
- data/ext/dorm2r.c +114 -0
- data/ext/dormbr.c +139 -0
- data/ext/dormhr.c +133 -0
- data/ext/dorml2.c +110 -0
- data/ext/dormlq.c +125 -0
- data/ext/dormql.c +129 -0
- data/ext/dormqr.c +129 -0
- data/ext/dormr2.c +110 -0
- data/ext/dormr3.c +114 -0
- data/ext/dormrq.c +125 -0
- data/ext/dormrz.c +129 -0
- data/ext/dormtr.c +129 -0
- data/ext/dpbcon.c +82 -0
- data/ext/dpbequ.c +83 -0
- data/ext/dpbrfs.c +145 -0
- data/ext/dpbstf.c +81 -0
- data/ext/dpbsv.c +107 -0
- data/ext/dpbsvx.c +201 -0
- data/ext/dpbtf2.c +81 -0
- data/ext/dpbtrf.c +81 -0
- data/ext/dpbtrs.c +95 -0
- data/ext/dpftrf.c +82 -0
- data/ext/dpftri.c +82 -0
- data/ext/dpftrs.c +97 -0
- data/ext/dpocon.c +78 -0
- data/ext/dpoequ.c +75 -0
- data/ext/dpoequb.c +75 -0
- data/ext/dporfs.c +141 -0
- data/ext/dporfsx.c +206 -0
- data/ext/dposv.c +103 -0
- data/ext/dposvx.c +197 -0
- data/ext/dposvxx.c +235 -0
- data/ext/dpotf2.c +77 -0
- data/ext/dpotrf.c +77 -0
- data/ext/dpotri.c +77 -0
- data/ext/dpotrs.c +91 -0
- data/ext/dppcon.c +78 -0
- data/ext/dppequ.c +79 -0
- data/ext/dpprfs.c +139 -0
- data/ext/dppsv.c +104 -0
- data/ext/dppsvx.c +191 -0
- data/ext/dpptrf.c +78 -0
- data/ext/dpptri.c +78 -0
- data/ext/dpptrs.c +93 -0
- data/ext/dpstf2.c +95 -0
- data/ext/dpstrf.c +95 -0
- data/ext/dptcon.c +81 -0
- data/ext/dpteqr.c +126 -0
- data/ext/dptrfs.c +154 -0
- data/ext/dptsv.c +119 -0
- data/ext/dptsvx.c +168 -0
- data/ext/dpttrf.c +93 -0
- data/ext/dpttrs.c +97 -0
- data/ext/dptts2.c +94 -0
- data/ext/drscl.c +79 -0
- data/ext/dsbev.c +107 -0
- data/ext/dsbevd.c +140 -0
- data/ext/dsbevx.c +157 -0
- data/ext/dsbgst.c +117 -0
- data/ext/dsbgv.c +137 -0
- data/ext/dsbgvd.c +170 -0
- data/ext/dsbgvx.c +197 -0
- data/ext/dsbtrd.c +130 -0
- data/ext/dsfrk.c +109 -0
- data/ext/dsgesv.c +115 -0
- data/ext/dspcon.c +88 -0
- data/ext/dspev.c +102 -0
- data/ext/dspevd.c +135 -0
- data/ext/dspevx.c +141 -0
- data/ext/dspgst.c +94 -0
- data/ext/dspgv.c +129 -0
- data/ext/dspgvd.c +162 -0
- data/ext/dspgvx.c +168 -0
- data/ext/dsposv.c +111 -0
- data/ext/dsprfs.c +149 -0
- data/ext/dspsv.c +110 -0
- data/ext/dspsvx.c +163 -0
- data/ext/dsptrd.c +100 -0
- data/ext/dsptrf.c +84 -0
- data/ext/dsptri.c +89 -0
- data/ext/dsptrs.c +101 -0
- data/ext/dstebz.c +135 -0
- data/ext/dstedc.c +159 -0
- data/ext/dstegr.c +188 -0
- data/ext/dstein.c +134 -0
- data/ext/dstemr.c +193 -0
- data/ext/dsteqr.c +126 -0
- data/ext/dsterf.c +93 -0
- data/ext/dstev.c +111 -0
- data/ext/dstevd.c +144 -0
- data/ext/dstevr.c +188 -0
- data/ext/dstevx.c +158 -0
- data/ext/dsycon.c +90 -0
- data/ext/dsyconv.c +84 -0
- data/ext/dsyequb.c +82 -0
- data/ext/dsyev.c +107 -0
- data/ext/dsyevd.c +125 -0
- data/ext/dsyevr.c +172 -0
- data/ext/dsyevx.c +157 -0
- data/ext/dsygs2.c +95 -0
- data/ext/dsygst.c +95 -0
- data/ext/dsygv.c +137 -0
- data/ext/dsygvd.c +155 -0
- data/ext/dsygvx.c +187 -0
- data/ext/dsyrfs.c +153 -0
- data/ext/dsyrfsx.c +218 -0
- data/ext/dsysv.c +129 -0
- data/ext/dsysvx.c +183 -0
- data/ext/dsysvxx.c +258 -0
- data/ext/dsyswapr.c +82 -0
- data/ext/dsytd2.c +101 -0
- data/ext/dsytf2.c +85 -0
- data/ext/dsytrd.c +113 -0
- data/ext/dsytrf.c +97 -0
- data/ext/dsytri.c +92 -0
- data/ext/dsytri2.c +108 -0
- data/ext/dsytri2x.c +96 -0
- data/ext/dsytrs.c +103 -0
- data/ext/dsytrs2.c +106 -0
- data/ext/dtbcon.c +86 -0
- data/ext/dtbrfs.c +127 -0
- data/ext/dtbtrs.c +103 -0
- data/ext/dtfsm.c +110 -0
- data/ext/dtftri.c +86 -0
- data/ext/dtfttp.c +79 -0
- data/ext/dtfttr.c +80 -0
- data/ext/dtgevc.c +153 -0
- data/ext/dtgex2.c +180 -0
- data/ext/dtgexc.c +187 -0
- data/ext/dtgsen.c +252 -0
- data/ext/dtgsja.c +227 -0
- data/ext/dtgsna.c +164 -0
- data/ext/dtgsy2.c +182 -0
- data/ext/dtgsyl.c +190 -0
- data/ext/dtpcon.c +82 -0
- data/ext/dtprfs.c +123 -0
- data/ext/dtptri.c +82 -0
- data/ext/dtptrs.c +101 -0
- data/ext/dtpttf.c +79 -0
- data/ext/dtpttr.c +76 -0
- data/ext/dtrcon.c +82 -0
- data/ext/dtrevc.c +150 -0
- data/ext/dtrexc.c +116 -0
- data/ext/dtrrfs.c +123 -0
- data/ext/dtrsen.c +169 -0
- data/ext/dtrsna.c +137 -0
- data/ext/dtrsyl.c +116 -0
- data/ext/dtrti2.c +81 -0
- data/ext/dtrtri.c +81 -0
- data/ext/dtrtrs.c +99 -0
- data/ext/dtrttf.c +77 -0
- data/ext/dtrttp.c +73 -0
- data/ext/dtzrqf.c +83 -0
- data/ext/dtzrzf.c +101 -0
- data/ext/dzsum1.c +63 -0
- data/ext/icmax1.c +63 -0
- data/ext/ieeeck.c +59 -0
- data/ext/ilaclc.c +65 -0
- data/ext/ilaclr.c +65 -0
- data/ext/iladiag.c +51 -0
- data/ext/iladlc.c +65 -0
- data/ext/iladlr.c +65 -0
- data/ext/ilaenv.c +75 -0
- data/ext/ilaprec.c +51 -0
- data/ext/ilaslc.c +65 -0
- data/ext/ilaslr.c +65 -0
- data/ext/ilatrans.c +51 -0
- data/ext/ilauplo.c +51 -0
- data/ext/ilaver.c +53 -0
- data/ext/ilazlc.c +65 -0
- data/ext/ilazlr.c +65 -0
- data/ext/iparmq.c +75 -0
- data/ext/izmax1.c +63 -0
- data/ext/lsamen.c +59 -0
- data/ext/rb_lapack.c +3279 -0
- data/ext/sbbcsd.c +287 -0
- data/ext/sbdsdc.c +157 -0
- data/ext/sbdsqr.c +182 -0
- data/ext/scsum1.c +63 -0
- data/ext/sdisna.c +75 -0
- data/ext/sgbbrd.c +154 -0
- data/ext/sgbcon.c +98 -0
- data/ext/sgbequ.c +98 -0
- data/ext/sgbequb.c +96 -0
- data/ext/sgbrfs.c +161 -0
- data/ext/sgbrfsx.c +249 -0
- data/ext/sgbsv.c +115 -0
- data/ext/sgbsvx.c +286 -0
- data/ext/sgbsvxx.c +289 -0
- data/ext/sgbtf2.c +93 -0
- data/ext/sgbtrf.c +93 -0
- data/ext/sgbtrs.c +111 -0
- data/ext/sgebak.c +101 -0
- data/ext/sgebal.c +91 -0
- data/ext/sgebd2.c +112 -0
- data/ext/sgebrd.c +127 -0
- data/ext/sgecon.c +78 -0
- data/ext/sgeequ.c +88 -0
- data/ext/sgeequb.c +88 -0
- data/ext/sgees.c +148 -0
- data/ext/sgeesx.c +170 -0
- data/ext/sgeev.c +137 -0
- data/ext/sgeevx.c +181 -0
- data/ext/sgegs.c +171 -0
- data/ext/sgegv.c +171 -0
- data/ext/sgehd2.c +92 -0
- data/ext/sgehrd.c +107 -0
- data/ext/sgejsv.c +159 -0
- data/ext/sgelq2.c +86 -0
- data/ext/sgelqf.c +103 -0
- data/ext/sgels.c +137 -0
- data/ext/sgelsd.c +149 -0
- data/ext/sgelss.c +148 -0
- data/ext/sgelsx.c +136 -0
- data/ext/sgelsy.c +163 -0
- data/ext/sgeql2.c +88 -0
- data/ext/sgeqlf.c +103 -0
- data/ext/sgeqp3.c +126 -0
- data/ext/sgeqpf.c +111 -0
- data/ext/sgeqr2.c +88 -0
- data/ext/sgeqr2p.c +88 -0
- data/ext/sgeqrf.c +103 -0
- data/ext/sgeqrfp.c +103 -0
- data/ext/sgerfs.c +153 -0
- data/ext/sgerfsx.c +219 -0
- data/ext/sgerq2.c +86 -0
- data/ext/sgerqf.c +103 -0
- data/ext/sgesc2.c +108 -0
- data/ext/sgesdd.c +132 -0
- data/ext/sgesv.c +107 -0
- data/ext/sgesvd.c +143 -0
- data/ext/sgesvj.c +156 -0
- data/ext/sgesvx.c +278 -0
- data/ext/sgesvxx.c +281 -0
- data/ext/sgetc2.c +89 -0
- data/ext/sgetf2.c +85 -0
- data/ext/sgetrf.c +85 -0
- data/ext/sgetri.c +103 -0
- data/ext/sgetrs.c +103 -0
- data/ext/sggbak.c +113 -0
- data/ext/sggbal.c +128 -0
- data/ext/sgges.c +198 -0
- data/ext/sggesx.c +231 -0
- data/ext/sggev.c +171 -0
- data/ext/sggevx.c +229 -0
- data/ext/sggglm.c +156 -0
- data/ext/sgghrd.c +167 -0
- data/ext/sgglse.c +171 -0
- data/ext/sggqrf.c +137 -0
- data/ext/sggrqf.c +141 -0
- data/ext/sggsvd.c +181 -0
- data/ext/sggsvp.c +171 -0
- data/ext/sgsvj0.c +182 -0
- data/ext/sgsvj1.c +186 -0
- data/ext/sgtcon.c +124 -0
- data/ext/sgtrfs.c +209 -0
- data/ext/sgtsv.c +142 -0
- data/ext/sgtsvx.c +256 -0
- data/ext/sgttrf.c +132 -0
- data/ext/sgttrs.c +137 -0
- data/ext/sgtts2.c +134 -0
- data/ext/shgeqz.c +213 -0
- data/ext/shsein.c +205 -0
- data/ext/shseqr.c +153 -0
- data/ext/sisnan.c +51 -0
- data/ext/sla_gbamv.c +129 -0
- data/ext/sla_gbrcond.c +142 -0
- data/ext/sla_gbrfsx_extended.c +291 -0
- data/ext/sla_gbrpvgrw.c +87 -0
- data/ext/sla_geamv.c +119 -0
- data/ext/sla_gercond.c +134 -0
- data/ext/sla_gerfsx_extended.c +283 -0
- data/ext/sla_lin_berr.c +84 -0
- data/ext/sla_porcond.c +122 -0
- data/ext/sla_porfsx_extended.c +271 -0
- data/ext/sla_porpvgrw.c +95 -0
- data/ext/sla_rpvgrw.c +79 -0
- data/ext/sla_syamv.c +116 -0
- data/ext/sla_syrcond.c +134 -0
- data/ext/sla_syrfsx_extended.c +283 -0
- data/ext/sla_syrpvgrw.c +107 -0
- data/ext/sla_wwaddw.c +102 -0
- data/ext/slabad.c +54 -0
- data/ext/slabrd.c +132 -0
- data/ext/slacn2.c +106 -0
- data/ext/slacon.c +83 -0
- data/ext/slacpy.c +77 -0
- data/ext/sladiv.c +66 -0
- data/ext/slae2.c +62 -0
- data/ext/slaebz.c +218 -0
- data/ext/slaed0.c +127 -0
- data/ext/slaed1.c +133 -0
- data/ext/slaed2.c +189 -0
- data/ext/slaed3.c +161 -0
- data/ext/slaed4.c +90 -0
- data/ext/slaed5.c +87 -0
- data/ext/slaed6.c +90 -0
- data/ext/slaed7.c +248 -0
- data/ext/slaed8.c +206 -0
- data/ext/slaed9.c +111 -0
- data/ext/slaeda.c +160 -0
- data/ext/slaein.c +143 -0
- data/ext/slaev2.c +68 -0
- data/ext/slaexc.c +118 -0
- data/ext/slag2.c +91 -0
- data/ext/slag2d.c +76 -0
- data/ext/slags2.c +90 -0
- data/ext/slagtf.c +140 -0
- data/ext/slagtm.c +132 -0
- data/ext/slagts.c +139 -0
- data/ext/slagv2.c +132 -0
- data/ext/slahqr.c +143 -0
- data/ext/slahr2.c +112 -0
- data/ext/slahrd.c +114 -0
- data/ext/slaic1.c +89 -0
- data/ext/slaln2.c +120 -0
- data/ext/slals0.c +201 -0
- data/ext/slalsa.c +270 -0
- data/ext/slalsd.c +142 -0
- data/ext/slamrg.c +80 -0
- data/ext/slaneg.c +83 -0
- data/ext/slangb.c +78 -0
- data/ext/slange.c +74 -0
- data/ext/slangt.c +87 -0
- data/ext/slanhs.c +70 -0
- data/ext/slansb.c +78 -0
- data/ext/slansf.c +78 -0
- data/ext/slansp.c +76 -0
- data/ext/slanst.c +75 -0
- data/ext/slansy.c +74 -0
- data/ext/slantb.c +82 -0
- data/ext/slantp.c +80 -0
- data/ext/slantr.c +82 -0
- data/ext/slanv2.c +82 -0
- data/ext/slapll.c +105 -0
- data/ext/slapmr.c +97 -0
- data/ext/slapmt.c +101 -0
- data/ext/slapy2.c +55 -0
- data/ext/slapy3.c +59 -0
- data/ext/slaqgb.c +117 -0
- data/ext/slaqge.c +109 -0
- data/ext/slaqp2.c +158 -0
- data/ext/slaqps.c +208 -0
- data/ext/slaqr0.c +153 -0
- data/ext/slaqr1.c +82 -0
- data/ext/slaqr2.c +182 -0
- data/ext/slaqr3.c +182 -0
- data/ext/slaqr4.c +153 -0
- data/ext/slaqr5.c +200 -0
- data/ext/slaqsb.c +101 -0
- data/ext/slaqsp.c +94 -0
- data/ext/slaqsy.c +97 -0
- data/ext/slaqtr.c +114 -0
- data/ext/slar1v.c +173 -0
- data/ext/slar2v.c +149 -0
- data/ext/slarf.c +101 -0
- data/ext/slarfb.c +123 -0
- data/ext/slarfg.c +83 -0
- data/ext/slarfgp.c +83 -0
- data/ext/slarft.c +105 -0
- data/ext/slarfx.c +93 -0
- data/ext/slargv.c +114 -0
- data/ext/slarnv.c +83 -0
- data/ext/slarra.c +124 -0
- data/ext/slarrb.c +178 -0
- data/ext/slarrc.c +96 -0
- data/ext/slarrd.c +190 -0
- data/ext/slarre.c +221 -0
- data/ext/slarrf.c +176 -0
- data/ext/slarrj.c +147 -0
- data/ext/slarrk.c +97 -0
- data/ext/slarrr.c +82 -0
- data/ext/slarrv.c +271 -0
- data/ext/slarscl2.c +82 -0
- data/ext/slartg.c +61 -0
- data/ext/slartgp.c +61 -0
- data/ext/slartgs.c +62 -0
- data/ext/slartv.c +130 -0
- data/ext/slaruv.c +79 -0
- data/ext/slarz.c +105 -0
- data/ext/slarzb.c +127 -0
- data/ext/slarzt.c +105 -0
- data/ext/slas2.c +62 -0
- data/ext/slascl.c +97 -0
- data/ext/slascl2.c +82 -0
- data/ext/slasd0.c +120 -0
- data/ext/slasd1.c +160 -0
- data/ext/slasd2.c +228 -0
- data/ext/slasd3.c +212 -0
- data/ext/slasd4.c +93 -0
- data/ext/slasd5.c +90 -0
- data/ext/slasd6.c +236 -0
- data/ext/slasd7.c +225 -0
- data/ext/slasd8.c +173 -0
- data/ext/slasda.c +221 -0
- data/ext/slasdq.c +186 -0
- data/ext/slasdt.c +82 -0
- data/ext/slaset.c +86 -0
- data/ext/slasq1.c +96 -0
- data/ext/slasq2.c +74 -0
- data/ext/slasq3.c +138 -0
- data/ext/slasq4.c +107 -0
- data/ext/slasq5.c +94 -0
- data/ext/slasq6.c +86 -0
- data/ext/slasr.c +110 -0
- data/ext/slasrt.c +74 -0
- data/ext/slassq.c +70 -0
- data/ext/slasv2.c +74 -0
- data/ext/slaswp.c +94 -0
- data/ext/slasy2.c +126 -0
- data/ext/slasyf.c +97 -0
- data/ext/slatbs.c +130 -0
- data/ext/slatdf.c +119 -0
- data/ext/slatps.c +124 -0
- data/ext/slatrd.c +105 -0
- data/ext/slatrs.c +126 -0
- data/ext/slatrz.c +87 -0
- data/ext/slatzm.c +131 -0
- data/ext/slauu2.c +77 -0
- data/ext/slauum.c +77 -0
- data/ext/sopgtr.c +91 -0
- data/ext/sopmtr.c +116 -0
- data/ext/sorbdb.c +232 -0
- data/ext/sorcsd.c +197 -0
- data/ext/sorg2l.c +92 -0
- data/ext/sorg2r.c +92 -0
- data/ext/sorgbr.c +115 -0
- data/ext/sorghr.c +111 -0
- data/ext/sorgl2.c +90 -0
- data/ext/sorglq.c +107 -0
- data/ext/sorgql.c +107 -0
- data/ext/sorgqr.c +107 -0
- data/ext/sorgr2.c +90 -0
- data/ext/sorgrq.c +107 -0
- data/ext/sorgtr.c +107 -0
- data/ext/sorm2l.c +114 -0
- data/ext/sorm2r.c +114 -0
- data/ext/sormbr.c +139 -0
- data/ext/sormhr.c +133 -0
- data/ext/sorml2.c +110 -0
- data/ext/sormlq.c +125 -0
- data/ext/sormql.c +129 -0
- data/ext/sormqr.c +129 -0
- data/ext/sormr2.c +110 -0
- data/ext/sormr3.c +114 -0
- data/ext/sormrq.c +125 -0
- data/ext/sormrz.c +129 -0
- data/ext/sormtr.c +129 -0
- data/ext/spbcon.c +82 -0
- data/ext/spbequ.c +83 -0
- data/ext/spbrfs.c +145 -0
- data/ext/spbstf.c +81 -0
- data/ext/spbsv.c +107 -0
- data/ext/spbsvx.c +201 -0
- data/ext/spbtf2.c +81 -0
- data/ext/spbtrf.c +81 -0
- data/ext/spbtrs.c +95 -0
- data/ext/spftrf.c +82 -0
- data/ext/spftri.c +82 -0
- data/ext/spftrs.c +97 -0
- data/ext/spocon.c +78 -0
- data/ext/spoequ.c +75 -0
- data/ext/spoequb.c +75 -0
- data/ext/sporfs.c +141 -0
- data/ext/sporfsx.c +206 -0
- data/ext/sposv.c +103 -0
- data/ext/sposvx.c +197 -0
- data/ext/sposvxx.c +235 -0
- data/ext/spotf2.c +77 -0
- data/ext/spotrf.c +77 -0
- data/ext/spotri.c +77 -0
- data/ext/spotrs.c +91 -0
- data/ext/sppcon.c +78 -0
- data/ext/sppequ.c +79 -0
- data/ext/spprfs.c +139 -0
- data/ext/sppsv.c +104 -0
- data/ext/sppsvx.c +191 -0
- data/ext/spptrf.c +78 -0
- data/ext/spptri.c +78 -0
- data/ext/spptrs.c +93 -0
- data/ext/spstf2.c +95 -0
- data/ext/spstrf.c +95 -0
- data/ext/sptcon.c +81 -0
- data/ext/spteqr.c +126 -0
- data/ext/sptrfs.c +154 -0
- data/ext/sptsv.c +119 -0
- data/ext/sptsvx.c +168 -0
- data/ext/spttrf.c +93 -0
- data/ext/spttrs.c +97 -0
- data/ext/sptts2.c +94 -0
- data/ext/srscl.c +79 -0
- data/ext/ssbev.c +107 -0
- data/ext/ssbevd.c +140 -0
- data/ext/ssbevx.c +157 -0
- data/ext/ssbgst.c +117 -0
- data/ext/ssbgv.c +137 -0
- data/ext/ssbgvd.c +170 -0
- data/ext/ssbgvx.c +197 -0
- data/ext/ssbtrd.c +130 -0
- data/ext/ssfrk.c +109 -0
- data/ext/sspcon.c +88 -0
- data/ext/sspev.c +102 -0
- data/ext/sspevd.c +135 -0
- data/ext/sspevx.c +141 -0
- data/ext/sspgst.c +94 -0
- data/ext/sspgv.c +129 -0
- data/ext/sspgvd.c +162 -0
- data/ext/sspgvx.c +168 -0
- data/ext/ssprfs.c +149 -0
- data/ext/sspsv.c +110 -0
- data/ext/sspsvx.c +163 -0
- data/ext/ssptrd.c +100 -0
- data/ext/ssptrf.c +84 -0
- data/ext/ssptri.c +89 -0
- data/ext/ssptrs.c +101 -0
- data/ext/sstebz.c +135 -0
- data/ext/sstedc.c +159 -0
- data/ext/sstegr.c +188 -0
- data/ext/sstein.c +134 -0
- data/ext/sstemr.c +193 -0
- data/ext/ssteqr.c +126 -0
- data/ext/ssterf.c +93 -0
- data/ext/sstev.c +111 -0
- data/ext/sstevd.c +144 -0
- data/ext/sstevr.c +188 -0
- data/ext/sstevx.c +158 -0
- data/ext/ssycon.c +90 -0
- data/ext/ssyconv.c +84 -0
- data/ext/ssyequb.c +82 -0
- data/ext/ssyev.c +107 -0
- data/ext/ssyevd.c +125 -0
- data/ext/ssyevr.c +172 -0
- data/ext/ssyevx.c +157 -0
- data/ext/ssygs2.c +95 -0
- data/ext/ssygst.c +95 -0
- data/ext/ssygv.c +137 -0
- data/ext/ssygvd.c +155 -0
- data/ext/ssygvx.c +191 -0
- data/ext/ssyrfs.c +153 -0
- data/ext/ssyrfsx.c +218 -0
- data/ext/ssysv.c +129 -0
- data/ext/ssysvx.c +183 -0
- data/ext/ssysvxx.c +258 -0
- data/ext/ssyswapr.c +82 -0
- data/ext/ssytd2.c +101 -0
- data/ext/ssytf2.c +85 -0
- data/ext/ssytrd.c +113 -0
- data/ext/ssytrf.c +97 -0
- data/ext/ssytri.c +92 -0
- data/ext/ssytri2.c +127 -0
- data/ext/ssytri2x.c +96 -0
- data/ext/ssytrs.c +103 -0
- data/ext/ssytrs2.c +106 -0
- data/ext/stbcon.c +86 -0
- data/ext/stbrfs.c +127 -0
- data/ext/stbtrs.c +103 -0
- data/ext/stfsm.c +112 -0
- data/ext/stftri.c +86 -0
- data/ext/stfttp.c +79 -0
- data/ext/stfttr.c +80 -0
- data/ext/stgevc.c +153 -0
- data/ext/stgex2.c +184 -0
- data/ext/stgexc.c +191 -0
- data/ext/stgsen.c +252 -0
- data/ext/stgsja.c +227 -0
- data/ext/stgsna.c +164 -0
- data/ext/stgsy2.c +182 -0
- data/ext/stgsyl.c +190 -0
- data/ext/stpcon.c +82 -0
- data/ext/stprfs.c +123 -0
- data/ext/stptri.c +82 -0
- data/ext/stptrs.c +101 -0
- data/ext/stpttf.c +79 -0
- data/ext/stpttr.c +76 -0
- data/ext/strcon.c +82 -0
- data/ext/strevc.c +150 -0
- data/ext/strexc.c +116 -0
- data/ext/strrfs.c +123 -0
- data/ext/strsen.c +169 -0
- data/ext/strsna.c +137 -0
- data/ext/strsyl.c +116 -0
- data/ext/strti2.c +81 -0
- data/ext/strtri.c +81 -0
- data/ext/strtrs.c +99 -0
- data/ext/strttf.c +77 -0
- data/ext/strttp.c +73 -0
- data/ext/stzrqf.c +83 -0
- data/ext/stzrzf.c +101 -0
- data/ext/xerbla.c +52 -0
- data/ext/xerbla_array.c +53 -0
- data/ext/zbbcsd.c +283 -0
- data/ext/zbdsqr.c +182 -0
- data/ext/zcgesv.c +118 -0
- data/ext/zcposv.c +114 -0
- data/ext/zdrscl.c +79 -0
- data/ext/zgbbrd.c +157 -0
- data/ext/zgbcon.c +98 -0
- data/ext/zgbequ.c +98 -0
- data/ext/zgbequb.c +96 -0
- data/ext/zgbrfs.c +161 -0
- data/ext/zgbrfsx.c +249 -0
- data/ext/zgbsv.c +115 -0
- data/ext/zgbsvx.c +286 -0
- data/ext/zgbsvxx.c +289 -0
- data/ext/zgbtf2.c +93 -0
- data/ext/zgbtrf.c +93 -0
- data/ext/zgbtrs.c +111 -0
- data/ext/zgebak.c +101 -0
- data/ext/zgebal.c +91 -0
- data/ext/zgebd2.c +112 -0
- data/ext/zgebrd.c +127 -0
- data/ext/zgecon.c +78 -0
- data/ext/zgeequ.c +88 -0
- data/ext/zgeequb.c +88 -0
- data/ext/zgees.c +142 -0
- data/ext/zgeesx.c +152 -0
- data/ext/zgeev.c +132 -0
- data/ext/zgeevx.c +173 -0
- data/ext/zgegs.c +166 -0
- data/ext/zgegv.c +171 -0
- data/ext/zgehd2.c +92 -0
- data/ext/zgehrd.c +107 -0
- data/ext/zgelq2.c +86 -0
- data/ext/zgelqf.c +103 -0
- data/ext/zgels.c +137 -0
- data/ext/zgelsd.c +154 -0
- data/ext/zgelss.c +151 -0
- data/ext/zgelsx.c +139 -0
- data/ext/zgelsy.c +166 -0
- data/ext/zgeql2.c +88 -0
- data/ext/zgeqlf.c +103 -0
- data/ext/zgeqp3.c +129 -0
- data/ext/zgeqpf.c +114 -0
- data/ext/zgeqr2.c +88 -0
- data/ext/zgeqr2p.c +88 -0
- data/ext/zgeqrf.c +103 -0
- data/ext/zgeqrfp.c +103 -0
- data/ext/zgerfs.c +153 -0
- data/ext/zgerfsx.c +219 -0
- data/ext/zgerq2.c +86 -0
- data/ext/zgerqf.c +103 -0
- data/ext/zgesc2.c +108 -0
- data/ext/zgesdd.c +135 -0
- data/ext/zgesv.c +107 -0
- data/ext/zgesvd.c +146 -0
- data/ext/zgesvx.c +278 -0
- data/ext/zgesvxx.c +281 -0
- data/ext/zgetc2.c +89 -0
- data/ext/zgetf2.c +85 -0
- data/ext/zgetrf.c +85 -0
- data/ext/zgetri.c +103 -0
- data/ext/zgetrs.c +103 -0
- data/ext/zggbak.c +113 -0
- data/ext/zggbal.c +128 -0
- data/ext/zgges.c +192 -0
- data/ext/zggesx.c +230 -0
- data/ext/zggev.c +171 -0
- data/ext/zggevx.c +226 -0
- data/ext/zggglm.c +156 -0
- data/ext/zgghrd.c +167 -0
- data/ext/zgglse.c +171 -0
- data/ext/zggqrf.c +137 -0
- data/ext/zggrqf.c +141 -0
- data/ext/zggsvd.c +184 -0
- data/ext/zggsvp.c +174 -0
- data/ext/zgtcon.c +121 -0
- data/ext/zgtrfs.c +209 -0
- data/ext/zgtsv.c +142 -0
- data/ext/zgtsvx.c +256 -0
- data/ext/zgttrf.c +132 -0
- data/ext/zgttrs.c +137 -0
- data/ext/zgtts2.c +134 -0
- data/ext/zhbev.c +110 -0
- data/ext/zhbevd.c +158 -0
- data/ext/zhbevx.c +160 -0
- data/ext/zhbgst.c +120 -0
- data/ext/zhbgv.c +140 -0
- data/ext/zhbgvd.c +188 -0
- data/ext/zhbgvx.c +189 -0
- data/ext/zhbtrd.c +130 -0
- data/ext/zhecon.c +87 -0
- data/ext/zheequb.c +82 -0
- data/ext/zheev.c +110 -0
- data/ext/zheevd.c +143 -0
- data/ext/zheevr.c +190 -0
- data/ext/zheevx.c +160 -0
- data/ext/zhegs2.c +95 -0
- data/ext/zhegst.c +95 -0
- data/ext/zhegv.c +140 -0
- data/ext/zhegvd.c +173 -0
- data/ext/zhegvx.c +190 -0
- data/ext/zherfs.c +153 -0
- data/ext/zherfsx.c +218 -0
- data/ext/zhesv.c +123 -0
- data/ext/zhesvx.c +183 -0
- data/ext/zhesvxx.c +258 -0
- data/ext/zhetd2.c +101 -0
- data/ext/zhetf2.c +85 -0
- data/ext/zhetrd.c +113 -0
- data/ext/zhetrf.c +97 -0
- data/ext/zhetri.c +92 -0
- data/ext/zhetrs.c +103 -0
- data/ext/zhetrs2.c +106 -0
- data/ext/zhfrk.c +109 -0
- data/ext/zhgeqz.c +208 -0
- data/ext/zhpcon.c +85 -0
- data/ext/zhpev.c +105 -0
- data/ext/zhpevd.c +153 -0
- data/ext/zhpevx.c +144 -0
- data/ext/zhpgst.c +94 -0
- data/ext/zhpgv.c +132 -0
- data/ext/zhpgvd.c +170 -0
- data/ext/zhpgvx.c +170 -0
- data/ext/zhprfs.c +149 -0
- data/ext/zhpsv.c +110 -0
- data/ext/zhpsvx.c +163 -0
- data/ext/zhptrd.c +100 -0
- data/ext/zhptrf.c +84 -0
- data/ext/zhptri.c +89 -0
- data/ext/zhptrs.c +101 -0
- data/ext/zhsein.c +185 -0
- data/ext/zhseqr.c +145 -0
- data/ext/zla_gbamv.c +127 -0
- data/ext/zla_gbrcond_c.c +142 -0
- data/ext/zla_gbrcond_x.c +138 -0
- data/ext/zla_gbrfsx_extended.c +295 -0
- data/ext/zla_gbrpvgrw.c +87 -0
- data/ext/zla_geamv.c +119 -0
- data/ext/zla_gercond_c.c +134 -0
- data/ext/zla_gercond_x.c +130 -0
- data/ext/zla_gerfsx_extended.c +281 -0
- data/ext/zla_heamv.c +116 -0
- data/ext/zla_hercond_c.c +134 -0
- data/ext/zla_hercond_x.c +130 -0
- data/ext/zla_herfsx_extended.c +283 -0
- data/ext/zla_herpvgrw.c +107 -0
- data/ext/zla_lin_berr.c +84 -0
- data/ext/zla_porcond_c.c +122 -0
- data/ext/zla_porcond_x.c +118 -0
- data/ext/zla_porfsx_extended.c +271 -0
- data/ext/zla_porpvgrw.c +95 -0
- data/ext/zla_rpvgrw.c +79 -0
- data/ext/zla_syamv.c +116 -0
- data/ext/zla_syrcond_c.c +134 -0
- data/ext/zla_syrcond_x.c +130 -0
- data/ext/zla_syrfsx_extended.c +283 -0
- data/ext/zla_syrpvgrw.c +107 -0
- data/ext/zla_wwaddw.c +102 -0
- data/ext/zlabrd.c +132 -0
- data/ext/zlacgv.c +75 -0
- data/ext/zlacn2.c +103 -0
- data/ext/zlacon.c +80 -0
- data/ext/zlacp2.c +77 -0
- data/ext/zlacpy.c +77 -0
- data/ext/zlacrm.c +90 -0
- data/ext/zlacrt.c +108 -0
- data/ext/zladiv.c +57 -0
- data/ext/zlaed0.c +134 -0
- data/ext/zlaed7.c +247 -0
- data/ext/zlaed8.c +198 -0
- data/ext/zlaein.c +113 -0
- data/ext/zlaesy.c +74 -0
- data/ext/zlaev2.c +71 -0
- data/ext/zlag2c.c +76 -0
- data/ext/zlags2.c +92 -0
- data/ext/zlagtm.c +132 -0
- data/ext/zlahef.c +97 -0
- data/ext/zlahqr.c +135 -0
- data/ext/zlahr2.c +112 -0
- data/ext/zlahrd.c +112 -0
- data/ext/zlaic1.c +90 -0
- data/ext/zlals0.c +201 -0
- data/ext/zlalsa.c +270 -0
- data/ext/zlalsd.c +145 -0
- data/ext/zlangb.c +76 -0
- data/ext/zlange.c +74 -0
- data/ext/zlangt.c +87 -0
- data/ext/zlanhb.c +78 -0
- data/ext/zlanhe.c +74 -0
- data/ext/zlanhf.c +80 -0
- data/ext/zlanhp.c +76 -0
- data/ext/zlanhs.c +70 -0
- data/ext/zlanht.c +75 -0
- data/ext/zlansb.c +78 -0
- data/ext/zlansp.c +76 -0
- data/ext/zlansy.c +74 -0
- data/ext/zlantb.c +82 -0
- data/ext/zlantp.c +80 -0
- data/ext/zlantr.c +82 -0
- data/ext/zlapll.c +105 -0
- data/ext/zlapmr.c +97 -0
- data/ext/zlapmt.c +101 -0
- data/ext/zlaqgb.c +117 -0
- data/ext/zlaqge.c +109 -0
- data/ext/zlaqhb.c +97 -0
- data/ext/zlaqhe.c +97 -0
- data/ext/zlaqhp.c +94 -0
- data/ext/zlaqp2.c +158 -0
- data/ext/zlaqps.c +208 -0
- data/ext/zlaqr0.c +153 -0
- data/ext/zlaqr1.c +76 -0
- data/ext/zlaqr2.c +174 -0
- data/ext/zlaqr3.c +174 -0
- data/ext/zlaqr4.c +147 -0
- data/ext/zlaqr5.c +179 -0
- data/ext/zlaqsb.c +101 -0
- data/ext/zlaqsp.c +94 -0
- data/ext/zlaqsy.c +97 -0
- data/ext/zlar1v.c +173 -0
- data/ext/zlar2v.c +149 -0
- data/ext/zlarcm.c +86 -0
- data/ext/zlarf.c +102 -0
- data/ext/zlarfb.c +123 -0
- data/ext/zlarfg.c +84 -0
- data/ext/zlarfgp.c +84 -0
- data/ext/zlarft.c +105 -0
- data/ext/zlarfx.c +94 -0
- data/ext/zlargv.c +114 -0
- data/ext/zlarnv.c +83 -0
- data/ext/zlarrv.c +271 -0
- data/ext/zlarscl2.c +82 -0
- data/ext/zlartg.c +63 -0
- data/ext/zlartv.c +130 -0
- data/ext/zlarz.c +106 -0
- data/ext/zlarzb.c +127 -0
- data/ext/zlarzt.c +105 -0
- data/ext/zlascl.c +97 -0
- data/ext/zlascl2.c +82 -0
- data/ext/zlaset.c +88 -0
- data/ext/zlasr.c +110 -0
- data/ext/zlassq.c +70 -0
- data/ext/zlaswp.c +94 -0
- data/ext/zlasyf.c +97 -0
- data/ext/zlat2c.c +76 -0
- data/ext/zlatbs.c +130 -0
- data/ext/zlatdf.c +119 -0
- data/ext/zlatps.c +124 -0
- data/ext/zlatrd.c +105 -0
- data/ext/zlatrs.c +126 -0
- data/ext/zlatrz.c +87 -0
- data/ext/zlatzm.c +132 -0
- data/ext/zlauu2.c +77 -0
- data/ext/zlauum.c +77 -0
- data/ext/zpbcon.c +82 -0
- data/ext/zpbequ.c +83 -0
- data/ext/zpbrfs.c +145 -0
- data/ext/zpbstf.c +81 -0
- data/ext/zpbsv.c +107 -0
- data/ext/zpbsvx.c +201 -0
- data/ext/zpbtf2.c +81 -0
- data/ext/zpbtrf.c +81 -0
- data/ext/zpbtrs.c +95 -0
- data/ext/zpftrf.c +82 -0
- data/ext/zpftri.c +82 -0
- data/ext/zpftrs.c +97 -0
- data/ext/zpocon.c +78 -0
- data/ext/zpoequ.c +75 -0
- data/ext/zpoequb.c +75 -0
- data/ext/zporfs.c +141 -0
- data/ext/zporfsx.c +206 -0
- data/ext/zposv.c +103 -0
- data/ext/zposvx.c +197 -0
- data/ext/zposvxx.c +235 -0
- data/ext/zpotf2.c +77 -0
- data/ext/zpotrf.c +77 -0
- data/ext/zpotri.c +77 -0
- data/ext/zpotrs.c +91 -0
- data/ext/zppcon.c +78 -0
- data/ext/zppequ.c +79 -0
- data/ext/zpprfs.c +139 -0
- data/ext/zppsv.c +104 -0
- data/ext/zppsvx.c +191 -0
- data/ext/zpptrf.c +78 -0
- data/ext/zpptri.c +78 -0
- data/ext/zpptrs.c +93 -0
- data/ext/zpstf2.c +95 -0
- data/ext/zpstrf.c +95 -0
- data/ext/zptcon.c +81 -0
- data/ext/zpteqr.c +126 -0
- data/ext/zptrfs.c +161 -0
- data/ext/zptsv.c +123 -0
- data/ext/zptsvx.c +171 -0
- data/ext/zpttrf.c +93 -0
- data/ext/zpttrs.c +101 -0
- data/ext/zptts2.c +98 -0
- data/ext/zrot.c +107 -0
- data/ext/zspcon.c +85 -0
- data/ext/zspmv.c +117 -0
- data/ext/zspr.c +96 -0
- data/ext/zsprfs.c +149 -0
- data/ext/zspsv.c +110 -0
- data/ext/zspsvx.c +163 -0
- data/ext/zsptrf.c +84 -0
- data/ext/zsptri.c +89 -0
- data/ext/zsptrs.c +101 -0
- data/ext/zstedc.c +177 -0
- data/ext/zstegr.c +188 -0
- data/ext/zstein.c +134 -0
- data/ext/zstemr.c +193 -0
- data/ext/zsteqr.c +126 -0
- data/ext/zsycon.c +87 -0
- data/ext/zsyconv.c +84 -0
- data/ext/zsyequb.c +82 -0
- data/ext/zsymv.c +115 -0
- data/ext/zsyr.c +95 -0
- data/ext/zsyrfs.c +153 -0
- data/ext/zsyrfsx.c +218 -0
- data/ext/zsysv.c +129 -0
- data/ext/zsysvx.c +183 -0
- data/ext/zsysvxx.c +258 -0
- data/ext/zsyswapr.c +82 -0
- data/ext/zsytf2.c +85 -0
- data/ext/zsytrf.c +97 -0
- data/ext/zsytri.c +92 -0
- data/ext/zsytri2.c +104 -0
- data/ext/zsytri2x.c +96 -0
- data/ext/zsytrs.c +103 -0
- data/ext/zsytrs2.c +106 -0
- data/ext/ztbcon.c +86 -0
- data/ext/ztbrfs.c +127 -0
- data/ext/ztbtrs.c +103 -0
- data/ext/ztfsm.c +111 -0
- data/ext/ztftri.c +86 -0
- data/ext/ztfttp.c +79 -0
- data/ext/ztfttr.c +80 -0
- data/ext/ztgevc.c +156 -0
- data/ext/ztgex2.c +171 -0
- data/ext/ztgexc.c +172 -0
- data/ext/ztgsen.c +244 -0
- data/ext/ztgsja.c +227 -0
- data/ext/ztgsna.c +164 -0
- data/ext/ztgsy2.c +176 -0
- data/ext/ztgsyl.c +190 -0
- data/ext/ztpcon.c +82 -0
- data/ext/ztprfs.c +123 -0
- data/ext/ztptri.c +82 -0
- data/ext/ztptrs.c +101 -0
- data/ext/ztpttf.c +79 -0
- data/ext/ztpttr.c +76 -0
- data/ext/ztrcon.c +82 -0
- data/ext/ztrevc.c +154 -0
- data/ext/ztrexc.c +111 -0
- data/ext/ztrrfs.c +123 -0
- data/ext/ztrsen.c +154 -0
- data/ext/ztrsna.c +137 -0
- data/ext/ztrsyl.c +116 -0
- data/ext/ztrti2.c +81 -0
- data/ext/ztrtri.c +81 -0
- data/ext/ztrtrs.c +99 -0
- data/ext/ztrttf.c +77 -0
- data/ext/ztrttp.c +73 -0
- data/ext/ztzrqf.c +83 -0
- data/ext/ztzrzf.c +101 -0
- data/ext/zunbdb.c +232 -0
- data/ext/zuncsd.c +204 -0
- data/ext/zung2l.c +92 -0
- data/ext/zung2r.c +92 -0
- data/ext/zungbr.c +115 -0
- data/ext/zunghr.c +111 -0
- data/ext/zungl2.c +90 -0
- data/ext/zunglq.c +107 -0
- data/ext/zungql.c +107 -0
- data/ext/zungqr.c +107 -0
- data/ext/zungr2.c +90 -0
- data/ext/zungrq.c +107 -0
- data/ext/zungtr.c +107 -0
- data/ext/zunm2l.c +114 -0
- data/ext/zunm2r.c +114 -0
- data/ext/zunmbr.c +139 -0
- data/ext/zunmhr.c +133 -0
- data/ext/zunml2.c +110 -0
- data/ext/zunmlq.c +125 -0
- data/ext/zunmql.c +129 -0
- data/ext/zunmqr.c +129 -0
- data/ext/zunmr2.c +110 -0
- data/ext/zunmr3.c +114 -0
- data/ext/zunmrq.c +125 -0
- data/ext/zunmrz.c +129 -0
- data/ext/zunmtr.c +129 -0
- data/ext/zupgtr.c +91 -0
- data/ext/zupmtr.c +116 -0
- metadata +1632 -1
data/ext/sgeqpf.c
ADDED
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID sgeqpf_(integer* m, integer* n, real* a, integer* lda, integer* jpvt, real* tau, real* work, integer* info);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_sgeqpf(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_m;
|
|
9
|
+
integer m;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
real *a;
|
|
12
|
+
VALUE rblapack_jpvt;
|
|
13
|
+
integer *jpvt;
|
|
14
|
+
VALUE rblapack_tau;
|
|
15
|
+
real *tau;
|
|
16
|
+
VALUE rblapack_info;
|
|
17
|
+
integer info;
|
|
18
|
+
VALUE rblapack_a_out__;
|
|
19
|
+
real *a_out__;
|
|
20
|
+
VALUE rblapack_jpvt_out__;
|
|
21
|
+
integer *jpvt_out__;
|
|
22
|
+
real *work;
|
|
23
|
+
|
|
24
|
+
integer lda;
|
|
25
|
+
integer n;
|
|
26
|
+
|
|
27
|
+
VALUE rblapack_options;
|
|
28
|
+
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
29
|
+
argc--;
|
|
30
|
+
rblapack_options = argv[argc];
|
|
31
|
+
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
32
|
+
printf("%s\n", "USAGE:\n tau, info, a, jpvt = NumRu::Lapack.sgeqpf( m, a, jpvt, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SGEQPF( M, N, A, LDA, JPVT, TAU, WORK, INFO )\n\n* Purpose\n* =======\n*\n* This routine is deprecated and has been replaced by routine SGEQP3.\n*\n* SGEQPF computes a QR factorization with column pivoting of a\n* real M-by-N matrix A: A*P = Q*R.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0\n*\n* A (input/output) REAL array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, the upper triangle of the array contains the\n* min(M,N)-by-N upper triangular matrix R; the elements\n* below the diagonal, together with the array TAU,\n* represent the orthogonal matrix Q as a product of\n* min(m,n) elementary reflectors.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* JPVT (input/output) INTEGER array, dimension (N)\n* On entry, if JPVT(i) .ne. 0, the i-th column of A is permuted\n* to the front of A*P (a leading column); if JPVT(i) = 0,\n* the i-th column of A is a free column.\n* On exit, if JPVT(i) = k, then the i-th column of A*P\n* was the k-th column of A.\n*\n* TAU (output) REAL array, dimension (min(M,N))\n* The scalar factors of the elementary reflectors.\n*\n* WORK (workspace) REAL array, dimension (3*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n*\n\n* Further Details\n* ===============\n*\n* The matrix Q is represented as a product of elementary reflectors\n*\n* Q = H(1) H(2) . . . H(n)\n*\n* Each H(i) has the form\n*\n* H = I - tau * v * v'\n*\n* where tau is a real scalar, and v is a real vector with\n* v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i).\n*\n* The matrix P is represented in jpvt as follows: If\n* jpvt(j) = i\n* then the jth column of P is the ith canonical unit vector.\n*\n* Partial column norm updating strategy modified by\n* Z. Drmac and Z. Bujanovic, Dept. of Mathematics,\n* University of Zagreb, Croatia.\n* June 2010\n* For more details see LAPACK Working Note 176.\n*\n* =====================================================================\n*\n\n");
|
|
33
|
+
return Qnil;
|
|
34
|
+
}
|
|
35
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
36
|
+
printf("%s\n", "USAGE:\n tau, info, a, jpvt = NumRu::Lapack.sgeqpf( m, a, jpvt, [:usage => usage, :help => help])\n");
|
|
37
|
+
return Qnil;
|
|
38
|
+
}
|
|
39
|
+
} else
|
|
40
|
+
rblapack_options = Qnil;
|
|
41
|
+
if (argc != 3 && argc != 3)
|
|
42
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 3)", argc);
|
|
43
|
+
rblapack_m = argv[0];
|
|
44
|
+
rblapack_a = argv[1];
|
|
45
|
+
rblapack_jpvt = argv[2];
|
|
46
|
+
if (argc == 3) {
|
|
47
|
+
} else if (rblapack_options != Qnil) {
|
|
48
|
+
} else {
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
m = NUM2INT(rblapack_m);
|
|
52
|
+
if (!NA_IsNArray(rblapack_jpvt))
|
|
53
|
+
rb_raise(rb_eArgError, "jpvt (3th argument) must be NArray");
|
|
54
|
+
if (NA_RANK(rblapack_jpvt) != 1)
|
|
55
|
+
rb_raise(rb_eArgError, "rank of jpvt (3th argument) must be %d", 1);
|
|
56
|
+
n = NA_SHAPE0(rblapack_jpvt);
|
|
57
|
+
if (NA_TYPE(rblapack_jpvt) != NA_LINT)
|
|
58
|
+
rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
|
|
59
|
+
jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
|
|
60
|
+
if (!NA_IsNArray(rblapack_a))
|
|
61
|
+
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
62
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
63
|
+
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
64
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
65
|
+
if (NA_SHAPE1(rblapack_a) != n)
|
|
66
|
+
rb_raise(rb_eRuntimeError, "shape 1 of a must be the same as shape 0 of jpvt");
|
|
67
|
+
if (NA_TYPE(rblapack_a) != NA_SFLOAT)
|
|
68
|
+
rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
|
|
69
|
+
a = NA_PTR_TYPE(rblapack_a, real*);
|
|
70
|
+
{
|
|
71
|
+
na_shape_t shape[1];
|
|
72
|
+
shape[0] = MIN(m,n);
|
|
73
|
+
rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
74
|
+
}
|
|
75
|
+
tau = NA_PTR_TYPE(rblapack_tau, real*);
|
|
76
|
+
{
|
|
77
|
+
na_shape_t shape[2];
|
|
78
|
+
shape[0] = lda;
|
|
79
|
+
shape[1] = n;
|
|
80
|
+
rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
|
|
81
|
+
}
|
|
82
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, real*);
|
|
83
|
+
MEMCPY(a_out__, a, real, NA_TOTAL(rblapack_a));
|
|
84
|
+
rblapack_a = rblapack_a_out__;
|
|
85
|
+
a = a_out__;
|
|
86
|
+
{
|
|
87
|
+
na_shape_t shape[1];
|
|
88
|
+
shape[0] = n;
|
|
89
|
+
rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
|
|
90
|
+
}
|
|
91
|
+
jpvt_out__ = NA_PTR_TYPE(rblapack_jpvt_out__, integer*);
|
|
92
|
+
MEMCPY(jpvt_out__, jpvt, integer, NA_TOTAL(rblapack_jpvt));
|
|
93
|
+
rblapack_jpvt = rblapack_jpvt_out__;
|
|
94
|
+
jpvt = jpvt_out__;
|
|
95
|
+
work = ALLOC_N(real, (3*n));
|
|
96
|
+
|
|
97
|
+
sgeqpf_(&m, &n, a, &lda, jpvt, tau, work, &info);
|
|
98
|
+
|
|
99
|
+
free(work);
|
|
100
|
+
rblapack_info = INT2NUM(info);
|
|
101
|
+
return rb_ary_new3(4, rblapack_tau, rblapack_info, rblapack_a, rblapack_jpvt);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
void
|
|
105
|
+
init_lapack_sgeqpf(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
106
|
+
sHelp = sH;
|
|
107
|
+
sUsage = sU;
|
|
108
|
+
rblapack_ZERO = zero;
|
|
109
|
+
|
|
110
|
+
rb_define_module_function(mLapack, "sgeqpf", rblapack_sgeqpf, -1);
|
|
111
|
+
}
|
data/ext/sgeqr2.c
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID sgeqr2_(integer* m, integer* n, real* a, integer* lda, real* tau, real* work, integer* info);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_sgeqr2(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_m;
|
|
9
|
+
integer m;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
real *a;
|
|
12
|
+
VALUE rblapack_tau;
|
|
13
|
+
real *tau;
|
|
14
|
+
VALUE rblapack_info;
|
|
15
|
+
integer info;
|
|
16
|
+
VALUE rblapack_a_out__;
|
|
17
|
+
real *a_out__;
|
|
18
|
+
real *work;
|
|
19
|
+
|
|
20
|
+
integer lda;
|
|
21
|
+
integer n;
|
|
22
|
+
|
|
23
|
+
VALUE rblapack_options;
|
|
24
|
+
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
25
|
+
argc--;
|
|
26
|
+
rblapack_options = argv[argc];
|
|
27
|
+
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
28
|
+
printf("%s\n", "USAGE:\n tau, info, a = NumRu::Lapack.sgeqr2( m, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SGEQR2( M, N, A, LDA, TAU, WORK, INFO )\n\n* Purpose\n* =======\n*\n* SGEQR2 computes a QR factorization of a real m by n matrix A:\n* A = Q * R.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* A (input/output) REAL array, dimension (LDA,N)\n* On entry, the m by n matrix A.\n* On exit, the elements on and above the diagonal of the array\n* contain the min(m,n) by n upper trapezoidal matrix R (R is\n* upper triangular if m >= n); the elements below the diagonal,\n* with the array TAU, represent the orthogonal matrix Q as a\n* product of elementary reflectors (see Further Details).\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* TAU (output) REAL array, dimension (min(M,N))\n* The scalar factors of the elementary reflectors (see Further\n* Details).\n*\n* WORK (workspace) REAL array, dimension (N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n*\n\n* Further Details\n* ===============\n*\n* The matrix Q is represented as a product of elementary reflectors\n*\n* Q = H(1) H(2) . . . H(k), where k = min(m,n).\n*\n* Each H(i) has the form\n*\n* H(i) = I - tau * v * v'\n*\n* where tau is a real scalar, and v is a real vector with\n* v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i),\n* and tau in TAU(i).\n*\n* =====================================================================\n*\n\n");
|
|
29
|
+
return Qnil;
|
|
30
|
+
}
|
|
31
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
32
|
+
printf("%s\n", "USAGE:\n tau, info, a = NumRu::Lapack.sgeqr2( m, a, [:usage => usage, :help => help])\n");
|
|
33
|
+
return Qnil;
|
|
34
|
+
}
|
|
35
|
+
} else
|
|
36
|
+
rblapack_options = Qnil;
|
|
37
|
+
if (argc != 2 && argc != 2)
|
|
38
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 2)", argc);
|
|
39
|
+
rblapack_m = argv[0];
|
|
40
|
+
rblapack_a = argv[1];
|
|
41
|
+
if (argc == 2) {
|
|
42
|
+
} else if (rblapack_options != Qnil) {
|
|
43
|
+
} else {
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
m = NUM2INT(rblapack_m);
|
|
47
|
+
if (!NA_IsNArray(rblapack_a))
|
|
48
|
+
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
49
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
50
|
+
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
51
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
52
|
+
n = NA_SHAPE1(rblapack_a);
|
|
53
|
+
if (NA_TYPE(rblapack_a) != NA_SFLOAT)
|
|
54
|
+
rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
|
|
55
|
+
a = NA_PTR_TYPE(rblapack_a, real*);
|
|
56
|
+
{
|
|
57
|
+
na_shape_t shape[1];
|
|
58
|
+
shape[0] = MIN(m,n);
|
|
59
|
+
rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
60
|
+
}
|
|
61
|
+
tau = NA_PTR_TYPE(rblapack_tau, real*);
|
|
62
|
+
{
|
|
63
|
+
na_shape_t shape[2];
|
|
64
|
+
shape[0] = lda;
|
|
65
|
+
shape[1] = n;
|
|
66
|
+
rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
|
|
67
|
+
}
|
|
68
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, real*);
|
|
69
|
+
MEMCPY(a_out__, a, real, NA_TOTAL(rblapack_a));
|
|
70
|
+
rblapack_a = rblapack_a_out__;
|
|
71
|
+
a = a_out__;
|
|
72
|
+
work = ALLOC_N(real, (n));
|
|
73
|
+
|
|
74
|
+
sgeqr2_(&m, &n, a, &lda, tau, work, &info);
|
|
75
|
+
|
|
76
|
+
free(work);
|
|
77
|
+
rblapack_info = INT2NUM(info);
|
|
78
|
+
return rb_ary_new3(3, rblapack_tau, rblapack_info, rblapack_a);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
void
|
|
82
|
+
init_lapack_sgeqr2(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
83
|
+
sHelp = sH;
|
|
84
|
+
sUsage = sU;
|
|
85
|
+
rblapack_ZERO = zero;
|
|
86
|
+
|
|
87
|
+
rb_define_module_function(mLapack, "sgeqr2", rblapack_sgeqr2, -1);
|
|
88
|
+
}
|
data/ext/sgeqr2p.c
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID sgeqr2p_(integer* m, integer* n, real* a, integer* lda, real* tau, real* work, integer* info);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_sgeqr2p(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_m;
|
|
9
|
+
integer m;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
real *a;
|
|
12
|
+
VALUE rblapack_tau;
|
|
13
|
+
real *tau;
|
|
14
|
+
VALUE rblapack_info;
|
|
15
|
+
integer info;
|
|
16
|
+
VALUE rblapack_a_out__;
|
|
17
|
+
real *a_out__;
|
|
18
|
+
real *work;
|
|
19
|
+
|
|
20
|
+
integer lda;
|
|
21
|
+
integer n;
|
|
22
|
+
|
|
23
|
+
VALUE rblapack_options;
|
|
24
|
+
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
25
|
+
argc--;
|
|
26
|
+
rblapack_options = argv[argc];
|
|
27
|
+
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
28
|
+
printf("%s\n", "USAGE:\n tau, info, a = NumRu::Lapack.sgeqr2p( m, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SGEQR2P( M, N, A, LDA, TAU, WORK, INFO )\n\n* Purpose\n* =======\n*\n* SGEQR2P computes a QR factorization of a real m by n matrix A:\n* A = Q * R.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* A (input/output) REAL array, dimension (LDA,N)\n* On entry, the m by n matrix A.\n* On exit, the elements on and above the diagonal of the array\n* contain the min(m,n) by n upper trapezoidal matrix R (R is\n* upper triangular if m >= n); the elements below the diagonal,\n* with the array TAU, represent the orthogonal matrix Q as a\n* product of elementary reflectors (see Further Details).\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* TAU (output) REAL array, dimension (min(M,N))\n* The scalar factors of the elementary reflectors (see Further\n* Details).\n*\n* WORK (workspace) REAL array, dimension (N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n*\n\n* Further Details\n* ===============\n*\n* The matrix Q is represented as a product of elementary reflectors\n*\n* Q = H(1) H(2) . . . H(k), where k = min(m,n).\n*\n* Each H(i) has the form\n*\n* H(i) = I - tau * v * v'\n*\n* where tau is a real scalar, and v is a real vector with\n* v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i),\n* and tau in TAU(i).\n*\n* =====================================================================\n*\n\n");
|
|
29
|
+
return Qnil;
|
|
30
|
+
}
|
|
31
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
32
|
+
printf("%s\n", "USAGE:\n tau, info, a = NumRu::Lapack.sgeqr2p( m, a, [:usage => usage, :help => help])\n");
|
|
33
|
+
return Qnil;
|
|
34
|
+
}
|
|
35
|
+
} else
|
|
36
|
+
rblapack_options = Qnil;
|
|
37
|
+
if (argc != 2 && argc != 2)
|
|
38
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 2)", argc);
|
|
39
|
+
rblapack_m = argv[0];
|
|
40
|
+
rblapack_a = argv[1];
|
|
41
|
+
if (argc == 2) {
|
|
42
|
+
} else if (rblapack_options != Qnil) {
|
|
43
|
+
} else {
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
m = NUM2INT(rblapack_m);
|
|
47
|
+
if (!NA_IsNArray(rblapack_a))
|
|
48
|
+
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
49
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
50
|
+
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
51
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
52
|
+
n = NA_SHAPE1(rblapack_a);
|
|
53
|
+
if (NA_TYPE(rblapack_a) != NA_SFLOAT)
|
|
54
|
+
rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
|
|
55
|
+
a = NA_PTR_TYPE(rblapack_a, real*);
|
|
56
|
+
{
|
|
57
|
+
na_shape_t shape[1];
|
|
58
|
+
shape[0] = MIN(m,n);
|
|
59
|
+
rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
60
|
+
}
|
|
61
|
+
tau = NA_PTR_TYPE(rblapack_tau, real*);
|
|
62
|
+
{
|
|
63
|
+
na_shape_t shape[2];
|
|
64
|
+
shape[0] = lda;
|
|
65
|
+
shape[1] = n;
|
|
66
|
+
rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
|
|
67
|
+
}
|
|
68
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, real*);
|
|
69
|
+
MEMCPY(a_out__, a, real, NA_TOTAL(rblapack_a));
|
|
70
|
+
rblapack_a = rblapack_a_out__;
|
|
71
|
+
a = a_out__;
|
|
72
|
+
work = ALLOC_N(real, (n));
|
|
73
|
+
|
|
74
|
+
sgeqr2p_(&m, &n, a, &lda, tau, work, &info);
|
|
75
|
+
|
|
76
|
+
free(work);
|
|
77
|
+
rblapack_info = INT2NUM(info);
|
|
78
|
+
return rb_ary_new3(3, rblapack_tau, rblapack_info, rblapack_a);
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
void
|
|
82
|
+
init_lapack_sgeqr2p(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
83
|
+
sHelp = sH;
|
|
84
|
+
sUsage = sU;
|
|
85
|
+
rblapack_ZERO = zero;
|
|
86
|
+
|
|
87
|
+
rb_define_module_function(mLapack, "sgeqr2p", rblapack_sgeqr2p, -1);
|
|
88
|
+
}
|
data/ext/sgeqrf.c
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID sgeqrf_(integer* m, integer* n, real* a, integer* lda, real* tau, real* work, integer* lwork, integer* info);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_sgeqrf(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_m;
|
|
9
|
+
integer m;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
real *a;
|
|
12
|
+
VALUE rblapack_lwork;
|
|
13
|
+
integer lwork;
|
|
14
|
+
VALUE rblapack_tau;
|
|
15
|
+
real *tau;
|
|
16
|
+
VALUE rblapack_work;
|
|
17
|
+
real *work;
|
|
18
|
+
VALUE rblapack_info;
|
|
19
|
+
integer info;
|
|
20
|
+
VALUE rblapack_a_out__;
|
|
21
|
+
real *a_out__;
|
|
22
|
+
|
|
23
|
+
integer lda;
|
|
24
|
+
integer n;
|
|
25
|
+
|
|
26
|
+
VALUE rblapack_options;
|
|
27
|
+
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
28
|
+
argc--;
|
|
29
|
+
rblapack_options = argv[argc];
|
|
30
|
+
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
31
|
+
printf("%s\n", "USAGE:\n tau, work, info, a = NumRu::Lapack.sgeqrf( m, a, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SGEQRF( M, N, A, LDA, TAU, WORK, LWORK, INFO )\n\n* Purpose\n* =======\n*\n* SGEQRF computes a QR factorization of a real M-by-N matrix A:\n* A = Q * R.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* A (input/output) REAL array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, the elements on and above the diagonal of the array\n* contain the min(M,N)-by-N upper trapezoidal matrix R (R is\n* upper triangular if m >= n); the elements below the diagonal,\n* with the array TAU, represent the orthogonal matrix Q as a\n* product of min(m,n) elementary reflectors (see Further\n* Details).\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* TAU (output) REAL array, dimension (min(M,N))\n* The scalar factors of the elementary reflectors (see Further\n* Details).\n*\n* WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,N).\n* For optimum performance LWORK >= N*NB, where NB is \n* the optimal blocksize.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n*\n\n* Further Details\n* ===============\n*\n* The matrix Q is represented as a product of elementary reflectors\n*\n* Q = H(1) H(2) . . . H(k), where k = min(m,n).\n*\n* Each H(i) has the form\n*\n* H(i) = I - tau * v * v'\n*\n* where tau is a real scalar, and v is a real vector with\n* v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i),\n* and tau in TAU(i).\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL LQUERY\n INTEGER I, IB, IINFO, IWS, K, LDWORK, LWKOPT, NB,\n $ NBMIN, NX\n* ..\n* .. External Subroutines ..\n EXTERNAL SGEQR2, SLARFB, SLARFT, XERBLA\n* ..\n* .. Intrinsic Functions ..\n INTRINSIC MAX, MIN\n* ..\n* .. External Functions ..\n INTEGER ILAENV\n EXTERNAL ILAENV\n* ..\n\n");
|
|
32
|
+
return Qnil;
|
|
33
|
+
}
|
|
34
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
35
|
+
printf("%s\n", "USAGE:\n tau, work, info, a = NumRu::Lapack.sgeqrf( m, a, [:lwork => lwork, :usage => usage, :help => help])\n");
|
|
36
|
+
return Qnil;
|
|
37
|
+
}
|
|
38
|
+
} else
|
|
39
|
+
rblapack_options = Qnil;
|
|
40
|
+
if (argc != 2 && argc != 3)
|
|
41
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 2)", argc);
|
|
42
|
+
rblapack_m = argv[0];
|
|
43
|
+
rblapack_a = argv[1];
|
|
44
|
+
if (argc == 3) {
|
|
45
|
+
rblapack_lwork = argv[2];
|
|
46
|
+
} else if (rblapack_options != Qnil) {
|
|
47
|
+
rblapack_lwork = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("lwork")));
|
|
48
|
+
} else {
|
|
49
|
+
rblapack_lwork = Qnil;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
m = NUM2INT(rblapack_m);
|
|
53
|
+
if (!NA_IsNArray(rblapack_a))
|
|
54
|
+
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
55
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
56
|
+
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
57
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
58
|
+
n = NA_SHAPE1(rblapack_a);
|
|
59
|
+
if (NA_TYPE(rblapack_a) != NA_SFLOAT)
|
|
60
|
+
rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
|
|
61
|
+
a = NA_PTR_TYPE(rblapack_a, real*);
|
|
62
|
+
if (rblapack_lwork == Qnil)
|
|
63
|
+
lwork = n;
|
|
64
|
+
else {
|
|
65
|
+
lwork = NUM2INT(rblapack_lwork);
|
|
66
|
+
}
|
|
67
|
+
{
|
|
68
|
+
na_shape_t shape[1];
|
|
69
|
+
shape[0] = MIN(m,n);
|
|
70
|
+
rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
71
|
+
}
|
|
72
|
+
tau = NA_PTR_TYPE(rblapack_tau, real*);
|
|
73
|
+
{
|
|
74
|
+
na_shape_t shape[1];
|
|
75
|
+
shape[0] = MAX(1,lwork);
|
|
76
|
+
rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
77
|
+
}
|
|
78
|
+
work = NA_PTR_TYPE(rblapack_work, real*);
|
|
79
|
+
{
|
|
80
|
+
na_shape_t shape[2];
|
|
81
|
+
shape[0] = lda;
|
|
82
|
+
shape[1] = n;
|
|
83
|
+
rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
|
|
84
|
+
}
|
|
85
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, real*);
|
|
86
|
+
MEMCPY(a_out__, a, real, NA_TOTAL(rblapack_a));
|
|
87
|
+
rblapack_a = rblapack_a_out__;
|
|
88
|
+
a = a_out__;
|
|
89
|
+
|
|
90
|
+
sgeqrf_(&m, &n, a, &lda, tau, work, &lwork, &info);
|
|
91
|
+
|
|
92
|
+
rblapack_info = INT2NUM(info);
|
|
93
|
+
return rb_ary_new3(4, rblapack_tau, rblapack_work, rblapack_info, rblapack_a);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
void
|
|
97
|
+
init_lapack_sgeqrf(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
98
|
+
sHelp = sH;
|
|
99
|
+
sUsage = sU;
|
|
100
|
+
rblapack_ZERO = zero;
|
|
101
|
+
|
|
102
|
+
rb_define_module_function(mLapack, "sgeqrf", rblapack_sgeqrf, -1);
|
|
103
|
+
}
|
data/ext/sgeqrfp.c
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID sgeqrfp_(integer* m, integer* n, real* a, integer* lda, real* tau, real* work, integer* lwork, integer* info);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_sgeqrfp(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_m;
|
|
9
|
+
integer m;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
real *a;
|
|
12
|
+
VALUE rblapack_lwork;
|
|
13
|
+
integer lwork;
|
|
14
|
+
VALUE rblapack_tau;
|
|
15
|
+
real *tau;
|
|
16
|
+
VALUE rblapack_work;
|
|
17
|
+
real *work;
|
|
18
|
+
VALUE rblapack_info;
|
|
19
|
+
integer info;
|
|
20
|
+
VALUE rblapack_a_out__;
|
|
21
|
+
real *a_out__;
|
|
22
|
+
|
|
23
|
+
integer lda;
|
|
24
|
+
integer n;
|
|
25
|
+
|
|
26
|
+
VALUE rblapack_options;
|
|
27
|
+
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
28
|
+
argc--;
|
|
29
|
+
rblapack_options = argv[argc];
|
|
30
|
+
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
31
|
+
printf("%s\n", "USAGE:\n tau, work, info, a = NumRu::Lapack.sgeqrfp( m, a, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE SGEQRFP( M, N, A, LDA, TAU, WORK, LWORK, INFO )\n\n* Purpose\n* =======\n*\n* SGEQRFP computes a QR factorization of a real M-by-N matrix A:\n* A = Q * R.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* A (input/output) REAL array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, the elements on and above the diagonal of the array\n* contain the min(M,N)-by-N upper trapezoidal matrix R (R is\n* upper triangular if m >= n); the elements below the diagonal,\n* with the array TAU, represent the orthogonal matrix Q as a\n* product of min(m,n) elementary reflectors (see Further\n* Details).\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* TAU (output) REAL array, dimension (min(M,N))\n* The scalar factors of the elementary reflectors (see Further\n* Details).\n*\n* WORK (workspace/output) REAL array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,N).\n* For optimum performance LWORK >= N*NB, where NB is \n* the optimal blocksize.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n*\n\n* Further Details\n* ===============\n*\n* The matrix Q is represented as a product of elementary reflectors\n*\n* Q = H(1) H(2) . . . H(k), where k = min(m,n).\n*\n* Each H(i) has the form\n*\n* H(i) = I - tau * v * v'\n*\n* where tau is a real scalar, and v is a real vector with\n* v(1:i-1) = 0 and v(i) = 1; v(i+1:m) is stored on exit in A(i+1:m,i),\n* and tau in TAU(i).\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL LQUERY\n INTEGER I, IB, IINFO, IWS, K, LDWORK, LWKOPT, NB,\n $ NBMIN, NX\n* ..\n* .. External Subroutines ..\n EXTERNAL SGEQR2P, SLARFB, SLARFT, XERBLA\n* ..\n* .. Intrinsic Functions ..\n INTRINSIC MAX, MIN\n* ..\n* .. External Functions ..\n INTEGER ILAENV\n EXTERNAL ILAENV\n* ..\n\n");
|
|
32
|
+
return Qnil;
|
|
33
|
+
}
|
|
34
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
35
|
+
printf("%s\n", "USAGE:\n tau, work, info, a = NumRu::Lapack.sgeqrfp( m, a, [:lwork => lwork, :usage => usage, :help => help])\n");
|
|
36
|
+
return Qnil;
|
|
37
|
+
}
|
|
38
|
+
} else
|
|
39
|
+
rblapack_options = Qnil;
|
|
40
|
+
if (argc != 2 && argc != 3)
|
|
41
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 2)", argc);
|
|
42
|
+
rblapack_m = argv[0];
|
|
43
|
+
rblapack_a = argv[1];
|
|
44
|
+
if (argc == 3) {
|
|
45
|
+
rblapack_lwork = argv[2];
|
|
46
|
+
} else if (rblapack_options != Qnil) {
|
|
47
|
+
rblapack_lwork = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("lwork")));
|
|
48
|
+
} else {
|
|
49
|
+
rblapack_lwork = Qnil;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
m = NUM2INT(rblapack_m);
|
|
53
|
+
if (!NA_IsNArray(rblapack_a))
|
|
54
|
+
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
55
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
56
|
+
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
57
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
58
|
+
n = NA_SHAPE1(rblapack_a);
|
|
59
|
+
if (NA_TYPE(rblapack_a) != NA_SFLOAT)
|
|
60
|
+
rblapack_a = na_change_type(rblapack_a, NA_SFLOAT);
|
|
61
|
+
a = NA_PTR_TYPE(rblapack_a, real*);
|
|
62
|
+
if (rblapack_lwork == Qnil)
|
|
63
|
+
lwork = n;
|
|
64
|
+
else {
|
|
65
|
+
lwork = NUM2INT(rblapack_lwork);
|
|
66
|
+
}
|
|
67
|
+
{
|
|
68
|
+
na_shape_t shape[1];
|
|
69
|
+
shape[0] = MIN(m,n);
|
|
70
|
+
rblapack_tau = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
71
|
+
}
|
|
72
|
+
tau = NA_PTR_TYPE(rblapack_tau, real*);
|
|
73
|
+
{
|
|
74
|
+
na_shape_t shape[1];
|
|
75
|
+
shape[0] = MAX(1,lwork);
|
|
76
|
+
rblapack_work = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
77
|
+
}
|
|
78
|
+
work = NA_PTR_TYPE(rblapack_work, real*);
|
|
79
|
+
{
|
|
80
|
+
na_shape_t shape[2];
|
|
81
|
+
shape[0] = lda;
|
|
82
|
+
shape[1] = n;
|
|
83
|
+
rblapack_a_out__ = na_make_object(NA_SFLOAT, 2, shape, cNArray);
|
|
84
|
+
}
|
|
85
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, real*);
|
|
86
|
+
MEMCPY(a_out__, a, real, NA_TOTAL(rblapack_a));
|
|
87
|
+
rblapack_a = rblapack_a_out__;
|
|
88
|
+
a = a_out__;
|
|
89
|
+
|
|
90
|
+
sgeqrfp_(&m, &n, a, &lda, tau, work, &lwork, &info);
|
|
91
|
+
|
|
92
|
+
rblapack_info = INT2NUM(info);
|
|
93
|
+
return rb_ary_new3(4, rblapack_tau, rblapack_work, rblapack_info, rblapack_a);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
void
|
|
97
|
+
init_lapack_sgeqrfp(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
98
|
+
sHelp = sH;
|
|
99
|
+
sUsage = sU;
|
|
100
|
+
rblapack_ZERO = zero;
|
|
101
|
+
|
|
102
|
+
rb_define_module_function(mLapack, "sgeqrfp", rblapack_sgeqrfp, -1);
|
|
103
|
+
}
|