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/dtfttr.c
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID dtfttr_(char* transr, char* uplo, integer* n, doublereal* arf, doublereal* a, integer* lda, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_dtfttr(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_transr;
|
|
9
|
-
char transr;
|
|
10
|
-
VALUE rblapack_uplo;
|
|
11
|
-
char uplo;
|
|
12
|
-
VALUE rblapack_arf;
|
|
13
|
-
doublereal *arf;
|
|
14
|
-
VALUE rblapack_a;
|
|
15
|
-
doublereal *a;
|
|
16
|
-
VALUE rblapack_info;
|
|
17
|
-
integer info;
|
|
18
|
-
integer ldarf;
|
|
19
|
-
|
|
20
|
-
integer lda;
|
|
21
|
-
integer n;
|
|
22
|
-
|
|
23
|
-
VALUE rblapack_options;
|
|
24
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
25
|
-
argc--;
|
|
26
|
-
rblapack_options = argv[argc];
|
|
27
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
28
|
-
printf("%s\n", "USAGE:\n a, info = NumRu::Lapack.dtfttr( transr, uplo, arf, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DTFTTR( TRANSR, UPLO, N, ARF, A, LDA, INFO )\n\n* Purpose\n* =======\n*\n* DTFTTR copies a triangular matrix A from rectangular full packed\n* format (TF) to standard full format (TR).\n*\n\n* Arguments\n* =========\n*\n* TRANSR (input) CHARACTER*1\n* = 'N': ARF is in Normal format;\n* = 'T': ARF is in Transpose format.\n*\n* UPLO (input) CHARACTER*1\n* = 'U': A is upper triangular;\n* = 'L': A is lower triangular.\n*\n* N (input) INTEGER\n* The order of the matrices ARF and A. N >= 0.\n*\n* ARF (input) DOUBLE PRECISION array, dimension (N*(N+1)/2).\n* On entry, the upper (if UPLO = 'U') or lower (if UPLO = 'L')\n* matrix A in RFP format. See the \"Notes\" below for more\n* details.\n*\n* A (output) DOUBLE PRECISION array, dimension (LDA,N)\n* On exit, the triangular matrix A. If UPLO = 'U', the\n* leading N-by-N upper triangular part of the array A contains\n* the upper triangular matrix, and the strictly lower\n* triangular part of A is not referenced. If UPLO = 'L', the\n* leading N-by-N lower triangular part of the array A contains\n* the lower triangular matrix, and the strictly upper\n* triangular part of A is not referenced.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -i, the i-th argument had an illegal value\n*\n\n* Further Details\n* ===============\n*\n* We first consider Rectangular Full Packed (RFP) Format when N is\n* even. We give an example where N = 6.\n*\n* AP is Upper AP is Lower\n*\n* 00 01 02 03 04 05 00\n* 11 12 13 14 15 10 11\n* 22 23 24 25 20 21 22\n* 33 34 35 30 31 32 33\n* 44 45 40 41 42 43 44\n* 55 50 51 52 53 54 55\n*\n*\n* Let TRANSR = 'N'. RFP holds AP as follows:\n* For UPLO = 'U' the upper trapezoid A(0:5,0:2) consists of the last\n* three columns of AP upper. The lower triangle A(4:6,0:2) consists of\n* the transpose of the first three columns of AP upper.\n* For UPLO = 'L' the lower trapezoid A(1:6,0:2) consists of the first\n* three columns of AP lower. The upper triangle A(0:2,0:2) consists of\n* the transpose of the last three columns of AP lower.\n* This covers the case N even and TRANSR = 'N'.\n*\n* RFP A RFP A\n*\n* 03 04 05 33 43 53\n* 13 14 15 00 44 54\n* 23 24 25 10 11 55\n* 33 34 35 20 21 22\n* 00 44 45 30 31 32\n* 01 11 55 40 41 42\n* 02 12 22 50 51 52\n*\n* Now let TRANSR = 'T'. RFP A in both UPLO cases is just the\n* transpose of RFP A above. One therefore gets:\n*\n*\n* RFP A RFP A\n*\n* 03 13 23 33 00 01 02 33 00 10 20 30 40 50\n* 04 14 24 34 44 11 12 43 44 11 21 31 41 51\n* 05 15 25 35 45 55 22 53 54 55 22 32 42 52\n*\n*\n* We then consider Rectangular Full Packed (RFP) Format when N is\n* odd. We give an example where N = 5.\n*\n* AP is Upper AP is Lower\n*\n* 00 01 02 03 04 00\n* 11 12 13 14 10 11\n* 22 23 24 20 21 22\n* 33 34 30 31 32 33\n* 44 40 41 42 43 44\n*\n*\n* Let TRANSR = 'N'. RFP holds AP as follows:\n* For UPLO = 'U' the upper trapezoid A(0:4,0:2) consists of the last\n* three columns of AP upper. The lower triangle A(3:4,0:1) consists of\n* the transpose of the first two columns of AP upper.\n* For UPLO = 'L' the lower trapezoid A(0:4,0:2) consists of the first\n* three columns of AP lower. The upper triangle A(0:1,1:2) consists of\n* the transpose of the last two columns of AP lower.\n* This covers the case N odd and TRANSR = 'N'.\n*\n* RFP A RFP A\n*\n* 02 03 04 00 33 43\n* 12 13 14 10 11 44\n* 22 23 24 20 21 22\n* 00 33 34 30 31 32\n* 01 11 44 40 41 42\n*\n* Now let TRANSR = 'T'. RFP A in both UPLO cases is just the\n* transpose of RFP A above. One therefore gets:\n*\n* RFP A RFP A\n*\n* 02 12 22 00 01 00 10 20 30 40 50\n* 03 13 23 33 11 33 11 21 31 41 51\n* 04 14 24 34 44 43 44 22 32 42 52\n*\n* Reference\n* =========\n*\n* =====================================================================\n*\n* ..\n* .. Local Scalars ..\n LOGICAL LOWER, NISODD, NORMALTRANSR\n INTEGER N1, N2, K, NT, NX2, NP1X2\n INTEGER I, J, L, IJ\n* ..\n* .. External Functions ..\n LOGICAL LSAME\n EXTERNAL LSAME\n* ..\n* .. External Subroutines ..\n EXTERNAL XERBLA\n* ..\n* .. Intrinsic Functions ..\n INTRINSIC MAX, MOD\n* ..\n\n");
|
|
29
|
-
return Qnil;
|
|
30
|
-
}
|
|
31
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
32
|
-
printf("%s\n", "USAGE:\n a, info = NumRu::Lapack.dtfttr( transr, uplo, arf, [:usage => usage, :help => help])\n");
|
|
33
|
-
return Qnil;
|
|
34
|
-
}
|
|
35
|
-
} else
|
|
36
|
-
rblapack_options = Qnil;
|
|
37
|
-
if (argc != 3 && argc != 3)
|
|
38
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 3)", argc);
|
|
39
|
-
rblapack_transr = argv[0];
|
|
40
|
-
rblapack_uplo = argv[1];
|
|
41
|
-
rblapack_arf = argv[2];
|
|
42
|
-
if (argc == 3) {
|
|
43
|
-
} else if (rblapack_options != Qnil) {
|
|
44
|
-
} else {
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
transr = StringValueCStr(rblapack_transr)[0];
|
|
48
|
-
if (!NA_IsNArray(rblapack_arf))
|
|
49
|
-
rb_raise(rb_eArgError, "arf (3th argument) must be NArray");
|
|
50
|
-
if (NA_RANK(rblapack_arf) != 1)
|
|
51
|
-
rb_raise(rb_eArgError, "rank of arf (3th argument) must be %d", 1);
|
|
52
|
-
ldarf = NA_SHAPE0(rblapack_arf);
|
|
53
|
-
if (NA_TYPE(rblapack_arf) != NA_DFLOAT)
|
|
54
|
-
rblapack_arf = na_change_type(rblapack_arf, NA_DFLOAT);
|
|
55
|
-
arf = NA_PTR_TYPE(rblapack_arf, doublereal*);
|
|
56
|
-
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
57
|
-
n = ((int)sqrtf(8*ldarf+1.0f)-1)/2;
|
|
58
|
-
lda = MAX(1,n);
|
|
59
|
-
{
|
|
60
|
-
int shape[2];
|
|
61
|
-
shape[0] = lda;
|
|
62
|
-
shape[1] = n;
|
|
63
|
-
rblapack_a = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
64
|
-
}
|
|
65
|
-
a = NA_PTR_TYPE(rblapack_a, doublereal*);
|
|
66
|
-
|
|
67
|
-
dtfttr_(&transr, &uplo, &n, arf, a, &lda, &info);
|
|
68
|
-
|
|
69
|
-
rblapack_info = INT2NUM(info);
|
|
70
|
-
return rb_ary_new3(2, rblapack_a, rblapack_info);
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
void
|
|
74
|
-
init_lapack_dtfttr(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
75
|
-
sHelp = sH;
|
|
76
|
-
sUsage = sU;
|
|
77
|
-
rblapack_ZERO = zero;
|
|
78
|
-
|
|
79
|
-
rb_define_module_function(mLapack, "dtfttr", rblapack_dtfttr, -1);
|
|
80
|
-
}
|
data/ext/dtgevc.c
DELETED
|
@@ -1,153 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID dtgevc_(char* side, char* howmny, logical* select, integer* n, doublereal* s, integer* lds, doublereal* p, integer* ldp, doublereal* vl, integer* ldvl, doublereal* vr, integer* ldvr, integer* mm, integer* m, doublereal* work, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_dtgevc(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_side;
|
|
9
|
-
char side;
|
|
10
|
-
VALUE rblapack_howmny;
|
|
11
|
-
char howmny;
|
|
12
|
-
VALUE rblapack_select;
|
|
13
|
-
logical *select;
|
|
14
|
-
VALUE rblapack_s;
|
|
15
|
-
doublereal *s;
|
|
16
|
-
VALUE rblapack_p;
|
|
17
|
-
doublereal *p;
|
|
18
|
-
VALUE rblapack_vl;
|
|
19
|
-
doublereal *vl;
|
|
20
|
-
VALUE rblapack_vr;
|
|
21
|
-
doublereal *vr;
|
|
22
|
-
VALUE rblapack_m;
|
|
23
|
-
integer m;
|
|
24
|
-
VALUE rblapack_info;
|
|
25
|
-
integer info;
|
|
26
|
-
VALUE rblapack_vl_out__;
|
|
27
|
-
doublereal *vl_out__;
|
|
28
|
-
VALUE rblapack_vr_out__;
|
|
29
|
-
doublereal *vr_out__;
|
|
30
|
-
doublereal *work;
|
|
31
|
-
|
|
32
|
-
integer n;
|
|
33
|
-
integer lds;
|
|
34
|
-
integer ldp;
|
|
35
|
-
integer ldvl;
|
|
36
|
-
integer mm;
|
|
37
|
-
integer ldvr;
|
|
38
|
-
|
|
39
|
-
VALUE rblapack_options;
|
|
40
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
41
|
-
argc--;
|
|
42
|
-
rblapack_options = argv[argc];
|
|
43
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
44
|
-
printf("%s\n", "USAGE:\n m, info, vl, vr = NumRu::Lapack.dtgevc( side, howmny, select, s, p, vl, vr, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DTGEVC( SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, INFO )\n\n* Purpose\n* =======\n*\n* DTGEVC computes some or all of the right and/or left eigenvectors of\n* a pair of real matrices (S,P), where S is a quasi-triangular matrix\n* and P is upper triangular. Matrix pairs of this type are produced by\n* the generalized Schur factorization of a matrix pair (A,B):\n*\n* A = Q*S*Z**T, B = Q*P*Z**T\n*\n* as computed by DGGHRD + DHGEQZ.\n*\n* The right eigenvector x and the left eigenvector y of (S,P)\n* corresponding to an eigenvalue w are defined by:\n* \n* S*x = w*P*x, (y**H)*S = w*(y**H)*P,\n* \n* where y**H denotes the conjugate tranpose of y.\n* The eigenvalues are not input to this routine, but are computed\n* directly from the diagonal blocks of S and P.\n* \n* This routine returns the matrices X and/or Y of right and left\n* eigenvectors of (S,P), or the products Z*X and/or Q*Y,\n* where Z and Q are input matrices.\n* If Q and Z are the orthogonal factors from the generalized Schur\n* factorization of a matrix pair (A,B), then Z*X and Q*Y\n* are the matrices of right and left eigenvectors of (A,B).\n* \n\n* Arguments\n* =========\n*\n* SIDE (input) CHARACTER*1\n* = 'R': compute right eigenvectors only;\n* = 'L': compute left eigenvectors only;\n* = 'B': compute both right and left eigenvectors.\n*\n* HOWMNY (input) CHARACTER*1\n* = 'A': compute all right and/or left eigenvectors;\n* = 'B': compute all right and/or left eigenvectors,\n* backtransformed by the matrices in VR and/or VL;\n* = 'S': compute selected right and/or left eigenvectors,\n* specified by the logical array SELECT.\n*\n* SELECT (input) LOGICAL array, dimension (N)\n* If HOWMNY='S', SELECT specifies the eigenvectors to be\n* computed. If w(j) is a real eigenvalue, the corresponding\n* real eigenvector is computed if SELECT(j) is .TRUE..\n* If w(j) and w(j+1) are the real and imaginary parts of a\n* complex eigenvalue, the corresponding complex eigenvector\n* is computed if either SELECT(j) or SELECT(j+1) is .TRUE.,\n* and on exit SELECT(j) is set to .TRUE. and SELECT(j+1) is\n* set to .FALSE..\n* Not referenced if HOWMNY = 'A' or 'B'.\n*\n* N (input) INTEGER\n* The order of the matrices S and P. N >= 0.\n*\n* S (input) DOUBLE PRECISION array, dimension (LDS,N)\n* The upper quasi-triangular matrix S from a generalized Schur\n* factorization, as computed by DHGEQZ.\n*\n* LDS (input) INTEGER\n* The leading dimension of array S. LDS >= max(1,N).\n*\n* P (input) DOUBLE PRECISION array, dimension (LDP,N)\n* The upper triangular matrix P from a generalized Schur\n* factorization, as computed by DHGEQZ.\n* 2-by-2 diagonal blocks of P corresponding to 2-by-2 blocks\n* of S must be in positive diagonal form.\n*\n* LDP (input) INTEGER\n* The leading dimension of array P. LDP >= max(1,N).\n*\n* VL (input/output) DOUBLE PRECISION array, dimension (LDVL,MM)\n* On entry, if SIDE = 'L' or 'B' and HOWMNY = 'B', VL must\n* contain an N-by-N matrix Q (usually the orthogonal matrix Q\n* of left Schur vectors returned by DHGEQZ).\n* On exit, if SIDE = 'L' or 'B', VL contains:\n* if HOWMNY = 'A', the matrix Y of left eigenvectors of (S,P);\n* if HOWMNY = 'B', the matrix Q*Y;\n* if HOWMNY = 'S', the left eigenvectors of (S,P) specified by\n* SELECT, stored consecutively in the columns of\n* VL, in the same order as their eigenvalues.\n*\n* A complex eigenvector corresponding to a complex eigenvalue\n* is stored in two consecutive columns, the first holding the\n* real part, and the second the imaginary part.\n*\n* Not referenced if SIDE = 'R'.\n*\n* LDVL (input) INTEGER\n* The leading dimension of array VL. LDVL >= 1, and if\n* SIDE = 'L' or 'B', LDVL >= N.\n*\n* VR (input/output) DOUBLE PRECISION array, dimension (LDVR,MM)\n* On entry, if SIDE = 'R' or 'B' and HOWMNY = 'B', VR must\n* contain an N-by-N matrix Z (usually the orthogonal matrix Z\n* of right Schur vectors returned by DHGEQZ).\n*\n* On exit, if SIDE = 'R' or 'B', VR contains:\n* if HOWMNY = 'A', the matrix X of right eigenvectors of (S,P);\n* if HOWMNY = 'B' or 'b', the matrix Z*X;\n* if HOWMNY = 'S' or 's', the right eigenvectors of (S,P)\n* specified by SELECT, stored consecutively in the\n* columns of VR, in the same order as their\n* eigenvalues.\n*\n* A complex eigenvector corresponding to a complex eigenvalue\n* is stored in two consecutive columns, the first holding the\n* real part and the second the imaginary part.\n* \n* Not referenced if SIDE = 'L'.\n*\n* LDVR (input) INTEGER\n* The leading dimension of the array VR. LDVR >= 1, and if\n* SIDE = 'R' or 'B', LDVR >= N.\n*\n* MM (input) INTEGER\n* The number of columns in the arrays VL and/or VR. MM >= M.\n*\n* M (output) INTEGER\n* The number of columns in the arrays VL and/or VR actually\n* used to store the eigenvectors. If HOWMNY = 'A' or 'B', M\n* is set to N. Each selected real eigenvector occupies one\n* column and each selected complex eigenvector occupies two\n* columns.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (6*N)\n*\n* INFO (output) INTEGER\n* = 0: successful exit.\n* < 0: if INFO = -i, the i-th argument had an illegal value.\n* > 0: the 2-by-2 block (INFO:INFO+1) does not have a complex\n* eigenvalue.\n*\n\n* Further Details\n* ===============\n*\n* Allocation of workspace:\n* ---------- -- ---------\n*\n* WORK( j ) = 1-norm of j-th column of A, above the diagonal\n* WORK( N+j ) = 1-norm of j-th column of B, above the diagonal\n* WORK( 2*N+1:3*N ) = real part of eigenvector\n* WORK( 3*N+1:4*N ) = imaginary part of eigenvector\n* WORK( 4*N+1:5*N ) = real part of back-transformed eigenvector\n* WORK( 5*N+1:6*N ) = imaginary part of back-transformed eigenvector\n*\n* Rowwise vs. columnwise solution methods:\n* ------- -- ---------- -------- -------\n*\n* Finding a generalized eigenvector consists basically of solving the\n* singular triangular system\n*\n* (A - w B) x = 0 (for right) or: (A - w B)**H y = 0 (for left)\n*\n* Consider finding the i-th right eigenvector (assume all eigenvalues\n* are real). The equation to be solved is:\n* n i\n* 0 = sum C(j,k) v(k) = sum C(j,k) v(k) for j = i,. . .,1\n* k=j k=j\n*\n* where C = (A - w B) (The components v(i+1:n) are 0.)\n*\n* The \"rowwise\" method is:\n*\n* (1) v(i) := 1\n* for j = i-1,. . .,1:\n* i\n* (2) compute s = - sum C(j,k) v(k) and\n* k=j+1\n*\n* (3) v(j) := s / C(j,j)\n*\n* Step 2 is sometimes called the \"dot product\" step, since it is an\n* inner product between the j-th row and the portion of the eigenvector\n* that has been computed so far.\n*\n* The \"columnwise\" method consists basically in doing the sums\n* for all the rows in parallel. As each v(j) is computed, the\n* contribution of v(j) times the j-th column of C is added to the\n* partial sums. Since FORTRAN arrays are stored columnwise, this has\n* the advantage that at each step, the elements of C that are accessed\n* are adjacent to one another, whereas with the rowwise method, the\n* elements accessed at a step are spaced LDS (and LDP) words apart.\n*\n* When finding left eigenvectors, the matrix in question is the\n* transpose of the one in storage, so the rowwise method then\n* actually accesses columns of A and B at each step, and so is the\n* preferred method.\n*\n* =====================================================================\n*\n\n");
|
|
45
|
-
return Qnil;
|
|
46
|
-
}
|
|
47
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
48
|
-
printf("%s\n", "USAGE:\n m, info, vl, vr = NumRu::Lapack.dtgevc( side, howmny, select, s, p, vl, vr, [:usage => usage, :help => help])\n");
|
|
49
|
-
return Qnil;
|
|
50
|
-
}
|
|
51
|
-
} else
|
|
52
|
-
rblapack_options = Qnil;
|
|
53
|
-
if (argc != 7 && argc != 7)
|
|
54
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 7)", argc);
|
|
55
|
-
rblapack_side = argv[0];
|
|
56
|
-
rblapack_howmny = argv[1];
|
|
57
|
-
rblapack_select = argv[2];
|
|
58
|
-
rblapack_s = argv[3];
|
|
59
|
-
rblapack_p = argv[4];
|
|
60
|
-
rblapack_vl = argv[5];
|
|
61
|
-
rblapack_vr = argv[6];
|
|
62
|
-
if (argc == 7) {
|
|
63
|
-
} else if (rblapack_options != Qnil) {
|
|
64
|
-
} else {
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
side = StringValueCStr(rblapack_side)[0];
|
|
68
|
-
if (!NA_IsNArray(rblapack_select))
|
|
69
|
-
rb_raise(rb_eArgError, "select (3th argument) must be NArray");
|
|
70
|
-
if (NA_RANK(rblapack_select) != 1)
|
|
71
|
-
rb_raise(rb_eArgError, "rank of select (3th argument) must be %d", 1);
|
|
72
|
-
n = NA_SHAPE0(rblapack_select);
|
|
73
|
-
if (NA_TYPE(rblapack_select) != NA_LINT)
|
|
74
|
-
rblapack_select = na_change_type(rblapack_select, NA_LINT);
|
|
75
|
-
select = NA_PTR_TYPE(rblapack_select, logical*);
|
|
76
|
-
if (!NA_IsNArray(rblapack_p))
|
|
77
|
-
rb_raise(rb_eArgError, "p (5th argument) must be NArray");
|
|
78
|
-
if (NA_RANK(rblapack_p) != 2)
|
|
79
|
-
rb_raise(rb_eArgError, "rank of p (5th argument) must be %d", 2);
|
|
80
|
-
ldp = NA_SHAPE0(rblapack_p);
|
|
81
|
-
if (NA_SHAPE1(rblapack_p) != n)
|
|
82
|
-
rb_raise(rb_eRuntimeError, "shape 1 of p must be the same as shape 0 of select");
|
|
83
|
-
if (NA_TYPE(rblapack_p) != NA_DFLOAT)
|
|
84
|
-
rblapack_p = na_change_type(rblapack_p, NA_DFLOAT);
|
|
85
|
-
p = NA_PTR_TYPE(rblapack_p, doublereal*);
|
|
86
|
-
if (!NA_IsNArray(rblapack_vr))
|
|
87
|
-
rb_raise(rb_eArgError, "vr (7th argument) must be NArray");
|
|
88
|
-
if (NA_RANK(rblapack_vr) != 2)
|
|
89
|
-
rb_raise(rb_eArgError, "rank of vr (7th argument) must be %d", 2);
|
|
90
|
-
ldvr = NA_SHAPE0(rblapack_vr);
|
|
91
|
-
mm = NA_SHAPE1(rblapack_vr);
|
|
92
|
-
if (NA_TYPE(rblapack_vr) != NA_DFLOAT)
|
|
93
|
-
rblapack_vr = na_change_type(rblapack_vr, NA_DFLOAT);
|
|
94
|
-
vr = NA_PTR_TYPE(rblapack_vr, doublereal*);
|
|
95
|
-
howmny = StringValueCStr(rblapack_howmny)[0];
|
|
96
|
-
if (!NA_IsNArray(rblapack_vl))
|
|
97
|
-
rb_raise(rb_eArgError, "vl (6th argument) must be NArray");
|
|
98
|
-
if (NA_RANK(rblapack_vl) != 2)
|
|
99
|
-
rb_raise(rb_eArgError, "rank of vl (6th argument) must be %d", 2);
|
|
100
|
-
ldvl = NA_SHAPE0(rblapack_vl);
|
|
101
|
-
if (NA_SHAPE1(rblapack_vl) != mm)
|
|
102
|
-
rb_raise(rb_eRuntimeError, "shape 1 of vl must be the same as shape 1 of vr");
|
|
103
|
-
if (NA_TYPE(rblapack_vl) != NA_DFLOAT)
|
|
104
|
-
rblapack_vl = na_change_type(rblapack_vl, NA_DFLOAT);
|
|
105
|
-
vl = NA_PTR_TYPE(rblapack_vl, doublereal*);
|
|
106
|
-
if (!NA_IsNArray(rblapack_s))
|
|
107
|
-
rb_raise(rb_eArgError, "s (4th argument) must be NArray");
|
|
108
|
-
if (NA_RANK(rblapack_s) != 2)
|
|
109
|
-
rb_raise(rb_eArgError, "rank of s (4th argument) must be %d", 2);
|
|
110
|
-
lds = NA_SHAPE0(rblapack_s);
|
|
111
|
-
if (NA_SHAPE1(rblapack_s) != n)
|
|
112
|
-
rb_raise(rb_eRuntimeError, "shape 1 of s must be the same as shape 0 of select");
|
|
113
|
-
if (NA_TYPE(rblapack_s) != NA_DFLOAT)
|
|
114
|
-
rblapack_s = na_change_type(rblapack_s, NA_DFLOAT);
|
|
115
|
-
s = NA_PTR_TYPE(rblapack_s, doublereal*);
|
|
116
|
-
{
|
|
117
|
-
int shape[2];
|
|
118
|
-
shape[0] = ldvl;
|
|
119
|
-
shape[1] = mm;
|
|
120
|
-
rblapack_vl_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
121
|
-
}
|
|
122
|
-
vl_out__ = NA_PTR_TYPE(rblapack_vl_out__, doublereal*);
|
|
123
|
-
MEMCPY(vl_out__, vl, doublereal, NA_TOTAL(rblapack_vl));
|
|
124
|
-
rblapack_vl = rblapack_vl_out__;
|
|
125
|
-
vl = vl_out__;
|
|
126
|
-
{
|
|
127
|
-
int shape[2];
|
|
128
|
-
shape[0] = ldvr;
|
|
129
|
-
shape[1] = mm;
|
|
130
|
-
rblapack_vr_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
131
|
-
}
|
|
132
|
-
vr_out__ = NA_PTR_TYPE(rblapack_vr_out__, doublereal*);
|
|
133
|
-
MEMCPY(vr_out__, vr, doublereal, NA_TOTAL(rblapack_vr));
|
|
134
|
-
rblapack_vr = rblapack_vr_out__;
|
|
135
|
-
vr = vr_out__;
|
|
136
|
-
work = ALLOC_N(doublereal, (6*n));
|
|
137
|
-
|
|
138
|
-
dtgevc_(&side, &howmny, select, &n, s, &lds, p, &ldp, vl, &ldvl, vr, &ldvr, &mm, &m, work, &info);
|
|
139
|
-
|
|
140
|
-
free(work);
|
|
141
|
-
rblapack_m = INT2NUM(m);
|
|
142
|
-
rblapack_info = INT2NUM(info);
|
|
143
|
-
return rb_ary_new3(4, rblapack_m, rblapack_info, rblapack_vl, rblapack_vr);
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
void
|
|
147
|
-
init_lapack_dtgevc(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
148
|
-
sHelp = sH;
|
|
149
|
-
sUsage = sU;
|
|
150
|
-
rblapack_ZERO = zero;
|
|
151
|
-
|
|
152
|
-
rb_define_module_function(mLapack, "dtgevc", rblapack_dtgevc, -1);
|
|
153
|
-
}
|
data/ext/dtgex2.c
DELETED
|
@@ -1,180 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID dtgex2_(logical* wantq, logical* wantz, integer* n, doublereal* a, integer* lda, doublereal* b, integer* ldb, doublereal* q, integer* ldq, doublereal* z, integer* ldz, integer* j1, integer* n1, integer* n2, doublereal* work, integer* lwork, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_dtgex2(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_wantq;
|
|
9
|
-
logical wantq;
|
|
10
|
-
VALUE rblapack_wantz;
|
|
11
|
-
logical wantz;
|
|
12
|
-
VALUE rblapack_a;
|
|
13
|
-
doublereal *a;
|
|
14
|
-
VALUE rblapack_b;
|
|
15
|
-
doublereal *b;
|
|
16
|
-
VALUE rblapack_q;
|
|
17
|
-
doublereal *q;
|
|
18
|
-
VALUE rblapack_z;
|
|
19
|
-
doublereal *z;
|
|
20
|
-
VALUE rblapack_j1;
|
|
21
|
-
integer j1;
|
|
22
|
-
VALUE rblapack_n1;
|
|
23
|
-
integer n1;
|
|
24
|
-
VALUE rblapack_n2;
|
|
25
|
-
integer n2;
|
|
26
|
-
VALUE rblapack_lwork;
|
|
27
|
-
integer lwork;
|
|
28
|
-
VALUE rblapack_info;
|
|
29
|
-
integer info;
|
|
30
|
-
VALUE rblapack_a_out__;
|
|
31
|
-
doublereal *a_out__;
|
|
32
|
-
VALUE rblapack_b_out__;
|
|
33
|
-
doublereal *b_out__;
|
|
34
|
-
VALUE rblapack_q_out__;
|
|
35
|
-
doublereal *q_out__;
|
|
36
|
-
VALUE rblapack_z_out__;
|
|
37
|
-
doublereal *z_out__;
|
|
38
|
-
doublereal *work;
|
|
39
|
-
|
|
40
|
-
integer lda;
|
|
41
|
-
integer n;
|
|
42
|
-
integer ldb;
|
|
43
|
-
integer ldq;
|
|
44
|
-
integer ldz;
|
|
45
|
-
|
|
46
|
-
VALUE rblapack_options;
|
|
47
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
48
|
-
argc--;
|
|
49
|
-
rblapack_options = argv[argc];
|
|
50
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
51
|
-
printf("%s\n", "USAGE:\n info, a, b, q, z = NumRu::Lapack.dtgex2( wantq, wantz, a, b, q, z, j1, n1, n2, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DTGEX2( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, J1, N1, N2, WORK, LWORK, INFO )\n\n* Purpose\n* =======\n*\n* DTGEX2 swaps adjacent diagonal blocks (A11, B11) and (A22, B22)\n* of size 1-by-1 or 2-by-2 in an upper (quasi) triangular matrix pair\n* (A, B) by an orthogonal equivalence transformation.\n*\n* (A, B) must be in generalized real Schur canonical form (as returned\n* by DGGES), i.e. A is block upper triangular with 1-by-1 and 2-by-2\n* diagonal blocks. B is upper triangular.\n*\n* Optionally, the matrices Q and Z of generalized Schur vectors are\n* updated.\n*\n* Q(in) * A(in) * Z(in)' = Q(out) * A(out) * Z(out)'\n* Q(in) * B(in) * Z(in)' = Q(out) * B(out) * Z(out)'\n*\n*\n\n* Arguments\n* =========\n*\n* WANTQ (input) LOGICAL\n* .TRUE. : update the left transformation matrix Q;\n* .FALSE.: do not update Q.\n*\n* WANTZ (input) LOGICAL\n* .TRUE. : update the right transformation matrix Z;\n* .FALSE.: do not update Z.\n*\n* N (input) INTEGER\n* The order of the matrices A and B. N >= 0.\n*\n* A (input/output) DOUBLE PRECISION array, dimensions (LDA,N)\n* On entry, the matrix A in the pair (A, B).\n* On exit, the updated matrix A.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* B (input/output) DOUBLE PRECISION array, dimensions (LDB,N)\n* On entry, the matrix B in the pair (A, B).\n* On exit, the updated matrix B.\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N)\n* On entry, if WANTQ = .TRUE., the orthogonal matrix Q.\n* On exit, the updated matrix Q.\n* Not referenced if WANTQ = .FALSE..\n*\n* LDQ (input) INTEGER\n* The leading dimension of the array Q. LDQ >= 1.\n* If WANTQ = .TRUE., LDQ >= N.\n*\n* Z (input/output) DOUBLE PRECISION array, dimension (LDZ,N)\n* On entry, if WANTZ =.TRUE., the orthogonal matrix Z.\n* On exit, the updated matrix Z.\n* Not referenced if WANTZ = .FALSE..\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1.\n* If WANTZ = .TRUE., LDZ >= N.\n*\n* J1 (input) INTEGER\n* The index to the first block (A11, B11). 1 <= J1 <= N.\n*\n* N1 (input) INTEGER\n* The order of the first block (A11, B11). N1 = 0, 1 or 2.\n*\n* N2 (input) INTEGER\n* The order of the second block (A22, B22). N2 = 0, 1 or 2.\n*\n* WORK (workspace) DOUBLE PRECISION array, dimension (MAX(1,LWORK)).\n*\n* LWORK (input) INTEGER\n* The dimension of the array WORK.\n* LWORK >= MAX( 1, N*(N2+N1), (N2+N1)*(N2+N1)*2 )\n*\n* INFO (output) INTEGER\n* =0: Successful exit\n* >0: If INFO = 1, the transformed matrix (A, B) would be\n* too far from generalized Schur form; the blocks are\n* not swapped and (A, B) and (Q, Z) are unchanged.\n* The problem of swapping is too ill-conditioned.\n* <0: If INFO = -16: LWORK is too small. Appropriate value\n* for LWORK is returned in WORK(1).\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* In the current code both weak and strong stability tests are\n* performed. The user can omit the strong stability test by changing\n* the internal logical parameter WANDS to .FALSE.. See ref. [2] for\n* details.\n*\n* [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the\n* Generalized Real Schur Form of a Regular Matrix Pair (A, B), in\n* M.S. Moonen et al (eds), Linear Algebra for Large Scale and\n* Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.\n*\n* [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified\n* Eigenvalues of a Regular Matrix Pair (A, B) and Condition\n* Estimation: Theory, Algorithms and Software,\n* Report UMINF - 94.04, Department of Computing Science, Umea\n* University, S-901 87 Umea, Sweden, 1994. Also as LAPACK Working\n* Note 87. To appear in Numerical Algorithms, 1996.\n*\n* =====================================================================\n* Replaced various illegal calls to DCOPY by calls to DLASET, or by DO\n* loops. Sven Hammarling, 1/5/02.\n*\n\n");
|
|
52
|
-
return Qnil;
|
|
53
|
-
}
|
|
54
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
55
|
-
printf("%s\n", "USAGE:\n info, a, b, q, z = NumRu::Lapack.dtgex2( wantq, wantz, a, b, q, z, j1, n1, n2, [:lwork => lwork, :usage => usage, :help => help])\n");
|
|
56
|
-
return Qnil;
|
|
57
|
-
}
|
|
58
|
-
} else
|
|
59
|
-
rblapack_options = Qnil;
|
|
60
|
-
if (argc != 9 && argc != 10)
|
|
61
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 9)", argc);
|
|
62
|
-
rblapack_wantq = argv[0];
|
|
63
|
-
rblapack_wantz = argv[1];
|
|
64
|
-
rblapack_a = argv[2];
|
|
65
|
-
rblapack_b = argv[3];
|
|
66
|
-
rblapack_q = argv[4];
|
|
67
|
-
rblapack_z = argv[5];
|
|
68
|
-
rblapack_j1 = argv[6];
|
|
69
|
-
rblapack_n1 = argv[7];
|
|
70
|
-
rblapack_n2 = argv[8];
|
|
71
|
-
if (argc == 10) {
|
|
72
|
-
rblapack_lwork = argv[9];
|
|
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
|
-
wantq = (rblapack_wantq == Qtrue);
|
|
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
|
-
if (!NA_IsNArray(rblapack_q))
|
|
90
|
-
rb_raise(rb_eArgError, "q (5th argument) must be NArray");
|
|
91
|
-
if (NA_RANK(rblapack_q) != 2)
|
|
92
|
-
rb_raise(rb_eArgError, "rank of q (5th argument) must be %d", 2);
|
|
93
|
-
ldq = NA_SHAPE0(rblapack_q);
|
|
94
|
-
if (NA_SHAPE1(rblapack_q) != n)
|
|
95
|
-
rb_raise(rb_eRuntimeError, "shape 1 of q must be the same as shape 1 of a");
|
|
96
|
-
if (NA_TYPE(rblapack_q) != NA_DFLOAT)
|
|
97
|
-
rblapack_q = na_change_type(rblapack_q, NA_DFLOAT);
|
|
98
|
-
q = NA_PTR_TYPE(rblapack_q, doublereal*);
|
|
99
|
-
j1 = NUM2INT(rblapack_j1);
|
|
100
|
-
n2 = NUM2INT(rblapack_n2);
|
|
101
|
-
wantz = (rblapack_wantz == Qtrue);
|
|
102
|
-
if (!NA_IsNArray(rblapack_z))
|
|
103
|
-
rb_raise(rb_eArgError, "z (6th argument) must be NArray");
|
|
104
|
-
if (NA_RANK(rblapack_z) != 2)
|
|
105
|
-
rb_raise(rb_eArgError, "rank of z (6th argument) must be %d", 2);
|
|
106
|
-
ldz = NA_SHAPE0(rblapack_z);
|
|
107
|
-
if (NA_SHAPE1(rblapack_z) != n)
|
|
108
|
-
rb_raise(rb_eRuntimeError, "shape 1 of z must be the same as shape 1 of a");
|
|
109
|
-
if (NA_TYPE(rblapack_z) != NA_DFLOAT)
|
|
110
|
-
rblapack_z = na_change_type(rblapack_z, NA_DFLOAT);
|
|
111
|
-
z = NA_PTR_TYPE(rblapack_z, doublereal*);
|
|
112
|
-
if (!NA_IsNArray(rblapack_b))
|
|
113
|
-
rb_raise(rb_eArgError, "b (4th argument) must be NArray");
|
|
114
|
-
if (NA_RANK(rblapack_b) != 2)
|
|
115
|
-
rb_raise(rb_eArgError, "rank of b (4th argument) must be %d", 2);
|
|
116
|
-
ldb = NA_SHAPE0(rblapack_b);
|
|
117
|
-
if (NA_SHAPE1(rblapack_b) != n)
|
|
118
|
-
rb_raise(rb_eRuntimeError, "shape 1 of b must be the same as shape 1 of a");
|
|
119
|
-
if (NA_TYPE(rblapack_b) != NA_DFLOAT)
|
|
120
|
-
rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
|
|
121
|
-
b = NA_PTR_TYPE(rblapack_b, doublereal*);
|
|
122
|
-
n1 = NUM2INT(rblapack_n1);
|
|
123
|
-
lwork = MAX(1,(MAX(n*(n2+n1),(n2+n1)*(n2+n1)*2)));
|
|
124
|
-
{
|
|
125
|
-
int shape[2];
|
|
126
|
-
shape[0] = lda;
|
|
127
|
-
shape[1] = n;
|
|
128
|
-
rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
129
|
-
}
|
|
130
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, doublereal*);
|
|
131
|
-
MEMCPY(a_out__, a, doublereal, NA_TOTAL(rblapack_a));
|
|
132
|
-
rblapack_a = rblapack_a_out__;
|
|
133
|
-
a = a_out__;
|
|
134
|
-
{
|
|
135
|
-
int shape[2];
|
|
136
|
-
shape[0] = ldb;
|
|
137
|
-
shape[1] = n;
|
|
138
|
-
rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
139
|
-
}
|
|
140
|
-
b_out__ = NA_PTR_TYPE(rblapack_b_out__, doublereal*);
|
|
141
|
-
MEMCPY(b_out__, b, doublereal, NA_TOTAL(rblapack_b));
|
|
142
|
-
rblapack_b = rblapack_b_out__;
|
|
143
|
-
b = b_out__;
|
|
144
|
-
{
|
|
145
|
-
int shape[2];
|
|
146
|
-
shape[0] = ldq;
|
|
147
|
-
shape[1] = n;
|
|
148
|
-
rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
149
|
-
}
|
|
150
|
-
q_out__ = NA_PTR_TYPE(rblapack_q_out__, doublereal*);
|
|
151
|
-
MEMCPY(q_out__, q, doublereal, NA_TOTAL(rblapack_q));
|
|
152
|
-
rblapack_q = rblapack_q_out__;
|
|
153
|
-
q = q_out__;
|
|
154
|
-
{
|
|
155
|
-
int shape[2];
|
|
156
|
-
shape[0] = ldz;
|
|
157
|
-
shape[1] = n;
|
|
158
|
-
rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
159
|
-
}
|
|
160
|
-
z_out__ = NA_PTR_TYPE(rblapack_z_out__, doublereal*);
|
|
161
|
-
MEMCPY(z_out__, z, doublereal, NA_TOTAL(rblapack_z));
|
|
162
|
-
rblapack_z = rblapack_z_out__;
|
|
163
|
-
z = z_out__;
|
|
164
|
-
work = ALLOC_N(doublereal, (lwork));
|
|
165
|
-
|
|
166
|
-
dtgex2_(&wantq, &wantz, &n, a, &lda, b, &ldb, q, &ldq, z, &ldz, &j1, &n1, &n2, work, &lwork, &info);
|
|
167
|
-
|
|
168
|
-
free(work);
|
|
169
|
-
rblapack_info = INT2NUM(info);
|
|
170
|
-
return rb_ary_new3(5, rblapack_info, rblapack_a, rblapack_b, rblapack_q, rblapack_z);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
void
|
|
174
|
-
init_lapack_dtgex2(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
175
|
-
sHelp = sH;
|
|
176
|
-
sUsage = sU;
|
|
177
|
-
rblapack_ZERO = zero;
|
|
178
|
-
|
|
179
|
-
rb_define_module_function(mLapack, "dtgex2", rblapack_dtgex2, -1);
|
|
180
|
-
}
|
data/ext/dtgexc.c
DELETED
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID dtgexc_(logical* wantq, logical* wantz, integer* n, doublereal* a, integer* lda, doublereal* b, integer* ldb, doublereal* q, integer* ldq, doublereal* z, integer* ldz, integer* ifst, integer* ilst, doublereal* work, integer* lwork, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_dtgexc(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_wantq;
|
|
9
|
-
logical wantq;
|
|
10
|
-
VALUE rblapack_wantz;
|
|
11
|
-
logical wantz;
|
|
12
|
-
VALUE rblapack_a;
|
|
13
|
-
doublereal *a;
|
|
14
|
-
VALUE rblapack_b;
|
|
15
|
-
doublereal *b;
|
|
16
|
-
VALUE rblapack_q;
|
|
17
|
-
doublereal *q;
|
|
18
|
-
VALUE rblapack_z;
|
|
19
|
-
doublereal *z;
|
|
20
|
-
VALUE rblapack_ifst;
|
|
21
|
-
integer ifst;
|
|
22
|
-
VALUE rblapack_ilst;
|
|
23
|
-
integer ilst;
|
|
24
|
-
VALUE rblapack_lwork;
|
|
25
|
-
integer lwork;
|
|
26
|
-
VALUE rblapack_work;
|
|
27
|
-
doublereal *work;
|
|
28
|
-
VALUE rblapack_info;
|
|
29
|
-
integer info;
|
|
30
|
-
VALUE rblapack_a_out__;
|
|
31
|
-
doublereal *a_out__;
|
|
32
|
-
VALUE rblapack_b_out__;
|
|
33
|
-
doublereal *b_out__;
|
|
34
|
-
VALUE rblapack_q_out__;
|
|
35
|
-
doublereal *q_out__;
|
|
36
|
-
VALUE rblapack_z_out__;
|
|
37
|
-
doublereal *z_out__;
|
|
38
|
-
|
|
39
|
-
integer lda;
|
|
40
|
-
integer n;
|
|
41
|
-
integer ldb;
|
|
42
|
-
integer ldq;
|
|
43
|
-
integer ldz;
|
|
44
|
-
|
|
45
|
-
VALUE rblapack_options;
|
|
46
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
47
|
-
argc--;
|
|
48
|
-
rblapack_options = argv[argc];
|
|
49
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
50
|
-
printf("%s\n", "USAGE:\n work, info, a, b, q, z, ifst, ilst = NumRu::Lapack.dtgexc( wantq, wantz, a, b, q, z, ifst, ilst, [:lwork => lwork, :usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE DTGEXC( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, WORK, LWORK, INFO )\n\n* Purpose\n* =======\n*\n* DTGEXC reorders the generalized real Schur decomposition of a real\n* matrix pair (A,B) using an orthogonal equivalence transformation\n*\n* (A, B) = Q * (A, B) * Z',\n*\n* so that the diagonal block of (A, B) with row index IFST is moved\n* to row ILST.\n*\n* (A, B) must be in generalized real Schur canonical form (as returned\n* by DGGES), i.e. A is block upper triangular with 1-by-1 and 2-by-2\n* diagonal blocks. B is upper triangular.\n*\n* Optionally, the matrices Q and Z of generalized Schur vectors are\n* updated.\n*\n* Q(in) * A(in) * Z(in)' = Q(out) * A(out) * Z(out)'\n* Q(in) * B(in) * Z(in)' = Q(out) * B(out) * Z(out)'\n*\n*\n\n* Arguments\n* =========\n*\n* WANTQ (input) LOGICAL\n* .TRUE. : update the left transformation matrix Q;\n* .FALSE.: do not update Q.\n*\n* WANTZ (input) LOGICAL\n* .TRUE. : update the right transformation matrix Z;\n* .FALSE.: do not update Z.\n*\n* N (input) INTEGER\n* The order of the matrices A and B. N >= 0.\n*\n* A (input/output) DOUBLE PRECISION array, dimension (LDA,N)\n* On entry, the matrix A in generalized real Schur canonical\n* form.\n* On exit, the updated matrix A, again in generalized\n* real Schur canonical form.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* B (input/output) DOUBLE PRECISION array, dimension (LDB,N)\n* On entry, the matrix B in generalized real Schur canonical\n* form (A,B).\n* On exit, the updated matrix B, again in generalized\n* real Schur canonical form (A,B).\n*\n* LDB (input) INTEGER\n* The leading dimension of the array B. LDB >= max(1,N).\n*\n* Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N)\n* On entry, if WANTQ = .TRUE., the orthogonal matrix Q.\n* On exit, the updated matrix Q.\n* If WANTQ = .FALSE., Q is not referenced.\n*\n* LDQ (input) INTEGER\n* The leading dimension of the array Q. LDQ >= 1.\n* If WANTQ = .TRUE., LDQ >= N.\n*\n* Z (input/output) DOUBLE PRECISION array, dimension (LDZ,N)\n* On entry, if WANTZ = .TRUE., the orthogonal matrix Z.\n* On exit, the updated matrix Z.\n* If WANTZ = .FALSE., Z is not referenced.\n*\n* LDZ (input) INTEGER\n* The leading dimension of the array Z. LDZ >= 1.\n* If WANTZ = .TRUE., LDZ >= N.\n*\n* IFST (input/output) INTEGER\n* ILST (input/output) INTEGER\n* Specify the reordering of the diagonal blocks of (A, B).\n* The block with row index IFST is moved to row ILST, by a\n* sequence of swapping between adjacent blocks.\n* On exit, if IFST pointed on entry to the second row of\n* a 2-by-2 block, it is changed to point to the first row;\n* ILST always points to the first row of the block in its\n* final position (which may differ from its input value by\n* +1 or -1). 1 <= IFST, ILST <= N.\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.\n* LWORK >= 1 when N <= 1, otherwise LWORK >= 4*N + 16.\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* INFO (output) INTEGER\n* =0: successful exit.\n* <0: if INFO = -i, the i-th argument had an illegal value.\n* =1: The transformed matrix pair (A, B) would be too far\n* from generalized Schur form; the problem is ill-\n* conditioned. (A, B) may have been partially reordered,\n* and ILST points to the first row of the current\n* position of the block being moved.\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* Bo Kagstrom and Peter Poromaa, Department of Computing Science,\n* Umea University, S-901 87 Umea, Sweden.\n*\n* [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the\n* Generalized Real Schur Form of a Regular Matrix Pair (A, B), in\n* M.S. Moonen et al (eds), Linear Algebra for Large Scale and\n* Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.\n*\n* =====================================================================\n*\n\n");
|
|
51
|
-
return Qnil;
|
|
52
|
-
}
|
|
53
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
54
|
-
printf("%s\n", "USAGE:\n work, info, a, b, q, z, ifst, ilst = NumRu::Lapack.dtgexc( wantq, wantz, a, b, q, z, ifst, ilst, [:lwork => lwork, :usage => usage, :help => help])\n");
|
|
55
|
-
return Qnil;
|
|
56
|
-
}
|
|
57
|
-
} else
|
|
58
|
-
rblapack_options = Qnil;
|
|
59
|
-
if (argc != 8 && argc != 9)
|
|
60
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 8)", argc);
|
|
61
|
-
rblapack_wantq = argv[0];
|
|
62
|
-
rblapack_wantz = argv[1];
|
|
63
|
-
rblapack_a = argv[2];
|
|
64
|
-
rblapack_b = argv[3];
|
|
65
|
-
rblapack_q = argv[4];
|
|
66
|
-
rblapack_z = argv[5];
|
|
67
|
-
rblapack_ifst = argv[6];
|
|
68
|
-
rblapack_ilst = argv[7];
|
|
69
|
-
if (argc == 9) {
|
|
70
|
-
rblapack_lwork = argv[8];
|
|
71
|
-
} else if (rblapack_options != Qnil) {
|
|
72
|
-
rblapack_lwork = rb_hash_aref(rblapack_options, ID2SYM(rb_intern("lwork")));
|
|
73
|
-
} else {
|
|
74
|
-
rblapack_lwork = Qnil;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
wantq = (rblapack_wantq == Qtrue);
|
|
78
|
-
if (!NA_IsNArray(rblapack_a))
|
|
79
|
-
rb_raise(rb_eArgError, "a (3th argument) must be NArray");
|
|
80
|
-
if (NA_RANK(rblapack_a) != 2)
|
|
81
|
-
rb_raise(rb_eArgError, "rank of a (3th argument) must be %d", 2);
|
|
82
|
-
lda = NA_SHAPE0(rblapack_a);
|
|
83
|
-
n = NA_SHAPE1(rblapack_a);
|
|
84
|
-
if (NA_TYPE(rblapack_a) != NA_DFLOAT)
|
|
85
|
-
rblapack_a = na_change_type(rblapack_a, NA_DFLOAT);
|
|
86
|
-
a = NA_PTR_TYPE(rblapack_a, doublereal*);
|
|
87
|
-
if (!NA_IsNArray(rblapack_q))
|
|
88
|
-
rb_raise(rb_eArgError, "q (5th argument) must be NArray");
|
|
89
|
-
if (NA_RANK(rblapack_q) != 2)
|
|
90
|
-
rb_raise(rb_eArgError, "rank of q (5th argument) must be %d", 2);
|
|
91
|
-
ldq = NA_SHAPE0(rblapack_q);
|
|
92
|
-
if (NA_SHAPE1(rblapack_q) != n)
|
|
93
|
-
rb_raise(rb_eRuntimeError, "shape 1 of q must be the same as shape 1 of a");
|
|
94
|
-
if (NA_TYPE(rblapack_q) != NA_DFLOAT)
|
|
95
|
-
rblapack_q = na_change_type(rblapack_q, NA_DFLOAT);
|
|
96
|
-
q = NA_PTR_TYPE(rblapack_q, doublereal*);
|
|
97
|
-
ifst = NUM2INT(rblapack_ifst);
|
|
98
|
-
wantz = (rblapack_wantz == Qtrue);
|
|
99
|
-
if (!NA_IsNArray(rblapack_z))
|
|
100
|
-
rb_raise(rb_eArgError, "z (6th argument) must be NArray");
|
|
101
|
-
if (NA_RANK(rblapack_z) != 2)
|
|
102
|
-
rb_raise(rb_eArgError, "rank of z (6th argument) must be %d", 2);
|
|
103
|
-
ldz = NA_SHAPE0(rblapack_z);
|
|
104
|
-
if (NA_SHAPE1(rblapack_z) != n)
|
|
105
|
-
rb_raise(rb_eRuntimeError, "shape 1 of z must be the same as shape 1 of a");
|
|
106
|
-
if (NA_TYPE(rblapack_z) != NA_DFLOAT)
|
|
107
|
-
rblapack_z = na_change_type(rblapack_z, NA_DFLOAT);
|
|
108
|
-
z = NA_PTR_TYPE(rblapack_z, doublereal*);
|
|
109
|
-
if (!NA_IsNArray(rblapack_b))
|
|
110
|
-
rb_raise(rb_eArgError, "b (4th argument) must be NArray");
|
|
111
|
-
if (NA_RANK(rblapack_b) != 2)
|
|
112
|
-
rb_raise(rb_eArgError, "rank of b (4th argument) must be %d", 2);
|
|
113
|
-
ldb = NA_SHAPE0(rblapack_b);
|
|
114
|
-
if (NA_SHAPE1(rblapack_b) != n)
|
|
115
|
-
rb_raise(rb_eRuntimeError, "shape 1 of b must be the same as shape 1 of a");
|
|
116
|
-
if (NA_TYPE(rblapack_b) != NA_DFLOAT)
|
|
117
|
-
rblapack_b = na_change_type(rblapack_b, NA_DFLOAT);
|
|
118
|
-
b = NA_PTR_TYPE(rblapack_b, doublereal*);
|
|
119
|
-
if (rblapack_lwork == Qnil)
|
|
120
|
-
lwork = n<=1 ? 1 : 4*n+16;
|
|
121
|
-
else {
|
|
122
|
-
lwork = NUM2INT(rblapack_lwork);
|
|
123
|
-
}
|
|
124
|
-
ilst = NUM2INT(rblapack_ilst);
|
|
125
|
-
{
|
|
126
|
-
int shape[1];
|
|
127
|
-
shape[0] = MAX(1,lwork);
|
|
128
|
-
rblapack_work = na_make_object(NA_DFLOAT, 1, shape, cNArray);
|
|
129
|
-
}
|
|
130
|
-
work = NA_PTR_TYPE(rblapack_work, doublereal*);
|
|
131
|
-
{
|
|
132
|
-
int shape[2];
|
|
133
|
-
shape[0] = lda;
|
|
134
|
-
shape[1] = n;
|
|
135
|
-
rblapack_a_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
136
|
-
}
|
|
137
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, doublereal*);
|
|
138
|
-
MEMCPY(a_out__, a, doublereal, NA_TOTAL(rblapack_a));
|
|
139
|
-
rblapack_a = rblapack_a_out__;
|
|
140
|
-
a = a_out__;
|
|
141
|
-
{
|
|
142
|
-
int shape[2];
|
|
143
|
-
shape[0] = ldb;
|
|
144
|
-
shape[1] = n;
|
|
145
|
-
rblapack_b_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
146
|
-
}
|
|
147
|
-
b_out__ = NA_PTR_TYPE(rblapack_b_out__, doublereal*);
|
|
148
|
-
MEMCPY(b_out__, b, doublereal, NA_TOTAL(rblapack_b));
|
|
149
|
-
rblapack_b = rblapack_b_out__;
|
|
150
|
-
b = b_out__;
|
|
151
|
-
{
|
|
152
|
-
int shape[2];
|
|
153
|
-
shape[0] = ldq;
|
|
154
|
-
shape[1] = n;
|
|
155
|
-
rblapack_q_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
156
|
-
}
|
|
157
|
-
q_out__ = NA_PTR_TYPE(rblapack_q_out__, doublereal*);
|
|
158
|
-
MEMCPY(q_out__, q, doublereal, NA_TOTAL(rblapack_q));
|
|
159
|
-
rblapack_q = rblapack_q_out__;
|
|
160
|
-
q = q_out__;
|
|
161
|
-
{
|
|
162
|
-
int shape[2];
|
|
163
|
-
shape[0] = ldz;
|
|
164
|
-
shape[1] = n;
|
|
165
|
-
rblapack_z_out__ = na_make_object(NA_DFLOAT, 2, shape, cNArray);
|
|
166
|
-
}
|
|
167
|
-
z_out__ = NA_PTR_TYPE(rblapack_z_out__, doublereal*);
|
|
168
|
-
MEMCPY(z_out__, z, doublereal, NA_TOTAL(rblapack_z));
|
|
169
|
-
rblapack_z = rblapack_z_out__;
|
|
170
|
-
z = z_out__;
|
|
171
|
-
|
|
172
|
-
dtgexc_(&wantq, &wantz, &n, a, &lda, b, &ldb, q, &ldq, z, &ldz, &ifst, &ilst, work, &lwork, &info);
|
|
173
|
-
|
|
174
|
-
rblapack_info = INT2NUM(info);
|
|
175
|
-
rblapack_ifst = INT2NUM(ifst);
|
|
176
|
-
rblapack_ilst = INT2NUM(ilst);
|
|
177
|
-
return rb_ary_new3(8, rblapack_work, rblapack_info, rblapack_a, rblapack_b, rblapack_q, rblapack_z, rblapack_ifst, rblapack_ilst);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
void
|
|
181
|
-
init_lapack_dtgexc(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
182
|
-
sHelp = sH;
|
|
183
|
-
sUsage = sU;
|
|
184
|
-
rblapack_ZERO = zero;
|
|
185
|
-
|
|
186
|
-
rb_define_module_function(mLapack, "dtgexc", rblapack_dtgexc, -1);
|
|
187
|
-
}
|