ruby-lapack 1.6 → 1.7
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 +7 -0
- data/Rakefile +1 -1
- data/dev/make_csrc.rb +8 -2
- data/ext/extconf.rb +15 -11
- data/ext/rb_lapack.h +7 -1
- metadata +48 -1700
- data/ext/cbbcsd.c +0 -283
- data/ext/cbdsqr.c +0 -182
- data/ext/cgbbrd.c +0 -157
- data/ext/cgbcon.c +0 -98
- data/ext/cgbequ.c +0 -98
- data/ext/cgbequb.c +0 -96
- data/ext/cgbrfs.c +0 -161
- data/ext/cgbrfsx.c +0 -249
- data/ext/cgbsv.c +0 -115
- data/ext/cgbsvx.c +0 -286
- data/ext/cgbsvxx.c +0 -289
- data/ext/cgbtf2.c +0 -93
- data/ext/cgbtrf.c +0 -93
- data/ext/cgbtrs.c +0 -111
- data/ext/cgebak.c +0 -101
- data/ext/cgebal.c +0 -91
- data/ext/cgebd2.c +0 -112
- data/ext/cgebrd.c +0 -127
- data/ext/cgecon.c +0 -78
- data/ext/cgeequ.c +0 -88
- data/ext/cgeequb.c +0 -88
- data/ext/cgees.c +0 -142
- data/ext/cgeesx.c +0 -152
- data/ext/cgeev.c +0 -132
- data/ext/cgeevx.c +0 -173
- data/ext/cgegs.c +0 -166
- data/ext/cgegv.c +0 -171
- data/ext/cgehd2.c +0 -92
- data/ext/cgehrd.c +0 -107
- data/ext/cgelq2.c +0 -86
- data/ext/cgelqf.c +0 -103
- data/ext/cgels.c +0 -137
- data/ext/cgelsd.c +0 -154
- data/ext/cgelss.c +0 -151
- data/ext/cgelsx.c +0 -139
- data/ext/cgelsy.c +0 -166
- data/ext/cgeql2.c +0 -88
- data/ext/cgeqlf.c +0 -103
- data/ext/cgeqp3.c +0 -129
- data/ext/cgeqpf.c +0 -114
- data/ext/cgeqr2.c +0 -88
- data/ext/cgeqr2p.c +0 -88
- data/ext/cgeqrf.c +0 -103
- data/ext/cgeqrfp.c +0 -103
- data/ext/cgerfs.c +0 -153
- data/ext/cgerfsx.c +0 -219
- data/ext/cgerq2.c +0 -86
- data/ext/cgerqf.c +0 -103
- data/ext/cgesc2.c +0 -108
- data/ext/cgesdd.c +0 -135
- data/ext/cgesv.c +0 -107
- data/ext/cgesvd.c +0 -146
- data/ext/cgesvx.c +0 -278
- data/ext/cgesvxx.c +0 -281
- data/ext/cgetc2.c +0 -89
- data/ext/cgetf2.c +0 -85
- data/ext/cgetrf.c +0 -85
- data/ext/cgetri.c +0 -103
- data/ext/cgetrs.c +0 -103
- data/ext/cggbak.c +0 -113
- data/ext/cggbal.c +0 -128
- data/ext/cgges.c +0 -192
- data/ext/cggesx.c +0 -230
- data/ext/cggev.c +0 -171
- data/ext/cggevx.c +0 -226
- data/ext/cggglm.c +0 -156
- data/ext/cgghrd.c +0 -167
- data/ext/cgglse.c +0 -171
- data/ext/cggqrf.c +0 -137
- data/ext/cggrqf.c +0 -141
- data/ext/cggsvd.c +0 -184
- data/ext/cggsvp.c +0 -174
- data/ext/cgtcon.c +0 -121
- data/ext/cgtrfs.c +0 -209
- data/ext/cgtsv.c +0 -142
- data/ext/cgtsvx.c +0 -256
- data/ext/cgttrf.c +0 -132
- data/ext/cgttrs.c +0 -137
- data/ext/cgtts2.c +0 -134
- data/ext/chbev.c +0 -110
- data/ext/chbevd.c +0 -158
- data/ext/chbevx.c +0 -160
- data/ext/chbgst.c +0 -120
- data/ext/chbgv.c +0 -140
- data/ext/chbgvd.c +0 -188
- data/ext/chbgvx.c +0 -189
- data/ext/chbtrd.c +0 -130
- data/ext/checon.c +0 -87
- data/ext/cheequb.c +0 -82
- data/ext/cheev.c +0 -110
- data/ext/cheevd.c +0 -143
- data/ext/cheevr.c +0 -190
- data/ext/cheevx.c +0 -160
- data/ext/chegs2.c +0 -95
- data/ext/chegst.c +0 -95
- data/ext/chegv.c +0 -140
- data/ext/chegvd.c +0 -173
- data/ext/chegvx.c +0 -190
- data/ext/cherfs.c +0 -153
- data/ext/cherfsx.c +0 -218
- data/ext/chesv.c +0 -123
- data/ext/chesvx.c +0 -183
- data/ext/chesvxx.c +0 -258
- data/ext/chetd2.c +0 -101
- data/ext/chetf2.c +0 -85
- data/ext/chetrd.c +0 -113
- data/ext/chetrf.c +0 -97
- data/ext/chetri.c +0 -92
- data/ext/chetrs.c +0 -103
- data/ext/chetrs2.c +0 -106
- data/ext/chfrk.c +0 -109
- data/ext/chgeqz.c +0 -208
- data/ext/chla_transtype.c +0 -51
- data/ext/chpcon.c +0 -85
- data/ext/chpev.c +0 -105
- data/ext/chpevd.c +0 -153
- data/ext/chpevx.c +0 -144
- data/ext/chpgst.c +0 -94
- data/ext/chpgv.c +0 -132
- data/ext/chpgvd.c +0 -170
- data/ext/chpgvx.c +0 -170
- data/ext/chprfs.c +0 -149
- data/ext/chpsv.c +0 -110
- data/ext/chpsvx.c +0 -163
- data/ext/chptrd.c +0 -100
- data/ext/chptrf.c +0 -84
- data/ext/chptri.c +0 -89
- data/ext/chptrs.c +0 -101
- data/ext/chsein.c +0 -185
- data/ext/chseqr.c +0 -145
- data/ext/cla_gbamv.c +0 -127
- data/ext/cla_gbrcond_c.c +0 -142
- data/ext/cla_gbrcond_x.c +0 -138
- data/ext/cla_gbrfsx_extended.c +0 -295
- data/ext/cla_gbrpvgrw.c +0 -87
- data/ext/cla_geamv.c +0 -117
- data/ext/cla_gercond_c.c +0 -134
- data/ext/cla_gercond_x.c +0 -130
- data/ext/cla_gerfsx_extended.c +0 -281
- data/ext/cla_heamv.c +0 -116
- data/ext/cla_hercond_c.c +0 -134
- data/ext/cla_hercond_x.c +0 -130
- data/ext/cla_herfsx_extended.c +0 -283
- data/ext/cla_herpvgrw.c +0 -107
- data/ext/cla_lin_berr.c +0 -84
- data/ext/cla_porcond_c.c +0 -122
- data/ext/cla_porcond_x.c +0 -118
- data/ext/cla_porfsx_extended.c +0 -271
- data/ext/cla_porpvgrw.c +0 -95
- data/ext/cla_rpvgrw.c +0 -79
- data/ext/cla_syamv.c +0 -115
- data/ext/cla_syrcond_c.c +0 -134
- data/ext/cla_syrcond_x.c +0 -130
- data/ext/cla_syrfsx_extended.c +0 -283
- data/ext/cla_syrpvgrw.c +0 -107
- data/ext/cla_wwaddw.c +0 -102
- data/ext/clabrd.c +0 -132
- data/ext/clacgv.c +0 -75
- data/ext/clacn2.c +0 -103
- data/ext/clacon.c +0 -80
- data/ext/clacp2.c +0 -77
- data/ext/clacpy.c +0 -77
- data/ext/clacrm.c +0 -90
- data/ext/clacrt.c +0 -108
- data/ext/cladiv.c +0 -57
- data/ext/claed0.c +0 -134
- data/ext/claed7.c +0 -247
- data/ext/claed8.c +0 -198
- data/ext/claein.c +0 -113
- data/ext/claesy.c +0 -74
- data/ext/claev2.c +0 -71
- data/ext/clag2z.c +0 -76
- data/ext/clags2.c +0 -92
- data/ext/clagtm.c +0 -132
- data/ext/clahef.c +0 -97
- data/ext/clahqr.c +0 -135
- data/ext/clahr2.c +0 -112
- data/ext/clahrd.c +0 -112
- data/ext/claic1.c +0 -90
- data/ext/clals0.c +0 -201
- data/ext/clalsa.c +0 -270
- data/ext/clalsd.c +0 -145
- data/ext/clangb.c +0 -76
- data/ext/clange.c +0 -74
- data/ext/clangt.c +0 -87
- data/ext/clanhb.c +0 -78
- data/ext/clanhe.c +0 -72
- data/ext/clanhf.c +0 -80
- data/ext/clanhp.c +0 -74
- data/ext/clanhs.c +0 -70
- data/ext/clanht.c +0 -75
- data/ext/clansb.c +0 -78
- data/ext/clansp.c +0 -74
- data/ext/clansy.c +0 -72
- data/ext/clantb.c +0 -80
- data/ext/clantp.c +0 -80
- data/ext/clantr.c +0 -82
- data/ext/clapll.c +0 -105
- data/ext/clapmr.c +0 -97
- data/ext/clapmt.c +0 -101
- data/ext/claqgb.c +0 -117
- data/ext/claqge.c +0 -109
- data/ext/claqhb.c +0 -97
- data/ext/claqhe.c +0 -97
- data/ext/claqhp.c +0 -94
- data/ext/claqp2.c +0 -158
- data/ext/claqps.c +0 -208
- data/ext/claqr0.c +0 -145
- data/ext/claqr1.c +0 -76
- data/ext/claqr2.c +0 -174
- data/ext/claqr3.c +0 -174
- data/ext/claqr4.c +0 -145
- data/ext/claqr5.c +0 -179
- data/ext/claqsb.c +0 -101
- data/ext/claqsp.c +0 -94
- data/ext/claqsy.c +0 -97
- data/ext/clar1v.c +0 -173
- data/ext/clar2v.c +0 -149
- data/ext/clarcm.c +0 -86
- data/ext/clarf.c +0 -102
- data/ext/clarfb.c +0 -123
- data/ext/clarfg.c +0 -84
- data/ext/clarfgp.c +0 -84
- data/ext/clarft.c +0 -105
- data/ext/clarfx.c +0 -94
- data/ext/clargv.c +0 -114
- data/ext/clarnv.c +0 -83
- data/ext/clarrv.c +0 -271
- data/ext/clarscl2.c +0 -82
- data/ext/clartg.c +0 -63
- data/ext/clartv.c +0 -130
- data/ext/clarz.c +0 -106
- data/ext/clarzb.c +0 -127
- data/ext/clarzt.c +0 -105
- data/ext/clascl.c +0 -97
- data/ext/clascl2.c +0 -82
- data/ext/claset.c +0 -88
- data/ext/clasr.c +0 -110
- data/ext/classq.c +0 -70
- data/ext/claswp.c +0 -94
- data/ext/clasyf.c +0 -97
- data/ext/clatbs.c +0 -130
- data/ext/clatdf.c +0 -119
- data/ext/clatps.c +0 -124
- data/ext/clatrd.c +0 -105
- data/ext/clatrs.c +0 -126
- data/ext/clatrz.c +0 -87
- data/ext/clatzm.c +0 -132
- data/ext/clauu2.c +0 -77
- data/ext/clauum.c +0 -77
- data/ext/cpbcon.c +0 -82
- data/ext/cpbequ.c +0 -83
- data/ext/cpbrfs.c +0 -145
- data/ext/cpbstf.c +0 -81
- data/ext/cpbsv.c +0 -107
- data/ext/cpbsvx.c +0 -201
- data/ext/cpbtf2.c +0 -81
- data/ext/cpbtrf.c +0 -81
- data/ext/cpbtrs.c +0 -95
- data/ext/cpftrf.c +0 -82
- data/ext/cpftri.c +0 -82
- data/ext/cpftrs.c +0 -97
- data/ext/cpocon.c +0 -78
- data/ext/cpoequ.c +0 -75
- data/ext/cpoequb.c +0 -75
- data/ext/cporfs.c +0 -141
- data/ext/cporfsx.c +0 -206
- data/ext/cposv.c +0 -103
- data/ext/cposvx.c +0 -197
- data/ext/cposvxx.c +0 -235
- data/ext/cpotf2.c +0 -77
- data/ext/cpotrf.c +0 -77
- data/ext/cpotri.c +0 -77
- data/ext/cpotrs.c +0 -91
- data/ext/cppcon.c +0 -78
- data/ext/cppequ.c +0 -79
- data/ext/cpprfs.c +0 -139
- data/ext/cppsv.c +0 -104
- data/ext/cppsvx.c +0 -191
- data/ext/cpptrf.c +0 -78
- data/ext/cpptri.c +0 -78
- data/ext/cpptrs.c +0 -93
- data/ext/cpstf2.c +0 -95
- data/ext/cpstrf.c +0 -95
- data/ext/cptcon.c +0 -81
- data/ext/cpteqr.c +0 -126
- data/ext/cptrfs.c +0 -161
- data/ext/cptsv.c +0 -119
- data/ext/cptsvx.c +0 -171
- data/ext/cpttrf.c +0 -93
- data/ext/cpttrs.c +0 -101
- data/ext/cptts2.c +0 -98
- data/ext/crot.c +0 -107
- data/ext/cspcon.c +0 -85
- data/ext/cspmv.c +0 -115
- data/ext/cspr.c +0 -96
- data/ext/csprfs.c +0 -149
- data/ext/cspsv.c +0 -110
- data/ext/cspsvx.c +0 -163
- data/ext/csptrf.c +0 -84
- data/ext/csptri.c +0 -89
- data/ext/csptrs.c +0 -101
- data/ext/csrscl.c +0 -79
- data/ext/cstedc.c +0 -177
- data/ext/cstegr.c +0 -188
- data/ext/cstein.c +0 -134
- data/ext/cstemr.c +0 -193
- data/ext/csteqr.c +0 -126
- data/ext/csycon.c +0 -87
- data/ext/csyconv.c +0 -84
- data/ext/csyequb.c +0 -82
- data/ext/csymv.c +0 -115
- data/ext/csyr.c +0 -95
- data/ext/csyrfs.c +0 -153
- data/ext/csyrfsx.c +0 -218
- data/ext/csysv.c +0 -129
- data/ext/csysvx.c +0 -183
- data/ext/csysvxx.c +0 -258
- data/ext/csyswapr.c +0 -82
- data/ext/csytf2.c +0 -85
- data/ext/csytrf.c +0 -97
- data/ext/csytri.c +0 -92
- data/ext/csytri2.c +0 -108
- data/ext/csytri2x.c +0 -96
- data/ext/csytrs.c +0 -103
- data/ext/csytrs2.c +0 -106
- data/ext/ctbcon.c +0 -86
- data/ext/ctbrfs.c +0 -127
- data/ext/ctbtrs.c +0 -103
- data/ext/ctfsm.c +0 -111
- data/ext/ctftri.c +0 -86
- data/ext/ctfttp.c +0 -79
- data/ext/ctfttr.c +0 -80
- data/ext/ctgevc.c +0 -156
- data/ext/ctgex2.c +0 -171
- data/ext/ctgexc.c +0 -172
- data/ext/ctgsen.c +0 -244
- data/ext/ctgsja.c +0 -227
- data/ext/ctgsna.c +0 -164
- data/ext/ctgsy2.c +0 -176
- data/ext/ctgsyl.c +0 -190
- data/ext/ctpcon.c +0 -82
- data/ext/ctprfs.c +0 -123
- data/ext/ctptri.c +0 -82
- data/ext/ctptrs.c +0 -101
- data/ext/ctpttf.c +0 -79
- data/ext/ctpttr.c +0 -76
- data/ext/ctrcon.c +0 -82
- data/ext/ctrevc.c +0 -154
- data/ext/ctrexc.c +0 -111
- data/ext/ctrrfs.c +0 -123
- data/ext/ctrsen.c +0 -154
- data/ext/ctrsna.c +0 -137
- data/ext/ctrsyl.c +0 -116
- data/ext/ctrti2.c +0 -81
- data/ext/ctrtri.c +0 -81
- data/ext/ctrtrs.c +0 -99
- data/ext/ctrttf.c +0 -77
- data/ext/ctrttp.c +0 -73
- data/ext/ctzrqf.c +0 -83
- data/ext/ctzrzf.c +0 -101
- data/ext/cunbdb.c +0 -232
- data/ext/cuncsd.c +0 -204
- data/ext/cung2l.c +0 -92
- data/ext/cung2r.c +0 -92
- data/ext/cungbr.c +0 -115
- data/ext/cunghr.c +0 -111
- data/ext/cungl2.c +0 -90
- data/ext/cunglq.c +0 -107
- data/ext/cungql.c +0 -107
- data/ext/cungqr.c +0 -107
- data/ext/cungr2.c +0 -90
- data/ext/cungrq.c +0 -107
- data/ext/cungtr.c +0 -107
- data/ext/cunm2l.c +0 -114
- data/ext/cunm2r.c +0 -114
- data/ext/cunmbr.c +0 -139
- data/ext/cunmhr.c +0 -133
- data/ext/cunml2.c +0 -110
- data/ext/cunmlq.c +0 -125
- data/ext/cunmql.c +0 -129
- data/ext/cunmqr.c +0 -129
- data/ext/cunmr2.c +0 -110
- data/ext/cunmr3.c +0 -114
- data/ext/cunmrq.c +0 -125
- data/ext/cunmrz.c +0 -129
- data/ext/cunmtr.c +0 -129
- data/ext/cupgtr.c +0 -91
- data/ext/cupmtr.c +0 -116
- data/ext/dbbcsd.c +0 -287
- data/ext/dbdsdc.c +0 -151
- data/ext/dbdsqr.c +0 -182
- data/ext/ddisna.c +0 -75
- data/ext/dgbbrd.c +0 -154
- data/ext/dgbcon.c +0 -98
- data/ext/dgbequ.c +0 -98
- data/ext/dgbequb.c +0 -96
- data/ext/dgbrfs.c +0 -161
- data/ext/dgbrfsx.c +0 -249
- data/ext/dgbsv.c +0 -115
- data/ext/dgbsvx.c +0 -286
- data/ext/dgbsvxx.c +0 -289
- data/ext/dgbtf2.c +0 -93
- data/ext/dgbtrf.c +0 -93
- data/ext/dgbtrs.c +0 -111
- data/ext/dgebak.c +0 -101
- data/ext/dgebal.c +0 -91
- data/ext/dgebd2.c +0 -112
- data/ext/dgebrd.c +0 -127
- data/ext/dgecon.c +0 -78
- data/ext/dgeequ.c +0 -88
- data/ext/dgeequb.c +0 -88
- data/ext/dgees.c +0 -148
- data/ext/dgeesx.c +0 -170
- data/ext/dgeev.c +0 -137
- data/ext/dgeevx.c +0 -181
- data/ext/dgegs.c +0 -171
- data/ext/dgegv.c +0 -171
- data/ext/dgehd2.c +0 -92
- data/ext/dgehrd.c +0 -107
- data/ext/dgejsv.c +0 -159
- data/ext/dgelq2.c +0 -86
- data/ext/dgelqf.c +0 -103
- data/ext/dgels.c +0 -137
- data/ext/dgelsd.c +0 -149
- data/ext/dgelss.c +0 -148
- data/ext/dgelsx.c +0 -136
- data/ext/dgelsy.c +0 -163
- data/ext/dgeql2.c +0 -88
- data/ext/dgeqlf.c +0 -103
- data/ext/dgeqp3.c +0 -126
- data/ext/dgeqpf.c +0 -111
- data/ext/dgeqr2.c +0 -88
- data/ext/dgeqr2p.c +0 -88
- data/ext/dgeqrf.c +0 -103
- data/ext/dgeqrfp.c +0 -103
- data/ext/dgerfs.c +0 -153
- data/ext/dgerfsx.c +0 -219
- data/ext/dgerq2.c +0 -86
- data/ext/dgerqf.c +0 -103
- data/ext/dgesc2.c +0 -108
- data/ext/dgesdd.c +0 -132
- data/ext/dgesv.c +0 -107
- data/ext/dgesvd.c +0 -143
- data/ext/dgesvj.c +0 -156
- data/ext/dgesvx.c +0 -278
- data/ext/dgesvxx.c +0 -281
- data/ext/dgetc2.c +0 -89
- data/ext/dgetf2.c +0 -85
- data/ext/dgetrf.c +0 -85
- data/ext/dgetri.c +0 -103
- data/ext/dgetrs.c +0 -103
- data/ext/dggbak.c +0 -113
- data/ext/dggbal.c +0 -128
- data/ext/dgges.c +0 -198
- data/ext/dggesx.c +0 -231
- data/ext/dggev.c +0 -171
- data/ext/dggevx.c +0 -229
- data/ext/dggglm.c +0 -156
- data/ext/dgghrd.c +0 -167
- data/ext/dgglse.c +0 -171
- data/ext/dggqrf.c +0 -137
- data/ext/dggrqf.c +0 -141
- data/ext/dggsvd.c +0 -181
- data/ext/dggsvp.c +0 -171
- data/ext/dgsvj0.c +0 -182
- data/ext/dgsvj1.c +0 -186
- data/ext/dgtcon.c +0 -124
- data/ext/dgtrfs.c +0 -209
- data/ext/dgtsv.c +0 -142
- data/ext/dgtsvx.c +0 -256
- data/ext/dgttrf.c +0 -132
- data/ext/dgttrs.c +0 -137
- data/ext/dgtts2.c +0 -134
- data/ext/dhgeqz.c +0 -213
- data/ext/dhsein.c +0 -205
- data/ext/dhseqr.c +0 -153
- data/ext/disnan.c +0 -51
- data/ext/dla_gbamv.c +0 -129
- data/ext/dla_gbrcond.c +0 -142
- data/ext/dla_gbrfsx_extended.c +0 -293
- data/ext/dla_gbrpvgrw.c +0 -87
- data/ext/dla_geamv.c +0 -119
- data/ext/dla_gercond.c +0 -134
- data/ext/dla_gerfsx_extended.c +0 -281
- data/ext/dla_lin_berr.c +0 -84
- data/ext/dla_porcond.c +0 -122
- data/ext/dla_porfsx_extended.c +0 -271
- data/ext/dla_porpvgrw.c +0 -95
- data/ext/dla_rpvgrw.c +0 -79
- data/ext/dla_syamv.c +0 -113
- data/ext/dla_syrcond.c +0 -134
- data/ext/dla_syrfsx_extended.c +0 -283
- data/ext/dla_syrpvgrw.c +0 -107
- data/ext/dla_wwaddw.c +0 -102
- data/ext/dlabad.c +0 -54
- data/ext/dlabrd.c +0 -132
- data/ext/dlacn2.c +0 -106
- data/ext/dlacon.c +0 -83
- data/ext/dlacpy.c +0 -77
- data/ext/dladiv.c +0 -66
- data/ext/dlae2.c +0 -62
- data/ext/dlaebz.c +0 -218
- data/ext/dlaed0.c +0 -127
- data/ext/dlaed1.c +0 -133
- data/ext/dlaed2.c +0 -189
- data/ext/dlaed3.c +0 -161
- data/ext/dlaed4.c +0 -90
- data/ext/dlaed5.c +0 -87
- data/ext/dlaed6.c +0 -90
- data/ext/dlaed7.c +0 -248
- data/ext/dlaed8.c +0 -206
- data/ext/dlaed9.c +0 -111
- data/ext/dlaeda.c +0 -160
- data/ext/dlaein.c +0 -143
- data/ext/dlaev2.c +0 -68
- data/ext/dlaexc.c +0 -118
- data/ext/dlag2.c +0 -91
- data/ext/dlag2s.c +0 -76
- data/ext/dlags2.c +0 -90
- data/ext/dlagtf.c +0 -140
- data/ext/dlagtm.c +0 -132
- data/ext/dlagts.c +0 -139
- data/ext/dlagv2.c +0 -132
- data/ext/dlahqr.c +0 -143
- data/ext/dlahr2.c +0 -112
- data/ext/dlahrd.c +0 -112
- data/ext/dlaic1.c +0 -89
- data/ext/dlaln2.c +0 -120
- data/ext/dlals0.c +0 -201
- data/ext/dlalsa.c +0 -270
- data/ext/dlalsd.c +0 -142
- data/ext/dlamrg.c +0 -80
- data/ext/dlaneg.c +0 -83
- data/ext/dlangb.c +0 -78
- data/ext/dlange.c +0 -74
- data/ext/dlangt.c +0 -87
- data/ext/dlanhs.c +0 -70
- data/ext/dlansb.c +0 -78
- data/ext/dlansf.c +0 -80
- data/ext/dlansp.c +0 -76
- data/ext/dlanst.c +0 -75
- data/ext/dlansy.c +0 -74
- data/ext/dlantb.c +0 -82
- data/ext/dlantp.c +0 -80
- data/ext/dlantr.c +0 -82
- data/ext/dlanv2.c +0 -82
- data/ext/dlapll.c +0 -105
- data/ext/dlapmr.c +0 -97
- data/ext/dlapmt.c +0 -101
- data/ext/dlapy2.c +0 -55
- data/ext/dlapy3.c +0 -59
- data/ext/dlaqgb.c +0 -117
- data/ext/dlaqge.c +0 -109
- data/ext/dlaqp2.c +0 -158
- data/ext/dlaqps.c +0 -208
- data/ext/dlaqr0.c +0 -153
- data/ext/dlaqr1.c +0 -82
- data/ext/dlaqr2.c +0 -182
- data/ext/dlaqr3.c +0 -182
- data/ext/dlaqr4.c +0 -153
- data/ext/dlaqr5.c +0 -200
- data/ext/dlaqsb.c +0 -101
- data/ext/dlaqsp.c +0 -94
- data/ext/dlaqsy.c +0 -97
- data/ext/dlaqtr.c +0 -114
- data/ext/dlar1v.c +0 -173
- data/ext/dlar2v.c +0 -149
- data/ext/dlarf.c +0 -101
- data/ext/dlarfb.c +0 -123
- data/ext/dlarfg.c +0 -83
- data/ext/dlarfgp.c +0 -83
- data/ext/dlarft.c +0 -105
- data/ext/dlarfx.c +0 -93
- data/ext/dlargv.c +0 -114
- data/ext/dlarnv.c +0 -83
- data/ext/dlarra.c +0 -124
- data/ext/dlarrb.c +0 -178
- data/ext/dlarrc.c +0 -96
- data/ext/dlarrd.c +0 -190
- data/ext/dlarre.c +0 -221
- data/ext/dlarrf.c +0 -176
- data/ext/dlarrj.c +0 -147
- data/ext/dlarrk.c +0 -97
- data/ext/dlarrr.c +0 -82
- data/ext/dlarrv.c +0 -271
- data/ext/dlarscl2.c +0 -82
- data/ext/dlartg.c +0 -61
- data/ext/dlartgp.c +0 -61
- data/ext/dlartgs.c +0 -62
- data/ext/dlartv.c +0 -130
- data/ext/dlaruv.c +0 -79
- data/ext/dlarz.c +0 -105
- data/ext/dlarzb.c +0 -127
- data/ext/dlarzt.c +0 -105
- data/ext/dlas2.c +0 -62
- data/ext/dlascl.c +0 -97
- data/ext/dlascl2.c +0 -82
- data/ext/dlasd0.c +0 -120
- data/ext/dlasd1.c +0 -162
- data/ext/dlasd2.c +0 -228
- data/ext/dlasd3.c +0 -202
- data/ext/dlasd4.c +0 -93
- data/ext/dlasd5.c +0 -90
- data/ext/dlasd6.c +0 -236
- data/ext/dlasd7.c +0 -225
- data/ext/dlasd8.c +0 -173
- data/ext/dlasda.c +0 -221
- data/ext/dlasdq.c +0 -186
- data/ext/dlasdt.c +0 -82
- data/ext/dlaset.c +0 -86
- data/ext/dlasq1.c +0 -96
- data/ext/dlasq2.c +0 -74
- data/ext/dlasq3.c +0 -138
- data/ext/dlasq4.c +0 -107
- data/ext/dlasq5.c +0 -94
- data/ext/dlasq6.c +0 -86
- data/ext/dlasr.c +0 -110
- data/ext/dlasrt.c +0 -74
- data/ext/dlassq.c +0 -70
- data/ext/dlasv2.c +0 -74
- data/ext/dlaswp.c +0 -94
- data/ext/dlasy2.c +0 -126
- data/ext/dlasyf.c +0 -97
- data/ext/dlat2s.c +0 -76
- data/ext/dlatbs.c +0 -130
- data/ext/dlatdf.c +0 -119
- data/ext/dlatps.c +0 -124
- data/ext/dlatrd.c +0 -105
- data/ext/dlatrs.c +0 -126
- data/ext/dlatrz.c +0 -87
- data/ext/dlatzm.c +0 -131
- data/ext/dlauu2.c +0 -77
- data/ext/dlauum.c +0 -77
- data/ext/dopgtr.c +0 -91
- data/ext/dopmtr.c +0 -116
- data/ext/dorbdb.c +0 -232
- data/ext/dorcsd.c +0 -197
- data/ext/dorg2l.c +0 -92
- data/ext/dorg2r.c +0 -92
- data/ext/dorgbr.c +0 -115
- data/ext/dorghr.c +0 -111
- data/ext/dorgl2.c +0 -90
- data/ext/dorglq.c +0 -107
- data/ext/dorgql.c +0 -107
- data/ext/dorgqr.c +0 -107
- data/ext/dorgr2.c +0 -90
- data/ext/dorgrq.c +0 -107
- data/ext/dorgtr.c +0 -107
- data/ext/dorm2l.c +0 -114
- data/ext/dorm2r.c +0 -114
- data/ext/dormbr.c +0 -139
- data/ext/dormhr.c +0 -133
- data/ext/dorml2.c +0 -110
- data/ext/dormlq.c +0 -125
- data/ext/dormql.c +0 -129
- data/ext/dormqr.c +0 -129
- data/ext/dormr2.c +0 -110
- data/ext/dormr3.c +0 -114
- data/ext/dormrq.c +0 -125
- data/ext/dormrz.c +0 -129
- data/ext/dormtr.c +0 -129
- data/ext/dpbcon.c +0 -82
- data/ext/dpbequ.c +0 -83
- data/ext/dpbrfs.c +0 -145
- data/ext/dpbstf.c +0 -81
- data/ext/dpbsv.c +0 -107
- data/ext/dpbsvx.c +0 -201
- data/ext/dpbtf2.c +0 -81
- data/ext/dpbtrf.c +0 -81
- data/ext/dpbtrs.c +0 -95
- data/ext/dpftrf.c +0 -82
- data/ext/dpftri.c +0 -82
- data/ext/dpftrs.c +0 -97
- data/ext/dpocon.c +0 -78
- data/ext/dpoequ.c +0 -75
- data/ext/dpoequb.c +0 -75
- data/ext/dporfs.c +0 -141
- data/ext/dporfsx.c +0 -206
- data/ext/dposv.c +0 -103
- data/ext/dposvx.c +0 -197
- data/ext/dposvxx.c +0 -235
- data/ext/dpotf2.c +0 -77
- data/ext/dpotrf.c +0 -77
- data/ext/dpotri.c +0 -77
- data/ext/dpotrs.c +0 -91
- data/ext/dppcon.c +0 -78
- data/ext/dppequ.c +0 -79
- data/ext/dpprfs.c +0 -139
- data/ext/dppsv.c +0 -104
- data/ext/dppsvx.c +0 -191
- data/ext/dpptrf.c +0 -78
- data/ext/dpptri.c +0 -78
- data/ext/dpptrs.c +0 -93
- data/ext/dpstf2.c +0 -95
- data/ext/dpstrf.c +0 -95
- data/ext/dptcon.c +0 -81
- data/ext/dpteqr.c +0 -126
- data/ext/dptrfs.c +0 -154
- data/ext/dptsv.c +0 -119
- data/ext/dptsvx.c +0 -168
- data/ext/dpttrf.c +0 -93
- data/ext/dpttrs.c +0 -97
- data/ext/dptts2.c +0 -94
- data/ext/drscl.c +0 -79
- data/ext/dsbev.c +0 -107
- data/ext/dsbevd.c +0 -140
- data/ext/dsbevx.c +0 -157
- data/ext/dsbgst.c +0 -117
- data/ext/dsbgv.c +0 -137
- data/ext/dsbgvd.c +0 -170
- data/ext/dsbgvx.c +0 -197
- data/ext/dsbtrd.c +0 -130
- data/ext/dsfrk.c +0 -109
- data/ext/dsgesv.c +0 -115
- data/ext/dspcon.c +0 -88
- data/ext/dspev.c +0 -102
- data/ext/dspevd.c +0 -135
- data/ext/dspevx.c +0 -141
- data/ext/dspgst.c +0 -94
- data/ext/dspgv.c +0 -129
- data/ext/dspgvd.c +0 -162
- data/ext/dspgvx.c +0 -168
- data/ext/dsposv.c +0 -111
- data/ext/dsprfs.c +0 -149
- data/ext/dspsv.c +0 -110
- data/ext/dspsvx.c +0 -163
- data/ext/dsptrd.c +0 -100
- data/ext/dsptrf.c +0 -84
- data/ext/dsptri.c +0 -89
- data/ext/dsptrs.c +0 -101
- data/ext/dstebz.c +0 -135
- data/ext/dstedc.c +0 -159
- data/ext/dstegr.c +0 -188
- data/ext/dstein.c +0 -134
- data/ext/dstemr.c +0 -193
- data/ext/dsteqr.c +0 -126
- data/ext/dsterf.c +0 -93
- data/ext/dstev.c +0 -111
- data/ext/dstevd.c +0 -144
- data/ext/dstevr.c +0 -188
- data/ext/dstevx.c +0 -158
- data/ext/dsycon.c +0 -90
- data/ext/dsyconv.c +0 -84
- data/ext/dsyequb.c +0 -82
- data/ext/dsyev.c +0 -107
- data/ext/dsyevd.c +0 -125
- data/ext/dsyevr.c +0 -172
- data/ext/dsyevx.c +0 -157
- data/ext/dsygs2.c +0 -95
- data/ext/dsygst.c +0 -95
- data/ext/dsygv.c +0 -137
- data/ext/dsygvd.c +0 -155
- data/ext/dsygvx.c +0 -187
- data/ext/dsyrfs.c +0 -153
- data/ext/dsyrfsx.c +0 -218
- data/ext/dsysv.c +0 -129
- data/ext/dsysvx.c +0 -183
- data/ext/dsysvxx.c +0 -258
- data/ext/dsyswapr.c +0 -82
- data/ext/dsytd2.c +0 -101
- data/ext/dsytf2.c +0 -85
- data/ext/dsytrd.c +0 -113
- data/ext/dsytrf.c +0 -97
- data/ext/dsytri.c +0 -92
- data/ext/dsytri2.c +0 -108
- data/ext/dsytri2x.c +0 -96
- data/ext/dsytrs.c +0 -103
- data/ext/dsytrs2.c +0 -106
- data/ext/dtbcon.c +0 -86
- data/ext/dtbrfs.c +0 -127
- data/ext/dtbtrs.c +0 -103
- data/ext/dtfsm.c +0 -110
- data/ext/dtftri.c +0 -86
- data/ext/dtfttp.c +0 -79
- data/ext/dtfttr.c +0 -80
- data/ext/dtgevc.c +0 -153
- data/ext/dtgex2.c +0 -180
- data/ext/dtgexc.c +0 -187
- data/ext/dtgsen.c +0 -252
- data/ext/dtgsja.c +0 -227
- data/ext/dtgsna.c +0 -164
- data/ext/dtgsy2.c +0 -182
- data/ext/dtgsyl.c +0 -190
- data/ext/dtpcon.c +0 -82
- data/ext/dtprfs.c +0 -123
- data/ext/dtptri.c +0 -82
- data/ext/dtptrs.c +0 -101
- data/ext/dtpttf.c +0 -79
- data/ext/dtpttr.c +0 -76
- data/ext/dtrcon.c +0 -82
- data/ext/dtrevc.c +0 -150
- data/ext/dtrexc.c +0 -116
- data/ext/dtrrfs.c +0 -123
- data/ext/dtrsen.c +0 -169
- data/ext/dtrsna.c +0 -137
- data/ext/dtrsyl.c +0 -116
- data/ext/dtrti2.c +0 -81
- data/ext/dtrtri.c +0 -81
- data/ext/dtrtrs.c +0 -99
- data/ext/dtrttf.c +0 -77
- data/ext/dtrttp.c +0 -73
- data/ext/dtzrqf.c +0 -83
- data/ext/dtzrzf.c +0 -101
- data/ext/dzsum1.c +0 -63
- data/ext/icmax1.c +0 -63
- data/ext/ieeeck.c +0 -59
- data/ext/ilaclc.c +0 -65
- data/ext/ilaclr.c +0 -65
- data/ext/iladiag.c +0 -51
- data/ext/iladlc.c +0 -65
- data/ext/iladlr.c +0 -65
- data/ext/ilaenv.c +0 -75
- data/ext/ilaprec.c +0 -51
- data/ext/ilaslc.c +0 -65
- data/ext/ilaslr.c +0 -65
- data/ext/ilatrans.c +0 -51
- data/ext/ilauplo.c +0 -51
- data/ext/ilaver.c +0 -53
- data/ext/ilazlc.c +0 -65
- data/ext/ilazlr.c +0 -65
- data/ext/iparmq.c +0 -75
- data/ext/izmax1.c +0 -63
- data/ext/lsamen.c +0 -59
- data/ext/rb_lapack.c +0 -3279
- data/ext/sbbcsd.c +0 -287
- data/ext/sbdsdc.c +0 -157
- data/ext/sbdsqr.c +0 -182
- data/ext/scsum1.c +0 -63
- data/ext/sdisna.c +0 -75
- data/ext/sgbbrd.c +0 -154
- data/ext/sgbcon.c +0 -98
- data/ext/sgbequ.c +0 -98
- data/ext/sgbequb.c +0 -96
- data/ext/sgbrfs.c +0 -161
- data/ext/sgbrfsx.c +0 -249
- data/ext/sgbsv.c +0 -115
- data/ext/sgbsvx.c +0 -286
- data/ext/sgbsvxx.c +0 -289
- data/ext/sgbtf2.c +0 -93
- data/ext/sgbtrf.c +0 -93
- data/ext/sgbtrs.c +0 -111
- data/ext/sgebak.c +0 -101
- data/ext/sgebal.c +0 -91
- data/ext/sgebd2.c +0 -112
- data/ext/sgebrd.c +0 -127
- data/ext/sgecon.c +0 -78
- data/ext/sgeequ.c +0 -88
- data/ext/sgeequb.c +0 -88
- data/ext/sgees.c +0 -148
- data/ext/sgeesx.c +0 -170
- data/ext/sgeev.c +0 -137
- data/ext/sgeevx.c +0 -181
- data/ext/sgegs.c +0 -171
- data/ext/sgegv.c +0 -171
- data/ext/sgehd2.c +0 -92
- data/ext/sgehrd.c +0 -107
- data/ext/sgejsv.c +0 -159
- data/ext/sgelq2.c +0 -86
- data/ext/sgelqf.c +0 -103
- data/ext/sgels.c +0 -137
- data/ext/sgelsd.c +0 -149
- data/ext/sgelss.c +0 -148
- data/ext/sgelsx.c +0 -136
- data/ext/sgelsy.c +0 -163
- data/ext/sgeql2.c +0 -88
- data/ext/sgeqlf.c +0 -103
- data/ext/sgeqp3.c +0 -126
- data/ext/sgeqpf.c +0 -111
- data/ext/sgeqr2.c +0 -88
- data/ext/sgeqr2p.c +0 -88
- data/ext/sgeqrf.c +0 -103
- data/ext/sgeqrfp.c +0 -103
- data/ext/sgerfs.c +0 -153
- data/ext/sgerfsx.c +0 -219
- data/ext/sgerq2.c +0 -86
- data/ext/sgerqf.c +0 -103
- data/ext/sgesc2.c +0 -108
- data/ext/sgesdd.c +0 -132
- data/ext/sgesv.c +0 -107
- data/ext/sgesvd.c +0 -143
- data/ext/sgesvj.c +0 -156
- data/ext/sgesvx.c +0 -278
- data/ext/sgesvxx.c +0 -281
- data/ext/sgetc2.c +0 -89
- data/ext/sgetf2.c +0 -85
- data/ext/sgetrf.c +0 -85
- data/ext/sgetri.c +0 -103
- data/ext/sgetrs.c +0 -103
- data/ext/sggbak.c +0 -113
- data/ext/sggbal.c +0 -128
- data/ext/sgges.c +0 -198
- data/ext/sggesx.c +0 -231
- data/ext/sggev.c +0 -171
- data/ext/sggevx.c +0 -229
- data/ext/sggglm.c +0 -156
- data/ext/sgghrd.c +0 -167
- data/ext/sgglse.c +0 -171
- data/ext/sggqrf.c +0 -137
- data/ext/sggrqf.c +0 -141
- data/ext/sggsvd.c +0 -181
- data/ext/sggsvp.c +0 -171
- data/ext/sgsvj0.c +0 -182
- data/ext/sgsvj1.c +0 -186
- data/ext/sgtcon.c +0 -124
- data/ext/sgtrfs.c +0 -209
- data/ext/sgtsv.c +0 -142
- data/ext/sgtsvx.c +0 -256
- data/ext/sgttrf.c +0 -132
- data/ext/sgttrs.c +0 -137
- data/ext/sgtts2.c +0 -134
- data/ext/shgeqz.c +0 -213
- data/ext/shsein.c +0 -205
- data/ext/shseqr.c +0 -153
- data/ext/sisnan.c +0 -51
- data/ext/sla_gbamv.c +0 -129
- data/ext/sla_gbrcond.c +0 -142
- data/ext/sla_gbrfsx_extended.c +0 -291
- data/ext/sla_gbrpvgrw.c +0 -87
- data/ext/sla_geamv.c +0 -119
- data/ext/sla_gercond.c +0 -134
- data/ext/sla_gerfsx_extended.c +0 -283
- data/ext/sla_lin_berr.c +0 -84
- data/ext/sla_porcond.c +0 -122
- data/ext/sla_porfsx_extended.c +0 -271
- data/ext/sla_porpvgrw.c +0 -95
- data/ext/sla_rpvgrw.c +0 -79
- data/ext/sla_syamv.c +0 -116
- data/ext/sla_syrcond.c +0 -134
- data/ext/sla_syrfsx_extended.c +0 -283
- data/ext/sla_syrpvgrw.c +0 -107
- data/ext/sla_wwaddw.c +0 -102
- data/ext/slabad.c +0 -54
- data/ext/slabrd.c +0 -132
- data/ext/slacn2.c +0 -106
- data/ext/slacon.c +0 -83
- data/ext/slacpy.c +0 -77
- data/ext/sladiv.c +0 -66
- data/ext/slae2.c +0 -62
- data/ext/slaebz.c +0 -218
- data/ext/slaed0.c +0 -127
- data/ext/slaed1.c +0 -133
- data/ext/slaed2.c +0 -189
- data/ext/slaed3.c +0 -161
- data/ext/slaed4.c +0 -90
- data/ext/slaed5.c +0 -87
- data/ext/slaed6.c +0 -90
- data/ext/slaed7.c +0 -248
- data/ext/slaed8.c +0 -206
- data/ext/slaed9.c +0 -111
- data/ext/slaeda.c +0 -160
- data/ext/slaein.c +0 -143
- data/ext/slaev2.c +0 -68
- data/ext/slaexc.c +0 -118
- data/ext/slag2.c +0 -91
- data/ext/slag2d.c +0 -76
- data/ext/slags2.c +0 -90
- data/ext/slagtf.c +0 -140
- data/ext/slagtm.c +0 -132
- data/ext/slagts.c +0 -139
- data/ext/slagv2.c +0 -132
- data/ext/slahqr.c +0 -143
- data/ext/slahr2.c +0 -112
- data/ext/slahrd.c +0 -114
- data/ext/slaic1.c +0 -89
- data/ext/slaln2.c +0 -120
- data/ext/slals0.c +0 -201
- data/ext/slalsa.c +0 -270
- data/ext/slalsd.c +0 -142
- data/ext/slamrg.c +0 -80
- data/ext/slaneg.c +0 -83
- data/ext/slangb.c +0 -78
- data/ext/slange.c +0 -74
- data/ext/slangt.c +0 -87
- data/ext/slanhs.c +0 -70
- data/ext/slansb.c +0 -78
- data/ext/slansf.c +0 -78
- data/ext/slansp.c +0 -76
- data/ext/slanst.c +0 -75
- data/ext/slansy.c +0 -74
- data/ext/slantb.c +0 -82
- data/ext/slantp.c +0 -80
- data/ext/slantr.c +0 -82
- data/ext/slanv2.c +0 -82
- data/ext/slapll.c +0 -105
- data/ext/slapmr.c +0 -97
- data/ext/slapmt.c +0 -101
- data/ext/slapy2.c +0 -55
- data/ext/slapy3.c +0 -59
- data/ext/slaqgb.c +0 -117
- data/ext/slaqge.c +0 -109
- data/ext/slaqp2.c +0 -158
- data/ext/slaqps.c +0 -208
- data/ext/slaqr0.c +0 -153
- data/ext/slaqr1.c +0 -82
- data/ext/slaqr2.c +0 -182
- data/ext/slaqr3.c +0 -182
- data/ext/slaqr4.c +0 -153
- data/ext/slaqr5.c +0 -200
- data/ext/slaqsb.c +0 -101
- data/ext/slaqsp.c +0 -94
- data/ext/slaqsy.c +0 -97
- data/ext/slaqtr.c +0 -114
- data/ext/slar1v.c +0 -173
- data/ext/slar2v.c +0 -149
- data/ext/slarf.c +0 -101
- data/ext/slarfb.c +0 -123
- data/ext/slarfg.c +0 -83
- data/ext/slarfgp.c +0 -83
- data/ext/slarft.c +0 -105
- data/ext/slarfx.c +0 -93
- data/ext/slargv.c +0 -114
- data/ext/slarnv.c +0 -83
- data/ext/slarra.c +0 -124
- data/ext/slarrb.c +0 -178
- data/ext/slarrc.c +0 -96
- data/ext/slarrd.c +0 -190
- data/ext/slarre.c +0 -221
- data/ext/slarrf.c +0 -176
- data/ext/slarrj.c +0 -147
- data/ext/slarrk.c +0 -97
- data/ext/slarrr.c +0 -82
- data/ext/slarrv.c +0 -271
- data/ext/slarscl2.c +0 -82
- data/ext/slartg.c +0 -61
- data/ext/slartgp.c +0 -61
- data/ext/slartgs.c +0 -62
- data/ext/slartv.c +0 -130
- data/ext/slaruv.c +0 -79
- data/ext/slarz.c +0 -105
- data/ext/slarzb.c +0 -127
- data/ext/slarzt.c +0 -105
- data/ext/slas2.c +0 -62
- data/ext/slascl.c +0 -97
- data/ext/slascl2.c +0 -82
- data/ext/slasd0.c +0 -120
- data/ext/slasd1.c +0 -160
- data/ext/slasd2.c +0 -228
- data/ext/slasd3.c +0 -212
- data/ext/slasd4.c +0 -93
- data/ext/slasd5.c +0 -90
- data/ext/slasd6.c +0 -236
- data/ext/slasd7.c +0 -225
- data/ext/slasd8.c +0 -173
- data/ext/slasda.c +0 -221
- data/ext/slasdq.c +0 -186
- data/ext/slasdt.c +0 -82
- data/ext/slaset.c +0 -86
- data/ext/slasq1.c +0 -96
- data/ext/slasq2.c +0 -74
- data/ext/slasq3.c +0 -138
- data/ext/slasq4.c +0 -107
- data/ext/slasq5.c +0 -94
- data/ext/slasq6.c +0 -86
- data/ext/slasr.c +0 -110
- data/ext/slasrt.c +0 -74
- data/ext/slassq.c +0 -70
- data/ext/slasv2.c +0 -74
- data/ext/slaswp.c +0 -94
- data/ext/slasy2.c +0 -126
- data/ext/slasyf.c +0 -97
- data/ext/slatbs.c +0 -130
- data/ext/slatdf.c +0 -119
- data/ext/slatps.c +0 -124
- data/ext/slatrd.c +0 -105
- data/ext/slatrs.c +0 -126
- data/ext/slatrz.c +0 -87
- data/ext/slatzm.c +0 -131
- data/ext/slauu2.c +0 -77
- data/ext/slauum.c +0 -77
- data/ext/sopgtr.c +0 -91
- data/ext/sopmtr.c +0 -116
- data/ext/sorbdb.c +0 -232
- data/ext/sorcsd.c +0 -197
- data/ext/sorg2l.c +0 -92
- data/ext/sorg2r.c +0 -92
- data/ext/sorgbr.c +0 -115
- data/ext/sorghr.c +0 -111
- data/ext/sorgl2.c +0 -90
- data/ext/sorglq.c +0 -107
- data/ext/sorgql.c +0 -107
- data/ext/sorgqr.c +0 -107
- data/ext/sorgr2.c +0 -90
- data/ext/sorgrq.c +0 -107
- data/ext/sorgtr.c +0 -107
- data/ext/sorm2l.c +0 -114
- data/ext/sorm2r.c +0 -114
- data/ext/sormbr.c +0 -139
- data/ext/sormhr.c +0 -133
- data/ext/sorml2.c +0 -110
- data/ext/sormlq.c +0 -125
- data/ext/sormql.c +0 -129
- data/ext/sormqr.c +0 -129
- data/ext/sormr2.c +0 -110
- data/ext/sormr3.c +0 -114
- data/ext/sormrq.c +0 -125
- data/ext/sormrz.c +0 -129
- data/ext/sormtr.c +0 -129
- data/ext/spbcon.c +0 -82
- data/ext/spbequ.c +0 -83
- data/ext/spbrfs.c +0 -145
- data/ext/spbstf.c +0 -81
- data/ext/spbsv.c +0 -107
- data/ext/spbsvx.c +0 -201
- data/ext/spbtf2.c +0 -81
- data/ext/spbtrf.c +0 -81
- data/ext/spbtrs.c +0 -95
- data/ext/spftrf.c +0 -82
- data/ext/spftri.c +0 -82
- data/ext/spftrs.c +0 -97
- data/ext/spocon.c +0 -78
- data/ext/spoequ.c +0 -75
- data/ext/spoequb.c +0 -75
- data/ext/sporfs.c +0 -141
- data/ext/sporfsx.c +0 -206
- data/ext/sposv.c +0 -103
- data/ext/sposvx.c +0 -197
- data/ext/sposvxx.c +0 -235
- data/ext/spotf2.c +0 -77
- data/ext/spotrf.c +0 -77
- data/ext/spotri.c +0 -77
- data/ext/spotrs.c +0 -91
- data/ext/sppcon.c +0 -78
- data/ext/sppequ.c +0 -79
- data/ext/spprfs.c +0 -139
- data/ext/sppsv.c +0 -104
- data/ext/sppsvx.c +0 -191
- data/ext/spptrf.c +0 -78
- data/ext/spptri.c +0 -78
- data/ext/spptrs.c +0 -93
- data/ext/spstf2.c +0 -95
- data/ext/spstrf.c +0 -95
- data/ext/sptcon.c +0 -81
- data/ext/spteqr.c +0 -126
- data/ext/sptrfs.c +0 -154
- data/ext/sptsv.c +0 -119
- data/ext/sptsvx.c +0 -168
- data/ext/spttrf.c +0 -93
- data/ext/spttrs.c +0 -97
- data/ext/sptts2.c +0 -94
- data/ext/srscl.c +0 -79
- data/ext/ssbev.c +0 -107
- data/ext/ssbevd.c +0 -140
- data/ext/ssbevx.c +0 -157
- data/ext/ssbgst.c +0 -117
- data/ext/ssbgv.c +0 -137
- data/ext/ssbgvd.c +0 -170
- data/ext/ssbgvx.c +0 -197
- data/ext/ssbtrd.c +0 -130
- data/ext/ssfrk.c +0 -109
- data/ext/sspcon.c +0 -88
- data/ext/sspev.c +0 -102
- data/ext/sspevd.c +0 -135
- data/ext/sspevx.c +0 -141
- data/ext/sspgst.c +0 -94
- data/ext/sspgv.c +0 -129
- data/ext/sspgvd.c +0 -162
- data/ext/sspgvx.c +0 -168
- data/ext/ssprfs.c +0 -149
- data/ext/sspsv.c +0 -110
- data/ext/sspsvx.c +0 -163
- data/ext/ssptrd.c +0 -100
- data/ext/ssptrf.c +0 -84
- data/ext/ssptri.c +0 -89
- data/ext/ssptrs.c +0 -101
- data/ext/sstebz.c +0 -135
- data/ext/sstedc.c +0 -159
- data/ext/sstegr.c +0 -188
- data/ext/sstein.c +0 -134
- data/ext/sstemr.c +0 -193
- data/ext/ssteqr.c +0 -126
- data/ext/ssterf.c +0 -93
- data/ext/sstev.c +0 -111
- data/ext/sstevd.c +0 -144
- data/ext/sstevr.c +0 -188
- data/ext/sstevx.c +0 -158
- data/ext/ssycon.c +0 -90
- data/ext/ssyconv.c +0 -84
- data/ext/ssyequb.c +0 -82
- data/ext/ssyev.c +0 -107
- data/ext/ssyevd.c +0 -125
- data/ext/ssyevr.c +0 -172
- data/ext/ssyevx.c +0 -157
- data/ext/ssygs2.c +0 -95
- data/ext/ssygst.c +0 -95
- data/ext/ssygv.c +0 -137
- data/ext/ssygvd.c +0 -155
- data/ext/ssygvx.c +0 -191
- data/ext/ssyrfs.c +0 -153
- data/ext/ssyrfsx.c +0 -218
- data/ext/ssysv.c +0 -129
- data/ext/ssysvx.c +0 -183
- data/ext/ssysvxx.c +0 -258
- data/ext/ssyswapr.c +0 -82
- data/ext/ssytd2.c +0 -101
- data/ext/ssytf2.c +0 -85
- data/ext/ssytrd.c +0 -113
- data/ext/ssytrf.c +0 -97
- data/ext/ssytri.c +0 -92
- data/ext/ssytri2.c +0 -127
- data/ext/ssytri2x.c +0 -96
- data/ext/ssytrs.c +0 -103
- data/ext/ssytrs2.c +0 -106
- data/ext/stbcon.c +0 -86
- data/ext/stbrfs.c +0 -127
- data/ext/stbtrs.c +0 -103
- data/ext/stfsm.c +0 -112
- data/ext/stftri.c +0 -86
- data/ext/stfttp.c +0 -79
- data/ext/stfttr.c +0 -80
- data/ext/stgevc.c +0 -153
- data/ext/stgex2.c +0 -184
- data/ext/stgexc.c +0 -191
- data/ext/stgsen.c +0 -252
- data/ext/stgsja.c +0 -227
- data/ext/stgsna.c +0 -164
- data/ext/stgsy2.c +0 -182
- data/ext/stgsyl.c +0 -190
- data/ext/stpcon.c +0 -82
- data/ext/stprfs.c +0 -123
- data/ext/stptri.c +0 -82
- data/ext/stptrs.c +0 -101
- data/ext/stpttf.c +0 -79
- data/ext/stpttr.c +0 -76
- data/ext/strcon.c +0 -82
- data/ext/strevc.c +0 -150
- data/ext/strexc.c +0 -116
- data/ext/strrfs.c +0 -123
- data/ext/strsen.c +0 -169
- data/ext/strsna.c +0 -137
- data/ext/strsyl.c +0 -116
- data/ext/strti2.c +0 -81
- data/ext/strtri.c +0 -81
- data/ext/strtrs.c +0 -99
- data/ext/strttf.c +0 -77
- data/ext/strttp.c +0 -73
- data/ext/stzrqf.c +0 -83
- data/ext/stzrzf.c +0 -101
- data/ext/xerbla.c +0 -52
- data/ext/xerbla_array.c +0 -53
- data/ext/zbbcsd.c +0 -283
- data/ext/zbdsqr.c +0 -182
- data/ext/zcgesv.c +0 -118
- data/ext/zcposv.c +0 -114
- data/ext/zdrscl.c +0 -79
- data/ext/zgbbrd.c +0 -157
- data/ext/zgbcon.c +0 -98
- data/ext/zgbequ.c +0 -98
- data/ext/zgbequb.c +0 -96
- data/ext/zgbrfs.c +0 -161
- data/ext/zgbrfsx.c +0 -249
- data/ext/zgbsv.c +0 -115
- data/ext/zgbsvx.c +0 -286
- data/ext/zgbsvxx.c +0 -289
- data/ext/zgbtf2.c +0 -93
- data/ext/zgbtrf.c +0 -93
- data/ext/zgbtrs.c +0 -111
- data/ext/zgebak.c +0 -101
- data/ext/zgebal.c +0 -91
- data/ext/zgebd2.c +0 -112
- data/ext/zgebrd.c +0 -127
- data/ext/zgecon.c +0 -78
- data/ext/zgeequ.c +0 -88
- data/ext/zgeequb.c +0 -88
- data/ext/zgees.c +0 -142
- data/ext/zgeesx.c +0 -152
- data/ext/zgeev.c +0 -132
- data/ext/zgeevx.c +0 -173
- data/ext/zgegs.c +0 -166
- data/ext/zgegv.c +0 -171
- data/ext/zgehd2.c +0 -92
- data/ext/zgehrd.c +0 -107
- data/ext/zgelq2.c +0 -86
- data/ext/zgelqf.c +0 -103
- data/ext/zgels.c +0 -137
- data/ext/zgelsd.c +0 -154
- data/ext/zgelss.c +0 -151
- data/ext/zgelsx.c +0 -139
- data/ext/zgelsy.c +0 -166
- data/ext/zgeql2.c +0 -88
- data/ext/zgeqlf.c +0 -103
- data/ext/zgeqp3.c +0 -129
- data/ext/zgeqpf.c +0 -114
- data/ext/zgeqr2.c +0 -88
- data/ext/zgeqr2p.c +0 -88
- data/ext/zgeqrf.c +0 -103
- data/ext/zgeqrfp.c +0 -103
- data/ext/zgerfs.c +0 -153
- data/ext/zgerfsx.c +0 -219
- data/ext/zgerq2.c +0 -86
- data/ext/zgerqf.c +0 -103
- data/ext/zgesc2.c +0 -108
- data/ext/zgesdd.c +0 -135
- data/ext/zgesv.c +0 -107
- data/ext/zgesvd.c +0 -146
- data/ext/zgesvx.c +0 -278
- data/ext/zgesvxx.c +0 -281
- data/ext/zgetc2.c +0 -89
- data/ext/zgetf2.c +0 -85
- data/ext/zgetrf.c +0 -85
- data/ext/zgetri.c +0 -103
- data/ext/zgetrs.c +0 -103
- data/ext/zggbak.c +0 -113
- data/ext/zggbal.c +0 -128
- data/ext/zgges.c +0 -192
- data/ext/zggesx.c +0 -230
- data/ext/zggev.c +0 -171
- data/ext/zggevx.c +0 -226
- data/ext/zggglm.c +0 -156
- data/ext/zgghrd.c +0 -167
- data/ext/zgglse.c +0 -171
- data/ext/zggqrf.c +0 -137
- data/ext/zggrqf.c +0 -141
- data/ext/zggsvd.c +0 -184
- data/ext/zggsvp.c +0 -174
- data/ext/zgtcon.c +0 -121
- data/ext/zgtrfs.c +0 -209
- data/ext/zgtsv.c +0 -142
- data/ext/zgtsvx.c +0 -256
- data/ext/zgttrf.c +0 -132
- data/ext/zgttrs.c +0 -137
- data/ext/zgtts2.c +0 -134
- data/ext/zhbev.c +0 -110
- data/ext/zhbevd.c +0 -158
- data/ext/zhbevx.c +0 -160
- data/ext/zhbgst.c +0 -120
- data/ext/zhbgv.c +0 -140
- data/ext/zhbgvd.c +0 -188
- data/ext/zhbgvx.c +0 -189
- data/ext/zhbtrd.c +0 -130
- data/ext/zhecon.c +0 -87
- data/ext/zheequb.c +0 -82
- data/ext/zheev.c +0 -110
- data/ext/zheevd.c +0 -143
- data/ext/zheevr.c +0 -190
- data/ext/zheevx.c +0 -160
- data/ext/zhegs2.c +0 -95
- data/ext/zhegst.c +0 -95
- data/ext/zhegv.c +0 -140
- data/ext/zhegvd.c +0 -173
- data/ext/zhegvx.c +0 -190
- data/ext/zherfs.c +0 -153
- data/ext/zherfsx.c +0 -218
- data/ext/zhesv.c +0 -123
- data/ext/zhesvx.c +0 -183
- data/ext/zhesvxx.c +0 -258
- data/ext/zhetd2.c +0 -101
- data/ext/zhetf2.c +0 -85
- data/ext/zhetrd.c +0 -113
- data/ext/zhetrf.c +0 -97
- data/ext/zhetri.c +0 -92
- data/ext/zhetrs.c +0 -103
- data/ext/zhetrs2.c +0 -106
- data/ext/zhfrk.c +0 -109
- data/ext/zhgeqz.c +0 -208
- data/ext/zhpcon.c +0 -85
- data/ext/zhpev.c +0 -105
- data/ext/zhpevd.c +0 -153
- data/ext/zhpevx.c +0 -144
- data/ext/zhpgst.c +0 -94
- data/ext/zhpgv.c +0 -132
- data/ext/zhpgvd.c +0 -170
- data/ext/zhpgvx.c +0 -170
- data/ext/zhprfs.c +0 -149
- data/ext/zhpsv.c +0 -110
- data/ext/zhpsvx.c +0 -163
- data/ext/zhptrd.c +0 -100
- data/ext/zhptrf.c +0 -84
- data/ext/zhptri.c +0 -89
- data/ext/zhptrs.c +0 -101
- data/ext/zhsein.c +0 -185
- data/ext/zhseqr.c +0 -145
- data/ext/zla_gbamv.c +0 -127
- data/ext/zla_gbrcond_c.c +0 -142
- data/ext/zla_gbrcond_x.c +0 -138
- data/ext/zla_gbrfsx_extended.c +0 -295
- data/ext/zla_gbrpvgrw.c +0 -87
- data/ext/zla_geamv.c +0 -119
- data/ext/zla_gercond_c.c +0 -134
- data/ext/zla_gercond_x.c +0 -130
- data/ext/zla_gerfsx_extended.c +0 -281
- data/ext/zla_heamv.c +0 -116
- data/ext/zla_hercond_c.c +0 -134
- data/ext/zla_hercond_x.c +0 -130
- data/ext/zla_herfsx_extended.c +0 -283
- data/ext/zla_herpvgrw.c +0 -107
- data/ext/zla_lin_berr.c +0 -84
- data/ext/zla_porcond_c.c +0 -122
- data/ext/zla_porcond_x.c +0 -118
- data/ext/zla_porfsx_extended.c +0 -271
- data/ext/zla_porpvgrw.c +0 -95
- data/ext/zla_rpvgrw.c +0 -79
- data/ext/zla_syamv.c +0 -116
- data/ext/zla_syrcond_c.c +0 -134
- data/ext/zla_syrcond_x.c +0 -130
- data/ext/zla_syrfsx_extended.c +0 -283
- data/ext/zla_syrpvgrw.c +0 -107
- data/ext/zla_wwaddw.c +0 -102
- data/ext/zlabrd.c +0 -132
- data/ext/zlacgv.c +0 -75
- data/ext/zlacn2.c +0 -103
- data/ext/zlacon.c +0 -80
- data/ext/zlacp2.c +0 -77
- data/ext/zlacpy.c +0 -77
- data/ext/zlacrm.c +0 -90
- data/ext/zlacrt.c +0 -108
- data/ext/zladiv.c +0 -57
- data/ext/zlaed0.c +0 -134
- data/ext/zlaed7.c +0 -247
- data/ext/zlaed8.c +0 -198
- data/ext/zlaein.c +0 -113
- data/ext/zlaesy.c +0 -74
- data/ext/zlaev2.c +0 -71
- data/ext/zlag2c.c +0 -76
- data/ext/zlags2.c +0 -92
- data/ext/zlagtm.c +0 -132
- data/ext/zlahef.c +0 -97
- data/ext/zlahqr.c +0 -135
- data/ext/zlahr2.c +0 -112
- data/ext/zlahrd.c +0 -112
- data/ext/zlaic1.c +0 -90
- data/ext/zlals0.c +0 -201
- data/ext/zlalsa.c +0 -270
- data/ext/zlalsd.c +0 -145
- data/ext/zlangb.c +0 -76
- data/ext/zlange.c +0 -74
- data/ext/zlangt.c +0 -87
- data/ext/zlanhb.c +0 -78
- data/ext/zlanhe.c +0 -74
- data/ext/zlanhf.c +0 -80
- data/ext/zlanhp.c +0 -76
- data/ext/zlanhs.c +0 -70
- data/ext/zlanht.c +0 -75
- data/ext/zlansb.c +0 -78
- data/ext/zlansp.c +0 -76
- data/ext/zlansy.c +0 -74
- data/ext/zlantb.c +0 -82
- data/ext/zlantp.c +0 -80
- data/ext/zlantr.c +0 -82
- data/ext/zlapll.c +0 -105
- data/ext/zlapmr.c +0 -97
- data/ext/zlapmt.c +0 -101
- data/ext/zlaqgb.c +0 -117
- data/ext/zlaqge.c +0 -109
- data/ext/zlaqhb.c +0 -97
- data/ext/zlaqhe.c +0 -97
- data/ext/zlaqhp.c +0 -94
- data/ext/zlaqp2.c +0 -158
- data/ext/zlaqps.c +0 -208
- data/ext/zlaqr0.c +0 -153
- data/ext/zlaqr1.c +0 -76
- data/ext/zlaqr2.c +0 -174
- data/ext/zlaqr3.c +0 -174
- data/ext/zlaqr4.c +0 -147
- data/ext/zlaqr5.c +0 -179
- data/ext/zlaqsb.c +0 -101
- data/ext/zlaqsp.c +0 -94
- data/ext/zlaqsy.c +0 -97
- data/ext/zlar1v.c +0 -173
- data/ext/zlar2v.c +0 -149
- data/ext/zlarcm.c +0 -86
- data/ext/zlarf.c +0 -102
- data/ext/zlarfb.c +0 -123
- data/ext/zlarfg.c +0 -84
- data/ext/zlarfgp.c +0 -84
- data/ext/zlarft.c +0 -105
- data/ext/zlarfx.c +0 -94
- data/ext/zlargv.c +0 -114
- data/ext/zlarnv.c +0 -83
- data/ext/zlarrv.c +0 -271
- data/ext/zlarscl2.c +0 -82
- data/ext/zlartg.c +0 -63
- data/ext/zlartv.c +0 -130
- data/ext/zlarz.c +0 -106
- data/ext/zlarzb.c +0 -127
- data/ext/zlarzt.c +0 -105
- data/ext/zlascl.c +0 -97
- data/ext/zlascl2.c +0 -82
- data/ext/zlaset.c +0 -88
- data/ext/zlasr.c +0 -110
- data/ext/zlassq.c +0 -70
- data/ext/zlaswp.c +0 -94
- data/ext/zlasyf.c +0 -97
- data/ext/zlat2c.c +0 -76
- data/ext/zlatbs.c +0 -130
- data/ext/zlatdf.c +0 -119
- data/ext/zlatps.c +0 -124
- data/ext/zlatrd.c +0 -105
- data/ext/zlatrs.c +0 -126
- data/ext/zlatrz.c +0 -87
- data/ext/zlatzm.c +0 -132
- data/ext/zlauu2.c +0 -77
- data/ext/zlauum.c +0 -77
- data/ext/zpbcon.c +0 -82
- data/ext/zpbequ.c +0 -83
- data/ext/zpbrfs.c +0 -145
- data/ext/zpbstf.c +0 -81
- data/ext/zpbsv.c +0 -107
- data/ext/zpbsvx.c +0 -201
- data/ext/zpbtf2.c +0 -81
- data/ext/zpbtrf.c +0 -81
- data/ext/zpbtrs.c +0 -95
- data/ext/zpftrf.c +0 -82
- data/ext/zpftri.c +0 -82
- data/ext/zpftrs.c +0 -97
- data/ext/zpocon.c +0 -78
- data/ext/zpoequ.c +0 -75
- data/ext/zpoequb.c +0 -75
- data/ext/zporfs.c +0 -141
- data/ext/zporfsx.c +0 -206
- data/ext/zposv.c +0 -103
- data/ext/zposvx.c +0 -197
- data/ext/zposvxx.c +0 -235
- data/ext/zpotf2.c +0 -77
- data/ext/zpotrf.c +0 -77
- data/ext/zpotri.c +0 -77
- data/ext/zpotrs.c +0 -91
- data/ext/zppcon.c +0 -78
- data/ext/zppequ.c +0 -79
- data/ext/zpprfs.c +0 -139
- data/ext/zppsv.c +0 -104
- data/ext/zppsvx.c +0 -191
- data/ext/zpptrf.c +0 -78
- data/ext/zpptri.c +0 -78
- data/ext/zpptrs.c +0 -93
- data/ext/zpstf2.c +0 -95
- data/ext/zpstrf.c +0 -95
- data/ext/zptcon.c +0 -81
- data/ext/zpteqr.c +0 -126
- data/ext/zptrfs.c +0 -161
- data/ext/zptsv.c +0 -123
- data/ext/zptsvx.c +0 -171
- data/ext/zpttrf.c +0 -93
- data/ext/zpttrs.c +0 -101
- data/ext/zptts2.c +0 -98
- data/ext/zrot.c +0 -107
- data/ext/zspcon.c +0 -85
- data/ext/zspmv.c +0 -117
- data/ext/zspr.c +0 -96
- data/ext/zsprfs.c +0 -149
- data/ext/zspsv.c +0 -110
- data/ext/zspsvx.c +0 -163
- data/ext/zsptrf.c +0 -84
- data/ext/zsptri.c +0 -89
- data/ext/zsptrs.c +0 -101
- data/ext/zstedc.c +0 -177
- data/ext/zstegr.c +0 -188
- data/ext/zstein.c +0 -134
- data/ext/zstemr.c +0 -193
- data/ext/zsteqr.c +0 -126
- data/ext/zsycon.c +0 -87
- data/ext/zsyconv.c +0 -84
- data/ext/zsyequb.c +0 -82
- data/ext/zsymv.c +0 -115
- data/ext/zsyr.c +0 -95
- data/ext/zsyrfs.c +0 -153
- data/ext/zsyrfsx.c +0 -218
- data/ext/zsysv.c +0 -129
- data/ext/zsysvx.c +0 -183
- data/ext/zsysvxx.c +0 -258
- data/ext/zsyswapr.c +0 -82
- data/ext/zsytf2.c +0 -85
- data/ext/zsytrf.c +0 -97
- data/ext/zsytri.c +0 -92
- data/ext/zsytri2.c +0 -104
- data/ext/zsytri2x.c +0 -96
- data/ext/zsytrs.c +0 -103
- data/ext/zsytrs2.c +0 -106
- data/ext/ztbcon.c +0 -86
- data/ext/ztbrfs.c +0 -127
- data/ext/ztbtrs.c +0 -103
- data/ext/ztfsm.c +0 -111
- data/ext/ztftri.c +0 -86
- data/ext/ztfttp.c +0 -79
- data/ext/ztfttr.c +0 -80
- data/ext/ztgevc.c +0 -156
- data/ext/ztgex2.c +0 -171
- data/ext/ztgexc.c +0 -172
- data/ext/ztgsen.c +0 -244
- data/ext/ztgsja.c +0 -227
- data/ext/ztgsna.c +0 -164
- data/ext/ztgsy2.c +0 -176
- data/ext/ztgsyl.c +0 -190
- data/ext/ztpcon.c +0 -82
- data/ext/ztprfs.c +0 -123
- data/ext/ztptri.c +0 -82
- data/ext/ztptrs.c +0 -101
- data/ext/ztpttf.c +0 -79
- data/ext/ztpttr.c +0 -76
- data/ext/ztrcon.c +0 -82
- data/ext/ztrevc.c +0 -154
- data/ext/ztrexc.c +0 -111
- data/ext/ztrrfs.c +0 -123
- data/ext/ztrsen.c +0 -154
- data/ext/ztrsna.c +0 -137
- data/ext/ztrsyl.c +0 -116
- data/ext/ztrti2.c +0 -81
- data/ext/ztrtri.c +0 -81
- data/ext/ztrtrs.c +0 -99
- data/ext/ztrttf.c +0 -77
- data/ext/ztrttp.c +0 -73
- data/ext/ztzrqf.c +0 -83
- data/ext/ztzrzf.c +0 -101
- data/ext/zunbdb.c +0 -232
- data/ext/zuncsd.c +0 -204
- data/ext/zung2l.c +0 -92
- data/ext/zung2r.c +0 -92
- data/ext/zungbr.c +0 -115
- data/ext/zunghr.c +0 -111
- data/ext/zungl2.c +0 -90
- data/ext/zunglq.c +0 -107
- data/ext/zungql.c +0 -107
- data/ext/zungqr.c +0 -107
- data/ext/zungr2.c +0 -90
- data/ext/zungrq.c +0 -107
- data/ext/zungtr.c +0 -107
- data/ext/zunm2l.c +0 -114
- data/ext/zunm2r.c +0 -114
- data/ext/zunmbr.c +0 -139
- data/ext/zunmhr.c +0 -133
- data/ext/zunml2.c +0 -110
- data/ext/zunmlq.c +0 -125
- data/ext/zunmql.c +0 -129
- data/ext/zunmqr.c +0 -129
- data/ext/zunmr2.c +0 -110
- data/ext/zunmr3.c +0 -114
- data/ext/zunmrq.c +0 -125
- data/ext/zunmrz.c +0 -129
- data/ext/zunmtr.c +0 -129
- data/ext/zupgtr.c +0 -91
- data/ext/zupmtr.c +0 -116
data/ext/cgesdd.c
DELETED
@@ -1,135 +0,0 @@
|
|
1
|
-
#include "rb_lapack.h"
|
2
|
-
|
3
|
-
extern VOID cgesdd_(char* jobz, integer* m, integer* n, complex* a, integer* lda, real* s, complex* u, integer* ldu, complex* vt, integer* ldvt, complex* work, integer* lwork, real* rwork, integer* iwork, integer* info);
|
4
|
-
|
5
|
-
|
6
|
-
static VALUE
|
7
|
-
rblapack_cgesdd(int argc, VALUE *argv, VALUE self){
|
8
|
-
VALUE rblapack_jobz;
|
9
|
-
char jobz;
|
10
|
-
VALUE rblapack_a;
|
11
|
-
complex *a;
|
12
|
-
VALUE rblapack_lwork;
|
13
|
-
integer lwork;
|
14
|
-
VALUE rblapack_s;
|
15
|
-
real *s;
|
16
|
-
VALUE rblapack_u;
|
17
|
-
complex *u;
|
18
|
-
VALUE rblapack_vt;
|
19
|
-
complex *vt;
|
20
|
-
VALUE rblapack_work;
|
21
|
-
complex *work;
|
22
|
-
VALUE rblapack_info;
|
23
|
-
integer info;
|
24
|
-
VALUE rblapack_a_out__;
|
25
|
-
complex *a_out__;
|
26
|
-
real *rwork;
|
27
|
-
integer *iwork;
|
28
|
-
|
29
|
-
integer lda;
|
30
|
-
integer n;
|
31
|
-
integer ldu;
|
32
|
-
integer ucol;
|
33
|
-
integer ldvt;
|
34
|
-
integer m;
|
35
|
-
|
36
|
-
VALUE rblapack_options;
|
37
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
38
|
-
argc--;
|
39
|
-
rblapack_options = argv[argc];
|
40
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
41
|
-
printf("%s\n", "USAGE:\n s, u, vt, work, info, a = NumRu::Lapack.cgesdd( jobz, a, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CGESDD( JOBZ, M, N, A, LDA, S, U, LDU, VT, LDVT, WORK, LWORK, RWORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* CGESDD computes the singular value decomposition (SVD) of a complex\n* M-by-N matrix A, optionally computing the left and/or right singular\n* vectors, by using divide-and-conquer method. The SVD is written\n*\n* A = U * SIGMA * conjugate-transpose(V)\n*\n* where SIGMA is an M-by-N matrix which is zero except for its\n* min(m,n) diagonal elements, U is an M-by-M unitary matrix, and\n* V is an N-by-N unitary matrix. The diagonal elements of SIGMA\n* are the singular values of A; they are real and non-negative, and\n* are returned in descending order. The first min(m,n) columns of\n* U and V are the left and right singular vectors of A.\n*\n* Note that the routine returns VT = V**H, not V.\n*\n* The divide and conquer algorithm makes very mild assumptions about\n* floating point arithmetic. It will work on machines with a guard\n* digit in add/subtract, or on those binary machines without guard\n* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or\n* Cray-2. It could conceivably fail on hexadecimal or decimal machines\n* without guard digits, but we know of none.\n*\n\n* Arguments\n* =========\n*\n* JOBZ (input) CHARACTER*1\n* Specifies options for computing all or part of the matrix U:\n* = 'A': all M columns of U and all N rows of V**H are\n* returned in the arrays U and VT;\n* = 'S': the first min(M,N) columns of U and the first\n* min(M,N) rows of V**H are returned in the arrays U\n* and VT;\n* = 'O': If M >= N, the first N columns of U are overwritten\n* in the array A and all rows of V**H are returned in\n* the array VT;\n* otherwise, all columns of U are returned in the\n* array U and the first M rows of V**H are overwritten\n* in the array A;\n* = 'N': no columns of U or rows of V**H are computed.\n*\n* M (input) INTEGER\n* The number of rows of the input matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the input matrix A. N >= 0.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit,\n* if JOBZ = 'O', A is overwritten with the first N columns\n* of U (the left singular vectors, stored\n* columnwise) if M >= N;\n* A is overwritten with the first M rows\n* of V**H (the right singular vectors, stored\n* rowwise) otherwise.\n* if JOBZ .ne. 'O', the contents of A are destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* S (output) REAL array, dimension (min(M,N))\n* The singular values of A, sorted so that S(i) >= S(i+1).\n*\n* U (output) COMPLEX array, dimension (LDU,UCOL)\n* UCOL = M if JOBZ = 'A' or JOBZ = 'O' and M < N;\n* UCOL = min(M,N) if JOBZ = 'S'.\n* If JOBZ = 'A' or JOBZ = 'O' and M < N, U contains the M-by-M\n* unitary matrix U;\n* if JOBZ = 'S', U contains the first min(M,N) columns of U\n* (the left singular vectors, stored columnwise);\n* if JOBZ = 'O' and M >= N, or JOBZ = 'N', U is not referenced.\n*\n* LDU (input) INTEGER\n* The leading dimension of the array U. LDU >= 1; if\n* JOBZ = 'S' or 'A' or JOBZ = 'O' and M < N, LDU >= M.\n*\n* VT (output) COMPLEX array, dimension (LDVT,N)\n* If JOBZ = 'A' or JOBZ = 'O' and M >= N, VT contains the\n* N-by-N unitary matrix V**H;\n* if JOBZ = 'S', VT contains the first min(M,N) rows of\n* V**H (the right singular vectors, stored rowwise);\n* if JOBZ = 'O' and M < N, or JOBZ = 'N', VT is not referenced.\n*\n* LDVT (input) INTEGER\n* The leading dimension of the array VT. LDVT >= 1; if\n* JOBZ = 'A' or JOBZ = 'O' and M >= N, LDVT >= N;\n* if JOBZ = 'S', LDVT >= min(M,N).\n*\n* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= 1.\n* if JOBZ = 'N', LWORK >= 2*min(M,N)+max(M,N).\n* if JOBZ = 'O',\n* LWORK >= 2*min(M,N)*min(M,N)+2*min(M,N)+max(M,N).\n* if JOBZ = 'S' or 'A',\n* LWORK >= min(M,N)*min(M,N)+2*min(M,N)+max(M,N).\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, a workspace query is assumed. The optimal\n* size for the WORK array is calculated and stored in WORK(1),\n* and no other work except argument checking is performed.\n*\n* RWORK (workspace) REAL array, dimension (MAX(1,LRWORK))\n* If JOBZ = 'N', LRWORK >= 5*min(M,N).\n* Otherwise, \n* LRWORK >= min(M,N)*max(5*min(M,N)+7,2*max(M,N)+2*min(M,N)+1)\n*\n* IWORK (workspace) INTEGER array, dimension (8*min(M,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: The updating process of SBDSDC did not converge.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Ming Gu and Huan Ren, Computer Science Division, University of\n* California at Berkeley, USA\n*\n* =====================================================================\n*\n\n");
|
42
|
-
return Qnil;
|
43
|
-
}
|
44
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
45
|
-
printf("%s\n", "USAGE:\n s, u, vt, work, info, a = NumRu::Lapack.cgesdd( jobz, a, [:lwork => lwork, :usage => usage, :help => help])\n");
|
46
|
-
return Qnil;
|
47
|
-
}
|
48
|
-
} else
|
49
|
-
rblapack_options = Qnil;
|
50
|
-
if (argc != 2 && argc != 3)
|
51
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 2)", argc);
|
52
|
-
rblapack_jobz = argv[0];
|
53
|
-
rblapack_a = argv[1];
|
54
|
-
if (argc == 3) {
|
55
|
-
rblapack_lwork = argv[2];
|
56
|
-
} else if (rblapack_options != Qnil) {
|
57
|
-
rblapack_lwork = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("lwork")));
|
58
|
-
} else {
|
59
|
-
rblapack_lwork = Qnil;
|
60
|
-
}
|
61
|
-
|
62
|
-
jobz = StringValueCStr(rblapack_jobz)[0];
|
63
|
-
if (!NA_IsNArray(rblapack_a))
|
64
|
-
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
65
|
-
if (NA_RANK(rblapack_a) != 2)
|
66
|
-
rb_raise(rb_eArgError, "rank of a (2th 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
|
-
m = lda;
|
73
|
-
ldvt = ((lsame_(&jobz,"A")) || (((lsame_(&jobz,"O")) && (m >= n)))) ? n : lsame_(&jobz,"S") ? MIN(m,n) : 1;
|
74
|
-
if (rblapack_lwork == Qnil)
|
75
|
-
lwork = lsame_(&jobz,"N") ? 2*MIN(m,n)+MAX(m,n) : lsame_(&jobz,"O") ? 2*MIN(m,n)*MIN(m,n)+2*MIN(m,n)+MAX(m,n) : (lsame_(&jobz,"S")||lsame_(&jobz,"A")) ? MIN(m,n)*MIN(m,n)+2*MIN(m,n)+MAX(m,n) : 0;
|
76
|
-
else {
|
77
|
-
lwork = NUM2INT(rblapack_lwork);
|
78
|
-
}
|
79
|
-
ldu = (lsame_(&jobz,"S") || lsame_(&jobz,"A") || (lsame_(&jobz,"O") && m < n)) ? m : 1;
|
80
|
-
ucol = ((lsame_(&jobz,"A")) || (((lsame_(&jobz,"O")) && (m < n)))) ? m : lsame_(&jobz,"S") ? MIN(m,n) : 0;
|
81
|
-
{
|
82
|
-
int shape[1];
|
83
|
-
shape[0] = MIN(m,n);
|
84
|
-
rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
85
|
-
}
|
86
|
-
s = NA_PTR_TYPE(rblapack_s, real*);
|
87
|
-
{
|
88
|
-
int shape[2];
|
89
|
-
shape[0] = ldu;
|
90
|
-
shape[1] = ucol;
|
91
|
-
rblapack_u = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
92
|
-
}
|
93
|
-
u = NA_PTR_TYPE(rblapack_u, complex*);
|
94
|
-
{
|
95
|
-
int shape[2];
|
96
|
-
shape[0] = ldvt;
|
97
|
-
shape[1] = n;
|
98
|
-
rblapack_vt = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
99
|
-
}
|
100
|
-
vt = NA_PTR_TYPE(rblapack_vt, complex*);
|
101
|
-
{
|
102
|
-
int shape[1];
|
103
|
-
shape[0] = MAX(1,lwork);
|
104
|
-
rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
|
105
|
-
}
|
106
|
-
work = NA_PTR_TYPE(rblapack_work, complex*);
|
107
|
-
{
|
108
|
-
int shape[2];
|
109
|
-
shape[0] = lda;
|
110
|
-
shape[1] = n;
|
111
|
-
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
112
|
-
}
|
113
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
114
|
-
MEMCPY(a_out__, a, complex, NA_TOTAL(rblapack_a));
|
115
|
-
rblapack_a = rblapack_a_out__;
|
116
|
-
a = a_out__;
|
117
|
-
rwork = ALLOC_N(real, (MAX(1, (lsame_(&jobz,"N") ? 5*MIN(m,n) : MIN(m,n)*MAX(5*MIN(m,n)+7,2*MAX(m,n)+2*MIN(m,n)+1)))));
|
118
|
-
iwork = ALLOC_N(integer, (8*MIN(m,n)));
|
119
|
-
|
120
|
-
cgesdd_(&jobz, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt, work, &lwork, rwork, iwork, &info);
|
121
|
-
|
122
|
-
free(rwork);
|
123
|
-
free(iwork);
|
124
|
-
rblapack_info = INT2NUM(info);
|
125
|
-
return rb_ary_new3(6, rblapack_s, rblapack_u, rblapack_vt, rblapack_work, rblapack_info, rblapack_a);
|
126
|
-
}
|
127
|
-
|
128
|
-
void
|
129
|
-
init_lapack_cgesdd(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
130
|
-
sHelp = sH;
|
131
|
-
sUsage = sU;
|
132
|
-
rblapack_ZERO = zero;
|
133
|
-
|
134
|
-
rb_define_module_function(mLapack, "cgesdd", rblapack_cgesdd, -1);
|
135
|
-
}
|
data/ext/cgesv.c
DELETED
@@ -1,107 +0,0 @@
|
|
1
|
-
#include "rb_lapack.h"
|
2
|
-
|
3
|
-
extern VOID cgesv_(integer* n, integer* nrhs, complex* a, integer* lda, integer* ipiv, complex* b, integer* ldb, integer* info);
|
4
|
-
|
5
|
-
|
6
|
-
static VALUE
|
7
|
-
rblapack_cgesv(int argc, VALUE *argv, VALUE self){
|
8
|
-
VALUE rblapack_a;
|
9
|
-
complex *a;
|
10
|
-
VALUE rblapack_b;
|
11
|
-
complex *b;
|
12
|
-
VALUE rblapack_ipiv;
|
13
|
-
integer *ipiv;
|
14
|
-
VALUE rblapack_info;
|
15
|
-
integer info;
|
16
|
-
VALUE rblapack_a_out__;
|
17
|
-
complex *a_out__;
|
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 ipiv, info, a, b = NumRu::Lapack.cgesv( a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO )\n\n* Purpose\n* =======\n*\n* CGESV computes the solution to a complex system of linear equations\n* A * X = B,\n* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.\n*\n* The LU decomposition with partial pivoting and row interchanges is\n* used to factor A as\n* A = P * L * U,\n* where P is a permutation matrix, L is unit lower triangular, and U is\n* upper triangular. The factored form of A is then used to solve the\n* system of equations A * X = B.\n*\n\n* Arguments\n* =========\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* 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/output) COMPLEX array, dimension (LDA,N)\n* On entry, the N-by-N coefficient matrix A.\n* On exit, the factors L and U from the factorization\n* A = P*L*U; the unit diagonal elements of L are not stored.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* IPIV (output) INTEGER array, dimension (N)\n* The pivot indices that define the permutation matrix P;\n* row i of the matrix was interchanged with row IPIV(i).\n*\n* B (input/output) COMPLEX array, dimension (LDB,NRHS)\n* On entry, the N-by-NRHS matrix of right hand side matrix B.\n* On exit, if INFO = 0, the N-by-NRHS 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* > 0: if INFO = i, U(i,i) is exactly zero. The factorization\n* has been completed, but the factor U is exactly\n* singular, so the solution could not be computed.\n*\n\n* =====================================================================\n*\n* .. External Subroutines ..\n EXTERNAL CGETRF, CGETRS, XERBLA\n* ..\n* .. Intrinsic Functions ..\n INTRINSIC MAX\n* ..\n\n");
|
32
|
-
return Qnil;
|
33
|
-
}
|
34
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
35
|
-
printf("%s\n", "USAGE:\n ipiv, info, a, b = NumRu::Lapack.cgesv( a, b, [:usage => usage, :help => help])\n");
|
36
|
-
return Qnil;
|
37
|
-
}
|
38
|
-
} else
|
39
|
-
rblapack_options = Qnil;
|
40
|
-
if (argc != 2 && argc != 2)
|
41
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 2)", argc);
|
42
|
-
rblapack_a = argv[0];
|
43
|
-
rblapack_b = argv[1];
|
44
|
-
if (argc == 2) {
|
45
|
-
} else if (rblapack_options != Qnil) {
|
46
|
-
} else {
|
47
|
-
}
|
48
|
-
|
49
|
-
if (!NA_IsNArray(rblapack_a))
|
50
|
-
rb_raise(rb_eArgError, "a (1th argument) must be NArray");
|
51
|
-
if (NA_RANK(rblapack_a) != 2)
|
52
|
-
rb_raise(rb_eArgError, "rank of a (1th argument) must be %d", 2);
|
53
|
-
lda = NA_SHAPE0(rblapack_a);
|
54
|
-
n = NA_SHAPE1(rblapack_a);
|
55
|
-
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
56
|
-
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
57
|
-
a = NA_PTR_TYPE(rblapack_a, complex*);
|
58
|
-
if (!NA_IsNArray(rblapack_b))
|
59
|
-
rb_raise(rb_eArgError, "b (2th argument) must be NArray");
|
60
|
-
if (NA_RANK(rblapack_b) != 2)
|
61
|
-
rb_raise(rb_eArgError, "rank of b (2th argument) must be %d", 2);
|
62
|
-
ldb = NA_SHAPE0(rblapack_b);
|
63
|
-
nrhs = NA_SHAPE1(rblapack_b);
|
64
|
-
if (NA_TYPE(rblapack_b) != NA_SCOMPLEX)
|
65
|
-
rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
|
66
|
-
b = NA_PTR_TYPE(rblapack_b, complex*);
|
67
|
-
{
|
68
|
-
int shape[1];
|
69
|
-
shape[0] = n;
|
70
|
-
rblapack_ipiv = na_make_object(NA_LINT, 1, shape, cNArray);
|
71
|
-
}
|
72
|
-
ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
|
73
|
-
{
|
74
|
-
int 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
|
-
int shape[2];
|
85
|
-
shape[0] = ldb;
|
86
|
-
shape[1] = nrhs;
|
87
|
-
rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
88
|
-
}
|
89
|
-
b_out__ = NA_PTR_TYPE(rblapack_b_out__, complex*);
|
90
|
-
MEMCPY(b_out__, b, complex, NA_TOTAL(rblapack_b));
|
91
|
-
rblapack_b = rblapack_b_out__;
|
92
|
-
b = b_out__;
|
93
|
-
|
94
|
-
cgesv_(&n, &nrhs, a, &lda, ipiv, b, &ldb, &info);
|
95
|
-
|
96
|
-
rblapack_info = INT2NUM(info);
|
97
|
-
return rb_ary_new3(4, rblapack_ipiv, rblapack_info, rblapack_a, rblapack_b);
|
98
|
-
}
|
99
|
-
|
100
|
-
void
|
101
|
-
init_lapack_cgesv(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
102
|
-
sHelp = sH;
|
103
|
-
sUsage = sU;
|
104
|
-
rblapack_ZERO = zero;
|
105
|
-
|
106
|
-
rb_define_module_function(mLapack, "cgesv", rblapack_cgesv, -1);
|
107
|
-
}
|
data/ext/cgesvd.c
DELETED
@@ -1,146 +0,0 @@
|
|
1
|
-
#include "rb_lapack.h"
|
2
|
-
|
3
|
-
extern VOID cgesvd_(char* jobu, char* jobvt, integer* m, integer* n, complex* a, integer* lda, real* s, complex* u, integer* ldu, complex* vt, integer* ldvt, complex* work, integer* lwork, real* rwork, integer* info);
|
4
|
-
|
5
|
-
|
6
|
-
static VALUE
|
7
|
-
rblapack_cgesvd(int argc, VALUE *argv, VALUE self){
|
8
|
-
VALUE rblapack_jobu;
|
9
|
-
char jobu;
|
10
|
-
VALUE rblapack_jobvt;
|
11
|
-
char jobvt;
|
12
|
-
VALUE rblapack_a;
|
13
|
-
complex *a;
|
14
|
-
VALUE rblapack_lwork;
|
15
|
-
integer lwork;
|
16
|
-
VALUE rblapack_s;
|
17
|
-
real *s;
|
18
|
-
VALUE rblapack_u;
|
19
|
-
complex *u;
|
20
|
-
VALUE rblapack_vt;
|
21
|
-
complex *vt;
|
22
|
-
VALUE rblapack_work;
|
23
|
-
complex *work;
|
24
|
-
VALUE rblapack_info;
|
25
|
-
integer info;
|
26
|
-
VALUE rblapack_a_out__;
|
27
|
-
complex *a_out__;
|
28
|
-
real *rwork;
|
29
|
-
|
30
|
-
integer lda;
|
31
|
-
integer n;
|
32
|
-
integer ldu;
|
33
|
-
integer ldvt;
|
34
|
-
integer m;
|
35
|
-
|
36
|
-
VALUE rblapack_options;
|
37
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
38
|
-
argc--;
|
39
|
-
rblapack_options = argv[argc];
|
40
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
41
|
-
printf("%s\n", "USAGE:\n s, u, vt, work, info, a = NumRu::Lapack.cgesvd( jobu, jobvt, a, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CGESVD( JOBU, JOBVT, M, N, A, LDA, S, U, LDU, VT, LDVT, WORK, LWORK, RWORK, INFO )\n\n* Purpose\n* =======\n*\n* CGESVD computes the singular value decomposition (SVD) of a complex\n* M-by-N matrix A, optionally computing the left and/or right singular\n* vectors. The SVD is written\n*\n* A = U * SIGMA * conjugate-transpose(V)\n*\n* where SIGMA is an M-by-N matrix which is zero except for its\n* min(m,n) diagonal elements, U is an M-by-M unitary matrix, and\n* V is an N-by-N unitary matrix. The diagonal elements of SIGMA\n* are the singular values of A; they are real and non-negative, and\n* are returned in descending order. The first min(m,n) columns of\n* U and V are the left and right singular vectors of A.\n*\n* Note that the routine returns V**H, not V.\n*\n\n* Arguments\n* =========\n*\n* JOBU (input) CHARACTER*1\n* Specifies options for computing all or part of the matrix U:\n* = 'A': all M columns of U are returned in array U:\n* = 'S': the first min(m,n) columns of U (the left singular\n* vectors) are returned in the array U;\n* = 'O': the first min(m,n) columns of U (the left singular\n* vectors) are overwritten on the array A;\n* = 'N': no columns of U (no left singular vectors) are\n* computed.\n*\n* JOBVT (input) CHARACTER*1\n* Specifies options for computing all or part of the matrix\n* V**H:\n* = 'A': all N rows of V**H are returned in the array VT;\n* = 'S': the first min(m,n) rows of V**H (the right singular\n* vectors) are returned in the array VT;\n* = 'O': the first min(m,n) rows of V**H (the right singular\n* vectors) are overwritten on the array A;\n* = 'N': no rows of V**H (no right singular vectors) are\n* computed.\n*\n* JOBVT and JOBU cannot both be 'O'.\n*\n* M (input) INTEGER\n* The number of rows of the input matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the input matrix A. N >= 0.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit,\n* if JOBU = 'O', A is overwritten with the first min(m,n)\n* columns of U (the left singular vectors,\n* stored columnwise);\n* if JOBVT = 'O', A is overwritten with the first min(m,n)\n* rows of V**H (the right singular vectors,\n* stored rowwise);\n* if JOBU .ne. 'O' and JOBVT .ne. 'O', the contents of A\n* are destroyed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* S (output) REAL array, dimension (min(M,N))\n* The singular values of A, sorted so that S(i) >= S(i+1).\n*\n* U (output) COMPLEX array, dimension (LDU,UCOL)\n* (LDU,M) if JOBU = 'A' or (LDU,min(M,N)) if JOBU = 'S'.\n* If JOBU = 'A', U contains the M-by-M unitary matrix U;\n* if JOBU = 'S', U contains the first min(m,n) columns of U\n* (the left singular vectors, stored columnwise);\n* if JOBU = 'N' or 'O', U is not referenced.\n*\n* LDU (input) INTEGER\n* The leading dimension of the array U. LDU >= 1; if\n* JOBU = 'S' or 'A', LDU >= M.\n*\n* VT (output) COMPLEX array, dimension (LDVT,N)\n* If JOBVT = 'A', VT contains the N-by-N unitary matrix\n* V**H;\n* if JOBVT = 'S', VT contains the first min(m,n) rows of\n* V**H (the right singular vectors, stored rowwise);\n* if JOBVT = 'N' or 'O', VT is not referenced.\n*\n* LDVT (input) INTEGER\n* The leading dimension of the array VT. LDVT >= 1; if\n* JOBVT = 'A', LDVT >= N; if JOBVT = 'S', LDVT >= min(M,N).\n*\n* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK.\n* LWORK >= MAX(1,2*MIN(M,N)+MAX(M,N)).\n* For good performance, LWORK should generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates the optimal size of the WORK array, returns\n* this value as the first entry of the WORK array, and no error\n* message related to LWORK is issued by XERBLA.\n*\n* RWORK (workspace) REAL array, dimension (5*min(M,N))\n* On exit, if INFO > 0, RWORK(1:MIN(M,N)-1) contains the\n* unconverged superdiagonal elements of an upper bidiagonal\n* matrix B whose diagonal is in S (not necessarily sorted).\n* B satisfies A = U * B * VT, so it has the same singular\n* values as A, and singular vectors related by U and VT.\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 CBDSQR did not converge, INFO specifies how many\n* superdiagonals of an intermediate bidiagonal form B\n* did not converge to zero. See the description of RWORK\n* above for details.\n*\n\n* =====================================================================\n*\n\n");
|
42
|
-
return Qnil;
|
43
|
-
}
|
44
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
45
|
-
printf("%s\n", "USAGE:\n s, u, vt, work, info, a = NumRu::Lapack.cgesvd( jobu, jobvt, a, [:lwork => lwork, :usage => usage, :help => help])\n");
|
46
|
-
return Qnil;
|
47
|
-
}
|
48
|
-
} else
|
49
|
-
rblapack_options = Qnil;
|
50
|
-
if (argc != 3 && argc != 4)
|
51
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 3)", argc);
|
52
|
-
rblapack_jobu = argv[0];
|
53
|
-
rblapack_jobvt = argv[1];
|
54
|
-
rblapack_a = argv[2];
|
55
|
-
if (argc == 4) {
|
56
|
-
rblapack_lwork = argv[3];
|
57
|
-
} else if (rblapack_options != Qnil) {
|
58
|
-
rblapack_lwork = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("lwork")));
|
59
|
-
} else {
|
60
|
-
rblapack_lwork = Qnil;
|
61
|
-
}
|
62
|
-
|
63
|
-
jobu = StringValueCStr(rblapack_jobu)[0];
|
64
|
-
if (!NA_IsNArray(rblapack_a))
|
65
|
-
rb_raise(rb_eArgError, "a (3th argument) must be NArray");
|
66
|
-
if (NA_RANK(rblapack_a) != 2)
|
67
|
-
rb_raise(rb_eArgError, "rank of a (3th argument) must be %d", 2);
|
68
|
-
lda = NA_SHAPE0(rblapack_a);
|
69
|
-
n = NA_SHAPE1(rblapack_a);
|
70
|
-
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
71
|
-
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
72
|
-
a = NA_PTR_TYPE(rblapack_a, complex*);
|
73
|
-
m = lda;
|
74
|
-
ldu = ((lsame_(&jobu,"S")) || (lsame_(&jobu,"A"))) ? m : 1;
|
75
|
-
jobvt = StringValueCStr(rblapack_jobvt)[0];
|
76
|
-
ldvt = lsame_(&jobvt,"A") ? n : lsame_(&jobvt,"S") ? MIN(m,n) : 1;
|
77
|
-
if (rblapack_lwork == Qnil)
|
78
|
-
lwork = MAX(1, 2*MIN(m,n)+MAX(m,n));
|
79
|
-
else {
|
80
|
-
lwork = NUM2INT(rblapack_lwork);
|
81
|
-
}
|
82
|
-
{
|
83
|
-
int shape[1];
|
84
|
-
shape[0] = MIN(m,n);
|
85
|
-
rblapack_s = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
86
|
-
}
|
87
|
-
s = NA_PTR_TYPE(rblapack_s, real*);
|
88
|
-
{
|
89
|
-
int shape[2];
|
90
|
-
shape[0] = ldu;
|
91
|
-
shape[1] = lsame_(&jobu,"A") ? m : lsame_(&jobu,"S") ? MIN(m,n) : 0;
|
92
|
-
rblapack_u = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
93
|
-
}
|
94
|
-
u = NA_PTR_TYPE(rblapack_u, complex*);
|
95
|
-
{
|
96
|
-
int shape[2];
|
97
|
-
shape[0] = ldvt;
|
98
|
-
shape[1] = n;
|
99
|
-
rblapack_vt = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
100
|
-
}
|
101
|
-
vt = NA_PTR_TYPE(rblapack_vt, complex*);
|
102
|
-
{
|
103
|
-
int shape[1];
|
104
|
-
shape[0] = MAX(1,lwork);
|
105
|
-
rblapack_work = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
|
106
|
-
}
|
107
|
-
work = NA_PTR_TYPE(rblapack_work, complex*);
|
108
|
-
{
|
109
|
-
int shape[2];
|
110
|
-
shape[0] = lda;
|
111
|
-
shape[1] = MAX(n, MIN(m,n));
|
112
|
-
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
113
|
-
}
|
114
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
115
|
-
{
|
116
|
-
VALUE __shape__[3];
|
117
|
-
__shape__[0] = Qtrue;
|
118
|
-
__shape__[1] = n < MIN(m,n) ? rb_range_new(rblapack_ZERO, INT2NUM(n), Qtrue) : Qtrue;
|
119
|
-
__shape__[2] = rblapack_a;
|
120
|
-
na_aset(3, __shape__, rblapack_a_out__);
|
121
|
-
}
|
122
|
-
rblapack_a = rblapack_a_out__;
|
123
|
-
a = a_out__;
|
124
|
-
rwork = ALLOC_N(real, (5*MIN(m,n)));
|
125
|
-
|
126
|
-
cgesvd_(&jobu, &jobvt, &m, &n, a, &lda, s, u, &ldu, vt, &ldvt, work, &lwork, rwork, &info);
|
127
|
-
|
128
|
-
free(rwork);
|
129
|
-
rblapack_info = INT2NUM(info);
|
130
|
-
{
|
131
|
-
VALUE __shape__[2];
|
132
|
-
__shape__[0] = Qtrue;
|
133
|
-
__shape__[1] = n < MIN(m,n) ? Qtrue : rb_range_new(rblapack_ZERO, INT2NUM(MIN(m,n)), Qtrue);
|
134
|
-
rblapack_a = na_aref(2, __shape__, rblapack_a);
|
135
|
-
}
|
136
|
-
return rb_ary_new3(6, rblapack_s, rblapack_u, rblapack_vt, rblapack_work, rblapack_info, rblapack_a);
|
137
|
-
}
|
138
|
-
|
139
|
-
void
|
140
|
-
init_lapack_cgesvd(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
141
|
-
sHelp = sH;
|
142
|
-
sUsage = sU;
|
143
|
-
rblapack_ZERO = zero;
|
144
|
-
|
145
|
-
rb_define_module_function(mLapack, "cgesvd", rblapack_cgesvd, -1);
|
146
|
-
}
|
data/ext/cgesvx.c
DELETED
@@ -1,278 +0,0 @@
|
|
1
|
-
#include "rb_lapack.h"
|
2
|
-
|
3
|
-
extern VOID cgesvx_(char* fact, char* trans, integer* n, integer* nrhs, complex* a, integer* lda, complex* af, integer* ldaf, integer* ipiv, char* equed, real* r, real* c, complex* b, integer* ldb, complex* x, integer* ldx, real* rcond, real* ferr, real* berr, complex* work, real* rwork, integer* info);
|
4
|
-
|
5
|
-
|
6
|
-
static VALUE
|
7
|
-
rblapack_cgesvx(int argc, VALUE *argv, VALUE self){
|
8
|
-
VALUE rblapack_fact;
|
9
|
-
char fact;
|
10
|
-
VALUE rblapack_trans;
|
11
|
-
char trans;
|
12
|
-
VALUE rblapack_a;
|
13
|
-
complex *a;
|
14
|
-
VALUE rblapack_b;
|
15
|
-
complex *b;
|
16
|
-
VALUE rblapack_af;
|
17
|
-
complex *af;
|
18
|
-
VALUE rblapack_ipiv;
|
19
|
-
integer *ipiv;
|
20
|
-
VALUE rblapack_equed;
|
21
|
-
char equed;
|
22
|
-
VALUE rblapack_r;
|
23
|
-
real *r;
|
24
|
-
VALUE rblapack_c;
|
25
|
-
real *c;
|
26
|
-
VALUE rblapack_x;
|
27
|
-
complex *x;
|
28
|
-
VALUE rblapack_rcond;
|
29
|
-
real rcond;
|
30
|
-
VALUE rblapack_ferr;
|
31
|
-
real *ferr;
|
32
|
-
VALUE rblapack_berr;
|
33
|
-
real *berr;
|
34
|
-
VALUE rblapack_rwork;
|
35
|
-
real *rwork;
|
36
|
-
VALUE rblapack_info;
|
37
|
-
integer info;
|
38
|
-
VALUE rblapack_a_out__;
|
39
|
-
complex *a_out__;
|
40
|
-
VALUE rblapack_af_out__;
|
41
|
-
complex *af_out__;
|
42
|
-
VALUE rblapack_ipiv_out__;
|
43
|
-
integer *ipiv_out__;
|
44
|
-
VALUE rblapack_r_out__;
|
45
|
-
real *r_out__;
|
46
|
-
VALUE rblapack_c_out__;
|
47
|
-
real *c_out__;
|
48
|
-
VALUE rblapack_b_out__;
|
49
|
-
complex *b_out__;
|
50
|
-
complex *work;
|
51
|
-
|
52
|
-
integer lda;
|
53
|
-
integer n;
|
54
|
-
integer ldb;
|
55
|
-
integer nrhs;
|
56
|
-
integer ldaf;
|
57
|
-
integer ldx;
|
58
|
-
|
59
|
-
VALUE rblapack_options;
|
60
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
61
|
-
argc--;
|
62
|
-
rblapack_options = argv[argc];
|
63
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
64
|
-
printf("%s\n", "USAGE:\n x, rcond, ferr, berr, rwork, info, a, af, ipiv, equed, r, c, b = NumRu::Lapack.cgesvx( fact, trans, a, b, [:af => af, :ipiv => ipiv, :equed => equed, :r => r, :c => c, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CGESVX( FACT, TRANS, N, NRHS, A, LDA, AF, LDAF, IPIV, EQUED, R, C, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO )\n\n* Purpose\n* =======\n*\n* CGESVX uses the LU factorization to compute the solution to a complex\n* system of linear equations\n* A * X = B,\n* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.\n*\n* Error bounds on the solution and a condition estimate are also\n* provided.\n*\n* Description\n* ===========\n*\n* The following steps are performed:\n*\n* 1. If FACT = 'E', real scaling factors are computed to equilibrate\n* the system:\n* TRANS = 'N': diag(R)*A*diag(C) *inv(diag(C))*X = diag(R)*B\n* TRANS = 'T': (diag(R)*A*diag(C))**T *inv(diag(R))*X = diag(C)*B\n* TRANS = 'C': (diag(R)*A*diag(C))**H *inv(diag(R))*X = diag(C)*B\n* Whether or not the system will be equilibrated depends on the\n* scaling of the matrix A, but if equilibration is used, A is\n* overwritten by diag(R)*A*diag(C) and B by diag(R)*B (if TRANS='N')\n* or diag(C)*B (if TRANS = 'T' or 'C').\n*\n* 2. If FACT = 'N' or 'E', the LU decomposition is used to factor the\n* matrix A (after equilibration if FACT = 'E') as\n* A = P * L * U,\n* where P is a permutation matrix, L is a unit lower triangular\n* matrix, and U is upper triangular.\n*\n* 3. If some U(i,i)=0, so that U is exactly singular, then the routine\n* returns with INFO = i. Otherwise, the factored form of A is used\n* to estimate the condition number of the matrix A. If the\n* reciprocal of the condition number is less than machine precision,\n* INFO = N+1 is returned as a warning, but the routine still goes on\n* to solve for X and compute error bounds as described below.\n*\n* 4. The system of equations is solved for X using the factored form\n* of A.\n*\n* 5. Iterative refinement is applied to improve the computed solution\n* matrix and calculate error bounds and backward error estimates\n* for it.\n*\n* 6. If equilibration was used, the matrix X is premultiplied by\n* diag(C) (if TRANS = 'N') or diag(R) (if TRANS = 'T' or 'C') so\n* that it solves the original system before equilibration.\n*\n\n* Arguments\n* =========\n*\n* FACT (input) CHARACTER*1\n* Specifies whether or not the factored form of the matrix A is\n* supplied on entry, and if not, whether the matrix A should be\n* equilibrated before it is factored.\n* = 'F': On entry, AF and IPIV contain the factored form of A.\n* If EQUED is not 'N', the matrix A has been\n* equilibrated with scaling factors given by R and C.\n* A, AF, and IPIV are not modified.\n* = 'N': The matrix A will be copied to AF and factored.\n* = 'E': The matrix A will be equilibrated if necessary, then\n* copied to AF and factored.\n*\n* TRANS (input) CHARACTER*1\n* Specifies the form of the system of equations:\n* = 'N': A * X = B (No transpose)\n* = 'T': A**T * X = B (Transpose)\n* = 'C': A**H * X = B (Conjugate transpose)\n*\n* N (input) INTEGER\n* The number of linear equations, i.e., the order of the\n* 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 matrices B and X. NRHS >= 0.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the N-by-N matrix A. If FACT = 'F' and EQUED is\n* not 'N', then A must have been equilibrated by the scaling\n* factors in R and/or C. A is not modified if FACT = 'F' or\n* 'N', or if FACT = 'E' and EQUED = 'N' on exit.\n*\n* On exit, if EQUED .ne. 'N', A is scaled as follows:\n* EQUED = 'R': A := diag(R) * A\n* EQUED = 'C': A := A * diag(C)\n* EQUED = 'B': A := diag(R) * A * diag(C).\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* AF (input or output) COMPLEX array, dimension (LDAF,N)\n* If FACT = 'F', then AF is an input argument and on entry\n* contains the factors L and U from the factorization\n* A = P*L*U as computed by CGETRF. If EQUED .ne. 'N', then\n* AF is the factored form of the equilibrated matrix A.\n*\n* If FACT = 'N', then AF is an output argument and on exit\n* returns the factors L and U from the factorization A = P*L*U\n* of the original matrix A.\n*\n* If FACT = 'E', then AF is an output argument and on exit\n* returns the factors L and U from the factorization A = P*L*U\n* of the equilibrated matrix A (see the description of A for\n* the form of the equilibrated matrix).\n*\n* LDAF (input) INTEGER\n* The leading dimension of the array AF. LDAF >= max(1,N).\n*\n* IPIV (input or output) INTEGER array, dimension (N)\n* If FACT = 'F', then IPIV is an input argument and on entry\n* contains the pivot indices from the factorization A = P*L*U\n* as computed by CGETRF; row i of the matrix was interchanged\n* with row IPIV(i).\n*\n* If FACT = 'N', then IPIV is an output argument and on exit\n* contains the pivot indices from the factorization A = P*L*U\n* of the original matrix A.\n*\n* If FACT = 'E', then IPIV is an output argument and on exit\n* contains the pivot indices from the factorization A = P*L*U\n* of the equilibrated matrix A.\n*\n* EQUED (input or output) CHARACTER*1\n* Specifies the form of equilibration that was done.\n* = 'N': No equilibration (always true if FACT = 'N').\n* = 'R': Row equilibration, i.e., A has been premultiplied by\n* diag(R).\n* = 'C': Column equilibration, i.e., A has been postmultiplied\n* by diag(C).\n* = 'B': Both row and column equilibration, i.e., A has been\n* replaced by diag(R) * A * diag(C).\n* EQUED is an input argument if FACT = 'F'; otherwise, it is an\n* output argument.\n*\n* R (input or output) REAL array, dimension (N)\n* The row scale factors for A. If EQUED = 'R' or 'B', A is\n* multiplied on the left by diag(R); if EQUED = 'N' or 'C', R\n* is not accessed. R is an input argument if FACT = 'F';\n* otherwise, R is an output argument. If FACT = 'F' and\n* EQUED = 'R' or 'B', each element of R must be positive.\n*\n* C (input or output) REAL array, dimension (N)\n* The column scale factors for A. If EQUED = 'C' or 'B', A is\n* multiplied on the right by diag(C); if EQUED = 'N' or 'R', C\n* is not accessed. C is an input argument if FACT = 'F';\n* otherwise, C is an output argument. If FACT = 'F' and\n* EQUED = 'C' or 'B', each element of C must be positive.\n*\n* B (input/output) COMPLEX array, dimension (LDB,NRHS)\n* On entry, the N-by-NRHS right hand side matrix B.\n* On exit,\n* if EQUED = 'N', B is not modified;\n* if TRANS = 'N' and EQUED = 'R' or 'B', B is overwritten by\n* diag(R)*B;\n* if TRANS = 'T' or 'C' and EQUED = 'C' or 'B', B is\n* overwritten by diag(C)*B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* X (output) COMPLEX array, dimension (LDX,NRHS)\n* If INFO = 0 or INFO = N+1, the N-by-NRHS solution matrix X\n* to the original system of equations. Note that A and B are\n* modified on exit if EQUED .ne. 'N', and the solution to the\n* equilibrated system is inv(diag(C))*X if TRANS = 'N' and\n* EQUED = 'C' or 'B', or inv(diag(R))*X if TRANS = 'T' or 'C'\n* and EQUED = 'R' or 'B'.\n*\n* LDX (input) INTEGER\n* The leading dimension of the array X. LDX >= max(1,N).\n*\n* RCOND (output) REAL\n* The estimate of the reciprocal condition number of the matrix\n* A after equilibration (if done). If RCOND is less than the\n* machine precision (in particular, if RCOND = 0), the matrix\n* is singular to working precision. This condition is\n* indicated by a return code of INFO > 0.\n*\n* FERR (output) REAL array, dimension (NRHS)\n* The estimated forward error bound for each solution vector\n* X(j) (the j-th column of the solution matrix X).\n* If XTRUE is the true solution corresponding to X(j), FERR(j)\n* is an estimated upper bound for the magnitude of the largest\n* element in (X(j) - XTRUE) divided by the magnitude of the\n* largest element in X(j). The estimate is as reliable as\n* the estimate for RCOND, and is almost always a slight\n* overestimate of the true error.\n*\n* BERR (output) REAL array, dimension (NRHS)\n* The componentwise relative backward error of each solution\n* vector X(j) (i.e., the smallest relative change in\n* any element of A or B that makes X(j) an exact solution).\n*\n* WORK (workspace) COMPLEX array, dimension (2*N)\n*\n* RWORK (workspace/output) REAL array, dimension (2*N)\n* On exit, RWORK(1) contains the reciprocal pivot growth\n* factor norm(A)/norm(U). The \"max absolute element\" norm is\n* used. If RWORK(1) is much less than 1, then the stability\n* of the LU factorization of the (equilibrated) matrix A\n* could be poor. This also means that the solution X, condition\n* estimator RCOND, and forward error bound FERR could be\n* unreliable. If factorization fails with 0<INFO<=N, then\n* RWORK(1) contains the reciprocal pivot growth factor for the\n* leading INFO columns of A.\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, and i is\n* <= N: U(i,i) is exactly zero. The factorization has\n* been completed, but the factor U is exactly\n* singular, so the solution and error bounds\n* could not be computed. RCOND = 0 is returned.\n* = N+1: U is nonsingular, but RCOND is less than machine\n* precision, meaning that the matrix is singular\n* to working precision. Nevertheless, the\n* solution and error bounds are computed because\n* there are a number of situations where the\n* computed solution can be more accurate than the\n* value of RCOND would suggest.\n*\n\n* =====================================================================\n*\n\n");
|
65
|
-
return Qnil;
|
66
|
-
}
|
67
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
68
|
-
printf("%s\n", "USAGE:\n x, rcond, ferr, berr, rwork, info, a, af, ipiv, equed, r, c, b = NumRu::Lapack.cgesvx( fact, trans, a, b, [:af => af, :ipiv => ipiv, :equed => equed, :r => r, :c => c, :usage => usage, :help => help])\n");
|
69
|
-
return Qnil;
|
70
|
-
}
|
71
|
-
} else
|
72
|
-
rblapack_options = Qnil;
|
73
|
-
if (argc != 4 && argc != 9)
|
74
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 4)", argc);
|
75
|
-
rblapack_fact = argv[0];
|
76
|
-
rblapack_trans = argv[1];
|
77
|
-
rblapack_a = argv[2];
|
78
|
-
rblapack_b = argv[3];
|
79
|
-
if (argc == 9) {
|
80
|
-
rblapack_af = argv[4];
|
81
|
-
rblapack_ipiv = argv[5];
|
82
|
-
rblapack_equed = argv[6];
|
83
|
-
rblapack_r = argv[7];
|
84
|
-
rblapack_c = argv[8];
|
85
|
-
} else if (rblapack_options != Qnil) {
|
86
|
-
rblapack_af = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("af")));
|
87
|
-
rblapack_ipiv = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("ipiv")));
|
88
|
-
rblapack_equed = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("equed")));
|
89
|
-
rblapack_r = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("r")));
|
90
|
-
rblapack_c = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("c")));
|
91
|
-
} else {
|
92
|
-
rblapack_af = Qnil;
|
93
|
-
rblapack_ipiv = Qnil;
|
94
|
-
rblapack_equed = Qnil;
|
95
|
-
rblapack_r = Qnil;
|
96
|
-
rblapack_c = Qnil;
|
97
|
-
}
|
98
|
-
|
99
|
-
fact = StringValueCStr(rblapack_fact)[0];
|
100
|
-
if (!NA_IsNArray(rblapack_a))
|
101
|
-
rb_raise(rb_eArgError, "a (3th argument) must be NArray");
|
102
|
-
if (NA_RANK(rblapack_a) != 2)
|
103
|
-
rb_raise(rb_eArgError, "rank of a (3th argument) must be %d", 2);
|
104
|
-
lda = NA_SHAPE0(rblapack_a);
|
105
|
-
n = NA_SHAPE1(rblapack_a);
|
106
|
-
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
107
|
-
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
108
|
-
a = NA_PTR_TYPE(rblapack_a, complex*);
|
109
|
-
if (rblapack_ipiv != Qnil) {
|
110
|
-
if (!NA_IsNArray(rblapack_ipiv))
|
111
|
-
rb_raise(rb_eArgError, "ipiv (option) must be NArray");
|
112
|
-
if (NA_RANK(rblapack_ipiv) != 1)
|
113
|
-
rb_raise(rb_eArgError, "rank of ipiv (option) must be %d", 1);
|
114
|
-
if (NA_SHAPE0(rblapack_ipiv) != n)
|
115
|
-
rb_raise(rb_eRuntimeError, "shape 0 of ipiv must be the same as shape 1 of a");
|
116
|
-
if (NA_TYPE(rblapack_ipiv) != NA_LINT)
|
117
|
-
rblapack_ipiv = na_change_type(rblapack_ipiv, NA_LINT);
|
118
|
-
ipiv = NA_PTR_TYPE(rblapack_ipiv, integer*);
|
119
|
-
}
|
120
|
-
if (rblapack_r != Qnil) {
|
121
|
-
if (!NA_IsNArray(rblapack_r))
|
122
|
-
rb_raise(rb_eArgError, "r (option) must be NArray");
|
123
|
-
if (NA_RANK(rblapack_r) != 1)
|
124
|
-
rb_raise(rb_eArgError, "rank of r (option) must be %d", 1);
|
125
|
-
if (NA_SHAPE0(rblapack_r) != n)
|
126
|
-
rb_raise(rb_eRuntimeError, "shape 0 of r must be the same as shape 1 of a");
|
127
|
-
if (NA_TYPE(rblapack_r) != NA_SFLOAT)
|
128
|
-
rblapack_r = na_change_type(rblapack_r, NA_SFLOAT);
|
129
|
-
r = NA_PTR_TYPE(rblapack_r, real*);
|
130
|
-
}
|
131
|
-
ldx = n;
|
132
|
-
trans = StringValueCStr(rblapack_trans)[0];
|
133
|
-
if (rblapack_equed != Qnil) {
|
134
|
-
equed = StringValueCStr(rblapack_equed)[0];
|
135
|
-
}
|
136
|
-
ldaf = n;
|
137
|
-
if (!NA_IsNArray(rblapack_b))
|
138
|
-
rb_raise(rb_eArgError, "b (4th argument) must be NArray");
|
139
|
-
if (NA_RANK(rblapack_b) != 2)
|
140
|
-
rb_raise(rb_eArgError, "rank of b (4th argument) must be %d", 2);
|
141
|
-
ldb = NA_SHAPE0(rblapack_b);
|
142
|
-
nrhs = NA_SHAPE1(rblapack_b);
|
143
|
-
if (NA_TYPE(rblapack_b) != NA_SCOMPLEX)
|
144
|
-
rblapack_b = na_change_type(rblapack_b, NA_SCOMPLEX);
|
145
|
-
b = NA_PTR_TYPE(rblapack_b, complex*);
|
146
|
-
if (rblapack_c != Qnil) {
|
147
|
-
if (!NA_IsNArray(rblapack_c))
|
148
|
-
rb_raise(rb_eArgError, "c (option) must be NArray");
|
149
|
-
if (NA_RANK(rblapack_c) != 1)
|
150
|
-
rb_raise(rb_eArgError, "rank of c (option) must be %d", 1);
|
151
|
-
if (NA_SHAPE0(rblapack_c) != n)
|
152
|
-
rb_raise(rb_eRuntimeError, "shape 0 of c must be the same as shape 1 of a");
|
153
|
-
if (NA_TYPE(rblapack_c) != NA_SFLOAT)
|
154
|
-
rblapack_c = na_change_type(rblapack_c, NA_SFLOAT);
|
155
|
-
c = NA_PTR_TYPE(rblapack_c, real*);
|
156
|
-
}
|
157
|
-
if (rblapack_af != Qnil) {
|
158
|
-
if (!NA_IsNArray(rblapack_af))
|
159
|
-
rb_raise(rb_eArgError, "af (option) must be NArray");
|
160
|
-
if (NA_RANK(rblapack_af) != 2)
|
161
|
-
rb_raise(rb_eArgError, "rank of af (option) must be %d", 2);
|
162
|
-
if (NA_SHAPE0(rblapack_af) != ldaf)
|
163
|
-
rb_raise(rb_eRuntimeError, "shape 0 of af must be n");
|
164
|
-
if (NA_SHAPE1(rblapack_af) != n)
|
165
|
-
rb_raise(rb_eRuntimeError, "shape 1 of af must be the same as shape 1 of a");
|
166
|
-
if (NA_TYPE(rblapack_af) != NA_SCOMPLEX)
|
167
|
-
rblapack_af = na_change_type(rblapack_af, NA_SCOMPLEX);
|
168
|
-
af = NA_PTR_TYPE(rblapack_af, complex*);
|
169
|
-
}
|
170
|
-
{
|
171
|
-
int shape[2];
|
172
|
-
shape[0] = ldx;
|
173
|
-
shape[1] = nrhs;
|
174
|
-
rblapack_x = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
175
|
-
}
|
176
|
-
x = NA_PTR_TYPE(rblapack_x, complex*);
|
177
|
-
{
|
178
|
-
int shape[1];
|
179
|
-
shape[0] = nrhs;
|
180
|
-
rblapack_ferr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
181
|
-
}
|
182
|
-
ferr = NA_PTR_TYPE(rblapack_ferr, real*);
|
183
|
-
{
|
184
|
-
int shape[1];
|
185
|
-
shape[0] = nrhs;
|
186
|
-
rblapack_berr = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
187
|
-
}
|
188
|
-
berr = NA_PTR_TYPE(rblapack_berr, real*);
|
189
|
-
{
|
190
|
-
int shape[1];
|
191
|
-
shape[0] = 2*n;
|
192
|
-
rblapack_rwork = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
193
|
-
}
|
194
|
-
rwork = NA_PTR_TYPE(rblapack_rwork, real*);
|
195
|
-
{
|
196
|
-
int shape[2];
|
197
|
-
shape[0] = lda;
|
198
|
-
shape[1] = n;
|
199
|
-
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
200
|
-
}
|
201
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
202
|
-
MEMCPY(a_out__, a, complex, NA_TOTAL(rblapack_a));
|
203
|
-
rblapack_a = rblapack_a_out__;
|
204
|
-
a = a_out__;
|
205
|
-
{
|
206
|
-
int shape[2];
|
207
|
-
shape[0] = ldaf;
|
208
|
-
shape[1] = n;
|
209
|
-
rblapack_af_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
210
|
-
}
|
211
|
-
af_out__ = NA_PTR_TYPE(rblapack_af_out__, complex*);
|
212
|
-
if (rblapack_af != Qnil) {
|
213
|
-
MEMCPY(af_out__, af, complex, NA_TOTAL(rblapack_af));
|
214
|
-
}
|
215
|
-
rblapack_af = rblapack_af_out__;
|
216
|
-
af = af_out__;
|
217
|
-
{
|
218
|
-
int shape[1];
|
219
|
-
shape[0] = n;
|
220
|
-
rblapack_ipiv_out__ = na_make_object(NA_LINT, 1, shape, cNArray);
|
221
|
-
}
|
222
|
-
ipiv_out__ = NA_PTR_TYPE(rblapack_ipiv_out__, integer*);
|
223
|
-
if (rblapack_ipiv != Qnil) {
|
224
|
-
MEMCPY(ipiv_out__, ipiv, integer, NA_TOTAL(rblapack_ipiv));
|
225
|
-
}
|
226
|
-
rblapack_ipiv = rblapack_ipiv_out__;
|
227
|
-
ipiv = ipiv_out__;
|
228
|
-
{
|
229
|
-
int shape[1];
|
230
|
-
shape[0] = n;
|
231
|
-
rblapack_r_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
232
|
-
}
|
233
|
-
r_out__ = NA_PTR_TYPE(rblapack_r_out__, real*);
|
234
|
-
if (rblapack_r != Qnil) {
|
235
|
-
MEMCPY(r_out__, r, real, NA_TOTAL(rblapack_r));
|
236
|
-
}
|
237
|
-
rblapack_r = rblapack_r_out__;
|
238
|
-
r = r_out__;
|
239
|
-
{
|
240
|
-
int shape[1];
|
241
|
-
shape[0] = n;
|
242
|
-
rblapack_c_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
243
|
-
}
|
244
|
-
c_out__ = NA_PTR_TYPE(rblapack_c_out__, real*);
|
245
|
-
if (rblapack_c != Qnil) {
|
246
|
-
MEMCPY(c_out__, c, real, NA_TOTAL(rblapack_c));
|
247
|
-
}
|
248
|
-
rblapack_c = rblapack_c_out__;
|
249
|
-
c = c_out__;
|
250
|
-
{
|
251
|
-
int shape[2];
|
252
|
-
shape[0] = ldb;
|
253
|
-
shape[1] = nrhs;
|
254
|
-
rblapack_b_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
255
|
-
}
|
256
|
-
b_out__ = NA_PTR_TYPE(rblapack_b_out__, complex*);
|
257
|
-
MEMCPY(b_out__, b, complex, NA_TOTAL(rblapack_b));
|
258
|
-
rblapack_b = rblapack_b_out__;
|
259
|
-
b = b_out__;
|
260
|
-
work = ALLOC_N(complex, (2*n));
|
261
|
-
|
262
|
-
cgesvx_(&fact, &trans, &n, &nrhs, a, &lda, af, &ldaf, ipiv, &equed, r, c, b, &ldb, x, &ldx, &rcond, ferr, berr, work, rwork, &info);
|
263
|
-
|
264
|
-
free(work);
|
265
|
-
rblapack_rcond = rb_float_new((double)rcond);
|
266
|
-
rblapack_info = INT2NUM(info);
|
267
|
-
rblapack_equed = rb_str_new(&equed,1);
|
268
|
-
return rb_ary_new3(13, rblapack_x, rblapack_rcond, rblapack_ferr, rblapack_berr, rblapack_rwork, rblapack_info, rblapack_a, rblapack_af, rblapack_ipiv, rblapack_equed, rblapack_r, rblapack_c, rblapack_b);
|
269
|
-
}
|
270
|
-
|
271
|
-
void
|
272
|
-
init_lapack_cgesvx(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
273
|
-
sHelp = sH;
|
274
|
-
sUsage = sU;
|
275
|
-
rblapack_ZERO = zero;
|
276
|
-
|
277
|
-
rb_define_module_function(mLapack, "cgesvx", rblapack_cgesvx, -1);
|
278
|
-
}
|