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/dgecon.c
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID dgecon_(char* norm, integer* n, doublereal* a, integer* lda, doublereal* anorm, doublereal* rcond, doublereal* work, integer* iwork, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_dgecon(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_norm;
|
|
9
|
-
char norm;
|
|
10
|
-
VALUE rblapack_a;
|
|
11
|
-
doublereal *a;
|
|
12
|
-
VALUE rblapack_anorm;
|
|
13
|
-
doublereal anorm;
|
|
14
|
-
VALUE rblapack_rcond;
|
|
15
|
-
doublereal rcond;
|
|
16
|
-
VALUE rblapack_info;
|
|
17
|
-
integer info;
|
|
18
|
-
doublereal *work;
|
|
19
|
-
integer *iwork;
|
|
20
|
-
|
|
21
|
-
integer lda;
|
|
22
|
-
integer n;
|
|
23
|
-
|
|
24
|
-
VALUE rblapack_options;
|
|
25
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
26
|
-
argc--;
|
|
27
|
-
rblapack_options = argv[argc];
|
|
28
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
29
|
-
printf("%s\n", "USAGE:\n rcond, info = NumRu::Lapack.dgecon( norm, a, anorm, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DGECON( NORM, N, A, LDA, ANORM, RCOND, WORK, IWORK, INFO )\n\n* Purpose\n* =======\n*\n* DGECON estimates the reciprocal of the condition number of a general\n* real matrix A, in either the 1-norm or the infinity-norm, using\n* the LU factorization computed by DGETRF.\n*\n* An estimate is obtained for norm(inv(A)), and the reciprocal of the\n* condition number is computed as\n* RCOND = 1 / ( norm(A) * norm(inv(A)) ).\n*\n\n* Arguments\n* =========\n*\n* NORM (input) CHARACTER*1\n* Specifies whether the 1-norm condition number or the\n* infinity-norm condition number is required:\n* = '1' or 'O': 1-norm;\n* = 'I': Infinity-norm.\n*\n* N (input) INTEGER\n* The order of the matrix A. N >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* The factors L and U from the factorization A = P*L*U\n* as computed by DGETRF.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* ANORM (input) DOUBLE PRECISION\n* If NORM = '1' or 'O', the 1-norm of the original matrix A.\n* If NORM = 'I', the infinity-norm of the original matrix A.\n*\n* RCOND (output) DOUBLE PRECISION\n* The reciprocal of the condition number of the matrix A,\n* computed as RCOND = 1/(norm(A) * norm(inv(A))).\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (4*N)\n*\n* IWORK (workspace) INTEGER array, dimension (N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n*\n\n* =====================================================================\n*\n\n");
|
|
30
|
-
return Qnil;
|
|
31
|
-
}
|
|
32
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
33
|
-
printf("%s\n", "USAGE:\n rcond, info = NumRu::Lapack.dgecon( norm, a, anorm, [:usage => usage, :help => help])\n");
|
|
34
|
-
return Qnil;
|
|
35
|
-
}
|
|
36
|
-
} else
|
|
37
|
-
rblapack_options = Qnil;
|
|
38
|
-
if (argc != 3 && argc != 3)
|
|
39
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 3)", argc);
|
|
40
|
-
rblapack_norm = argv[0];
|
|
41
|
-
rblapack_a = argv[1];
|
|
42
|
-
rblapack_anorm = argv[2];
|
|
43
|
-
if (argc == 3) {
|
|
44
|
-
} else if (rblapack_options != Qnil) {
|
|
45
|
-
} else {
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
norm = StringValueCStr(rblapack_norm)[0];
|
|
49
|
-
anorm = NUM2DBL(rblapack_anorm);
|
|
50
|
-
if (!NA_IsNArray(rblapack_a))
|
|
51
|
-
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
52
|
-
if (NA_RANK(rblapack_a) != 2)
|
|
53
|
-
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
54
|
-
lda = NA_SHAPE0(rblapack_a);
|
|
55
|
-
n = NA_SHAPE1(rblapack_a);
|
|
56
|
-
if (NA_TYPE(rblapack_a) != NA_DFLOAT)
|
|
57
|
-
rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
|
|
58
|
-
a = NA_PTR_TYPE(rblapack_a, doublereal*);
|
|
59
|
-
work = ALLOC_N(doublereal, (4*n));
|
|
60
|
-
iwork = ALLOC_N(integer, (n));
|
|
61
|
-
|
|
62
|
-
dgecon_(&norm, &n, a, &lda, &anorm, &rcond, work, iwork, &info);
|
|
63
|
-
|
|
64
|
-
free(work);
|
|
65
|
-
free(iwork);
|
|
66
|
-
rblapack_rcond = rb_float_new((double)rcond);
|
|
67
|
-
rblapack_info = INT2NUM(info);
|
|
68
|
-
return rb_ary_new3(2, rblapack_rcond, rblapack_info);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
void
|
|
72
|
-
init_lapack_dgecon(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
73
|
-
sHelp = sH;
|
|
74
|
-
sUsage = sU;
|
|
75
|
-
rblapack_ZERO = zero;
|
|
76
|
-
|
|
77
|
-
rb_define_module_function(mLapack, "dgecon", rblapack_dgecon, -1);
|
|
78
|
-
}
|
data/ext/dgeequ.c
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID dgeequ_(integer* m, integer* n, doublereal* a, integer* lda, doublereal* r, doublereal* c, doublereal* rowcnd, doublereal* colcnd, doublereal* amax, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_dgeequ(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_a;
|
|
9
|
-
doublereal *a;
|
|
10
|
-
VALUE rblapack_r;
|
|
11
|
-
doublereal *r;
|
|
12
|
-
VALUE rblapack_c;
|
|
13
|
-
doublereal *c;
|
|
14
|
-
VALUE rblapack_rowcnd;
|
|
15
|
-
doublereal rowcnd;
|
|
16
|
-
VALUE rblapack_colcnd;
|
|
17
|
-
doublereal colcnd;
|
|
18
|
-
VALUE rblapack_amax;
|
|
19
|
-
doublereal amax;
|
|
20
|
-
VALUE rblapack_info;
|
|
21
|
-
integer info;
|
|
22
|
-
|
|
23
|
-
integer lda;
|
|
24
|
-
integer n;
|
|
25
|
-
integer m;
|
|
26
|
-
|
|
27
|
-
VALUE rblapack_options;
|
|
28
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
29
|
-
argc--;
|
|
30
|
-
rblapack_options = argv[argc];
|
|
31
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
32
|
-
printf("%s\n", "USAGE:\n r, c, rowcnd, colcnd, amax, info = NumRu::Lapack.dgeequ( a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DGEEQU( M, N, A, LDA, R, C, ROWCND, COLCND, AMAX, INFO )\n\n* Purpose\n* =======\n*\n* DGEEQU computes row and column scalings intended to equilibrate an\n* M-by-N matrix A and reduce its condition number. R returns the row\n* scale factors and C the column scale factors, chosen to try to make\n* the largest element in each row and column of the matrix B with\n* elements B(i,j)=R(i)*A(i,j)*C(j) have absolute value 1.\n*\n* R(i) and C(j) are restricted to be between SMLNUM = smallest safe\n* number and BIGNUM = largest safe number. Use of these scaling\n* factors is not guaranteed to reduce the condition number of A but\n* works well in practice.\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* The M-by-N matrix whose equilibration factors are\n* to be computed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* R (output) DOUBLE PRECISION array, dimension (M)\n* If INFO = 0 or INFO > M, R contains the row scale factors\n* for A.\n*\n* C (output) DOUBLE PRECISION array, dimension (N)\n* If INFO = 0, C contains the column scale factors for A.\n*\n* ROWCND (output) DOUBLE PRECISION\n* If INFO = 0 or INFO > M, ROWCND contains the ratio of the\n* smallest R(i) to the largest R(i). If ROWCND >= 0.1 and\n* AMAX is neither too large nor too small, it is not worth\n* scaling by R.\n*\n* COLCND (output) DOUBLE PRECISION\n* If INFO = 0, COLCND contains the ratio of the smallest\n* C(i) to the largest C(i). If COLCND >= 0.1, it is not\n* worth scaling by C.\n*\n* AMAX (output) DOUBLE PRECISION\n* Absolute value of largest matrix element. If AMAX is very\n* close to overflow or very close to underflow, the matrix\n* should be scaled.\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* <= M: the i-th row of A is exactly zero\n* > M: the (i-M)-th column of A is exactly zero\n*\n\n* =====================================================================\n*\n\n");
|
|
33
|
-
return Qnil;
|
|
34
|
-
}
|
|
35
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
36
|
-
printf("%s\n", "USAGE:\n r, c, rowcnd, colcnd, amax, info = NumRu::Lapack.dgeequ( a, [:usage => usage, :help => help])\n");
|
|
37
|
-
return Qnil;
|
|
38
|
-
}
|
|
39
|
-
} else
|
|
40
|
-
rblapack_options = Qnil;
|
|
41
|
-
if (argc != 1 && argc != 1)
|
|
42
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 1)", argc);
|
|
43
|
-
rblapack_a = argv[0];
|
|
44
|
-
if (argc == 1) {
|
|
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_DFLOAT)
|
|
56
|
-
rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
|
|
57
|
-
a = NA_PTR_TYPE(rblapack_a, doublereal*);
|
|
58
|
-
m = lda;
|
|
59
|
-
{
|
|
60
|
-
int shape[1];
|
|
61
|
-
shape[0] = m;
|
|
62
|
-
rblapack_r = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
63
|
-
}
|
|
64
|
-
r = NA_PTR_TYPE(rblapack_r, doublereal*);
|
|
65
|
-
{
|
|
66
|
-
int shape[1];
|
|
67
|
-
shape[0] = n;
|
|
68
|
-
rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
69
|
-
}
|
|
70
|
-
c = NA_PTR_TYPE(rblapack_c, doublereal*);
|
|
71
|
-
|
|
72
|
-
dgeequ_(&m, &n, a, &lda, r, c, &rowcnd, &colcnd, &amax, &info);
|
|
73
|
-
|
|
74
|
-
rblapack_rowcnd = rb_float_new((double)rowcnd);
|
|
75
|
-
rblapack_colcnd = rb_float_new((double)colcnd);
|
|
76
|
-
rblapack_amax = rb_float_new((double)amax);
|
|
77
|
-
rblapack_info = INT2NUM(info);
|
|
78
|
-
return rb_ary_new3(6, rblapack_r, rblapack_c, rblapack_rowcnd, rblapack_colcnd, rblapack_amax, rblapack_info);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
void
|
|
82
|
-
init_lapack_dgeequ(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
83
|
-
sHelp = sH;
|
|
84
|
-
sUsage = sU;
|
|
85
|
-
rblapack_ZERO = zero;
|
|
86
|
-
|
|
87
|
-
rb_define_module_function(mLapack, "dgeequ", rblapack_dgeequ, -1);
|
|
88
|
-
}
|
data/ext/dgeequb.c
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID dgeequb_(integer* m, integer* n, doublereal* a, integer* lda, doublereal* r, doublereal* c, doublereal* rowcnd, doublereal* colcnd, doublereal* amax, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_dgeequb(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_a;
|
|
9
|
-
doublereal *a;
|
|
10
|
-
VALUE rblapack_r;
|
|
11
|
-
doublereal *r;
|
|
12
|
-
VALUE rblapack_c;
|
|
13
|
-
doublereal *c;
|
|
14
|
-
VALUE rblapack_rowcnd;
|
|
15
|
-
doublereal rowcnd;
|
|
16
|
-
VALUE rblapack_colcnd;
|
|
17
|
-
doublereal colcnd;
|
|
18
|
-
VALUE rblapack_amax;
|
|
19
|
-
doublereal amax;
|
|
20
|
-
VALUE rblapack_info;
|
|
21
|
-
integer info;
|
|
22
|
-
|
|
23
|
-
integer lda;
|
|
24
|
-
integer n;
|
|
25
|
-
integer m;
|
|
26
|
-
|
|
27
|
-
VALUE rblapack_options;
|
|
28
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
29
|
-
argc--;
|
|
30
|
-
rblapack_options = argv[argc];
|
|
31
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
32
|
-
printf("%s\n", "USAGE:\n r, c, rowcnd, colcnd, amax, info = NumRu::Lapack.dgeequb( a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DGEEQUB( M, N, A, LDA, R, C, ROWCND, COLCND, AMAX, INFO )\n\n* Purpose\n* =======\n*\n* DGEEQUB computes row and column scalings intended to equilibrate an\n* M-by-N matrix A and reduce its condition number. R returns the row\n* scale factors and C the column scale factors, chosen to try to make\n* the largest element in each row and column of the matrix B with\n* elements B(i,j)=R(i)*A(i,j)*C(j) have an absolute value of at most\n* the radix.\n*\n* R(i) and C(j) are restricted to be a power of the radix between\n* SMLNUM = smallest safe number and BIGNUM = largest safe number. Use\n* of these scaling factors is not guaranteed to reduce the condition\n* number of A but works well in practice.\n*\n* This routine differs from DGEEQU by restricting the scaling factors\n* to a power of the radix. Baring over- and underflow, scaling by\n* these factors introduces no additional rounding errors. However, the\n* scaled entries' magnitured are no longer approximately 1 but lie\n* between sqrt(radix) and 1/sqrt(radix).\n*\n\n* Arguments\n* =========\n*\n* M (input) INTEGER\n* The number of rows of the matrix A. M >= 0.\n*\n* N (input) INTEGER\n* The number of columns of the matrix A. N >= 0.\n*\n* A (input) DOUBLE PRECISION array, dimension (LDA,N)\n* The M-by-N matrix whose equilibration factors are\n* to be computed.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* R (output) DOUBLE PRECISION array, dimension (M)\n* If INFO = 0 or INFO > M, R contains the row scale factors\n* for A.\n*\n* C (output) DOUBLE PRECISION array, dimension (N)\n* If INFO = 0, C contains the column scale factors for A.\n*\n* ROWCND (output) DOUBLE PRECISION\n* If INFO = 0 or INFO > M, ROWCND contains the ratio of the\n* smallest R(i) to the largest R(i). If ROWCND >= 0.1 and\n* AMAX is neither too large nor too small, it is not worth\n* scaling by R.\n*\n* COLCND (output) DOUBLE PRECISION\n* If INFO = 0, COLCND contains the ratio of the smallest\n* C(i) to the largest C(i). If COLCND >= 0.1, it is not\n* worth scaling by C.\n*\n* AMAX (output) DOUBLE PRECISION\n* Absolute value of largest matrix element. If AMAX is very\n* close to overflow or very close to underflow, the matrix\n* should be scaled.\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* <= M: the i-th row of A is exactly zero\n* > M: the (i-M)-th column of A is exactly zero\n*\n\n* =====================================================================\n*\n\n");
|
|
33
|
-
return Qnil;
|
|
34
|
-
}
|
|
35
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
36
|
-
printf("%s\n", "USAGE:\n r, c, rowcnd, colcnd, amax, info = NumRu::Lapack.dgeequb( a, [:usage => usage, :help => help])\n");
|
|
37
|
-
return Qnil;
|
|
38
|
-
}
|
|
39
|
-
} else
|
|
40
|
-
rblapack_options = Qnil;
|
|
41
|
-
if (argc != 1 && argc != 1)
|
|
42
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 1)", argc);
|
|
43
|
-
rblapack_a = argv[0];
|
|
44
|
-
if (argc == 1) {
|
|
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_DFLOAT)
|
|
56
|
-
rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
|
|
57
|
-
a = NA_PTR_TYPE(rblapack_a, doublereal*);
|
|
58
|
-
m = lda;
|
|
59
|
-
{
|
|
60
|
-
int shape[1];
|
|
61
|
-
shape[0] = m;
|
|
62
|
-
rblapack_r = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
63
|
-
}
|
|
64
|
-
r = NA_PTR_TYPE(rblapack_r, doublereal*);
|
|
65
|
-
{
|
|
66
|
-
int shape[1];
|
|
67
|
-
shape[0] = n;
|
|
68
|
-
rblapack_c = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
69
|
-
}
|
|
70
|
-
c = NA_PTR_TYPE(rblapack_c, doublereal*);
|
|
71
|
-
|
|
72
|
-
dgeequb_(&m, &n, a, &lda, r, c, &rowcnd, &colcnd, &amax, &info);
|
|
73
|
-
|
|
74
|
-
rblapack_rowcnd = rb_float_new((double)rowcnd);
|
|
75
|
-
rblapack_colcnd = rb_float_new((double)colcnd);
|
|
76
|
-
rblapack_amax = rb_float_new((double)amax);
|
|
77
|
-
rblapack_info = INT2NUM(info);
|
|
78
|
-
return rb_ary_new3(6, rblapack_r, rblapack_c, rblapack_rowcnd, rblapack_colcnd, rblapack_amax, rblapack_info);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
void
|
|
82
|
-
init_lapack_dgeequb(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
83
|
-
sHelp = sH;
|
|
84
|
-
sUsage = sU;
|
|
85
|
-
rblapack_ZERO = zero;
|
|
86
|
-
|
|
87
|
-
rb_define_module_function(mLapack, "dgeequb", rblapack_dgeequb, -1);
|
|
88
|
-
}
|
data/ext/dgees.c
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
static logical
|
|
4
|
-
rblapack_select(doublereal *arg0, doublereal *arg1){
|
|
5
|
-
VALUE rblapack_arg0, rblapack_arg1;
|
|
6
|
-
|
|
7
|
-
VALUE rblapack_ret;
|
|
8
|
-
logical ret;
|
|
9
|
-
|
|
10
|
-
rblapack_arg0 = rb_float_new((double)(*arg0));
|
|
11
|
-
rblapack_arg1 = rb_float_new((double)(*arg1));
|
|
12
|
-
|
|
13
|
-
rblapack_ret = rb_yield_values(2, rblapack_arg0, rblapack_arg1);
|
|
14
|
-
|
|
15
|
-
ret = (rblapack_ret == Qtrue);
|
|
16
|
-
return ret;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
extern VOID dgees_(char* jobvs, char* sort, L_fp select, integer* n, doublereal* a, integer* lda, integer* sdim, doublereal* wr, doublereal* wi, doublereal* vs, integer* ldvs, doublereal* work, integer* lwork, logical* bwork, integer* info);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
static VALUE
|
|
23
|
-
rblapack_dgees(int argc, VALUE *argv, VALUE self){
|
|
24
|
-
VALUE rblapack_jobvs;
|
|
25
|
-
char jobvs;
|
|
26
|
-
VALUE rblapack_sort;
|
|
27
|
-
char sort;
|
|
28
|
-
VALUE rblapack_a;
|
|
29
|
-
doublereal *a;
|
|
30
|
-
VALUE rblapack_lwork;
|
|
31
|
-
integer lwork;
|
|
32
|
-
VALUE rblapack_sdim;
|
|
33
|
-
integer sdim;
|
|
34
|
-
VALUE rblapack_wr;
|
|
35
|
-
doublereal *wr;
|
|
36
|
-
VALUE rblapack_wi;
|
|
37
|
-
doublereal *wi;
|
|
38
|
-
VALUE rblapack_vs;
|
|
39
|
-
doublereal *vs;
|
|
40
|
-
VALUE rblapack_work;
|
|
41
|
-
doublereal *work;
|
|
42
|
-
VALUE rblapack_info;
|
|
43
|
-
integer info;
|
|
44
|
-
VALUE rblapack_a_out__;
|
|
45
|
-
doublereal *a_out__;
|
|
46
|
-
logical *bwork;
|
|
47
|
-
|
|
48
|
-
integer lda;
|
|
49
|
-
integer n;
|
|
50
|
-
integer ldvs;
|
|
51
|
-
|
|
52
|
-
VALUE rblapack_options;
|
|
53
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
54
|
-
argc--;
|
|
55
|
-
rblapack_options = argv[argc];
|
|
56
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
57
|
-
printf("%s\n", "USAGE:\n sdim, wr, wi, vs, work, info, a = NumRu::Lapack.dgees( jobvs, sort, a, [:lwork => lwork, :usage => usage, :help => help]){|a,b| ... }\n\n\nFORTRAN MANUAL\n SUBROUTINE DGEES( JOBVS, SORT, SELECT, N, A, LDA, SDIM, WR, WI, VS, LDVS, WORK, LWORK, BWORK, INFO )\n\n* Purpose\n* =======\n*\n* DGEES computes for an N-by-N real nonsymmetric matrix A, the\n* eigenvalues, the real Schur form T, and, optionally, the matrix of\n* Schur vectors Z. This gives the Schur factorization A = Z*T*(Z**T).\n*\n* Optionally, it also orders the eigenvalues on the diagonal of the\n* real Schur form so that selected eigenvalues are at the top left.\n* The leading columns of Z then form an orthonormal basis for the\n* invariant subspace corresponding to the selected eigenvalues.\n*\n* A matrix is in real Schur form if it is upper quasi-triangular with\n* 1-by-1 and 2-by-2 blocks. 2-by-2 blocks will be standardized in the\n* form\n* [ a b ]\n* [ c a ]\n*\n* where b*c < 0. The eigenvalues of such a block are a +- sqrt(bc).\n*\n\n* Arguments\n* =========\n*\n* JOBVS (input) CHARACTER*1\n* = 'N': Schur vectors are not computed;\n* = 'V': Schur vectors are computed.\n*\n* SORT (input) CHARACTER*1\n* Specifies whether or not to order the eigenvalues on the\n* diagonal of the Schur form.\n* = 'N': Eigenvalues are not ordered;\n* = 'S': Eigenvalues are ordered (see SELECT).\n*\n* SELECT (external procedure) LOGICAL FUNCTION of two DOUBLE PRECISION arguments\n* SELECT must be declared EXTERNAL in the calling subroutine.\n* If SORT = 'S', SELECT is used to select eigenvalues to sort\n* to the top left of the Schur form.\n* If SORT = 'N', SELECT is not referenced.\n* An eigenvalue WR(j)+sqrt(-1)*WI(j) is selected if\n* SELECT(WR(j),WI(j)) is true; i.e., if either one of a complex\n* conjugate pair of eigenvalues is selected, then both complex\n* eigenvalues are selected.\n* Note that a selected complex eigenvalue may no longer\n* satisfy SELECT(WR(j),WI(j)) = .TRUE. after ordering, since\n* ordering may change the value of complex eigenvalues\n* (especially if the eigenvalue is ill-conditioned); in this\n* case INFO is set to N+2 (see INFO below).\n*\n* N (input) INTEGER\n* The order of the matrix A. N >= 0.\n*\n* A (input/output) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the N-by-N matrix A.\n* On exit, A has been overwritten by its real Schur form T.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* SDIM (output) INTEGER\n* If SORT = 'N', SDIM = 0.\n* If SORT = 'S', SDIM = number of eigenvalues (after sorting)\n* for which SELECT is true. (Complex conjugate\n* pairs for which SELECT is true for either\n* eigenvalue count as 2.)\n*\n* WR (output) DOUBLE PRECISION array, dimension (N)\n* WI (output) DOUBLE PRECISION array, dimension (N)\n* WR and WI contain the real and imaginary parts,\n* respectively, of the computed eigenvalues in the same order\n* that they appear on the diagonal of the output Schur form T.\n* Complex conjugate pairs of eigenvalues will appear\n* consecutively with the eigenvalue having the positive\n* imaginary part first.\n*\n* VS (output) DOUBLE PRECISION array, dimension (LDVS,N)\n* If JOBVS = 'V', VS contains the orthogonal matrix Z of Schur\n* vectors.\n* If JOBVS = 'N', VS is not referenced.\n*\n* LDVS (input) INTEGER\n* The leading dimension of the array VS. LDVS >= 1; if\n* JOBVS = 'V', LDVS >= N.\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) contains the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,3*N).\n* For good performance, LWORK must 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* BWORK (workspace) LOGICAL array, dimension (N)\n* Not referenced if SORT = '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, and i is\n* <= N: the QR algorithm failed to compute all the\n* eigenvalues; elements 1:ILO-1 and i+1:N of WR and WI\n* contain those eigenvalues which have converged; if\n* JOBVS = 'V', VS contains the matrix which reduces A\n* to its partially converged Schur form.\n* = N+1: the eigenvalues could not be reordered because some\n* eigenvalues were too close to separate (the problem\n* is very ill-conditioned);\n* = N+2: after reordering, roundoff changed values of some\n* complex eigenvalues so that leading eigenvalues in\n* the Schur form no longer satisfy SELECT=.TRUE. This\n* could also be caused by underflow due to scaling.\n*\n\n* =====================================================================\n*\n\n");
|
|
58
|
-
return Qnil;
|
|
59
|
-
}
|
|
60
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
61
|
-
printf("%s\n", "USAGE:\n sdim, wr, wi, vs, work, info, a = NumRu::Lapack.dgees( jobvs, sort, a, [:lwork => lwork, :usage => usage, :help => help]){|a,b| ... }\n");
|
|
62
|
-
return Qnil;
|
|
63
|
-
}
|
|
64
|
-
} else
|
|
65
|
-
rblapack_options = Qnil;
|
|
66
|
-
if (argc != 3 && argc != 4)
|
|
67
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 3)", argc);
|
|
68
|
-
rblapack_jobvs = argv[0];
|
|
69
|
-
rblapack_sort = argv[1];
|
|
70
|
-
rblapack_a = argv[2];
|
|
71
|
-
if (argc == 4) {
|
|
72
|
-
rblapack_lwork = argv[3];
|
|
73
|
-
} else if (rblapack_options != Qnil) {
|
|
74
|
-
rblapack_lwork = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("lwork")));
|
|
75
|
-
} else {
|
|
76
|
-
rblapack_lwork = Qnil;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
jobvs = StringValueCStr(rblapack_jobvs)[0];
|
|
80
|
-
if (!NA_IsNArray(rblapack_a))
|
|
81
|
-
rb_raise(rb_eArgError, "a (3th argument) must be NArray");
|
|
82
|
-
if (NA_RANK(rblapack_a) != 2)
|
|
83
|
-
rb_raise(rb_eArgError, "rank of a (3th argument) must be %d", 2);
|
|
84
|
-
lda = NA_SHAPE0(rblapack_a);
|
|
85
|
-
n = NA_SHAPE1(rblapack_a);
|
|
86
|
-
if (NA_TYPE(rblapack_a) != NA_DFLOAT)
|
|
87
|
-
rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
|
|
88
|
-
a = NA_PTR_TYPE(rblapack_a, doublereal*);
|
|
89
|
-
ldvs = lsame_(&jobvs,"V") ? n : 1;
|
|
90
|
-
sort = StringValueCStr(rblapack_sort)[0];
|
|
91
|
-
if (rblapack_lwork == Qnil)
|
|
92
|
-
lwork = 3*n;
|
|
93
|
-
else {
|
|
94
|
-
lwork = NUM2INT(rblapack_lwork);
|
|
95
|
-
}
|
|
96
|
-
{
|
|
97
|
-
int shape[1];
|
|
98
|
-
shape[0] = n;
|
|
99
|
-
rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
100
|
-
}
|
|
101
|
-
wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
|
|
102
|
-
{
|
|
103
|
-
int shape[1];
|
|
104
|
-
shape[0] = n;
|
|
105
|
-
rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
106
|
-
}
|
|
107
|
-
wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
|
|
108
|
-
{
|
|
109
|
-
int shape[2];
|
|
110
|
-
shape[0] = ldvs;
|
|
111
|
-
shape[1] = n;
|
|
112
|
-
rblapack_vs = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
113
|
-
}
|
|
114
|
-
vs = NA_PTR_TYPE(rblapack_vs, doublereal*);
|
|
115
|
-
{
|
|
116
|
-
int shape[1];
|
|
117
|
-
shape[0] = MAX(1,lwork);
|
|
118
|
-
rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
119
|
-
}
|
|
120
|
-
work = NA_PTR_TYPE(rblapack_work, doublereal*);
|
|
121
|
-
{
|
|
122
|
-
int shape[2];
|
|
123
|
-
shape[0] = lda;
|
|
124
|
-
shape[1] = n;
|
|
125
|
-
rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
126
|
-
}
|
|
127
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, doublereal*);
|
|
128
|
-
MEMCPY(a_out__, a, doublereal, NA_TOTAL(rblapack_a));
|
|
129
|
-
rblapack_a = rblapack_a_out__;
|
|
130
|
-
a = a_out__;
|
|
131
|
-
bwork = ALLOC_N(logical, (lsame_(&sort,"N") ? 0 : n));
|
|
132
|
-
|
|
133
|
-
dgees_(&jobvs, &sort, rblapack_select, &n, a, &lda, &sdim, wr, wi, vs, &ldvs, work, &lwork, bwork, &info);
|
|
134
|
-
|
|
135
|
-
free(bwork);
|
|
136
|
-
rblapack_sdim = INT2NUM(sdim);
|
|
137
|
-
rblapack_info = INT2NUM(info);
|
|
138
|
-
return rb_ary_new3(7, rblapack_sdim, rblapack_wr, rblapack_wi, rblapack_vs, rblapack_work, rblapack_info, rblapack_a);
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
void
|
|
142
|
-
init_lapack_dgees(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
143
|
-
sHelp = sH;
|
|
144
|
-
sUsage = sU;
|
|
145
|
-
rblapack_ZERO = zero;
|
|
146
|
-
|
|
147
|
-
rb_define_module_function(mLapack, "dgees", rblapack_dgees, -1);
|
|
148
|
-
}
|
data/ext/dgeesx.c
DELETED
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
static logical
|
|
4
|
-
rblapack_select(doublereal *arg0, doublereal *arg1){
|
|
5
|
-
VALUE rblapack_arg0, rblapack_arg1;
|
|
6
|
-
|
|
7
|
-
VALUE rblapack_ret;
|
|
8
|
-
logical ret;
|
|
9
|
-
|
|
10
|
-
rblapack_arg0 = rb_float_new((double)(*arg0));
|
|
11
|
-
rblapack_arg1 = rb_float_new((double)(*arg1));
|
|
12
|
-
|
|
13
|
-
rblapack_ret = rb_yield_values(2, rblapack_arg0, rblapack_arg1);
|
|
14
|
-
|
|
15
|
-
ret = (rblapack_ret == Qtrue);
|
|
16
|
-
return ret;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
extern VOID dgeesx_(char* jobvs, char* sort, L_fp select, char* sense, integer* n, doublereal* a, integer* lda, integer* sdim, doublereal* wr, doublereal* wi, doublereal* vs, integer* ldvs, doublereal* rconde, doublereal* rcondv, doublereal* work, integer* lwork, integer* iwork, integer* liwork, logical* bwork, integer* info);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
static VALUE
|
|
23
|
-
rblapack_dgeesx(int argc, VALUE *argv, VALUE self){
|
|
24
|
-
VALUE rblapack_jobvs;
|
|
25
|
-
char jobvs;
|
|
26
|
-
VALUE rblapack_sort;
|
|
27
|
-
char sort;
|
|
28
|
-
VALUE rblapack_sense;
|
|
29
|
-
char sense;
|
|
30
|
-
VALUE rblapack_a;
|
|
31
|
-
doublereal *a;
|
|
32
|
-
VALUE rblapack_liwork;
|
|
33
|
-
integer liwork;
|
|
34
|
-
VALUE rblapack_lwork;
|
|
35
|
-
integer lwork;
|
|
36
|
-
VALUE rblapack_sdim;
|
|
37
|
-
integer sdim;
|
|
38
|
-
VALUE rblapack_wr;
|
|
39
|
-
doublereal *wr;
|
|
40
|
-
VALUE rblapack_wi;
|
|
41
|
-
doublereal *wi;
|
|
42
|
-
VALUE rblapack_vs;
|
|
43
|
-
doublereal *vs;
|
|
44
|
-
VALUE rblapack_rconde;
|
|
45
|
-
doublereal rconde;
|
|
46
|
-
VALUE rblapack_rcondv;
|
|
47
|
-
doublereal rcondv;
|
|
48
|
-
VALUE rblapack_work;
|
|
49
|
-
doublereal *work;
|
|
50
|
-
VALUE rblapack_iwork;
|
|
51
|
-
integer *iwork;
|
|
52
|
-
VALUE rblapack_info;
|
|
53
|
-
integer info;
|
|
54
|
-
VALUE rblapack_a_out__;
|
|
55
|
-
doublereal *a_out__;
|
|
56
|
-
logical *bwork;
|
|
57
|
-
|
|
58
|
-
integer lda;
|
|
59
|
-
integer n;
|
|
60
|
-
integer ldvs;
|
|
61
|
-
|
|
62
|
-
VALUE rblapack_options;
|
|
63
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
64
|
-
argc--;
|
|
65
|
-
rblapack_options = argv[argc];
|
|
66
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
67
|
-
printf("%s\n", "USAGE:\n sdim, wr, wi, vs, rconde, rcondv, work, iwork, info, a = NumRu::Lapack.dgeesx( jobvs, sort, sense, a, liwork, [:lwork => lwork, :usage => usage, :help => help]){|a,b| ... }\n\n\nFORTRAN MANUAL\n SUBROUTINE DGEESX( JOBVS, SORT, SELECT, SENSE, N, A, LDA, SDIM, WR, WI, VS, LDVS, RCONDE, RCONDV, WORK, LWORK, IWORK, LIWORK, BWORK, INFO )\n\n* Purpose\n* =======\n*\n* DGEESX computes for an N-by-N real nonsymmetric matrix A, the\n* eigenvalues, the real Schur form T, and, optionally, the matrix of\n* Schur vectors Z. This gives the Schur factorization A = Z*T*(Z**T).\n*\n* Optionally, it also orders the eigenvalues on the diagonal of the\n* real Schur form so that selected eigenvalues are at the top left;\n* computes a reciprocal condition number for the average of the\n* selected eigenvalues (RCONDE); and computes a reciprocal condition\n* number for the right invariant subspace corresponding to the\n* selected eigenvalues (RCONDV). The leading columns of Z form an\n* orthonormal basis for this invariant subspace.\n*\n* For further explanation of the reciprocal condition numbers RCONDE\n* and RCONDV, see Section 4.10 of the LAPACK Users' Guide (where\n* these quantities are called s and sep respectively).\n*\n* A real matrix is in real Schur form if it is upper quasi-triangular\n* with 1-by-1 and 2-by-2 blocks. 2-by-2 blocks will be standardized in\n* the form\n* [ a b ]\n* [ c a ]\n*\n* where b*c < 0. The eigenvalues of such a block are a +- sqrt(bc).\n*\n\n* Arguments\n* =========\n*\n* JOBVS (input) CHARACTER*1\n* = 'N': Schur vectors are not computed;\n* = 'V': Schur vectors are computed.\n*\n* SORT (input) CHARACTER*1\n* Specifies whether or not to order the eigenvalues on the\n* diagonal of the Schur form.\n* = 'N': Eigenvalues are not ordered;\n* = 'S': Eigenvalues are ordered (see SELECT).\n*\n* SELECT (external procedure) LOGICAL FUNCTION of two DOUBLE PRECISION arguments\n* SELECT must be declared EXTERNAL in the calling subroutine.\n* If SORT = 'S', SELECT is used to select eigenvalues to sort\n* to the top left of the Schur form.\n* If SORT = 'N', SELECT is not referenced.\n* An eigenvalue WR(j)+sqrt(-1)*WI(j) is selected if\n* SELECT(WR(j),WI(j)) is true; i.e., if either one of a\n* complex conjugate pair of eigenvalues is selected, then both\n* are. Note that a selected complex eigenvalue may no longer\n* satisfy SELECT(WR(j),WI(j)) = .TRUE. after ordering, since\n* ordering may change the value of complex eigenvalues\n* (especially if the eigenvalue is ill-conditioned); in this\n* case INFO may be set to N+3 (see INFO below).\n*\n* SENSE (input) CHARACTER*1\n* Determines which reciprocal condition numbers are computed.\n* = 'N': None are computed;\n* = 'E': Computed for average of selected eigenvalues only;\n* = 'V': Computed for selected right invariant subspace only;\n* = 'B': Computed for both.\n* If SENSE = 'E', 'V' or 'B', SORT must equal 'S'.\n*\n* N (input) INTEGER\n* The order of the matrix A. N >= 0.\n*\n* A (input/output) DOUBLE PRECISION array, dimension (LDA, N)\n* On entry, the N-by-N matrix A.\n* On exit, A is overwritten by its real Schur form T.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* SDIM (output) INTEGER\n* If SORT = 'N', SDIM = 0.\n* If SORT = 'S', SDIM = number of eigenvalues (after sorting)\n* for which SELECT is true. (Complex conjugate\n* pairs for which SELECT is true for either\n* eigenvalue count as 2.)\n*\n* WR (output) DOUBLE PRECISION array, dimension (N)\n* WI (output) DOUBLE PRECISION array, dimension (N)\n* WR and WI contain the real and imaginary parts, respectively,\n* of the computed eigenvalues, in the same order that they\n* appear on the diagonal of the output Schur form T. Complex\n* conjugate pairs of eigenvalues appear consecutively with the\n* eigenvalue having the positive imaginary part first.\n*\n* VS (output) DOUBLE PRECISION array, dimension (LDVS,N)\n* If JOBVS = 'V', VS contains the orthogonal matrix Z of Schur\n* vectors.\n* If JOBVS = 'N', VS is not referenced.\n*\n* LDVS (input) INTEGER\n* The leading dimension of the array VS. LDVS >= 1, and if\n* JOBVS = 'V', LDVS >= N.\n*\n* RCONDE (output) DOUBLE PRECISION\n* If SENSE = 'E' or 'B', RCONDE contains the reciprocal\n* condition number for the average of the selected eigenvalues.\n* Not referenced if SENSE = 'N' or 'V'.\n*\n* RCONDV (output) DOUBLE PRECISION\n* If SENSE = 'V' or 'B', RCONDV contains the reciprocal\n* condition number for the selected right invariant subspace.\n* Not referenced if SENSE = 'N' or 'E'.\n*\n* WORK (workspace/output) DOUBLE PRECISION array, dimension (MAX(1,LWORK))\n* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK. LWORK >= max(1,3*N).\n* Also, if SENSE = 'E' or 'V' or 'B',\n* LWORK >= N+2*SDIM*(N-SDIM), where SDIM is the number of\n* selected eigenvalues computed by this routine. Note that\n* N+2*SDIM*(N-SDIM) <= N+N*N/2. Note also that an error is only\n* returned if LWORK < max(1,3*N), but if SENSE = 'E' or 'V' or\n* 'B' this may not be large enough.\n* For good performance, LWORK must generally be larger.\n*\n* If LWORK = -1, then a workspace query is assumed; the routine\n* only calculates upper bounds on the optimal sizes of the\n* arrays WORK and IWORK, returns these values as the first\n* entries of the WORK and IWORK arrays, and no error messages\n* related to LWORK or LIWORK are issued by XERBLA.\n*\n* IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))\n* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.\n*\n* LIWORK (input) INTEGER\n* The dimension of the array IWORK.\n* LIWORK >= 1; if SENSE = 'V' or 'B', LIWORK >= SDIM*(N-SDIM).\n* Note that SDIM*(N-SDIM) <= N*N/4. Note also that an error is\n* only returned if LIWORK < 1, but if SENSE = 'V' or 'B' this\n* may not be large enough.\n*\n* If LIWORK = -1, then a workspace query is assumed; the\n* routine only calculates upper bounds on the optimal sizes of\n* the arrays WORK and IWORK, returns these values as the first\n* entries of the WORK and IWORK arrays, and no error messages\n* related to LWORK or LIWORK are issued by XERBLA.\n*\n* BWORK (workspace) LOGICAL array, dimension (N)\n* Not referenced if SORT = '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, and i is\n* <= N: the QR algorithm failed to compute all the\n* eigenvalues; elements 1:ILO-1 and i+1:N of WR and WI\n* contain those eigenvalues which have converged; if\n* JOBVS = 'V', VS contains the transformation which\n* reduces A to its partially converged Schur form.\n* = N+1: the eigenvalues could not be reordered because some\n* eigenvalues were too close to separate (the problem\n* is very ill-conditioned);\n* = N+2: after reordering, roundoff changed values of some\n* complex eigenvalues so that leading eigenvalues in\n* the Schur form no longer satisfy SELECT=.TRUE. This\n* could also be caused by underflow due to scaling.\n*\n\n* =====================================================================\n*\n\n");
|
|
68
|
-
return Qnil;
|
|
69
|
-
}
|
|
70
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
71
|
-
printf("%s\n", "USAGE:\n sdim, wr, wi, vs, rconde, rcondv, work, iwork, info, a = NumRu::Lapack.dgeesx( jobvs, sort, sense, a, liwork, [:lwork => lwork, :usage => usage, :help => help]){|a,b| ... }\n");
|
|
72
|
-
return Qnil;
|
|
73
|
-
}
|
|
74
|
-
} else
|
|
75
|
-
rblapack_options = Qnil;
|
|
76
|
-
if (argc != 5 && argc != 6)
|
|
77
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 5)", argc);
|
|
78
|
-
rblapack_jobvs = argv[0];
|
|
79
|
-
rblapack_sort = argv[1];
|
|
80
|
-
rblapack_sense = argv[2];
|
|
81
|
-
rblapack_a = argv[3];
|
|
82
|
-
rblapack_liwork = argv[4];
|
|
83
|
-
if (argc == 6) {
|
|
84
|
-
rblapack_lwork = argv[5];
|
|
85
|
-
} else if (rblapack_options != Qnil) {
|
|
86
|
-
rblapack_lwork = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("lwork")));
|
|
87
|
-
} else {
|
|
88
|
-
rblapack_lwork = Qnil;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
jobvs = StringValueCStr(rblapack_jobvs)[0];
|
|
92
|
-
sense = StringValueCStr(rblapack_sense)[0];
|
|
93
|
-
liwork = NUM2INT(rblapack_liwork);
|
|
94
|
-
sort = StringValueCStr(rblapack_sort)[0];
|
|
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
|
-
n = NA_SHAPE1(rblapack_a);
|
|
101
|
-
if (NA_TYPE(rblapack_a) != NA_DFLOAT)
|
|
102
|
-
rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
|
|
103
|
-
a = NA_PTR_TYPE(rblapack_a, doublereal*);
|
|
104
|
-
ldvs = lsame_(&jobvs,"V") ? n : 1;
|
|
105
|
-
if (rblapack_lwork == Qnil)
|
|
106
|
-
lwork = (lsame_(&sense,"E")||lsame_(&sense,"V")||lsame_(&sense,"B")) ? n+n*n/2 : 3*n;
|
|
107
|
-
else {
|
|
108
|
-
lwork = NUM2INT(rblapack_lwork);
|
|
109
|
-
}
|
|
110
|
-
{
|
|
111
|
-
int shape[1];
|
|
112
|
-
shape[0] = n;
|
|
113
|
-
rblapack_wr = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
114
|
-
}
|
|
115
|
-
wr = NA_PTR_TYPE(rblapack_wr, doublereal*);
|
|
116
|
-
{
|
|
117
|
-
int shape[1];
|
|
118
|
-
shape[0] = n;
|
|
119
|
-
rblapack_wi = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
120
|
-
}
|
|
121
|
-
wi = NA_PTR_TYPE(rblapack_wi, doublereal*);
|
|
122
|
-
{
|
|
123
|
-
int shape[2];
|
|
124
|
-
shape[0] = ldvs;
|
|
125
|
-
shape[1] = n;
|
|
126
|
-
rblapack_vs = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
127
|
-
}
|
|
128
|
-
vs = NA_PTR_TYPE(rblapack_vs, doublereal*);
|
|
129
|
-
{
|
|
130
|
-
int shape[1];
|
|
131
|
-
shape[0] = MAX(1,lwork);
|
|
132
|
-
rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
133
|
-
}
|
|
134
|
-
work = NA_PTR_TYPE(rblapack_work, doublereal*);
|
|
135
|
-
{
|
|
136
|
-
int shape[1];
|
|
137
|
-
shape[0] = MAX(1,liwork);
|
|
138
|
-
rblapack_iwork = na_make_object(NA_LINT, 1, shape, cNArray);
|
|
139
|
-
}
|
|
140
|
-
iwork = NA_PTR_TYPE(rblapack_iwork, integer*);
|
|
141
|
-
{
|
|
142
|
-
int shape[2];
|
|
143
|
-
shape[0] = lda;
|
|
144
|
-
shape[1] = n;
|
|
145
|
-
rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
146
|
-
}
|
|
147
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, doublereal*);
|
|
148
|
-
MEMCPY(a_out__, a, doublereal, NA_TOTAL(rblapack_a));
|
|
149
|
-
rblapack_a = rblapack_a_out__;
|
|
150
|
-
a = a_out__;
|
|
151
|
-
bwork = ALLOC_N(logical, (lsame_(&sort,"N") ? 0 : n));
|
|
152
|
-
|
|
153
|
-
dgeesx_(&jobvs, &sort, rblapack_select, &sense, &n, a, &lda, &sdim, wr, wi, vs, &ldvs, &rconde, &rcondv, work, &lwork, iwork, &liwork, bwork, &info);
|
|
154
|
-
|
|
155
|
-
free(bwork);
|
|
156
|
-
rblapack_sdim = INT2NUM(sdim);
|
|
157
|
-
rblapack_rconde = rb_float_new((double)rconde);
|
|
158
|
-
rblapack_rcondv = rb_float_new((double)rcondv);
|
|
159
|
-
rblapack_info = INT2NUM(info);
|
|
160
|
-
return rb_ary_new3(10, rblapack_sdim, rblapack_wr, rblapack_wi, rblapack_vs, rblapack_rconde, rblapack_rcondv, rblapack_work, rblapack_iwork, rblapack_info, rblapack_a);
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
void
|
|
164
|
-
init_lapack_dgeesx(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
165
|
-
sHelp = sH;
|
|
166
|
-
sUsage = sU;
|
|
167
|
-
rblapack_ZERO = zero;
|
|
168
|
-
|
|
169
|
-
rb_define_module_function(mLapack, "dgeesx", rblapack_dgeesx, -1);
|
|
170
|
-
}
|