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/claqhe.c
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID claqhe_(char* uplo, integer* n, complex* a, integer* lda, real* s, real* scond, real* amax, char* equed);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_claqhe(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_uplo;
|
|
9
|
+
char uplo;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
complex *a;
|
|
12
|
+
VALUE rblapack_s;
|
|
13
|
+
real *s;
|
|
14
|
+
VALUE rblapack_scond;
|
|
15
|
+
real scond;
|
|
16
|
+
VALUE rblapack_amax;
|
|
17
|
+
real amax;
|
|
18
|
+
VALUE rblapack_equed;
|
|
19
|
+
char equed;
|
|
20
|
+
VALUE rblapack_a_out__;
|
|
21
|
+
complex *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 equed, a = NumRu::Lapack.claqhe( uplo, a, s, scond, amax, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLAQHE( UPLO, N, A, LDA, S, SCOND, AMAX, EQUED )\n\n* Purpose\n* =======\n*\n* CLAQHE equilibrates a Hermitian matrix A using the scaling factors\n* in the vector S.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* Specifies whether the upper or lower triangular part of the\n* Hermitian matrix A is stored.\n* = 'U': Upper triangular\n* = 'L': Lower triangular\n*\n* N (input) INTEGER\n* The order of the matrix A. N >= 0.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the Hermitian matrix A. If UPLO = 'U', the leading\n* n by n upper triangular part of A contains the upper\n* triangular part of the matrix A, and the strictly lower\n* triangular part of A is not referenced. If UPLO = 'L', the\n* leading n by n lower triangular part of A contains the lower\n* triangular part of the matrix A, and the strictly upper\n* triangular part of A is not referenced.\n*\n* On exit, if EQUED = 'Y', the equilibrated matrix:\n* diag(S) * A * diag(S).\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(N,1).\n*\n* S (input) REAL array, dimension (N)\n* The scale factors for A.\n*\n* SCOND (input) REAL\n* Ratio of the smallest S(i) to the largest S(i).\n*\n* AMAX (input) REAL\n* Absolute value of largest matrix entry.\n*\n* EQUED (output) CHARACTER*1\n* Specifies whether or not equilibration was done.\n* = 'N': No equilibration.\n* = 'Y': Equilibration was done, i.e., A has been replaced by\n* diag(S) * A * diag(S).\n*\n* Internal Parameters\n* ===================\n*\n* THRESH is a threshold value used to decide if scaling should be done\n* based on the ratio of the scaling factors. If SCOND < THRESH,\n* scaling is done.\n*\n* LARGE and SMALL are threshold values used to decide if scaling should\n* be done based on the absolute size of the largest matrix element.\n* If AMAX > LARGE or AMAX < SMALL, scaling is done.\n*\n\n* =====================================================================\n*\n\n");
|
|
32
|
+
return Qnil;
|
|
33
|
+
}
|
|
34
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
35
|
+
printf("%s\n", "USAGE:\n equed, a = NumRu::Lapack.claqhe( uplo, a, s, scond, amax, [:usage => usage, :help => help])\n");
|
|
36
|
+
return Qnil;
|
|
37
|
+
}
|
|
38
|
+
} else
|
|
39
|
+
rblapack_options = Qnil;
|
|
40
|
+
if (argc != 5 && argc != 5)
|
|
41
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 5)", argc);
|
|
42
|
+
rblapack_uplo = argv[0];
|
|
43
|
+
rblapack_a = argv[1];
|
|
44
|
+
rblapack_s = argv[2];
|
|
45
|
+
rblapack_scond = argv[3];
|
|
46
|
+
rblapack_amax = argv[4];
|
|
47
|
+
if (argc == 5) {
|
|
48
|
+
} else if (rblapack_options != Qnil) {
|
|
49
|
+
} else {
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
53
|
+
if (!NA_IsNArray(rblapack_s))
|
|
54
|
+
rb_raise(rb_eArgError, "s (3th argument) must be NArray");
|
|
55
|
+
if (NA_RANK(rblapack_s) != 1)
|
|
56
|
+
rb_raise(rb_eArgError, "rank of s (3th argument) must be %d", 1);
|
|
57
|
+
n = NA_SHAPE0(rblapack_s);
|
|
58
|
+
if (NA_TYPE(rblapack_s) != NA_SFLOAT)
|
|
59
|
+
rblapack_s = na_change_type(rblapack_s, NA_SFLOAT);
|
|
60
|
+
s = NA_PTR_TYPE(rblapack_s, real*);
|
|
61
|
+
amax = (real)NUM2DBL(rblapack_amax);
|
|
62
|
+
if (!NA_IsNArray(rblapack_a))
|
|
63
|
+
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
64
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
65
|
+
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
66
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
67
|
+
if (NA_SHAPE1(rblapack_a) != n)
|
|
68
|
+
rb_raise(rb_eRuntimeError, "shape 1 of a must be the same as shape 0 of s");
|
|
69
|
+
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
70
|
+
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
71
|
+
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
72
|
+
scond = (real)NUM2DBL(rblapack_scond);
|
|
73
|
+
{
|
|
74
|
+
na_shape_t shape[2];
|
|
75
|
+
shape[0] = lda;
|
|
76
|
+
shape[1] = n;
|
|
77
|
+
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
78
|
+
}
|
|
79
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
|
80
|
+
MEMCPY(a_out__, a, complex, NA_TOTAL(rblapack_a));
|
|
81
|
+
rblapack_a = rblapack_a_out__;
|
|
82
|
+
a = a_out__;
|
|
83
|
+
|
|
84
|
+
claqhe_(&uplo, &n, a, &lda, s, &scond, &amax, &equed);
|
|
85
|
+
|
|
86
|
+
rblapack_equed = rb_str_new(&equed,1);
|
|
87
|
+
return rb_ary_new3(2, rblapack_equed, rblapack_a);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
void
|
|
91
|
+
init_lapack_claqhe(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
92
|
+
sHelp = sH;
|
|
93
|
+
sUsage = sU;
|
|
94
|
+
rblapack_ZERO = zero;
|
|
95
|
+
|
|
96
|
+
rb_define_module_function(mLapack, "claqhe", rblapack_claqhe, -1);
|
|
97
|
+
}
|
data/ext/claqhp.c
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID claqhp_(char* uplo, integer* n, complex* ap, real* s, real* scond, real* amax, char* equed);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_claqhp(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_uplo;
|
|
9
|
+
char uplo;
|
|
10
|
+
VALUE rblapack_ap;
|
|
11
|
+
complex *ap;
|
|
12
|
+
VALUE rblapack_s;
|
|
13
|
+
real *s;
|
|
14
|
+
VALUE rblapack_scond;
|
|
15
|
+
real scond;
|
|
16
|
+
VALUE rblapack_amax;
|
|
17
|
+
real amax;
|
|
18
|
+
VALUE rblapack_equed;
|
|
19
|
+
char equed;
|
|
20
|
+
VALUE rblapack_ap_out__;
|
|
21
|
+
complex *ap_out__;
|
|
22
|
+
|
|
23
|
+
integer n;
|
|
24
|
+
|
|
25
|
+
VALUE rblapack_options;
|
|
26
|
+
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
27
|
+
argc--;
|
|
28
|
+
rblapack_options = argv[argc];
|
|
29
|
+
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
30
|
+
printf("%s\n", "USAGE:\n equed, ap = NumRu::Lapack.claqhp( uplo, ap, s, scond, amax, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLAQHP( UPLO, N, AP, S, SCOND, AMAX, EQUED )\n\n* Purpose\n* =======\n*\n* CLAQHP equilibrates a Hermitian matrix A using the scaling factors\n* in the vector S.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* Specifies whether the upper or lower triangular part of the\n* Hermitian matrix A is stored.\n* = 'U': Upper triangular\n* = 'L': Lower triangular\n*\n* N (input) INTEGER\n* The order of the matrix A. N >= 0.\n*\n* AP (input/output) COMPLEX array, dimension (N*(N+1)/2)\n* On entry, the upper or lower triangle of the Hermitian matrix\n* A, packed columnwise in a linear array. The j-th column of A\n* is stored in the array AP as follows:\n* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;\n* if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.\n*\n* On exit, the equilibrated matrix: diag(S) * A * diag(S), in\n* the same storage format as A.\n*\n* S (input) REAL array, dimension (N)\n* The scale factors for A.\n*\n* SCOND (input) REAL\n* Ratio of the smallest S(i) to the largest S(i).\n*\n* AMAX (input) REAL\n* Absolute value of largest matrix entry.\n*\n* EQUED (output) CHARACTER*1\n* Specifies whether or not equilibration was done.\n* = 'N': No equilibration.\n* = 'Y': Equilibration was done, i.e., A has been replaced by\n* diag(S) * A * diag(S).\n*\n* Internal Parameters\n* ===================\n*\n* THRESH is a threshold value used to decide if scaling should be done\n* based on the ratio of the scaling factors. If SCOND < THRESH,\n* scaling is done.\n*\n* LARGE and SMALL are threshold values used to decide if scaling should\n* be done based on the absolute size of the largest matrix element.\n* If AMAX > LARGE or AMAX < SMALL, scaling is done.\n*\n\n* =====================================================================\n*\n\n");
|
|
31
|
+
return Qnil;
|
|
32
|
+
}
|
|
33
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
34
|
+
printf("%s\n", "USAGE:\n equed, ap = NumRu::Lapack.claqhp( uplo, ap, s, scond, amax, [:usage => usage, :help => help])\n");
|
|
35
|
+
return Qnil;
|
|
36
|
+
}
|
|
37
|
+
} else
|
|
38
|
+
rblapack_options = Qnil;
|
|
39
|
+
if (argc != 5 && argc != 5)
|
|
40
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 5)", argc);
|
|
41
|
+
rblapack_uplo = argv[0];
|
|
42
|
+
rblapack_ap = argv[1];
|
|
43
|
+
rblapack_s = argv[2];
|
|
44
|
+
rblapack_scond = argv[3];
|
|
45
|
+
rblapack_amax = argv[4];
|
|
46
|
+
if (argc == 5) {
|
|
47
|
+
} else if (rblapack_options != Qnil) {
|
|
48
|
+
} else {
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
52
|
+
if (!NA_IsNArray(rblapack_s))
|
|
53
|
+
rb_raise(rb_eArgError, "s (3th argument) must be NArray");
|
|
54
|
+
if (NA_RANK(rblapack_s) != 1)
|
|
55
|
+
rb_raise(rb_eArgError, "rank of s (3th argument) must be %d", 1);
|
|
56
|
+
n = NA_SHAPE0(rblapack_s);
|
|
57
|
+
if (NA_TYPE(rblapack_s) != NA_SFLOAT)
|
|
58
|
+
rblapack_s = na_change_type(rblapack_s, NA_SFLOAT);
|
|
59
|
+
s = NA_PTR_TYPE(rblapack_s, real*);
|
|
60
|
+
amax = (real)NUM2DBL(rblapack_amax);
|
|
61
|
+
if (!NA_IsNArray(rblapack_ap))
|
|
62
|
+
rb_raise(rb_eArgError, "ap (2th argument) must be NArray");
|
|
63
|
+
if (NA_RANK(rblapack_ap) != 1)
|
|
64
|
+
rb_raise(rb_eArgError, "rank of ap (2th argument) must be %d", 1);
|
|
65
|
+
if (NA_SHAPE0(rblapack_ap) != (n*(n+1)/2))
|
|
66
|
+
rb_raise(rb_eRuntimeError, "shape 0 of ap must be %d", n*(n+1)/2);
|
|
67
|
+
if (NA_TYPE(rblapack_ap) != NA_SCOMPLEX)
|
|
68
|
+
rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
|
|
69
|
+
ap = NA_PTR_TYPE(rblapack_ap, complex*);
|
|
70
|
+
scond = (real)NUM2DBL(rblapack_scond);
|
|
71
|
+
{
|
|
72
|
+
na_shape_t shape[1];
|
|
73
|
+
shape[0] = n*(n+1)/2;
|
|
74
|
+
rblapack_ap_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
|
|
75
|
+
}
|
|
76
|
+
ap_out__ = NA_PTR_TYPE(rblapack_ap_out__, complex*);
|
|
77
|
+
MEMCPY(ap_out__, ap, complex, NA_TOTAL(rblapack_ap));
|
|
78
|
+
rblapack_ap = rblapack_ap_out__;
|
|
79
|
+
ap = ap_out__;
|
|
80
|
+
|
|
81
|
+
claqhp_(&uplo, &n, ap, s, &scond, &amax, &equed);
|
|
82
|
+
|
|
83
|
+
rblapack_equed = rb_str_new(&equed,1);
|
|
84
|
+
return rb_ary_new3(2, rblapack_equed, rblapack_ap);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
void
|
|
88
|
+
init_lapack_claqhp(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
89
|
+
sHelp = sH;
|
|
90
|
+
sUsage = sU;
|
|
91
|
+
rblapack_ZERO = zero;
|
|
92
|
+
|
|
93
|
+
rb_define_module_function(mLapack, "claqhp", rblapack_claqhp, -1);
|
|
94
|
+
}
|
data/ext/claqp2.c
ADDED
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID claqp2_(integer* m, integer* n, integer* offset, complex* a, integer* lda, integer* jpvt, complex* tau, real* vn1, real* vn2, complex* work);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_claqp2(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_m;
|
|
9
|
+
integer m;
|
|
10
|
+
VALUE rblapack_offset;
|
|
11
|
+
integer offset;
|
|
12
|
+
VALUE rblapack_a;
|
|
13
|
+
complex *a;
|
|
14
|
+
VALUE rblapack_jpvt;
|
|
15
|
+
integer *jpvt;
|
|
16
|
+
VALUE rblapack_vn1;
|
|
17
|
+
real *vn1;
|
|
18
|
+
VALUE rblapack_vn2;
|
|
19
|
+
real *vn2;
|
|
20
|
+
VALUE rblapack_tau;
|
|
21
|
+
complex *tau;
|
|
22
|
+
VALUE rblapack_a_out__;
|
|
23
|
+
complex *a_out__;
|
|
24
|
+
VALUE rblapack_jpvt_out__;
|
|
25
|
+
integer *jpvt_out__;
|
|
26
|
+
VALUE rblapack_vn1_out__;
|
|
27
|
+
real *vn1_out__;
|
|
28
|
+
VALUE rblapack_vn2_out__;
|
|
29
|
+
real *vn2_out__;
|
|
30
|
+
complex *work;
|
|
31
|
+
|
|
32
|
+
integer lda;
|
|
33
|
+
integer n;
|
|
34
|
+
|
|
35
|
+
VALUE rblapack_options;
|
|
36
|
+
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
37
|
+
argc--;
|
|
38
|
+
rblapack_options = argv[argc];
|
|
39
|
+
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
40
|
+
printf("%s\n", "USAGE:\n tau, a, jpvt, vn1, vn2 = NumRu::Lapack.claqp2( m, offset, a, jpvt, vn1, vn2, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLAQP2( M, N, OFFSET, A, LDA, JPVT, TAU, VN1, VN2, WORK )\n\n* Purpose\n* =======\n*\n* CLAQP2 computes a QR factorization with column pivoting of\n* the block A(OFFSET+1:M,1:N).\n* The block A(1:OFFSET,1:N) is accordingly pivoted, but not factorized.\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* OFFSET (input) INTEGER\n* The number of rows of the matrix A that must be pivoted\n* but no factorized. OFFSET >= 0.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, the upper triangle of block A(OFFSET+1:M,1:N) is \n* the triangular factor obtained; the elements in block\n* A(OFFSET+1:M,1:N) below the diagonal, together with the\n* array TAU, represent the orthogonal matrix Q as a product of\n* elementary reflectors. Block A(1:OFFSET,1:N) has been\n* accordingly pivoted, but no factorized.\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) COMPLEX array, dimension (min(M,N))\n* The scalar factors of the elementary reflectors.\n*\n* VN1 (input/output) REAL array, dimension (N)\n* The vector with the partial column norms.\n*\n* VN2 (input/output) REAL array, dimension (N)\n* The vector with the exact column norms.\n*\n* WORK (workspace) COMPLEX array, dimension (N)\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain\n* X. Sun, Computer Science Dept., Duke University, USA\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");
|
|
41
|
+
return Qnil;
|
|
42
|
+
}
|
|
43
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
44
|
+
printf("%s\n", "USAGE:\n tau, a, jpvt, vn1, vn2 = NumRu::Lapack.claqp2( m, offset, a, jpvt, vn1, vn2, [:usage => usage, :help => help])\n");
|
|
45
|
+
return Qnil;
|
|
46
|
+
}
|
|
47
|
+
} else
|
|
48
|
+
rblapack_options = Qnil;
|
|
49
|
+
if (argc != 6 && argc != 6)
|
|
50
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 6)", argc);
|
|
51
|
+
rblapack_m = argv[0];
|
|
52
|
+
rblapack_offset = argv[1];
|
|
53
|
+
rblapack_a = argv[2];
|
|
54
|
+
rblapack_jpvt = argv[3];
|
|
55
|
+
rblapack_vn1 = argv[4];
|
|
56
|
+
rblapack_vn2 = argv[5];
|
|
57
|
+
if (argc == 6) {
|
|
58
|
+
} else if (rblapack_options != Qnil) {
|
|
59
|
+
} else {
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
m = NUM2INT(rblapack_m);
|
|
63
|
+
if (!NA_IsNArray(rblapack_a))
|
|
64
|
+
rb_raise(rb_eArgError, "a (3th argument) must be NArray");
|
|
65
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
66
|
+
rb_raise(rb_eArgError, "rank of a (3th argument) must be %d", 2);
|
|
67
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
68
|
+
n = NA_SHAPE1(rblapack_a);
|
|
69
|
+
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
70
|
+
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
71
|
+
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
72
|
+
if (!NA_IsNArray(rblapack_vn1))
|
|
73
|
+
rb_raise(rb_eArgError, "vn1 (5th argument) must be NArray");
|
|
74
|
+
if (NA_RANK(rblapack_vn1) != 1)
|
|
75
|
+
rb_raise(rb_eArgError, "rank of vn1 (5th argument) must be %d", 1);
|
|
76
|
+
if (NA_SHAPE0(rblapack_vn1) != n)
|
|
77
|
+
rb_raise(rb_eRuntimeError, "shape 0 of vn1 must be the same as shape 1 of a");
|
|
78
|
+
if (NA_TYPE(rblapack_vn1) != NA_SFLOAT)
|
|
79
|
+
rblapack_vn1 = na_change_type(rblapack_vn1, NA_SFLOAT);
|
|
80
|
+
vn1 = NA_PTR_TYPE(rblapack_vn1, real*);
|
|
81
|
+
offset = NUM2INT(rblapack_offset);
|
|
82
|
+
if (!NA_IsNArray(rblapack_vn2))
|
|
83
|
+
rb_raise(rb_eArgError, "vn2 (6th argument) must be NArray");
|
|
84
|
+
if (NA_RANK(rblapack_vn2) != 1)
|
|
85
|
+
rb_raise(rb_eArgError, "rank of vn2 (6th argument) must be %d", 1);
|
|
86
|
+
if (NA_SHAPE0(rblapack_vn2) != n)
|
|
87
|
+
rb_raise(rb_eRuntimeError, "shape 0 of vn2 must be the same as shape 1 of a");
|
|
88
|
+
if (NA_TYPE(rblapack_vn2) != NA_SFLOAT)
|
|
89
|
+
rblapack_vn2 = na_change_type(rblapack_vn2, NA_SFLOAT);
|
|
90
|
+
vn2 = NA_PTR_TYPE(rblapack_vn2, real*);
|
|
91
|
+
if (!NA_IsNArray(rblapack_jpvt))
|
|
92
|
+
rb_raise(rb_eArgError, "jpvt (4th argument) must be NArray");
|
|
93
|
+
if (NA_RANK(rblapack_jpvt) != 1)
|
|
94
|
+
rb_raise(rb_eArgError, "rank of jpvt (4th argument) must be %d", 1);
|
|
95
|
+
if (NA_SHAPE0(rblapack_jpvt) != n)
|
|
96
|
+
rb_raise(rb_eRuntimeError, "shape 0 of jpvt must be the same as shape 1 of a");
|
|
97
|
+
if (NA_TYPE(rblapack_jpvt) != NA_LINT)
|
|
98
|
+
rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
|
|
99
|
+
jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
|
|
100
|
+
{
|
|
101
|
+
na_shape_t shape[1];
|
|
102
|
+
shape[0] = MIN(m,n);
|
|
103
|
+
rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
|
|
104
|
+
}
|
|
105
|
+
tau = NA_PTR_TYPE(rblapack_tau, complex*);
|
|
106
|
+
{
|
|
107
|
+
na_shape_t shape[2];
|
|
108
|
+
shape[0] = lda;
|
|
109
|
+
shape[1] = n;
|
|
110
|
+
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
111
|
+
}
|
|
112
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
|
113
|
+
MEMCPY(a_out__, a, complex, NA_TOTAL(rblapack_a));
|
|
114
|
+
rblapack_a = rblapack_a_out__;
|
|
115
|
+
a = a_out__;
|
|
116
|
+
{
|
|
117
|
+
na_shape_t shape[1];
|
|
118
|
+
shape[0] = n;
|
|
119
|
+
rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
|
|
120
|
+
}
|
|
121
|
+
jpvt_out__ = NA_PTR_TYPE(rblapack_jpvt_out__, integer*);
|
|
122
|
+
MEMCPY(jpvt_out__, jpvt, integer, NA_TOTAL(rblapack_jpvt));
|
|
123
|
+
rblapack_jpvt = rblapack_jpvt_out__;
|
|
124
|
+
jpvt = jpvt_out__;
|
|
125
|
+
{
|
|
126
|
+
na_shape_t shape[1];
|
|
127
|
+
shape[0] = n;
|
|
128
|
+
rblapack_vn1_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
129
|
+
}
|
|
130
|
+
vn1_out__ = NA_PTR_TYPE(rblapack_vn1_out__, real*);
|
|
131
|
+
MEMCPY(vn1_out__, vn1, real, NA_TOTAL(rblapack_vn1));
|
|
132
|
+
rblapack_vn1 = rblapack_vn1_out__;
|
|
133
|
+
vn1 = vn1_out__;
|
|
134
|
+
{
|
|
135
|
+
na_shape_t shape[1];
|
|
136
|
+
shape[0] = n;
|
|
137
|
+
rblapack_vn2_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
138
|
+
}
|
|
139
|
+
vn2_out__ = NA_PTR_TYPE(rblapack_vn2_out__, real*);
|
|
140
|
+
MEMCPY(vn2_out__, vn2, real, NA_TOTAL(rblapack_vn2));
|
|
141
|
+
rblapack_vn2 = rblapack_vn2_out__;
|
|
142
|
+
vn2 = vn2_out__;
|
|
143
|
+
work = ALLOC_N(complex, (n));
|
|
144
|
+
|
|
145
|
+
claqp2_(&m, &n, &offset, a, &lda, jpvt, tau, vn1, vn2, work);
|
|
146
|
+
|
|
147
|
+
free(work);
|
|
148
|
+
return rb_ary_new3(5, rblapack_tau, rblapack_a, rblapack_jpvt, rblapack_vn1, rblapack_vn2);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
void
|
|
152
|
+
init_lapack_claqp2(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
153
|
+
sHelp = sH;
|
|
154
|
+
sUsage = sU;
|
|
155
|
+
rblapack_ZERO = zero;
|
|
156
|
+
|
|
157
|
+
rb_define_module_function(mLapack, "claqp2", rblapack_claqp2, -1);
|
|
158
|
+
}
|
data/ext/claqps.c
ADDED
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID claqps_(integer* m, integer* n, integer* offset, integer* nb, integer* kb, complex* a, integer* lda, integer* jpvt, complex* tau, real* vn1, real* vn2, complex* auxv, complex* f, integer* ldf);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_claqps(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_m;
|
|
9
|
+
integer m;
|
|
10
|
+
VALUE rblapack_offset;
|
|
11
|
+
integer offset;
|
|
12
|
+
VALUE rblapack_a;
|
|
13
|
+
complex *a;
|
|
14
|
+
VALUE rblapack_jpvt;
|
|
15
|
+
integer *jpvt;
|
|
16
|
+
VALUE rblapack_vn1;
|
|
17
|
+
real *vn1;
|
|
18
|
+
VALUE rblapack_vn2;
|
|
19
|
+
real *vn2;
|
|
20
|
+
VALUE rblapack_auxv;
|
|
21
|
+
complex *auxv;
|
|
22
|
+
VALUE rblapack_f;
|
|
23
|
+
complex *f;
|
|
24
|
+
VALUE rblapack_kb;
|
|
25
|
+
integer kb;
|
|
26
|
+
VALUE rblapack_tau;
|
|
27
|
+
complex *tau;
|
|
28
|
+
VALUE rblapack_a_out__;
|
|
29
|
+
complex *a_out__;
|
|
30
|
+
VALUE rblapack_jpvt_out__;
|
|
31
|
+
integer *jpvt_out__;
|
|
32
|
+
VALUE rblapack_vn1_out__;
|
|
33
|
+
real *vn1_out__;
|
|
34
|
+
VALUE rblapack_vn2_out__;
|
|
35
|
+
real *vn2_out__;
|
|
36
|
+
VALUE rblapack_auxv_out__;
|
|
37
|
+
complex *auxv_out__;
|
|
38
|
+
VALUE rblapack_f_out__;
|
|
39
|
+
complex *f_out__;
|
|
40
|
+
|
|
41
|
+
integer lda;
|
|
42
|
+
integer n;
|
|
43
|
+
integer nb;
|
|
44
|
+
integer ldf;
|
|
45
|
+
|
|
46
|
+
VALUE rblapack_options;
|
|
47
|
+
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
48
|
+
argc--;
|
|
49
|
+
rblapack_options = argv[argc];
|
|
50
|
+
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
51
|
+
printf("%s\n", "USAGE:\n kb, tau, a, jpvt, vn1, vn2, auxv, f = NumRu::Lapack.claqps( m, offset, a, jpvt, vn1, vn2, auxv, f, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLAQPS( M, N, OFFSET, NB, KB, A, LDA, JPVT, TAU, VN1, VN2, AUXV, F, LDF )\n\n* Purpose\n* =======\n*\n* CLAQPS computes a step of QR factorization with column pivoting\n* of a complex M-by-N matrix A by using Blas-3. It tries to factorize\n* NB columns from A starting from the row OFFSET+1, and updates all\n* of the matrix with Blas-3 xGEMM.\n*\n* In some cases, due to catastrophic cancellations, it cannot\n* factorize NB columns. Hence, the actual number of factorized\n* columns is returned in KB.\n*\n* Block A(1:OFFSET,1:N) is accordingly pivoted, but not factorized.\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* OFFSET (input) INTEGER\n* The number of rows of A that have been factorized in\n* previous steps.\n*\n* NB (input) INTEGER\n* The number of columns to factorize.\n*\n* KB (output) INTEGER\n* The number of columns actually factorized.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, block A(OFFSET+1:M,1:KB) is the triangular\n* factor obtained and block A(1:OFFSET,1:N) has been\n* accordingly pivoted, but no factorized.\n* The rest of the matrix, block A(OFFSET+1:M,KB+1:N) has\n* been updated.\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* JPVT(I) = K <==> Column K of the full matrix A has been\n* permuted into position I in AP.\n*\n* TAU (output) COMPLEX array, dimension (KB)\n* The scalar factors of the elementary reflectors.\n*\n* VN1 (input/output) REAL array, dimension (N)\n* The vector with the partial column norms.\n*\n* VN2 (input/output) REAL array, dimension (N)\n* The vector with the exact column norms.\n*\n* AUXV (input/output) COMPLEX array, dimension (NB)\n* Auxiliar vector.\n*\n* F (input/output) COMPLEX array, dimension (LDF,NB)\n* Matrix F' = L*Y'*A.\n*\n* LDF (input) INTEGER\n* The leading dimension of the array F. LDF >= max(1,N).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* G. Quintana-Orti, Depto. de Informatica, Universidad Jaime I, Spain\n* X. Sun, Computer Science Dept., Duke University, USA\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");
|
|
52
|
+
return Qnil;
|
|
53
|
+
}
|
|
54
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
55
|
+
printf("%s\n", "USAGE:\n kb, tau, a, jpvt, vn1, vn2, auxv, f = NumRu::Lapack.claqps( m, offset, a, jpvt, vn1, vn2, auxv, f, [:usage => usage, :help => help])\n");
|
|
56
|
+
return Qnil;
|
|
57
|
+
}
|
|
58
|
+
} else
|
|
59
|
+
rblapack_options = Qnil;
|
|
60
|
+
if (argc != 8 && argc != 8)
|
|
61
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 8)", argc);
|
|
62
|
+
rblapack_m = argv[0];
|
|
63
|
+
rblapack_offset = argv[1];
|
|
64
|
+
rblapack_a = argv[2];
|
|
65
|
+
rblapack_jpvt = argv[3];
|
|
66
|
+
rblapack_vn1 = argv[4];
|
|
67
|
+
rblapack_vn2 = argv[5];
|
|
68
|
+
rblapack_auxv = argv[6];
|
|
69
|
+
rblapack_f = argv[7];
|
|
70
|
+
if (argc == 8) {
|
|
71
|
+
} else if (rblapack_options != Qnil) {
|
|
72
|
+
} else {
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
m = NUM2INT(rblapack_m);
|
|
76
|
+
if (!NA_IsNArray(rblapack_a))
|
|
77
|
+
rb_raise(rb_eArgError, "a (3th argument) must be NArray");
|
|
78
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
79
|
+
rb_raise(rb_eArgError, "rank of a (3th argument) must be %d", 2);
|
|
80
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
81
|
+
n = NA_SHAPE1(rblapack_a);
|
|
82
|
+
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
83
|
+
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
84
|
+
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
85
|
+
if (!NA_IsNArray(rblapack_vn1))
|
|
86
|
+
rb_raise(rb_eArgError, "vn1 (5th argument) must be NArray");
|
|
87
|
+
if (NA_RANK(rblapack_vn1) != 1)
|
|
88
|
+
rb_raise(rb_eArgError, "rank of vn1 (5th argument) must be %d", 1);
|
|
89
|
+
if (NA_SHAPE0(rblapack_vn1) != n)
|
|
90
|
+
rb_raise(rb_eRuntimeError, "shape 0 of vn1 must be the same as shape 1 of a");
|
|
91
|
+
if (NA_TYPE(rblapack_vn1) != NA_SFLOAT)
|
|
92
|
+
rblapack_vn1 = na_change_type(rblapack_vn1, NA_SFLOAT);
|
|
93
|
+
vn1 = NA_PTR_TYPE(rblapack_vn1, real*);
|
|
94
|
+
if (!NA_IsNArray(rblapack_auxv))
|
|
95
|
+
rb_raise(rb_eArgError, "auxv (7th argument) must be NArray");
|
|
96
|
+
if (NA_RANK(rblapack_auxv) != 1)
|
|
97
|
+
rb_raise(rb_eArgError, "rank of auxv (7th argument) must be %d", 1);
|
|
98
|
+
nb = NA_SHAPE0(rblapack_auxv);
|
|
99
|
+
if (NA_TYPE(rblapack_auxv) != NA_SCOMPLEX)
|
|
100
|
+
rblapack_auxv = na_change_type(rblapack_auxv, NA_SCOMPLEX);
|
|
101
|
+
auxv = NA_PTR_TYPE(rblapack_auxv, complex*);
|
|
102
|
+
offset = NUM2INT(rblapack_offset);
|
|
103
|
+
if (!NA_IsNArray(rblapack_vn2))
|
|
104
|
+
rb_raise(rb_eArgError, "vn2 (6th argument) must be NArray");
|
|
105
|
+
if (NA_RANK(rblapack_vn2) != 1)
|
|
106
|
+
rb_raise(rb_eArgError, "rank of vn2 (6th argument) must be %d", 1);
|
|
107
|
+
if (NA_SHAPE0(rblapack_vn2) != n)
|
|
108
|
+
rb_raise(rb_eRuntimeError, "shape 0 of vn2 must be the same as shape 1 of a");
|
|
109
|
+
if (NA_TYPE(rblapack_vn2) != NA_SFLOAT)
|
|
110
|
+
rblapack_vn2 = na_change_type(rblapack_vn2, NA_SFLOAT);
|
|
111
|
+
vn2 = NA_PTR_TYPE(rblapack_vn2, real*);
|
|
112
|
+
if (!NA_IsNArray(rblapack_jpvt))
|
|
113
|
+
rb_raise(rb_eArgError, "jpvt (4th argument) must be NArray");
|
|
114
|
+
if (NA_RANK(rblapack_jpvt) != 1)
|
|
115
|
+
rb_raise(rb_eArgError, "rank of jpvt (4th argument) must be %d", 1);
|
|
116
|
+
if (NA_SHAPE0(rblapack_jpvt) != n)
|
|
117
|
+
rb_raise(rb_eRuntimeError, "shape 0 of jpvt must be the same as shape 1 of a");
|
|
118
|
+
if (NA_TYPE(rblapack_jpvt) != NA_LINT)
|
|
119
|
+
rblapack_jpvt = na_change_type(rblapack_jpvt, NA_LINT);
|
|
120
|
+
jpvt = NA_PTR_TYPE(rblapack_jpvt, integer*);
|
|
121
|
+
if (!NA_IsNArray(rblapack_f))
|
|
122
|
+
rb_raise(rb_eArgError, "f (8th argument) must be NArray");
|
|
123
|
+
if (NA_RANK(rblapack_f) != 2)
|
|
124
|
+
rb_raise(rb_eArgError, "rank of f (8th argument) must be %d", 2);
|
|
125
|
+
ldf = NA_SHAPE0(rblapack_f);
|
|
126
|
+
if (NA_SHAPE1(rblapack_f) != nb)
|
|
127
|
+
rb_raise(rb_eRuntimeError, "shape 1 of f must be the same as shape 0 of auxv");
|
|
128
|
+
if (NA_TYPE(rblapack_f) != NA_SCOMPLEX)
|
|
129
|
+
rblapack_f = na_change_type(rblapack_f, NA_SCOMPLEX);
|
|
130
|
+
f = NA_PTR_TYPE(rblapack_f, complex*);
|
|
131
|
+
kb = nb;
|
|
132
|
+
{
|
|
133
|
+
na_shape_t shape[1];
|
|
134
|
+
shape[0] = kb;
|
|
135
|
+
rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
|
|
136
|
+
}
|
|
137
|
+
tau = NA_PTR_TYPE(rblapack_tau, complex*);
|
|
138
|
+
{
|
|
139
|
+
na_shape_t shape[2];
|
|
140
|
+
shape[0] = lda;
|
|
141
|
+
shape[1] = n;
|
|
142
|
+
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
143
|
+
}
|
|
144
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
|
145
|
+
MEMCPY(a_out__, a, complex, NA_TOTAL(rblapack_a));
|
|
146
|
+
rblapack_a = rblapack_a_out__;
|
|
147
|
+
a = a_out__;
|
|
148
|
+
{
|
|
149
|
+
na_shape_t shape[1];
|
|
150
|
+
shape[0] = n;
|
|
151
|
+
rblapack_jpvt_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
|
|
152
|
+
}
|
|
153
|
+
jpvt_out__ = NA_PTR_TYPE(rblapack_jpvt_out__, integer*);
|
|
154
|
+
MEMCPY(jpvt_out__, jpvt, integer, NA_TOTAL(rblapack_jpvt));
|
|
155
|
+
rblapack_jpvt = rblapack_jpvt_out__;
|
|
156
|
+
jpvt = jpvt_out__;
|
|
157
|
+
{
|
|
158
|
+
na_shape_t shape[1];
|
|
159
|
+
shape[0] = n;
|
|
160
|
+
rblapack_vn1_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
161
|
+
}
|
|
162
|
+
vn1_out__ = NA_PTR_TYPE(rblapack_vn1_out__, real*);
|
|
163
|
+
MEMCPY(vn1_out__, vn1, real, NA_TOTAL(rblapack_vn1));
|
|
164
|
+
rblapack_vn1 = rblapack_vn1_out__;
|
|
165
|
+
vn1 = vn1_out__;
|
|
166
|
+
{
|
|
167
|
+
na_shape_t shape[1];
|
|
168
|
+
shape[0] = n;
|
|
169
|
+
rblapack_vn2_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
170
|
+
}
|
|
171
|
+
vn2_out__ = NA_PTR_TYPE(rblapack_vn2_out__, real*);
|
|
172
|
+
MEMCPY(vn2_out__, vn2, real, NA_TOTAL(rblapack_vn2));
|
|
173
|
+
rblapack_vn2 = rblapack_vn2_out__;
|
|
174
|
+
vn2 = vn2_out__;
|
|
175
|
+
{
|
|
176
|
+
na_shape_t shape[1];
|
|
177
|
+
shape[0] = nb;
|
|
178
|
+
rblapack_auxv_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
|
|
179
|
+
}
|
|
180
|
+
auxv_out__ = NA_PTR_TYPE(rblapack_auxv_out__, complex*);
|
|
181
|
+
MEMCPY(auxv_out__, auxv, complex, NA_TOTAL(rblapack_auxv));
|
|
182
|
+
rblapack_auxv = rblapack_auxv_out__;
|
|
183
|
+
auxv = auxv_out__;
|
|
184
|
+
{
|
|
185
|
+
na_shape_t shape[2];
|
|
186
|
+
shape[0] = ldf;
|
|
187
|
+
shape[1] = nb;
|
|
188
|
+
rblapack_f_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
189
|
+
}
|
|
190
|
+
f_out__ = NA_PTR_TYPE(rblapack_f_out__, complex*);
|
|
191
|
+
MEMCPY(f_out__, f, complex, NA_TOTAL(rblapack_f));
|
|
192
|
+
rblapack_f = rblapack_f_out__;
|
|
193
|
+
f = f_out__;
|
|
194
|
+
|
|
195
|
+
claqps_(&m, &n, &offset, &nb, &kb, a, &lda, jpvt, tau, vn1, vn2, auxv, f, &ldf);
|
|
196
|
+
|
|
197
|
+
rblapack_kb = INT2NUM(kb);
|
|
198
|
+
return rb_ary_new3(8, rblapack_kb, rblapack_tau, rblapack_a, rblapack_jpvt, rblapack_vn1, rblapack_vn2, rblapack_auxv, rblapack_f);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
void
|
|
202
|
+
init_lapack_claqps(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
203
|
+
sHelp = sH;
|
|
204
|
+
sUsage = sU;
|
|
205
|
+
rblapack_ZERO = zero;
|
|
206
|
+
|
|
207
|
+
rb_define_module_function(mLapack, "claqps", rblapack_claqps, -1);
|
|
208
|
+
}
|