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/dggsvd.c
DELETED
|
@@ -1,181 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID dggsvd_(char* jobu, char* jobv, char* jobq, integer* m, integer* n, integer* p, integer* k, integer* l, doublereal* a, integer* lda, doublereal* b, integer* ldb, doublereal* alpha, doublereal* beta, doublereal* u, integer* ldu, doublereal* v, integer* ldv, doublereal* q, integer* ldq, doublereal* work, integer* iwork, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_dggsvd(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_jobu;
|
|
9
|
-
char jobu;
|
|
10
|
-
VALUE rblapack_jobv;
|
|
11
|
-
char jobv;
|
|
12
|
-
VALUE rblapack_jobq;
|
|
13
|
-
char jobq;
|
|
14
|
-
VALUE rblapack_a;
|
|
15
|
-
doublereal *a;
|
|
16
|
-
VALUE rblapack_b;
|
|
17
|
-
doublereal *b;
|
|
18
|
-
VALUE rblapack_k;
|
|
19
|
-
integer k;
|
|
20
|
-
VALUE rblapack_l;
|
|
21
|
-
integer l;
|
|
22
|
-
VALUE rblapack_alpha;
|
|
23
|
-
doublereal *alpha;
|
|
24
|
-
VALUE rblapack_beta;
|
|
25
|
-
doublereal *beta;
|
|
26
|
-
VALUE rblapack_u;
|
|
27
|
-
doublereal *u;
|
|
28
|
-
VALUE rblapack_v;
|
|
29
|
-
doublereal *v;
|
|
30
|
-
VALUE rblapack_q;
|
|
31
|
-
doublereal *q;
|
|
32
|
-
VALUE rblapack_iwork;
|
|
33
|
-
integer *iwork;
|
|
34
|
-
VALUE rblapack_info;
|
|
35
|
-
integer info;
|
|
36
|
-
VALUE rblapack_a_out__;
|
|
37
|
-
doublereal *a_out__;
|
|
38
|
-
VALUE rblapack_b_out__;
|
|
39
|
-
doublereal *b_out__;
|
|
40
|
-
doublereal *work;
|
|
41
|
-
|
|
42
|
-
integer lda;
|
|
43
|
-
integer n;
|
|
44
|
-
integer ldb;
|
|
45
|
-
integer ldu;
|
|
46
|
-
integer m;
|
|
47
|
-
integer ldv;
|
|
48
|
-
integer p;
|
|
49
|
-
integer ldq;
|
|
50
|
-
|
|
51
|
-
VALUE rblapack_options;
|
|
52
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
53
|
-
argc--;
|
|
54
|
-
rblapack_options = argv[argc];
|
|
55
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
56
|
-
printf("%s\n", "USAGE:\n k, l, alpha, beta, u, v, q, iwork, info, a, b = NumRu::Lapack.dggsvd( jobu, jobv, jobq, a, b, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DGGSVD( JOBU, JOBV, JOBQ, M, N, P, K, L, A, LDA, B, LDB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* DGGSVD computes the generalized singular value decomposition (GSVD)\n* of an M-by-N real matrix A and P-by-N real matrix B:\n*\n* U'*A*Q = D1*( 0 R ), V'*B*Q = D2*( 0 R )\n*\n* where U, V and Q are orthogonal matrices, and Z' is the transpose\n* of Z. Let K+L = the effective numerical rank of the matrix (A',B')',\n* then R is a K+L-by-K+L nonsingular upper triangular matrix, D1 and\n* D2 are M-by-(K+L) and P-by-(K+L) \"diagonal\" matrices and of the\n* following structures, respectively:\n*\n* If M-K-L >= 0,\n*\n* K L\n* D1 = K ( I 0 )\n* L ( 0 C )\n* M-K-L ( 0 0 )\n*\n* K L\n* D2 = L ( 0 S )\n* P-L ( 0 0 )\n*\n* N-K-L K L\n* ( 0 R ) = K ( 0 R11 R12 )\n* L ( 0 0 R22 )\n*\n* where\n*\n* C = diag( ALPHA(K+1), ... , ALPHA(K+L) ),\n* S = diag( BETA(K+1), ... , BETA(K+L) ),\n* C**2 + S**2 = I.\n*\n* R is stored in A(1:K+L,N-K-L+1:N) on exit.\n*\n* If M-K-L < 0,\n*\n* K M-K K+L-M\n* D1 = K ( I 0 0 )\n* M-K ( 0 C 0 )\n*\n* K M-K K+L-M\n* D2 = M-K ( 0 S 0 )\n* K+L-M ( 0 0 I )\n* P-L ( 0 0 0 )\n*\n* N-K-L K M-K K+L-M\n* ( 0 R ) = K ( 0 R11 R12 R13 )\n* M-K ( 0 0 R22 R23 )\n* K+L-M ( 0 0 0 R33 )\n*\n* where\n*\n* C = diag( ALPHA(K+1), ... , ALPHA(M) ),\n* S = diag( BETA(K+1), ... , BETA(M) ),\n* C**2 + S**2 = I.\n*\n* (R11 R12 R13 ) is stored in A(1:M, N-K-L+1:N), and R33 is stored\n* ( 0 R22 R23 )\n* in B(M-K+1:L,N+M-K-L+1:N) on exit.\n*\n* The routine computes C, S, R, and optionally the orthogonal\n* transformation matrices U, V and Q.\n*\n* In particular, if B is an N-by-N nonsingular matrix, then the GSVD of\n* A and B implicitly gives the SVD of A*inv(B):\n* A*inv(B) = U*(D1*inv(D2))*V'.\n* If ( A',B')' has orthonormal columns, then the GSVD of A and B is\n* also equal to the CS decomposition of A and B. Furthermore, the GSVD\n* can be used to derive the solution of the eigenvalue problem:\n* A'*A x = lambda* B'*B x.\n* In some literature, the GSVD of A and B is presented in the form\n* U'*A*X = ( 0 D1 ), V'*B*X = ( 0 D2 )\n* where U and V are orthogonal and X is nonsingular, D1 and D2 are\n* ``diagonal''. The former GSVD form can be converted to the latter\n* form by taking the nonsingular matrix X as\n*\n* X = Q*( I 0 )\n* ( 0 inv(R) ).\n*\n\n* Arguments\n* =========\n*\n* JOBU (input) CHARACTER*1\n* = 'U': Orthogonal matrix U is computed;\n* = 'N': U is not computed.\n*\n* JOBV (input) CHARACTER*1\n* = 'V': Orthogonal matrix V is computed;\n* = 'N': V is not computed.\n*\n* JOBQ (input) CHARACTER*1\n* = 'Q': Orthogonal matrix Q is computed;\n* = 'N': Q is not computed.\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrices A and B. N >= 0.\n*\n* P (input) INTEGER\n* The number of rows of the matrix B. P >= 0.\n*\n* K (output) INTEGER\n* L (output) INTEGER\n* On exit, K and L specify the dimension of the subblocks\n* described in the Purpose section.\n* K + L = effective numerical rank of (A',B')'.\n*\n* A (input/output) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A contains the triangular matrix R, or part of R.\n* See Purpose for details.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) DOUBLE PRECISION array, dimension (LDB,N)\n* On entry, the P-by-N matrix B.\n* On exit, B contains the triangular matrix R if M-K-L < 0.\n* See Purpose for details.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,P).\n*\n* ALPHA (output) DOUBLE PRECISION array, dimension (N)\n* BETA (output) DOUBLE PRECISION array, dimension (N)\n* On exit, ALPHA and BETA contain the generalized singular\n* value pairs of A and B;\n* ALPHA(1:K) = 1,\n* BETA(1:K) = 0,\n* and if M-K-L >= 0,\n* ALPHA(K+1:K+L) = C,\n* BETA(K+1:K+L) = S,\n* or if M-K-L < 0,\n* ALPHA(K+1:M)=C, ALPHA(M+1:K+L)=0\n* BETA(K+1:M) =S, BETA(M+1:K+L) =1\n* and\n* ALPHA(K+L+1:N) = 0\n* BETA(K+L+1:N) = 0\n*\n* U (output) DOUBLE PRECISION array, dimension (LDU,M)\n* If JOBU = 'U', U contains the M-by-M orthogonal matrix U.\n* If JOBU = 'N', U is not referenced.\n*\n* LDU (input) INTEGER\n* The leading dimension of the array U. LDU >= max(1,M) if\n* JOBU = 'U'; LDU >= 1 otherwise.\n*\n* V (output) DOUBLE PRECISION array, dimension (LDV,P)\n* If JOBV = 'V', V contains the P-by-P orthogonal matrix V.\n* If JOBV = 'N', V is not referenced.\n*\n* LDV (input) INTEGER\n* The leading dimension of the array V. LDV >= max(1,P) if\n* JOBV = 'V'; LDV >= 1 otherwise.\n*\n* Q (output) DOUBLE PRECISION array, dimension (LDQ,N)\n* If JOBQ = 'Q', Q contains the N-by-N orthogonal matrix Q.\n* If JOBQ = 'N', Q is not referenced.\n*\n* LDQ (input) INTEGER\n* The leading dimension of the array Q. LDQ >= max(1,N) if\n* JOBQ = 'Q'; LDQ >= 1 otherwise.\n*\n* WORK (workspace) DOUBLE PRECISION array,\n* dimension (max(3*N,M,P)+N)\n*\n* IWORK (workspace/output) INTEGER array, dimension (N)\n* On exit, IWORK stores the sorting information. More\n* precisely, the following loop will sort ALPHA\n* for I = K+1, min(M,K+L)\n* swap ALPHA(I) and ALPHA(IWORK(I))\n* endfor\n* such that ALPHA(1) >= ALPHA(2) >= ... >= ALPHA(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 = 1, the Jacobi-type procedure failed to\n* converge. For further details, see subroutine DTGSJA.\n*\n* Internal Parameters\n* ===================\n*\n* TOLA DOUBLE PRECISION\n* TOLB DOUBLE PRECISION\n* TOLA and TOLB are the thresholds to determine the effective\n* rank of (A',B')'. Generally, they are set to\n* TOLA = MAX(M,N)*norm(A)*MAZHEPS,\n* TOLB = MAX(P,N)*norm(B)*MAZHEPS.\n* The size of TOLA and TOLB may affect the size of backward\n* errors of the decomposition.\n*\n\n* Further Details\n* ===============\n*\n* 2-96 Based on modifications by\n* Ming Gu and Huan Ren, Computer Science Division, University of\n* California at Berkeley, USA\n*\n* =====================================================================\n*\n* .. Local Scalars ..\n LOGICAL WANTQ, WANTU, WANTV\n INTEGER I, IBND, ISUB, J, NCYCLE\n DOUBLE PRECISION ANORM, BNORM, SMAX, TEMP, TOLA, TOLB, ULP, UNFL\n* ..\n* .. External Functions ..\n LOGICAL LSAME\n DOUBLE PRECISION DLAMCH, DLANGE\n EXTERNAL LSAME, DLAMCH, DLANGE\n* ..\n* .. External Subroutines ..\n EXTERNAL DCOPY, DGGSVP, DTGSJA, XERBLA\n* ..\n* .. Intrinsic Functions ..\n INTRINSIC MAX, MIN\n* ..\n\n");
|
|
57
|
-
return Qnil;
|
|
58
|
-
}
|
|
59
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
60
|
-
printf("%s\n", "USAGE:\n k, l, alpha, beta, u, v, q, iwork, info, a, b = NumRu::Lapack.dggsvd( jobu, jobv, jobq, a, b, [:usage => usage, :help => help])\n");
|
|
61
|
-
return Qnil;
|
|
62
|
-
}
|
|
63
|
-
} else
|
|
64
|
-
rblapack_options = Qnil;
|
|
65
|
-
if (argc != 5 && argc != 5)
|
|
66
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 5)", argc);
|
|
67
|
-
rblapack_jobu = argv[0];
|
|
68
|
-
rblapack_jobv = argv[1];
|
|
69
|
-
rblapack_jobq = argv[2];
|
|
70
|
-
rblapack_a = argv[3];
|
|
71
|
-
rblapack_b = argv[4];
|
|
72
|
-
if (argc == 5) {
|
|
73
|
-
} else if (rblapack_options != Qnil) {
|
|
74
|
-
} else {
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
jobu = StringValueCStr(rblapack_jobu)[0];
|
|
78
|
-
jobq = StringValueCStr(rblapack_jobq)[0];
|
|
79
|
-
if (!NA_IsNArray(rblapack_b))
|
|
80
|
-
rb_raise(rb_eArgError, "b (5th argument) must be NArray");
|
|
81
|
-
if (NA_RANK(rblapack_b) != 2)
|
|
82
|
-
rb_raise(rb_eArgError, "rank of b (5th argument) must be %d", 2);
|
|
83
|
-
ldb = NA_SHAPE0(rblapack_b);
|
|
84
|
-
n = NA_SHAPE1(rblapack_b);
|
|
85
|
-
if (NA_TYPE(rblapack_b) != NA_DFLOAT)
|
|
86
|
-
rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
|
|
87
|
-
b = NA_PTR_TYPE(rblapack_b, doublereal*);
|
|
88
|
-
p = ldb;
|
|
89
|
-
jobv = StringValueCStr(rblapack_jobv)[0];
|
|
90
|
-
ldv = lsame_(&jobv,"V") ? MAX(1,p) : 1;
|
|
91
|
-
if (!NA_IsNArray(rblapack_a))
|
|
92
|
-
rb_raise(rb_eArgError, "a (4th argument) must be NArray");
|
|
93
|
-
if (NA_RANK(rblapack_a) != 2)
|
|
94
|
-
rb_raise(rb_eArgError, "rank of a (4th argument) must be %d", 2);
|
|
95
|
-
lda = NA_SHAPE0(rblapack_a);
|
|
96
|
-
if (NA_SHAPE1(rblapack_a) != n)
|
|
97
|
-
rb_raise(rb_eRuntimeError, "shape 1 of a must be the same as shape 1 of b");
|
|
98
|
-
if (NA_TYPE(rblapack_a) != NA_DFLOAT)
|
|
99
|
-
rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
|
|
100
|
-
a = NA_PTR_TYPE(rblapack_a, doublereal*);
|
|
101
|
-
ldq = lsame_(&jobq,"Q") ? MAX(1,n) : 1;
|
|
102
|
-
m = lda;
|
|
103
|
-
ldu = lsame_(&jobu,"U") ? MAX(1,m) : 1;
|
|
104
|
-
{
|
|
105
|
-
int shape[1];
|
|
106
|
-
shape[0] = n;
|
|
107
|
-
rblapack_alpha = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
108
|
-
}
|
|
109
|
-
alpha = NA_PTR_TYPE(rblapack_alpha, doublereal*);
|
|
110
|
-
{
|
|
111
|
-
int shape[1];
|
|
112
|
-
shape[0] = n;
|
|
113
|
-
rblapack_beta = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
114
|
-
}
|
|
115
|
-
beta = NA_PTR_TYPE(rblapack_beta, doublereal*);
|
|
116
|
-
{
|
|
117
|
-
int shape[2];
|
|
118
|
-
shape[0] = ldu;
|
|
119
|
-
shape[1] = m;
|
|
120
|
-
rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
121
|
-
}
|
|
122
|
-
u = NA_PTR_TYPE(rblapack_u, doublereal*);
|
|
123
|
-
{
|
|
124
|
-
int shape[2];
|
|
125
|
-
shape[0] = ldv;
|
|
126
|
-
shape[1] = p;
|
|
127
|
-
rblapack_v = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
128
|
-
}
|
|
129
|
-
v = NA_PTR_TYPE(rblapack_v, doublereal*);
|
|
130
|
-
{
|
|
131
|
-
int shape[2];
|
|
132
|
-
shape[0] = ldq;
|
|
133
|
-
shape[1] = n;
|
|
134
|
-
rblapack_q = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
135
|
-
}
|
|
136
|
-
q = NA_PTR_TYPE(rblapack_q, doublereal*);
|
|
137
|
-
{
|
|
138
|
-
int shape[1];
|
|
139
|
-
shape[0] = n;
|
|
140
|
-
rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
|
|
141
|
-
}
|
|
142
|
-
iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
|
|
143
|
-
{
|
|
144
|
-
int shape[2];
|
|
145
|
-
shape[0] = lda;
|
|
146
|
-
shape[1] = n;
|
|
147
|
-
rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
148
|
-
}
|
|
149
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, doublereal*);
|
|
150
|
-
MEMCPY(a_out__, a, doublereal, NA_TOTAL(rblapack_a));
|
|
151
|
-
rblapack_a = rblapack_a_out__;
|
|
152
|
-
a = a_out__;
|
|
153
|
-
{
|
|
154
|
-
int shape[2];
|
|
155
|
-
shape[0] = ldb;
|
|
156
|
-
shape[1] = n;
|
|
157
|
-
rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
158
|
-
}
|
|
159
|
-
b_out__ = NA_PTR_TYPE(rblapack_b_out__, doublereal*);
|
|
160
|
-
MEMCPY(b_out__, b, doublereal, NA_TOTAL(rblapack_b));
|
|
161
|
-
rblapack_b = rblapack_b_out__;
|
|
162
|
-
b = b_out__;
|
|
163
|
-
work = ALLOC_N(doublereal, (MAX(3*n,m)*(p)+n));
|
|
164
|
-
|
|
165
|
-
dggsvd_(&jobu, &jobv, &jobq, &m, &n, &p, &k, &l, a, &lda, b, &ldb, alpha, beta, u, &ldu, v, &ldv, q, &ldq, work, iwork, &info);
|
|
166
|
-
|
|
167
|
-
free(work);
|
|
168
|
-
rblapack_k = INT2NUM(k);
|
|
169
|
-
rblapack_l = INT2NUM(l);
|
|
170
|
-
rblapack_info = INT2NUM(info);
|
|
171
|
-
return rb_ary_new3(11, rblapack_k, rblapack_l, rblapack_alpha, rblapack_beta, rblapack_u, rblapack_v, rblapack_q, rblapack_iwork, rblapack_info, rblapack_a, rblapack_b);
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
void
|
|
175
|
-
init_lapack_dggsvd(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
176
|
-
sHelp = sH;
|
|
177
|
-
sUsage = sU;
|
|
178
|
-
rblapack_ZERO = zero;
|
|
179
|
-
|
|
180
|
-
rb_define_module_function(mLapack, "dggsvd", rblapack_dggsvd, -1);
|
|
181
|
-
}
|
data/ext/dggsvp.c
DELETED
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID dggsvp_(char* jobu, char* jobv, char* jobq, integer* m, integer* p, integer* n, doublereal* a, integer* lda, doublereal* b, integer* ldb, doublereal* tola, doublereal* tolb, integer* k, integer* l, doublereal* u, integer* ldu, doublereal* v, integer* ldv, doublereal* q, integer* ldq, integer* iwork, doublereal* tau, doublereal* work, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_dggsvp(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_jobu;
|
|
9
|
-
char jobu;
|
|
10
|
-
VALUE rblapack_jobv;
|
|
11
|
-
char jobv;
|
|
12
|
-
VALUE rblapack_jobq;
|
|
13
|
-
char jobq;
|
|
14
|
-
VALUE rblapack_a;
|
|
15
|
-
doublereal *a;
|
|
16
|
-
VALUE rblapack_b;
|
|
17
|
-
doublereal *b;
|
|
18
|
-
VALUE rblapack_tola;
|
|
19
|
-
doublereal tola;
|
|
20
|
-
VALUE rblapack_tolb;
|
|
21
|
-
doublereal tolb;
|
|
22
|
-
VALUE rblapack_k;
|
|
23
|
-
integer k;
|
|
24
|
-
VALUE rblapack_l;
|
|
25
|
-
integer l;
|
|
26
|
-
VALUE rblapack_u;
|
|
27
|
-
doublereal *u;
|
|
28
|
-
VALUE rblapack_v;
|
|
29
|
-
doublereal *v;
|
|
30
|
-
VALUE rblapack_q;
|
|
31
|
-
doublereal *q;
|
|
32
|
-
VALUE rblapack_info;
|
|
33
|
-
integer info;
|
|
34
|
-
VALUE rblapack_a_out__;
|
|
35
|
-
doublereal *a_out__;
|
|
36
|
-
VALUE rblapack_b_out__;
|
|
37
|
-
doublereal *b_out__;
|
|
38
|
-
integer *iwork;
|
|
39
|
-
doublereal *tau;
|
|
40
|
-
doublereal *work;
|
|
41
|
-
|
|
42
|
-
integer lda;
|
|
43
|
-
integer n;
|
|
44
|
-
integer ldb;
|
|
45
|
-
integer ldu;
|
|
46
|
-
integer m;
|
|
47
|
-
integer ldv;
|
|
48
|
-
integer p;
|
|
49
|
-
integer ldq;
|
|
50
|
-
|
|
51
|
-
VALUE rblapack_options;
|
|
52
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
53
|
-
argc--;
|
|
54
|
-
rblapack_options = argv[argc];
|
|
55
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
56
|
-
printf("%s\n", "USAGE:\n k, l, u, v, q, info, a, b = NumRu::Lapack.dggsvp( jobu, jobv, jobq, a, b, tola, tolb, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DGGSVP( JOBU, JOBV, JOBQ, M, P, N, A, LDA, B, LDB, TOLA, TOLB, K, L, U, LDU, V, LDV, Q, LDQ, IWORK, TAU, WORK, INFO )\n\n* Purpose\n* =======\n*\n* DGGSVP computes orthogonal matrices U, V and Q such that\n*\n* N-K-L K L\n* U'*A*Q = K ( 0 A12 A13 ) if M-K-L >= 0;\n* L ( 0 0 A23 )\n* M-K-L ( 0 0 0 )\n*\n* N-K-L K L\n* = K ( 0 A12 A13 ) if M-K-L < 0;\n* M-K ( 0 0 A23 )\n*\n* N-K-L K L\n* V'*B*Q = L ( 0 0 B13 )\n* P-L ( 0 0 0 )\n*\n* where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular\n* upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0,\n* otherwise A23 is (M-K)-by-L upper trapezoidal. K+L = the effective\n* numerical rank of the (M+P)-by-N matrix (A',B')'. Z' denotes the\n* transpose of Z.\n*\n* This decomposition is the preprocessing step for computing the\n* Generalized Singular Value Decomposition (GSVD), see subroutine\n* DGGSVD.\n*\n\n* Arguments\n* =========\n*\n* JOBU (input) CHARACTER*1\n* = 'U': Orthogonal matrix U is computed;\n* = 'N': U is not computed.\n*\n* JOBV (input) CHARACTER*1\n* = 'V': Orthogonal matrix V is computed;\n* = 'N': V is not computed.\n*\n* JOBQ (input) CHARACTER*1\n* = 'Q': Orthogonal matrix Q is computed;\n* = 'N': Q is not computed.\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* P (input) INTEGER\n* The number of rows of the matrix B. P >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrices A and B. N >= 0.\n*\n* A (input/output) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the M-by-N matrix A.\n* On exit, A contains the triangular (or trapezoidal) matrix\n* described in the Purpose section.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* B (input/output) DOUBLE PRECISION array, dimension (LDB,N)\n* On entry, the P-by-N matrix B.\n* On exit, B contains the triangular matrix described in\n* the Purpose section.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,P).\n*\n* TOLA (input) DOUBLE PRECISION\n* TOLB (input) DOUBLE PRECISION\n* TOLA and TOLB are the thresholds to determine the effective\n* numerical rank of matrix B and a subblock of A. Generally,\n* they are set to\n* TOLA = MAX(M,N)*norm(A)*MAZHEPS,\n* TOLB = MAX(P,N)*norm(B)*MAZHEPS.\n* The size of TOLA and TOLB may affect the size of backward\n* errors of the decomposition.\n*\n* K (output) INTEGER\n* L (output) INTEGER\n* On exit, K and L specify the dimension of the subblocks\n* described in Purpose.\n* K + L = effective numerical rank of (A',B')'.\n*\n* U (output) DOUBLE PRECISION array, dimension (LDU,M)\n* If JOBU = 'U', U contains the orthogonal matrix U.\n* If JOBU = 'N', U is not referenced.\n*\n* LDU (input) INTEGER\n* The leading dimension of the array U. LDU >= max(1,M) if\n* JOBU = 'U'; LDU >= 1 otherwise.\n*\n* V (output) DOUBLE PRECISION array, dimension (LDV,P)\n* If JOBV = 'V', V contains the orthogonal matrix V.\n* If JOBV = 'N', V is not referenced.\n*\n* LDV (input) INTEGER\n* The leading dimension of the array V. LDV >= max(1,P) if\n* JOBV = 'V'; LDV >= 1 otherwise.\n*\n* Q (output) DOUBLE PRECISION array, dimension (LDQ,N)\n* If JOBQ = 'Q', Q contains the orthogonal matrix Q.\n* If JOBQ = 'N', Q is not referenced.\n*\n* LDQ (input) INTEGER\n* The leading dimension of the array Q. LDQ >= max(1,N) if\n* JOBQ = 'Q'; LDQ >= 1 otherwise.\n*\n* IWORK (workspace) INTEGER array, dimension (N)\n*\n* TAU (workspace) DOUBLE PRECISION array, dimension (N)\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (max(3*N,M,P))\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n*\n*\n\n* Further Details\n* ===============\n*\n* The subroutine uses LAPACK subroutine DGEQPF for the QR factorization\n* with column pivoting to detect the effective numerical rank of the\n* a matrix. It may be replaced by a better rank determination strategy.\n*\n* =====================================================================\n*\n\n");
|
|
57
|
-
return Qnil;
|
|
58
|
-
}
|
|
59
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
60
|
-
printf("%s\n", "USAGE:\n k, l, u, v, q, info, a, b = NumRu::Lapack.dggsvp( jobu, jobv, jobq, a, b, tola, tolb, [:usage => usage, :help => help])\n");
|
|
61
|
-
return Qnil;
|
|
62
|
-
}
|
|
63
|
-
} else
|
|
64
|
-
rblapack_options = Qnil;
|
|
65
|
-
if (argc != 7 && argc != 7)
|
|
66
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 7)", argc);
|
|
67
|
-
rblapack_jobu = argv[0];
|
|
68
|
-
rblapack_jobv = argv[1];
|
|
69
|
-
rblapack_jobq = argv[2];
|
|
70
|
-
rblapack_a = argv[3];
|
|
71
|
-
rblapack_b = argv[4];
|
|
72
|
-
rblapack_tola = argv[5];
|
|
73
|
-
rblapack_tolb = argv[6];
|
|
74
|
-
if (argc == 7) {
|
|
75
|
-
} else if (rblapack_options != Qnil) {
|
|
76
|
-
} else {
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
jobu = StringValueCStr(rblapack_jobu)[0];
|
|
80
|
-
jobq = StringValueCStr(rblapack_jobq)[0];
|
|
81
|
-
if (!NA_IsNArray(rblapack_b))
|
|
82
|
-
rb_raise(rb_eArgError, "b (5th argument) must be NArray");
|
|
83
|
-
if (NA_RANK(rblapack_b) != 2)
|
|
84
|
-
rb_raise(rb_eArgError, "rank of b (5th argument) must be %d", 2);
|
|
85
|
-
ldb = NA_SHAPE0(rblapack_b);
|
|
86
|
-
n = NA_SHAPE1(rblapack_b);
|
|
87
|
-
if (NA_TYPE(rblapack_b) != NA_DFLOAT)
|
|
88
|
-
rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
|
|
89
|
-
b = NA_PTR_TYPE(rblapack_b, doublereal*);
|
|
90
|
-
tolb = NUM2DBL(rblapack_tolb);
|
|
91
|
-
p = ldb;
|
|
92
|
-
jobv = StringValueCStr(rblapack_jobv)[0];
|
|
93
|
-
tola = NUM2DBL(rblapack_tola);
|
|
94
|
-
ldv = lsame_(&jobv,"V") ? MAX(1,p) : 1;
|
|
95
|
-
if (!NA_IsNArray(rblapack_a))
|
|
96
|
-
rb_raise(rb_eArgError, "a (4th argument) must be NArray");
|
|
97
|
-
if (NA_RANK(rblapack_a) != 2)
|
|
98
|
-
rb_raise(rb_eArgError, "rank of a (4th argument) must be %d", 2);
|
|
99
|
-
lda = NA_SHAPE0(rblapack_a);
|
|
100
|
-
if (NA_SHAPE1(rblapack_a) != n)
|
|
101
|
-
rb_raise(rb_eRuntimeError, "shape 1 of a must be the same as shape 1 of b");
|
|
102
|
-
if (NA_TYPE(rblapack_a) != NA_DFLOAT)
|
|
103
|
-
rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
|
|
104
|
-
a = NA_PTR_TYPE(rblapack_a, doublereal*);
|
|
105
|
-
ldq = lsame_(&jobq,"Q") ? MAX(1,n) : 1;
|
|
106
|
-
m = lda;
|
|
107
|
-
ldu = lsame_(&jobu,"U") ? MAX(1,m) : 1;
|
|
108
|
-
{
|
|
109
|
-
int shape[2];
|
|
110
|
-
shape[0] = ldu;
|
|
111
|
-
shape[1] = m;
|
|
112
|
-
rblapack_u = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
113
|
-
}
|
|
114
|
-
u = NA_PTR_TYPE(rblapack_u, doublereal*);
|
|
115
|
-
{
|
|
116
|
-
int shape[2];
|
|
117
|
-
shape[0] = ldv;
|
|
118
|
-
shape[1] = p;
|
|
119
|
-
rblapack_v = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
120
|
-
}
|
|
121
|
-
v = NA_PTR_TYPE(rblapack_v, doublereal*);
|
|
122
|
-
{
|
|
123
|
-
int shape[2];
|
|
124
|
-
shape[0] = ldq;
|
|
125
|
-
shape[1] = n;
|
|
126
|
-
rblapack_q = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
127
|
-
}
|
|
128
|
-
q = NA_PTR_TYPE(rblapack_q, doublereal*);
|
|
129
|
-
{
|
|
130
|
-
int shape[2];
|
|
131
|
-
shape[0] = lda;
|
|
132
|
-
shape[1] = n;
|
|
133
|
-
rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
134
|
-
}
|
|
135
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, doublereal*);
|
|
136
|
-
MEMCPY(a_out__, a, doublereal, NA_TOTAL(rblapack_a));
|
|
137
|
-
rblapack_a = rblapack_a_out__;
|
|
138
|
-
a = a_out__;
|
|
139
|
-
{
|
|
140
|
-
int shape[2];
|
|
141
|
-
shape[0] = ldb;
|
|
142
|
-
shape[1] = n;
|
|
143
|
-
rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
144
|
-
}
|
|
145
|
-
b_out__ = NA_PTR_TYPE(rblapack_b_out__, doublereal*);
|
|
146
|
-
MEMCPY(b_out__, b, doublereal, NA_TOTAL(rblapack_b));
|
|
147
|
-
rblapack_b = rblapack_b_out__;
|
|
148
|
-
b = b_out__;
|
|
149
|
-
iwork = ALLOC_N(integer, (n));
|
|
150
|
-
tau = ALLOC_N(doublereal, (n));
|
|
151
|
-
work = ALLOC_N(doublereal, (MAX(MAX(3*n,m),p)));
|
|
152
|
-
|
|
153
|
-
dggsvp_(&jobu, &jobv, &jobq, &m, &p, &n, a, &lda, b, &ldb, &tola, &tolb, &k, &l, u, &ldu, v, &ldv, q, &ldq, iwork, tau, work, &info);
|
|
154
|
-
|
|
155
|
-
free(iwork);
|
|
156
|
-
free(tau);
|
|
157
|
-
free(work);
|
|
158
|
-
rblapack_k = INT2NUM(k);
|
|
159
|
-
rblapack_l = INT2NUM(l);
|
|
160
|
-
rblapack_info = INT2NUM(info);
|
|
161
|
-
return rb_ary_new3(8, rblapack_k, rblapack_l, rblapack_u, rblapack_v, rblapack_q, rblapack_info, rblapack_a, rblapack_b);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
void
|
|
165
|
-
init_lapack_dggsvp(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
166
|
-
sHelp = sH;
|
|
167
|
-
sUsage = sU;
|
|
168
|
-
rblapack_ZERO = zero;
|
|
169
|
-
|
|
170
|
-
rb_define_module_function(mLapack, "dggsvp", rblapack_dggsvp, -1);
|
|
171
|
-
}
|
data/ext/dgsvj0.c
DELETED
|
@@ -1,182 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID dgsvj0_(char* jobv, integer* m, integer* n, doublereal* a, integer* lda, doublereal* d, doublereal* sva, integer* mv, doublereal* v, integer* ldv, doublereal* eps, doublereal* sfmin, doublereal* tol, integer* nsweep, doublereal* work, integer* lwork, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_dgsvj0(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_jobv;
|
|
9
|
-
char jobv;
|
|
10
|
-
VALUE rblapack_m;
|
|
11
|
-
integer m;
|
|
12
|
-
VALUE rblapack_a;
|
|
13
|
-
doublereal *a;
|
|
14
|
-
VALUE rblapack_d;
|
|
15
|
-
doublereal *d;
|
|
16
|
-
VALUE rblapack_sva;
|
|
17
|
-
doublereal *sva;
|
|
18
|
-
VALUE rblapack_mv;
|
|
19
|
-
integer mv;
|
|
20
|
-
VALUE rblapack_v;
|
|
21
|
-
doublereal *v;
|
|
22
|
-
VALUE rblapack_eps;
|
|
23
|
-
doublereal eps;
|
|
24
|
-
VALUE rblapack_sfmin;
|
|
25
|
-
doublereal sfmin;
|
|
26
|
-
VALUE rblapack_tol;
|
|
27
|
-
doublereal tol;
|
|
28
|
-
VALUE rblapack_nsweep;
|
|
29
|
-
integer nsweep;
|
|
30
|
-
VALUE rblapack_lwork;
|
|
31
|
-
integer lwork;
|
|
32
|
-
VALUE rblapack_info;
|
|
33
|
-
integer info;
|
|
34
|
-
VALUE rblapack_a_out__;
|
|
35
|
-
doublereal *a_out__;
|
|
36
|
-
VALUE rblapack_d_out__;
|
|
37
|
-
doublereal *d_out__;
|
|
38
|
-
VALUE rblapack_sva_out__;
|
|
39
|
-
doublereal *sva_out__;
|
|
40
|
-
VALUE rblapack_v_out__;
|
|
41
|
-
doublereal *v_out__;
|
|
42
|
-
doublereal *work;
|
|
43
|
-
|
|
44
|
-
integer lda;
|
|
45
|
-
integer n;
|
|
46
|
-
integer ldv;
|
|
47
|
-
|
|
48
|
-
VALUE rblapack_options;
|
|
49
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
50
|
-
argc--;
|
|
51
|
-
rblapack_options = argv[argc];
|
|
52
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
53
|
-
printf("%s\n", "USAGE:\n info, a, d, sva, v = NumRu::Lapack.dgsvj0( jobv, m, a, d, sva, mv, v, eps, sfmin, tol, nsweep, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS, SFMIN, TOL, NSWEEP, WORK, LWORK, INFO )\n\n* Purpose\n* =======\n*\n* DGSVJ0 is called from DGESVJ as a pre-processor and that is its main\n* purpose. It applies Jacobi rotations in the same way as DGESVJ does, but\n* it does not check convergence (stopping criterion). Few tuning\n* parameters (marked by [TP]) are available for the implementer.\n*\n* Further Details\n* ~~~~~~~~~~~~~~~\n* DGSVJ0 is used just to enable SGESVJ to call a simplified version of\n* itself to work on a submatrix of the original matrix.\n*\n* Contributors\n* ~~~~~~~~~~~~\n* Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany)\n*\n* Bugs, Examples and Comments\n* ~~~~~~~~~~~~~~~~~~~~~~~~~~~\n* Please report all bugs and send interesting test examples and comments to\n* drmac@math.hr. Thank you.\n*\n\n* Arguments\n* =========\n*\n* JOBV (input) CHARACTER*1\n* Specifies whether the output from this procedure is used\n* to compute the matrix V:\n* = 'V': the product of the Jacobi rotations is accumulated\n* by postmulyiplying the N-by-N array V.\n* (See the description of V.)\n* = 'A': the product of the Jacobi rotations is accumulated\n* by postmulyiplying the MV-by-N array V.\n* (See the descriptions of MV and V.)\n* = 'N': the Jacobi rotations are not accumulated.\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* M >= N >= 0.\n*\n* A (input/output) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, M-by-N matrix A, such that A*diag(D) represents\n* the input matrix.\n* On exit,\n* A_onexit * D_onexit represents the input matrix A*diag(D)\n* post-multiplied by a sequence of Jacobi rotations, where the\n* rotation threshold and the total number of sweeps are given in\n* TOL and NSWEEP, respectively.\n* (See the descriptions of D, TOL and NSWEEP.)\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* D (input/workspace/output) DOUBLE PRECISION array, dimension (N)\n* The array D accumulates the scaling factors from the fast scaled\n* Jacobi rotations.\n* On entry, A*diag(D) represents the input matrix.\n* On exit, A_onexit*diag(D_onexit) represents the input matrix\n* post-multiplied by a sequence of Jacobi rotations, where the\n* rotation threshold and the total number of sweeps are given in\n* TOL and NSWEEP, respectively.\n* (See the descriptions of A, TOL and NSWEEP.)\n*\n* SVA (input/workspace/output) DOUBLE PRECISION array, dimension (N)\n* On entry, SVA contains the Euclidean norms of the columns of\n* the matrix A*diag(D).\n* On exit, SVA contains the Euclidean norms of the columns of\n* the matrix onexit*diag(D_onexit).\n*\n* MV (input) INTEGER\n* If JOBV .EQ. 'A', then MV rows of V are post-multipled by a\n* sequence of Jacobi rotations.\n* If JOBV = 'N', then MV is not referenced.\n*\n* V (input/output) DOUBLE PRECISION array, dimension (LDV,N)\n* If JOBV .EQ. 'V' then N rows of V are post-multipled by a\n* sequence of Jacobi rotations.\n* If JOBV .EQ. 'A' then MV rows of V are post-multipled by a\n* sequence of Jacobi rotations.\n* If JOBV = 'N', then V is not referenced.\n*\n* LDV (input) INTEGER\n* The leading dimension of the array V, LDV >= 1.\n* If JOBV = 'V', LDV .GE. N.\n* If JOBV = 'A', LDV .GE. MV.\n*\n* EPS (input) DOUBLE PRECISION\n* EPS = DLAMCH('Epsilon')\n*\n* SFMIN (input) DOUBLE PRECISION\n* SFMIN = DLAMCH('Safe Minimum')\n*\n* TOL (input) DOUBLE PRECISION\n* TOL is the threshold for Jacobi rotations. For a pair\n* A(:,p), A(:,q) of pivot columns, the Jacobi rotation is\n* applied only if DABS(COS(angle(A(:,p),A(:,q)))) .GT. TOL.\n*\n* NSWEEP (input) INTEGER\n* NSWEEP is the number of sweeps of Jacobi rotations to be\n* performed.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (LWORK)\n*\n* LWORK (input) INTEGER\n* LWORK is the dimension of WORK. LWORK .GE. M.\n*\n* INFO (output) INTEGER\n* = 0 : successful exit.\n* < 0 : if INFO = -i, then the i-th argument had an illegal value\n*\n\n* =====================================================================\n*\n* .. Local Parameters ..\n DOUBLE PRECISION ZERO, HALF, ONE, TWO\n PARAMETER ( ZERO = 0.0D0, HALF = 0.5D0, ONE = 1.0D0,\n + TWO = 2.0D0 )\n* ..\n* .. Local Scalars ..\n DOUBLE PRECISION AAPP, AAPP0, AAPQ, AAQQ, APOAQ, AQOAP, BIG,\n + BIGTHETA, CS, MXAAPQ, MXSINJ, ROOTBIG, ROOTEPS,\n + ROOTSFMIN, ROOTTOL, SMALL, SN, T, TEMP1, THETA,\n + THSIGN\n INTEGER BLSKIP, EMPTSW, i, ibr, IERR, igl, IJBLSK, ir1,\n + ISWROT, jbc, jgl, KBL, LKAHEAD, MVL, NBL,\n + NOTROT, p, PSKIPPED, q, ROWSKIP, SWBAND\n LOGICAL APPLV, ROTOK, RSVEC\n* ..\n* .. Local Arrays ..\n DOUBLE PRECISION FASTR( 5 )\n* ..\n* .. Intrinsic Functions ..\n INTRINSIC DABS, DMAX1, DBLE, MIN0, DSIGN, DSQRT\n* ..\n* .. External Functions ..\n DOUBLE PRECISION DDOT, DNRM2\n INTEGER IDAMAX\n LOGICAL LSAME\n EXTERNAL IDAMAX, LSAME, DDOT, DNRM2\n* ..\n* .. External Subroutines ..\n EXTERNAL DAXPY, DCOPY, DLASCL, DLASSQ, DROTM, DSWAP\n* ..\n\n");
|
|
54
|
-
return Qnil;
|
|
55
|
-
}
|
|
56
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
57
|
-
printf("%s\n", "USAGE:\n info, a, d, sva, v = NumRu::Lapack.dgsvj0( jobv, m, a, d, sva, mv, v, eps, sfmin, tol, nsweep, [:lwork => lwork, :usage => usage, :help => help])\n");
|
|
58
|
-
return Qnil;
|
|
59
|
-
}
|
|
60
|
-
} else
|
|
61
|
-
rblapack_options = Qnil;
|
|
62
|
-
if (argc != 11 && argc != 12)
|
|
63
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 11)", argc);
|
|
64
|
-
rblapack_jobv = argv[0];
|
|
65
|
-
rblapack_m = argv[1];
|
|
66
|
-
rblapack_a = argv[2];
|
|
67
|
-
rblapack_d = argv[3];
|
|
68
|
-
rblapack_sva = argv[4];
|
|
69
|
-
rblapack_mv = argv[5];
|
|
70
|
-
rblapack_v = argv[6];
|
|
71
|
-
rblapack_eps = argv[7];
|
|
72
|
-
rblapack_sfmin = argv[8];
|
|
73
|
-
rblapack_tol = argv[9];
|
|
74
|
-
rblapack_nsweep = argv[10];
|
|
75
|
-
if (argc == 12) {
|
|
76
|
-
rblapack_lwork = argv[11];
|
|
77
|
-
} else if (rblapack_options != Qnil) {
|
|
78
|
-
rblapack_lwork = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("lwork")));
|
|
79
|
-
} else {
|
|
80
|
-
rblapack_lwork = Qnil;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
jobv = StringValueCStr(rblapack_jobv)[0];
|
|
84
|
-
if (!NA_IsNArray(rblapack_a))
|
|
85
|
-
rb_raise(rb_eArgError, "a (3th argument) must be NArray");
|
|
86
|
-
if (NA_RANK(rblapack_a) != 2)
|
|
87
|
-
rb_raise(rb_eArgError, "rank of a (3th argument) must be %d", 2);
|
|
88
|
-
lda = NA_SHAPE0(rblapack_a);
|
|
89
|
-
n = NA_SHAPE1(rblapack_a);
|
|
90
|
-
if (NA_TYPE(rblapack_a) != NA_DFLOAT)
|
|
91
|
-
rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
|
|
92
|
-
a = NA_PTR_TYPE(rblapack_a, doublereal*);
|
|
93
|
-
if (!NA_IsNArray(rblapack_sva))
|
|
94
|
-
rb_raise(rb_eArgError, "sva (5th argument) must be NArray");
|
|
95
|
-
if (NA_RANK(rblapack_sva) != 1)
|
|
96
|
-
rb_raise(rb_eArgError, "rank of sva (5th argument) must be %d", 1);
|
|
97
|
-
if (NA_SHAPE0(rblapack_sva) != n)
|
|
98
|
-
rb_raise(rb_eRuntimeError, "shape 0 of sva must be the same as shape 1 of a");
|
|
99
|
-
if (NA_TYPE(rblapack_sva) != NA_DFLOAT)
|
|
100
|
-
rblapack_sva = na_change_type(rblapack_sva, NA_DFLOAT);
|
|
101
|
-
sva = NA_PTR_TYPE(rblapack_sva, doublereal*);
|
|
102
|
-
if (!NA_IsNArray(rblapack_v))
|
|
103
|
-
rb_raise(rb_eArgError, "v (7th argument) must be NArray");
|
|
104
|
-
if (NA_RANK(rblapack_v) != 2)
|
|
105
|
-
rb_raise(rb_eArgError, "rank of v (7th argument) must be %d", 2);
|
|
106
|
-
ldv = NA_SHAPE0(rblapack_v);
|
|
107
|
-
if (NA_SHAPE1(rblapack_v) != n)
|
|
108
|
-
rb_raise(rb_eRuntimeError, "shape 1 of v must be the same as shape 1 of a");
|
|
109
|
-
if (NA_TYPE(rblapack_v) != NA_DFLOAT)
|
|
110
|
-
rblapack_v = na_change_type(rblapack_v, NA_DFLOAT);
|
|
111
|
-
v = NA_PTR_TYPE(rblapack_v, doublereal*);
|
|
112
|
-
sfmin = NUM2DBL(rblapack_sfmin);
|
|
113
|
-
nsweep = NUM2INT(rblapack_nsweep);
|
|
114
|
-
m = NUM2INT(rblapack_m);
|
|
115
|
-
mv = NUM2INT(rblapack_mv);
|
|
116
|
-
tol = NUM2DBL(rblapack_tol);
|
|
117
|
-
if (!NA_IsNArray(rblapack_d))
|
|
118
|
-
rb_raise(rb_eArgError, "d (4th argument) must be NArray");
|
|
119
|
-
if (NA_RANK(rblapack_d) != 1)
|
|
120
|
-
rb_raise(rb_eArgError, "rank of d (4th argument) must be %d", 1);
|
|
121
|
-
if (NA_SHAPE0(rblapack_d) != n)
|
|
122
|
-
rb_raise(rb_eRuntimeError, "shape 0 of d must be the same as shape 1 of a");
|
|
123
|
-
if (NA_TYPE(rblapack_d) != NA_DFLOAT)
|
|
124
|
-
rblapack_d = na_change_type(rblapack_d, NA_DFLOAT);
|
|
125
|
-
d = NA_PTR_TYPE(rblapack_d, doublereal*);
|
|
126
|
-
lwork = m;
|
|
127
|
-
eps = NUM2DBL(rblapack_eps);
|
|
128
|
-
{
|
|
129
|
-
int shape[2];
|
|
130
|
-
shape[0] = lda;
|
|
131
|
-
shape[1] = n;
|
|
132
|
-
rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
133
|
-
}
|
|
134
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, doublereal*);
|
|
135
|
-
MEMCPY(a_out__, a, doublereal, NA_TOTAL(rblapack_a));
|
|
136
|
-
rblapack_a = rblapack_a_out__;
|
|
137
|
-
a = a_out__;
|
|
138
|
-
{
|
|
139
|
-
int shape[1];
|
|
140
|
-
shape[0] = n;
|
|
141
|
-
rblapack_d_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
142
|
-
}
|
|
143
|
-
d_out__ = NA_PTR_TYPE(rblapack_d_out__, doublereal*);
|
|
144
|
-
MEMCPY(d_out__, d, doublereal, NA_TOTAL(rblapack_d));
|
|
145
|
-
rblapack_d = rblapack_d_out__;
|
|
146
|
-
d = d_out__;
|
|
147
|
-
{
|
|
148
|
-
int shape[1];
|
|
149
|
-
shape[0] = n;
|
|
150
|
-
rblapack_sva_out__ = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
151
|
-
}
|
|
152
|
-
sva_out__ = NA_PTR_TYPE(rblapack_sva_out__, doublereal*);
|
|
153
|
-
MEMCPY(sva_out__, sva, doublereal, NA_TOTAL(rblapack_sva));
|
|
154
|
-
rblapack_sva = rblapack_sva_out__;
|
|
155
|
-
sva = sva_out__;
|
|
156
|
-
{
|
|
157
|
-
int shape[2];
|
|
158
|
-
shape[0] = ldv;
|
|
159
|
-
shape[1] = n;
|
|
160
|
-
rblapack_v_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
161
|
-
}
|
|
162
|
-
v_out__ = NA_PTR_TYPE(rblapack_v_out__, doublereal*);
|
|
163
|
-
MEMCPY(v_out__, v, doublereal, NA_TOTAL(rblapack_v));
|
|
164
|
-
rblapack_v = rblapack_v_out__;
|
|
165
|
-
v = v_out__;
|
|
166
|
-
work = ALLOC_N(doublereal, (lwork));
|
|
167
|
-
|
|
168
|
-
dgsvj0_(&jobv, &m, &n, a, &lda, d, sva, &mv, v, &ldv, &eps, &sfmin, &tol, &nsweep, work, &lwork, &info);
|
|
169
|
-
|
|
170
|
-
free(work);
|
|
171
|
-
rblapack_info = INT2NUM(info);
|
|
172
|
-
return rb_ary_new3(5, rblapack_info, rblapack_a, rblapack_d, rblapack_sva, rblapack_v);
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
void
|
|
176
|
-
init_lapack_dgsvj0(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
177
|
-
sHelp = sH;
|
|
178
|
-
sUsage = sU;
|
|
179
|
-
rblapack_ZERO = zero;
|
|
180
|
-
|
|
181
|
-
rb_define_module_function(mLapack, "dgsvj0", rblapack_dgsvj0, -1);
|
|
182
|
-
}
|