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/csytri.c
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID csytri_(char* uplo, integer* n, complex* a, integer* lda, integer* ipiv, complex* work, integer* info);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_csytri(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_uplo;
|
|
9
|
+
char uplo;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
complex *a;
|
|
12
|
+
VALUE rblapack_ipiv;
|
|
13
|
+
integer *ipiv;
|
|
14
|
+
VALUE rblapack_info;
|
|
15
|
+
integer info;
|
|
16
|
+
VALUE rblapack_a_out__;
|
|
17
|
+
complex *a_out__;
|
|
18
|
+
complex *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 info, a = NumRu::Lapack.csytri( uplo, a, ipiv, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CSYTRI( UPLO, N, A, LDA, IPIV, WORK, INFO )\n\n* Purpose\n* =======\n*\n* CSYTRI computes the inverse of a complex symmetric indefinite matrix\n* A using the factorization A = U*D*U**T or A = L*D*L**T computed by\n* CSYTRF.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* Specifies whether the details of the factorization are stored\n* as an upper or lower triangular matrix.\n* = 'U': Upper triangular, form is A = U*D*U**T;\n* = 'L': Lower triangular, form is A = L*D*L**T.\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 block diagonal matrix D and the multipliers\n* used to obtain the factor U or L as computed by CSYTRF.\n*\n* On exit, if INFO = 0, the (symmetric) inverse of the original\n* matrix. If UPLO = 'U', the upper triangular part of the\n* inverse is formed and the part of A below the diagonal is not\n* referenced; if UPLO = 'L' the lower triangular part of the\n* inverse is formed and the part of A above the diagonal is\n* not referenced.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (input) INTEGER array, dimension (N)\n* Details of the interchanges and the block structure of D\n* as determined by CSYTRF.\n*\n* WORK (workspace) COMPLEX array, dimension (2*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, D(i,i) = 0; the matrix is singular and its\n* inverse could not be computed.\n*\n\n* =====================================================================\n*\n\n");
|
|
29
|
+
return Qnil;
|
|
30
|
+
}
|
|
31
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
32
|
+
printf("%s\n", "USAGE:\n info, a = NumRu::Lapack.csytri( uplo, a, ipiv, [:usage => usage, :help => help])\n");
|
|
33
|
+
return Qnil;
|
|
34
|
+
}
|
|
35
|
+
} else
|
|
36
|
+
rblapack_options = Qnil;
|
|
37
|
+
if (argc != 3 && argc != 3)
|
|
38
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 3)", argc);
|
|
39
|
+
rblapack_uplo = argv[0];
|
|
40
|
+
rblapack_a = argv[1];
|
|
41
|
+
rblapack_ipiv = argv[2];
|
|
42
|
+
if (argc == 3) {
|
|
43
|
+
} else if (rblapack_options != Qnil) {
|
|
44
|
+
} else {
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
48
|
+
if (!NA_IsNArray(rblapack_ipiv))
|
|
49
|
+
rb_raise(rb_eArgError, "ipiv (3th argument) must be NArray");
|
|
50
|
+
if (NA_RANK(rblapack_ipiv) != 1)
|
|
51
|
+
rb_raise(rb_eArgError, "rank of ipiv (3th argument) must be %d", 1);
|
|
52
|
+
n = NA_SHAPE0(rblapack_ipiv);
|
|
53
|
+
if (NA_TYPE(rblapack_ipiv) != NA_LINT)
|
|
54
|
+
rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
|
|
55
|
+
ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
|
|
56
|
+
if (!NA_IsNArray(rblapack_a))
|
|
57
|
+
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
58
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
59
|
+
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
60
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
61
|
+
if (NA_SHAPE1(rblapack_a) != n)
|
|
62
|
+
rb_raise(rb_eRuntimeError, "shape 1 of a must be the same as shape 0 of ipiv");
|
|
63
|
+
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
64
|
+
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
65
|
+
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
66
|
+
{
|
|
67
|
+
na_shape_t shape[2];
|
|
68
|
+
shape[0] = lda;
|
|
69
|
+
shape[1] = n;
|
|
70
|
+
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
71
|
+
}
|
|
72
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
|
73
|
+
MEMCPY(a_out__, a, complex, NA_TOTAL(rblapack_a));
|
|
74
|
+
rblapack_a = rblapack_a_out__;
|
|
75
|
+
a = a_out__;
|
|
76
|
+
work = ALLOC_N(complex, (2*n));
|
|
77
|
+
|
|
78
|
+
csytri_(&uplo, &n, a, &lda, ipiv, work, &info);
|
|
79
|
+
|
|
80
|
+
free(work);
|
|
81
|
+
rblapack_info = INT2NUM(info);
|
|
82
|
+
return rb_ary_new3(2, rblapack_info, rblapack_a);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
void
|
|
86
|
+
init_lapack_csytri(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
87
|
+
sHelp = sH;
|
|
88
|
+
sUsage = sU;
|
|
89
|
+
rblapack_ZERO = zero;
|
|
90
|
+
|
|
91
|
+
rb_define_module_function(mLapack, "csytri", rblapack_csytri, -1);
|
|
92
|
+
}
|
data/ext/csytri2.c
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID csytri2_(char* uplo, integer* n, complex* a, integer* lda, integer* ipiv, complex* work, integer* lwork, integer* info);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_csytri2(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_uplo;
|
|
9
|
+
char uplo;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
complex *a;
|
|
12
|
+
VALUE rblapack_ipiv;
|
|
13
|
+
integer *ipiv;
|
|
14
|
+
VALUE rblapack_lwork;
|
|
15
|
+
integer lwork;
|
|
16
|
+
VALUE rblapack_info;
|
|
17
|
+
integer info;
|
|
18
|
+
VALUE rblapack_a_out__;
|
|
19
|
+
complex *a_out__;
|
|
20
|
+
integer c__1;
|
|
21
|
+
integer c__m1;
|
|
22
|
+
integer nb;
|
|
23
|
+
complex *work;
|
|
24
|
+
|
|
25
|
+
integer lda;
|
|
26
|
+
integer n;
|
|
27
|
+
|
|
28
|
+
VALUE rblapack_options;
|
|
29
|
+
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
30
|
+
argc--;
|
|
31
|
+
rblapack_options = argv[argc];
|
|
32
|
+
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
33
|
+
printf("%s\n", "USAGE:\n info, a = NumRu::Lapack.csytri2( uplo, a, ipiv, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CSYTRI2( UPLO, N, A, LDA, IPIV, WORK, LWORK, INFO )\n\n* Purpose\n* =======\n*\n* CSYTRI2 computes the inverse of a complex symmetric indefinite matrix\n* A using the factorization A = U*D*U**T or A = L*D*L**T computed by\n* CSYTRF. CSYTRI2 sets the LEADING DIMENSION of the workspace\n* before calling CSYTRI2X that actually computes the inverse.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* Specifies whether the details of the factorization are stored\n* as an upper or lower triangular matrix.\n* = 'U': Upper triangular, form is A = U*D*U**T;\n* = 'L': Lower triangular, form is A = L*D*L**T.\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 NB diagonal matrix D and the multipliers\n* used to obtain the factor U or L as computed by CSYTRF.\n*\n* On exit, if INFO = 0, the (symmetric) inverse of the original\n* matrix. If UPLO = 'U', the upper triangular part of the\n* inverse is formed and the part of A below the diagonal is not\n* referenced; if UPLO = 'L' the lower triangular part of the\n* inverse is formed and the part of A above the diagonal is\n* not referenced.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (input) INTEGER array, dimension (N)\n* Details of the interchanges and the NB structure of D\n* as determined by CSYTRF.\n*\n* WORK (workspace) COMPLEX array, dimension (N+NB+1)*(NB+3)\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK.\n* WORK is size >= (N+NB+1)*(NB+3)\n* If LDWORK = -1, then a workspace query is assumed; the routine\n* calculates:\n* - the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array,\n* - and no error message related to LDWORK 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* > 0: if INFO = i, D(i,i) = 0; the matrix is singular and its\n* inverse could not be computed.\n*\n\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL UPPER, LQUERY\n INTEGER MINSIZE, NBMAX\n* ..\n* .. External Functions ..\n LOGICAL LSAME\n INTEGER ILAENV\n EXTERNAL LSAME, ILAENV\n* ..\n* .. External Subroutines ..\n EXTERNAL CSYTRI2X\n* ..\n\n");
|
|
34
|
+
return Qnil;
|
|
35
|
+
}
|
|
36
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
37
|
+
printf("%s\n", "USAGE:\n info, a = NumRu::Lapack.csytri2( uplo, a, ipiv, [:lwork => lwork, :usage => usage, :help => help])\n");
|
|
38
|
+
return Qnil;
|
|
39
|
+
}
|
|
40
|
+
} else
|
|
41
|
+
rblapack_options = Qnil;
|
|
42
|
+
if (argc != 3 && argc != 4)
|
|
43
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 3)", argc);
|
|
44
|
+
rblapack_uplo = argv[0];
|
|
45
|
+
rblapack_a = argv[1];
|
|
46
|
+
rblapack_ipiv = argv[2];
|
|
47
|
+
if (argc == 4) {
|
|
48
|
+
rblapack_lwork = argv[3];
|
|
49
|
+
} else if (rblapack_options != Qnil) {
|
|
50
|
+
rblapack_lwork = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("lwork")));
|
|
51
|
+
} else {
|
|
52
|
+
rblapack_lwork = Qnil;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
56
|
+
if (!NA_IsNArray(rblapack_ipiv))
|
|
57
|
+
rb_raise(rb_eArgError, "ipiv (3th argument) must be NArray");
|
|
58
|
+
if (NA_RANK(rblapack_ipiv) != 1)
|
|
59
|
+
rb_raise(rb_eArgError, "rank of ipiv (3th argument) must be %d", 1);
|
|
60
|
+
n = NA_SHAPE0(rblapack_ipiv);
|
|
61
|
+
if (NA_TYPE(rblapack_ipiv) != NA_LINT)
|
|
62
|
+
rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
|
|
63
|
+
ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
|
|
64
|
+
c__1 = 1;
|
|
65
|
+
if (!NA_IsNArray(rblapack_a))
|
|
66
|
+
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
67
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
68
|
+
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
69
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
70
|
+
if (NA_SHAPE1(rblapack_a) != n)
|
|
71
|
+
rb_raise(rb_eRuntimeError, "shape 1 of a must be the same as shape 0 of ipiv");
|
|
72
|
+
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
73
|
+
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
74
|
+
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
75
|
+
c__m1 = -1;
|
|
76
|
+
nb = ilaenv_(&c__1, "CSYTRF", &uplo, &n, &c__m1, &c__m1, &c__m1);
|
|
77
|
+
if (rblapack_lwork == Qnil)
|
|
78
|
+
lwork = (n+nb+1)*(nb+3);
|
|
79
|
+
else {
|
|
80
|
+
lwork = NUM2INT(rblapack_lwork);
|
|
81
|
+
}
|
|
82
|
+
{
|
|
83
|
+
na_shape_t shape[2];
|
|
84
|
+
shape[0] = lda;
|
|
85
|
+
shape[1] = n;
|
|
86
|
+
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
87
|
+
}
|
|
88
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
|
89
|
+
MEMCPY(a_out__, a, complex, NA_TOTAL(rblapack_a));
|
|
90
|
+
rblapack_a = rblapack_a_out__;
|
|
91
|
+
a = a_out__;
|
|
92
|
+
work = ALLOC_N(complex, (lwork));
|
|
93
|
+
|
|
94
|
+
csytri2_(&uplo, &n, a, &lda, ipiv, work, &lwork, &info);
|
|
95
|
+
|
|
96
|
+
free(work);
|
|
97
|
+
rblapack_info = INT2NUM(info);
|
|
98
|
+
return rb_ary_new3(2, rblapack_info, rblapack_a);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
void
|
|
102
|
+
init_lapack_csytri2(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
103
|
+
sHelp = sH;
|
|
104
|
+
sUsage = sU;
|
|
105
|
+
rblapack_ZERO = zero;
|
|
106
|
+
|
|
107
|
+
rb_define_module_function(mLapack, "csytri2", rblapack_csytri2, -1);
|
|
108
|
+
}
|
data/ext/csytri2x.c
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID csytri2x_(char* uplo, integer* n, complex* a, integer* lda, integer* ipiv, complex* work, integer* nb, integer* info);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_csytri2x(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_uplo;
|
|
9
|
+
char uplo;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
complex *a;
|
|
12
|
+
VALUE rblapack_ipiv;
|
|
13
|
+
integer *ipiv;
|
|
14
|
+
VALUE rblapack_nb;
|
|
15
|
+
integer nb;
|
|
16
|
+
VALUE rblapack_info;
|
|
17
|
+
integer info;
|
|
18
|
+
VALUE rblapack_a_out__;
|
|
19
|
+
complex *a_out__;
|
|
20
|
+
complex *work;
|
|
21
|
+
|
|
22
|
+
integer lda;
|
|
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 info, a = NumRu::Lapack.csytri2x( uplo, a, ipiv, nb, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CSYTRI2X( UPLO, N, A, LDA, IPIV, WORK, NB, INFO )\n\n* Purpose\n* =======\n*\n* CSYTRI2X computes the inverse of a real symmetric indefinite matrix\n* A using the factorization A = U*D*U**T or A = L*D*L**T computed by\n* CSYTRF.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* Specifies whether the details of the factorization are stored\n* as an upper or lower triangular matrix.\n* = 'U': Upper triangular, form is A = U*D*U**T;\n* = 'L': Lower triangular, form is A = L*D*L**T.\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 NNB diagonal matrix D and the multipliers\n* used to obtain the factor U or L as computed by CSYTRF.\n*\n* On exit, if INFO = 0, the (symmetric) inverse of the original\n* matrix. If UPLO = 'U', the upper triangular part of the\n* inverse is formed and the part of A below the diagonal is not\n* referenced; if UPLO = 'L' the lower triangular part of the\n* inverse is formed and the part of A above the diagonal is\n* not referenced.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (input) INTEGER array, dimension (N)\n* Details of the interchanges and the NNB structure of D\n* as determined by CSYTRF.\n*\n* WORK (workspace) COMPLEX array, dimension (N+NNB+1,NNB+3)\n*\n* NB (input) INTEGER\n* Block size\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n* > 0: if INFO = i, D(i,i) = 0; the matrix is singular and its\n* inverse could not be computed.\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 info, a = NumRu::Lapack.csytri2x( uplo, a, ipiv, nb, [:usage => usage, :help => help])\n");
|
|
35
|
+
return Qnil;
|
|
36
|
+
}
|
|
37
|
+
} else
|
|
38
|
+
rblapack_options = Qnil;
|
|
39
|
+
if (argc != 4 && argc != 4)
|
|
40
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 4)", argc);
|
|
41
|
+
rblapack_uplo = argv[0];
|
|
42
|
+
rblapack_a = argv[1];
|
|
43
|
+
rblapack_ipiv = argv[2];
|
|
44
|
+
rblapack_nb = argv[3];
|
|
45
|
+
if (argc == 4) {
|
|
46
|
+
} else if (rblapack_options != Qnil) {
|
|
47
|
+
} else {
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
51
|
+
if (!NA_IsNArray(rblapack_ipiv))
|
|
52
|
+
rb_raise(rb_eArgError, "ipiv (3th argument) must be NArray");
|
|
53
|
+
if (NA_RANK(rblapack_ipiv) != 1)
|
|
54
|
+
rb_raise(rb_eArgError, "rank of ipiv (3th argument) must be %d", 1);
|
|
55
|
+
n = NA_SHAPE0(rblapack_ipiv);
|
|
56
|
+
if (NA_TYPE(rblapack_ipiv) != NA_LINT)
|
|
57
|
+
rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
|
|
58
|
+
ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
|
|
59
|
+
if (!NA_IsNArray(rblapack_a))
|
|
60
|
+
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
61
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
62
|
+
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
63
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
64
|
+
if (NA_SHAPE1(rblapack_a) != n)
|
|
65
|
+
rb_raise(rb_eRuntimeError, "shape 1 of a must be the same as shape 0 of ipiv");
|
|
66
|
+
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
67
|
+
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
68
|
+
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
69
|
+
nb = NUM2INT(rblapack_nb);
|
|
70
|
+
{
|
|
71
|
+
na_shape_t shape[2];
|
|
72
|
+
shape[0] = lda;
|
|
73
|
+
shape[1] = n;
|
|
74
|
+
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
75
|
+
}
|
|
76
|
+
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
|
77
|
+
MEMCPY(a_out__, a, complex, NA_TOTAL(rblapack_a));
|
|
78
|
+
rblapack_a = rblapack_a_out__;
|
|
79
|
+
a = a_out__;
|
|
80
|
+
work = ALLOC_N(complex, (n+nb+1)*(nb+3));
|
|
81
|
+
|
|
82
|
+
csytri2x_(&uplo, &n, a, &lda, ipiv, work, &nb, &info);
|
|
83
|
+
|
|
84
|
+
free(work);
|
|
85
|
+
rblapack_info = INT2NUM(info);
|
|
86
|
+
return rb_ary_new3(2, rblapack_info, rblapack_a);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
void
|
|
90
|
+
init_lapack_csytri2x(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
91
|
+
sHelp = sH;
|
|
92
|
+
sUsage = sU;
|
|
93
|
+
rblapack_ZERO = zero;
|
|
94
|
+
|
|
95
|
+
rb_define_module_function(mLapack, "csytri2x", rblapack_csytri2x, -1);
|
|
96
|
+
}
|
data/ext/csytrs.c
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID csytrs_(char* uplo, integer* n, integer* nrhs, complex* a, integer* lda, integer* ipiv, complex* b, integer* ldb, integer* info);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_csytrs(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_uplo;
|
|
9
|
+
char uplo;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
complex *a;
|
|
12
|
+
VALUE rblapack_ipiv;
|
|
13
|
+
integer *ipiv;
|
|
14
|
+
VALUE rblapack_b;
|
|
15
|
+
complex *b;
|
|
16
|
+
VALUE rblapack_info;
|
|
17
|
+
integer info;
|
|
18
|
+
VALUE rblapack_b_out__;
|
|
19
|
+
complex *b_out__;
|
|
20
|
+
|
|
21
|
+
integer lda;
|
|
22
|
+
integer n;
|
|
23
|
+
integer ldb;
|
|
24
|
+
integer nrhs;
|
|
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 info, b = NumRu::Lapack.csytrs( uplo, a, ipiv, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CSYTRS( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, INFO )\n\n* Purpose\n* =======\n*\n* CSYTRS solves a system of linear equations A*X = B with a complex\n* symmetric matrix A using the factorization A = U*D*U**T or\n* A = L*D*L**T computed by CSYTRF.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* Specifies whether the details of the factorization are stored\n* as an upper or lower triangular matrix.\n* = 'U': Upper triangular, form is A = U*D*U**T;\n* = 'L': Lower triangular, form is A = L*D*L**T.\n*\n* N (input) INTEGER\n* The order of the matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input) COMPLEX array, dimension (LDA,N)\n* The block diagonal matrix D and the multipliers used to\n* obtain the factor U or L as computed by CSYTRF.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (input) INTEGER array, dimension (N)\n* Details of the interchanges and the block structure of D\n* as determined by CSYTRF.\n*\n* B (input/output) COMPLEX array, dimension (LDB,NRHS)\n* On entry, the right hand side matrix B.\n* On exit, the solution matrix X.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,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* =====================================================================\n*\n\n");
|
|
32
|
+
return Qnil;
|
|
33
|
+
}
|
|
34
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
35
|
+
printf("%s\n", "USAGE:\n info, b = NumRu::Lapack.csytrs( uplo, a, ipiv, b, [:usage => usage, :help => help])\n");
|
|
36
|
+
return Qnil;
|
|
37
|
+
}
|
|
38
|
+
} else
|
|
39
|
+
rblapack_options = Qnil;
|
|
40
|
+
if (argc != 4 && argc != 4)
|
|
41
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 4)", argc);
|
|
42
|
+
rblapack_uplo = argv[0];
|
|
43
|
+
rblapack_a = argv[1];
|
|
44
|
+
rblapack_ipiv = argv[2];
|
|
45
|
+
rblapack_b = argv[3];
|
|
46
|
+
if (argc == 4) {
|
|
47
|
+
} else if (rblapack_options != Qnil) {
|
|
48
|
+
} else {
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
52
|
+
if (!NA_IsNArray(rblapack_ipiv))
|
|
53
|
+
rb_raise(rb_eArgError, "ipiv (3th argument) must be NArray");
|
|
54
|
+
if (NA_RANK(rblapack_ipiv) != 1)
|
|
55
|
+
rb_raise(rb_eArgError, "rank of ipiv (3th argument) must be %d", 1);
|
|
56
|
+
n = NA_SHAPE0(rblapack_ipiv);
|
|
57
|
+
if (NA_TYPE(rblapack_ipiv) != NA_LINT)
|
|
58
|
+
rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
|
|
59
|
+
ipiv = NA_PTR_TYPE(rblapack_ipiv, 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 ipiv");
|
|
67
|
+
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
68
|
+
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
69
|
+
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
70
|
+
if (!NA_IsNArray(rblapack_b))
|
|
71
|
+
rb_raise(rb_eArgError, "b (4th argument) must be NArray");
|
|
72
|
+
if (NA_RANK(rblapack_b) != 2)
|
|
73
|
+
rb_raise(rb_eArgError, "rank of b (4th argument) must be %d", 2);
|
|
74
|
+
ldb = NA_SHAPE0(rblapack_b);
|
|
75
|
+
nrhs = NA_SHAPE1(rblapack_b);
|
|
76
|
+
if (NA_TYPE(rblapack_b) != NA_SCOMPLEX)
|
|
77
|
+
rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
|
|
78
|
+
b = NA_PTR_TYPE(rblapack_b, complex*);
|
|
79
|
+
{
|
|
80
|
+
na_shape_t shape[2];
|
|
81
|
+
shape[0] = ldb;
|
|
82
|
+
shape[1] = nrhs;
|
|
83
|
+
rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
84
|
+
}
|
|
85
|
+
b_out__ = NA_PTR_TYPE(rblapack_b_out__, complex*);
|
|
86
|
+
MEMCPY(b_out__, b, complex, NA_TOTAL(rblapack_b));
|
|
87
|
+
rblapack_b = rblapack_b_out__;
|
|
88
|
+
b = b_out__;
|
|
89
|
+
|
|
90
|
+
csytrs_(&uplo, &n, &nrhs, a, &lda, ipiv, b, &ldb, &info);
|
|
91
|
+
|
|
92
|
+
rblapack_info = INT2NUM(info);
|
|
93
|
+
return rb_ary_new3(2, rblapack_info, rblapack_b);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
void
|
|
97
|
+
init_lapack_csytrs(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, "csytrs", rblapack_csytrs, -1);
|
|
103
|
+
}
|
data/ext/csytrs2.c
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
#include "rb_lapack.h"
|
|
2
|
+
|
|
3
|
+
extern VOID csytrs2_(char* uplo, integer* n, integer* nrhs, complex* a, integer* lda, integer* ipiv, complex* b, integer* ldb, complex* work, integer* info);
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
static VALUE
|
|
7
|
+
rblapack_csytrs2(int argc, VALUE *argv, VALUE self){
|
|
8
|
+
VALUE rblapack_uplo;
|
|
9
|
+
char uplo;
|
|
10
|
+
VALUE rblapack_a;
|
|
11
|
+
complex *a;
|
|
12
|
+
VALUE rblapack_ipiv;
|
|
13
|
+
integer *ipiv;
|
|
14
|
+
VALUE rblapack_b;
|
|
15
|
+
complex *b;
|
|
16
|
+
VALUE rblapack_info;
|
|
17
|
+
integer info;
|
|
18
|
+
VALUE rblapack_b_out__;
|
|
19
|
+
complex *b_out__;
|
|
20
|
+
complex *work;
|
|
21
|
+
|
|
22
|
+
integer lda;
|
|
23
|
+
integer n;
|
|
24
|
+
integer ldb;
|
|
25
|
+
integer nrhs;
|
|
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 info, b = NumRu::Lapack.csytrs2( uplo, a, ipiv, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CSYTRS2( UPLO, N, NRHS, A, LDA, IPIV, B, LDB, WORK, INFO )\n\n* Purpose\n* =======\n*\n* CSYTRS2 solves a system of linear equations A*X = B with a COMPLEX\n* symmetric matrix A using the factorization A = U*D*U**T or\n* A = L*D*L**T computed by CSYTRF and converted by CSYCONV.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* Specifies whether the details of the factorization are stored\n* as an upper or lower triangular matrix.\n* = 'U': Upper triangular, form is A = U*D*U**T;\n* = 'L': Lower triangular, form is A = L*D*L**T.\n*\n* N (input) INTEGER\n* The order of the matrix A. N >= 0.\n*\n* NRHS (input) INTEGER\n* The number of right hand sides, i.e., the number of columns\n* of the matrix B. NRHS >= 0.\n*\n* A (input) COMPLEX array, dimension (LDA,N)\n* The block diagonal matrix D and the multipliers used to\n* obtain the factor U or L as computed by CSYTRF.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (input) INTEGER array, dimension (N)\n* Details of the interchanges and the block structure of D\n* as determined by CSYTRF.\n*\n* B (input/output) COMPLEX array, dimension (LDB,NRHS)\n* On entry, the right hand side matrix B.\n* On exit, the solution matrix X.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* WORK (workspace) COMPLEX 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* =====================================================================\n*\n\n");
|
|
33
|
+
return Qnil;
|
|
34
|
+
}
|
|
35
|
+
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
36
|
+
printf("%s\n", "USAGE:\n info, b = NumRu::Lapack.csytrs2( uplo, a, ipiv, b, [:usage => usage, :help => help])\n");
|
|
37
|
+
return Qnil;
|
|
38
|
+
}
|
|
39
|
+
} else
|
|
40
|
+
rblapack_options = Qnil;
|
|
41
|
+
if (argc != 4 && argc != 4)
|
|
42
|
+
rb_raise(rb_eArgError,"wrong number of arguments (%d for 4)", argc);
|
|
43
|
+
rblapack_uplo = argv[0];
|
|
44
|
+
rblapack_a = argv[1];
|
|
45
|
+
rblapack_ipiv = argv[2];
|
|
46
|
+
rblapack_b = argv[3];
|
|
47
|
+
if (argc == 4) {
|
|
48
|
+
} else if (rblapack_options != Qnil) {
|
|
49
|
+
} else {
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
53
|
+
if (!NA_IsNArray(rblapack_ipiv))
|
|
54
|
+
rb_raise(rb_eArgError, "ipiv (3th argument) must be NArray");
|
|
55
|
+
if (NA_RANK(rblapack_ipiv) != 1)
|
|
56
|
+
rb_raise(rb_eArgError, "rank of ipiv (3th argument) must be %d", 1);
|
|
57
|
+
n = NA_SHAPE0(rblapack_ipiv);
|
|
58
|
+
if (NA_TYPE(rblapack_ipiv) != NA_LINT)
|
|
59
|
+
rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
|
|
60
|
+
ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
|
|
61
|
+
if (!NA_IsNArray(rblapack_a))
|
|
62
|
+
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
63
|
+
if (NA_RANK(rblapack_a) != 2)
|
|
64
|
+
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
65
|
+
lda = NA_SHAPE0(rblapack_a);
|
|
66
|
+
if (NA_SHAPE1(rblapack_a) != n)
|
|
67
|
+
rb_raise(rb_eRuntimeError, "shape 1 of a must be the same as shape 0 of ipiv");
|
|
68
|
+
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
69
|
+
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
70
|
+
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
71
|
+
if (!NA_IsNArray(rblapack_b))
|
|
72
|
+
rb_raise(rb_eArgError, "b (4th argument) must be NArray");
|
|
73
|
+
if (NA_RANK(rblapack_b) != 2)
|
|
74
|
+
rb_raise(rb_eArgError, "rank of b (4th argument) must be %d", 2);
|
|
75
|
+
ldb = NA_SHAPE0(rblapack_b);
|
|
76
|
+
nrhs = NA_SHAPE1(rblapack_b);
|
|
77
|
+
if (NA_TYPE(rblapack_b) != NA_SCOMPLEX)
|
|
78
|
+
rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
|
|
79
|
+
b = NA_PTR_TYPE(rblapack_b, complex*);
|
|
80
|
+
{
|
|
81
|
+
na_shape_t shape[2];
|
|
82
|
+
shape[0] = ldb;
|
|
83
|
+
shape[1] = nrhs;
|
|
84
|
+
rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
85
|
+
}
|
|
86
|
+
b_out__ = NA_PTR_TYPE(rblapack_b_out__, complex*);
|
|
87
|
+
MEMCPY(b_out__, b, complex, NA_TOTAL(rblapack_b));
|
|
88
|
+
rblapack_b = rblapack_b_out__;
|
|
89
|
+
b = b_out__;
|
|
90
|
+
work = ALLOC_N(complex, (n));
|
|
91
|
+
|
|
92
|
+
csytrs2_(&uplo, &n, &nrhs, a, &lda, ipiv, b, &ldb, work, &info);
|
|
93
|
+
|
|
94
|
+
free(work);
|
|
95
|
+
rblapack_info = INT2NUM(info);
|
|
96
|
+
return rb_ary_new3(2, rblapack_info, rblapack_b);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
void
|
|
100
|
+
init_lapack_csytrs2(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
101
|
+
sHelp = sH;
|
|
102
|
+
sUsage = sU;
|
|
103
|
+
rblapack_ZERO = zero;
|
|
104
|
+
|
|
105
|
+
rb_define_module_function(mLapack, "csytrs2", rblapack_csytrs2, -1);
|
|
106
|
+
}
|