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/clatps.c
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID clatps_(char* uplo, char* trans, char* diag, char* normin, integer* n, complex* ap, complex* x, real* scale, real* cnorm, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_clatps(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_uplo;
|
|
9
|
-
char uplo;
|
|
10
|
-
VALUE rblapack_trans;
|
|
11
|
-
char trans;
|
|
12
|
-
VALUE rblapack_diag;
|
|
13
|
-
char diag;
|
|
14
|
-
VALUE rblapack_normin;
|
|
15
|
-
char normin;
|
|
16
|
-
VALUE rblapack_ap;
|
|
17
|
-
complex *ap;
|
|
18
|
-
VALUE rblapack_x;
|
|
19
|
-
complex *x;
|
|
20
|
-
VALUE rblapack_cnorm;
|
|
21
|
-
real *cnorm;
|
|
22
|
-
VALUE rblapack_scale;
|
|
23
|
-
real scale;
|
|
24
|
-
VALUE rblapack_info;
|
|
25
|
-
integer info;
|
|
26
|
-
VALUE rblapack_x_out__;
|
|
27
|
-
complex *x_out__;
|
|
28
|
-
VALUE rblapack_cnorm_out__;
|
|
29
|
-
real *cnorm_out__;
|
|
30
|
-
|
|
31
|
-
integer n;
|
|
32
|
-
|
|
33
|
-
VALUE rblapack_options;
|
|
34
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
35
|
-
argc--;
|
|
36
|
-
rblapack_options = argv[argc];
|
|
37
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
38
|
-
printf("%s\n", "USAGE:\n scale, info, x, cnorm = NumRu::Lapack.clatps( uplo, trans, diag, normin, ap, x, cnorm, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLATPS( UPLO, TRANS, DIAG, NORMIN, N, AP, X, SCALE, CNORM, INFO )\n\n* Purpose\n* =======\n*\n* CLATPS solves one of the triangular systems\n*\n* A * x = s*b, A**T * x = s*b, or A**H * x = s*b,\n*\n* with scaling to prevent overflow, where A is an upper or lower\n* triangular matrix stored in packed form. Here A**T denotes the\n* transpose of A, A**H denotes the conjugate transpose of A, x and b\n* are n-element vectors, and s is a scaling factor, usually less than\n* or equal to 1, chosen so that the components of x will be less than\n* the overflow threshold. If the unscaled problem will not cause\n* overflow, the Level 2 BLAS routine CTPSV is called. If the matrix A\n* is singular (A(j,j) = 0 for some j), then s is set to 0 and a\n* non-trivial solution to A*x = 0 is returned.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* Specifies whether the matrix A is upper or lower triangular.\n* = 'U': Upper triangular\n* = 'L': Lower triangular\n*\n* TRANS (input) CHARACTER*1\n* Specifies the operation applied to A.\n* = 'N': Solve A * x = s*b (No transpose)\n* = 'T': Solve A**T * x = s*b (Transpose)\n* = 'C': Solve A**H * x = s*b (Conjugate transpose)\n*\n* DIAG (input) CHARACTER*1\n* Specifies whether or not the matrix A is unit triangular.\n* = 'N': Non-unit triangular\n* = 'U': Unit triangular\n*\n* NORMIN (input) CHARACTER*1\n* Specifies whether CNORM has been set or not.\n* = 'Y': CNORM contains the column norms on entry\n* = 'N': CNORM is not set on entry. On exit, the norms will\n* be computed and stored in CNORM.\n*\n* N (input) INTEGER\n* The order of the matrix A. N >= 0.\n*\n* AP (input) COMPLEX array, dimension (N*(N+1)/2)\n* The upper or lower triangular matrix A, packed columnwise in\n* a linear array. The j-th column of A is stored in the array\n* AP as follows:\n* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;\n* if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.\n*\n* X (input/output) COMPLEX array, dimension (N)\n* On entry, the right hand side b of the triangular system.\n* On exit, X is overwritten by the solution vector x.\n*\n* SCALE (output) REAL\n* The scaling factor s for the triangular system\n* A * x = s*b, A**T * x = s*b, or A**H * x = s*b.\n* If SCALE = 0, the matrix A is singular or badly scaled, and\n* the vector x is an exact or approximate solution to A*x = 0.\n*\n* CNORM (input or output) REAL array, dimension (N)\n*\n* If NORMIN = 'Y', CNORM is an input argument and CNORM(j)\n* contains the norm of the off-diagonal part of the j-th column\n* of A. If TRANS = 'N', CNORM(j) must be greater than or equal\n* to the infinity-norm, and if TRANS = 'T' or 'C', CNORM(j)\n* must be greater than or equal to the 1-norm.\n*\n* If NORMIN = 'N', CNORM is an output argument and CNORM(j)\n* returns the 1-norm of the offdiagonal part of the j-th column\n* of A.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -k, the k-th argument had an illegal value\n*\n\n* Further Details\n* ======= =======\n*\n* A rough bound on x is computed; if that is less than overflow, CTPSV\n* is called, otherwise, specific code is used which checks for possible\n* overflow or divide-by-zero at every operation.\n*\n* A columnwise scheme is used for solving A*x = b. The basic algorithm\n* if A is lower triangular is\n*\n* x[1:n] := b[1:n]\n* for j = 1, ..., n\n* x(j) := x(j) / A(j,j)\n* x[j+1:n] := x[j+1:n] - x(j) * A[j+1:n,j]\n* end\n*\n* Define bounds on the components of x after j iterations of the loop:\n* M(j) = bound on x[1:j]\n* G(j) = bound on x[j+1:n]\n* Initially, let M(0) = 0 and G(0) = max{x(i), i=1,...,n}.\n*\n* Then for iteration j+1 we have\n* M(j+1) <= G(j) / | A(j+1,j+1) |\n* G(j+1) <= G(j) + M(j+1) * | A[j+2:n,j+1] |\n* <= G(j) ( 1 + CNORM(j+1) / | A(j+1,j+1) | )\n*\n* where CNORM(j+1) is greater than or equal to the infinity-norm of\n* column j+1 of A, not counting the diagonal. Hence\n*\n* G(j) <= G(0) product ( 1 + CNORM(i) / | A(i,i) | )\n* 1<=i<=j\n* and\n*\n* |x(j)| <= ( G(0) / |A(j,j)| ) product ( 1 + CNORM(i) / |A(i,i)| )\n* 1<=i< j\n*\n* Since |x(j)| <= M(j), we use the Level 2 BLAS routine CTPSV if the\n* reciprocal of the largest M(j), j=1,..,n, is larger than\n* max(underflow, 1/overflow).\n*\n* The bound on x(j) is also used to determine when a step in the\n* columnwise method can be performed without fear of overflow. If\n* the computed bound is greater than a large constant, x is scaled to\n* prevent overflow, but if the bound overflows, x is set to 0, x(j) to\n* 1, and scale to 0, and a non-trivial solution to A*x = 0 is found.\n*\n* Similarly, a row-wise scheme is used to solve A**T *x = b or\n* A**H *x = b. The basic algorithm for A upper triangular is\n*\n* for j = 1, ..., n\n* x(j) := ( b(j) - A[1:j-1,j]' * x[1:j-1] ) / A(j,j)\n* end\n*\n* We simultaneously compute two bounds\n* G(j) = bound on ( b(i) - A[1:i-1,i]' * x[1:i-1] ), 1<=i<=j\n* M(j) = bound on x(i), 1<=i<=j\n*\n* The initial values are G(0) = 0, M(0) = max{b(i), i=1,..,n}, and we\n* add the constraint G(j) >= G(j-1) and M(j) >= M(j-1) for j >= 1.\n* Then the bound on x(j) is\n*\n* M(j) <= M(j-1) * ( 1 + CNORM(j) ) / | A(j,j) |\n*\n* <= M(0) * product ( ( 1 + CNORM(i) ) / |A(i,i)| )\n* 1<=i<=j\n*\n* and we can safely call CTPSV if 1/M(n) and 1/G(n) are both greater\n* than max(underflow, 1/overflow).\n*\n* =====================================================================\n*\n\n");
|
|
39
|
-
return Qnil;
|
|
40
|
-
}
|
|
41
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
42
|
-
printf("%s\n", "USAGE:\n scale, info, x, cnorm = NumRu::Lapack.clatps( uplo, trans, diag, normin, ap, x, cnorm, [:usage => usage, :help => help])\n");
|
|
43
|
-
return Qnil;
|
|
44
|
-
}
|
|
45
|
-
} else
|
|
46
|
-
rblapack_options = Qnil;
|
|
47
|
-
if (argc != 7 && argc != 7)
|
|
48
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 7)", argc);
|
|
49
|
-
rblapack_uplo = argv[0];
|
|
50
|
-
rblapack_trans = argv[1];
|
|
51
|
-
rblapack_diag = argv[2];
|
|
52
|
-
rblapack_normin = argv[3];
|
|
53
|
-
rblapack_ap = argv[4];
|
|
54
|
-
rblapack_x = argv[5];
|
|
55
|
-
rblapack_cnorm = argv[6];
|
|
56
|
-
if (argc == 7) {
|
|
57
|
-
} else if (rblapack_options != Qnil) {
|
|
58
|
-
} else {
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
62
|
-
diag = StringValueCStr(rblapack_diag)[0];
|
|
63
|
-
if (!NA_IsNArray(rblapack_x))
|
|
64
|
-
rb_raise(rb_eArgError, "x (6th argument) must be NArray");
|
|
65
|
-
if (NA_RANK(rblapack_x) != 1)
|
|
66
|
-
rb_raise(rb_eArgError, "rank of x (6th argument) must be %d", 1);
|
|
67
|
-
n = NA_SHAPE0(rblapack_x);
|
|
68
|
-
if (NA_TYPE(rblapack_x) != NA_SCOMPLEX)
|
|
69
|
-
rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
|
|
70
|
-
x = NA_PTR_TYPE(rblapack_x, complex*);
|
|
71
|
-
trans = StringValueCStr(rblapack_trans)[0];
|
|
72
|
-
if (!NA_IsNArray(rblapack_cnorm))
|
|
73
|
-
rb_raise(rb_eArgError, "cnorm (7th argument) must be NArray");
|
|
74
|
-
if (NA_RANK(rblapack_cnorm) != 1)
|
|
75
|
-
rb_raise(rb_eArgError, "rank of cnorm (7th argument) must be %d", 1);
|
|
76
|
-
if (NA_SHAPE0(rblapack_cnorm) != n)
|
|
77
|
-
rb_raise(rb_eRuntimeError, "shape 0 of cnorm must be the same as shape 0 of x");
|
|
78
|
-
if (NA_TYPE(rblapack_cnorm) != NA_SFLOAT)
|
|
79
|
-
rblapack_cnorm = na_change_type(rblapack_cnorm, NA_SFLOAT);
|
|
80
|
-
cnorm = NA_PTR_TYPE(rblapack_cnorm, real*);
|
|
81
|
-
normin = StringValueCStr(rblapack_normin)[0];
|
|
82
|
-
if (!NA_IsNArray(rblapack_ap))
|
|
83
|
-
rb_raise(rb_eArgError, "ap (5th argument) must be NArray");
|
|
84
|
-
if (NA_RANK(rblapack_ap) != 1)
|
|
85
|
-
rb_raise(rb_eArgError, "rank of ap (5th argument) must be %d", 1);
|
|
86
|
-
if (NA_SHAPE0(rblapack_ap) != (n*(n+1)/2))
|
|
87
|
-
rb_raise(rb_eRuntimeError, "shape 0 of ap must be %d", n*(n+1)/2);
|
|
88
|
-
if (NA_TYPE(rblapack_ap) != NA_SCOMPLEX)
|
|
89
|
-
rblapack_ap = na_change_type(rblapack_ap, NA_SCOMPLEX);
|
|
90
|
-
ap = NA_PTR_TYPE(rblapack_ap, complex*);
|
|
91
|
-
{
|
|
92
|
-
int shape[1];
|
|
93
|
-
shape[0] = n;
|
|
94
|
-
rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
|
|
95
|
-
}
|
|
96
|
-
x_out__ = NA_PTR_TYPE(rblapack_x_out__, complex*);
|
|
97
|
-
MEMCPY(x_out__, x, complex, NA_TOTAL(rblapack_x));
|
|
98
|
-
rblapack_x = rblapack_x_out__;
|
|
99
|
-
x = x_out__;
|
|
100
|
-
{
|
|
101
|
-
int shape[1];
|
|
102
|
-
shape[0] = n;
|
|
103
|
-
rblapack_cnorm_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
104
|
-
}
|
|
105
|
-
cnorm_out__ = NA_PTR_TYPE(rblapack_cnorm_out__, real*);
|
|
106
|
-
MEMCPY(cnorm_out__, cnorm, real, NA_TOTAL(rblapack_cnorm));
|
|
107
|
-
rblapack_cnorm = rblapack_cnorm_out__;
|
|
108
|
-
cnorm = cnorm_out__;
|
|
109
|
-
|
|
110
|
-
clatps_(&uplo, &trans, &diag, &normin, &n, ap, x, &scale, cnorm, &info);
|
|
111
|
-
|
|
112
|
-
rblapack_scale = rb_float_new((double)scale);
|
|
113
|
-
rblapack_info = INT2NUM(info);
|
|
114
|
-
return rb_ary_new3(4, rblapack_scale, rblapack_info, rblapack_x, rblapack_cnorm);
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
void
|
|
118
|
-
init_lapack_clatps(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
119
|
-
sHelp = sH;
|
|
120
|
-
sUsage = sU;
|
|
121
|
-
rblapack_ZERO = zero;
|
|
122
|
-
|
|
123
|
-
rb_define_module_function(mLapack, "clatps", rblapack_clatps, -1);
|
|
124
|
-
}
|
data/ext/clatrd.c
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID clatrd_(char* uplo, integer* n, integer* nb, complex* a, integer* lda, real* e, complex* tau, complex* w, integer* ldw);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_clatrd(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_uplo;
|
|
9
|
-
char uplo;
|
|
10
|
-
VALUE rblapack_nb;
|
|
11
|
-
integer nb;
|
|
12
|
-
VALUE rblapack_a;
|
|
13
|
-
complex *a;
|
|
14
|
-
VALUE rblapack_e;
|
|
15
|
-
real *e;
|
|
16
|
-
VALUE rblapack_tau;
|
|
17
|
-
complex *tau;
|
|
18
|
-
VALUE rblapack_w;
|
|
19
|
-
complex *w;
|
|
20
|
-
VALUE rblapack_a_out__;
|
|
21
|
-
complex *a_out__;
|
|
22
|
-
|
|
23
|
-
integer lda;
|
|
24
|
-
integer n;
|
|
25
|
-
integer ldw;
|
|
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 e, tau, w, a = NumRu::Lapack.clatrd( uplo, nb, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLATRD( UPLO, N, NB, A, LDA, E, TAU, W, LDW )\n\n* Purpose\n* =======\n*\n* CLATRD reduces NB rows and columns of a complex Hermitian matrix A to\n* Hermitian tridiagonal form by a unitary similarity\n* transformation Q' * A * Q, and returns the matrices V and W which are\n* needed to apply the transformation to the unreduced part of A.\n*\n* If UPLO = 'U', CLATRD reduces the last NB rows and columns of a\n* matrix, of which the upper triangle is supplied;\n* if UPLO = 'L', CLATRD reduces the first NB rows and columns of a\n* matrix, of which the lower triangle is supplied.\n*\n* This is an auxiliary routine called by CHETRD.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* Specifies whether the upper or lower triangular part of the\n* Hermitian matrix A is stored:\n* = 'U': Upper triangular\n* = 'L': Lower triangular\n*\n* N (input) INTEGER\n* The order of the matrix A.\n*\n* NB (input) INTEGER\n* The number of rows and columns to be reduced.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the Hermitian matrix A. If UPLO = 'U', the leading\n* n-by-n upper triangular part of A contains the upper\n* triangular part of the matrix A, 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 A contains the lower\n* triangular part of the matrix A, and the strictly upper\n* triangular part of A is not referenced.\n* On exit:\n* if UPLO = 'U', the last NB columns have been reduced to\n* tridiagonal form, with the diagonal elements overwriting\n* the diagonal elements of A; the elements above the diagonal\n* with the array TAU, represent the unitary matrix Q as a\n* product of elementary reflectors;\n* if UPLO = 'L', the first NB columns have been reduced to\n* tridiagonal form, with the diagonal elements overwriting\n* the diagonal elements of A; the elements below the diagonal\n* with the array TAU, represent the unitary matrix Q as a\n* product of elementary reflectors.\n* See Further Details.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,N).\n*\n* E (output) REAL array, dimension (N-1)\n* If UPLO = 'U', E(n-nb:n-1) contains the superdiagonal\n* elements of the last NB columns of the reduced matrix;\n* if UPLO = 'L', E(1:nb) contains the subdiagonal elements of\n* the first NB columns of the reduced matrix.\n*\n* TAU (output) COMPLEX array, dimension (N-1)\n* The scalar factors of the elementary reflectors, stored in\n* TAU(n-nb:n-1) if UPLO = 'U', and in TAU(1:nb) if UPLO = 'L'.\n* See Further Details.\n*\n* W (output) COMPLEX array, dimension (LDW,NB)\n* The n-by-nb matrix W required to update the unreduced part\n* of A.\n*\n* LDW (input) INTEGER\n* The leading dimension of the array W. LDW >= max(1,N).\n*\n\n* Further Details\n* ===============\n*\n* If UPLO = 'U', the matrix Q is represented as a product of elementary\n* reflectors\n*\n* Q = H(n) H(n-1) . . . H(n-nb+1).\n*\n* Each H(i) has the form\n*\n* H(i) = I - tau * v * v'\n*\n* where tau is a complex scalar, and v is a complex vector with\n* v(i:n) = 0 and v(i-1) = 1; v(1:i-1) is stored on exit in A(1:i-1,i),\n* and tau in TAU(i-1).\n*\n* If UPLO = 'L', the matrix Q is represented as a product of elementary\n* reflectors\n*\n* Q = H(1) H(2) . . . H(nb).\n*\n* Each H(i) has the form\n*\n* H(i) = I - tau * v * v'\n*\n* where tau is a complex scalar, and v is a complex vector with\n* v(1:i) = 0 and v(i+1) = 1; v(i+1:n) is stored on exit in A(i+1:n,i),\n* and tau in TAU(i).\n*\n* The elements of the vectors v together form the n-by-nb matrix V\n* which is needed, with W, to apply the transformation to the unreduced\n* part of the matrix, using a Hermitian rank-2k update of the form:\n* A := A - V*W' - W*V'.\n*\n* The contents of A on exit are illustrated by the following examples\n* with n = 5 and nb = 2:\n*\n* if UPLO = 'U': if UPLO = 'L':\n*\n* ( a a a v4 v5 ) ( d )\n* ( a a v4 v5 ) ( 1 d )\n* ( a 1 v5 ) ( v1 1 a )\n* ( d 1 ) ( v1 v2 a a )\n* ( d ) ( v1 v2 a a a )\n*\n* where d denotes a diagonal element of the reduced matrix, a denotes\n* an element of the original matrix that is unchanged, and vi denotes\n* an element of the vector defining H(i).\n*\n* =====================================================================\n*\n\n");
|
|
33
|
-
return Qnil;
|
|
34
|
-
}
|
|
35
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
36
|
-
printf("%s\n", "USAGE:\n e, tau, w, a = NumRu::Lapack.clatrd( uplo, nb, a, [:usage => usage, :help => help])\n");
|
|
37
|
-
return Qnil;
|
|
38
|
-
}
|
|
39
|
-
} else
|
|
40
|
-
rblapack_options = Qnil;
|
|
41
|
-
if (argc != 3 && argc != 3)
|
|
42
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 3)", argc);
|
|
43
|
-
rblapack_uplo = argv[0];
|
|
44
|
-
rblapack_nb = argv[1];
|
|
45
|
-
rblapack_a = argv[2];
|
|
46
|
-
if (argc == 3) {
|
|
47
|
-
} else if (rblapack_options != Qnil) {
|
|
48
|
-
} else {
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
52
|
-
if (!NA_IsNArray(rblapack_a))
|
|
53
|
-
rb_raise(rb_eArgError, "a (3th argument) must be NArray");
|
|
54
|
-
if (NA_RANK(rblapack_a) != 2)
|
|
55
|
-
rb_raise(rb_eArgError, "rank of a (3th argument) must be %d", 2);
|
|
56
|
-
lda = NA_SHAPE0(rblapack_a);
|
|
57
|
-
n = NA_SHAPE1(rblapack_a);
|
|
58
|
-
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
59
|
-
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
60
|
-
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
61
|
-
nb = NUM2INT(rblapack_nb);
|
|
62
|
-
ldw = MAX(1,n);
|
|
63
|
-
{
|
|
64
|
-
int shape[1];
|
|
65
|
-
shape[0] = n-1;
|
|
66
|
-
rblapack_e = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
67
|
-
}
|
|
68
|
-
e = NA_PTR_TYPE(rblapack_e, real*);
|
|
69
|
-
{
|
|
70
|
-
int shape[1];
|
|
71
|
-
shape[0] = n-1;
|
|
72
|
-
rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
|
|
73
|
-
}
|
|
74
|
-
tau = NA_PTR_TYPE(rblapack_tau, complex*);
|
|
75
|
-
{
|
|
76
|
-
int shape[2];
|
|
77
|
-
shape[0] = ldw;
|
|
78
|
-
shape[1] = MAX(n,nb);
|
|
79
|
-
rblapack_w = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
80
|
-
}
|
|
81
|
-
w = NA_PTR_TYPE(rblapack_w, complex*);
|
|
82
|
-
{
|
|
83
|
-
int shape[2];
|
|
84
|
-
shape[0] = lda;
|
|
85
|
-
shape[1] = n;
|
|
86
|
-
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
87
|
-
}
|
|
88
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
|
89
|
-
MEMCPY(a_out__, a, complex, NA_TOTAL(rblapack_a));
|
|
90
|
-
rblapack_a = rblapack_a_out__;
|
|
91
|
-
a = a_out__;
|
|
92
|
-
|
|
93
|
-
clatrd_(&uplo, &n, &nb, a, &lda, e, tau, w, &ldw);
|
|
94
|
-
|
|
95
|
-
return rb_ary_new3(4, rblapack_e, rblapack_tau, rblapack_w, rblapack_a);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
void
|
|
99
|
-
init_lapack_clatrd(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
100
|
-
sHelp = sH;
|
|
101
|
-
sUsage = sU;
|
|
102
|
-
rblapack_ZERO = zero;
|
|
103
|
-
|
|
104
|
-
rb_define_module_function(mLapack, "clatrd", rblapack_clatrd, -1);
|
|
105
|
-
}
|
data/ext/clatrs.c
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID clatrs_(char* uplo, char* trans, char* diag, char* normin, integer* n, complex* a, integer* lda, complex* x, real* scale, real* cnorm, integer* info);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_clatrs(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_uplo;
|
|
9
|
-
char uplo;
|
|
10
|
-
VALUE rblapack_trans;
|
|
11
|
-
char trans;
|
|
12
|
-
VALUE rblapack_diag;
|
|
13
|
-
char diag;
|
|
14
|
-
VALUE rblapack_normin;
|
|
15
|
-
char normin;
|
|
16
|
-
VALUE rblapack_a;
|
|
17
|
-
complex *a;
|
|
18
|
-
VALUE rblapack_x;
|
|
19
|
-
complex *x;
|
|
20
|
-
VALUE rblapack_cnorm;
|
|
21
|
-
real *cnorm;
|
|
22
|
-
VALUE rblapack_scale;
|
|
23
|
-
real scale;
|
|
24
|
-
VALUE rblapack_info;
|
|
25
|
-
integer info;
|
|
26
|
-
VALUE rblapack_x_out__;
|
|
27
|
-
complex *x_out__;
|
|
28
|
-
VALUE rblapack_cnorm_out__;
|
|
29
|
-
real *cnorm_out__;
|
|
30
|
-
|
|
31
|
-
integer lda;
|
|
32
|
-
integer n;
|
|
33
|
-
|
|
34
|
-
VALUE rblapack_options;
|
|
35
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
36
|
-
argc--;
|
|
37
|
-
rblapack_options = argv[argc];
|
|
38
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
39
|
-
printf("%s\n", "USAGE:\n scale, info, x, cnorm = NumRu::Lapack.clatrs( uplo, trans, diag, normin, a, x, cnorm, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLATRS( UPLO, TRANS, DIAG, NORMIN, N, A, LDA, X, SCALE, CNORM, INFO )\n\n* Purpose\n* =======\n*\n* CLATRS solves one of the triangular systems\n*\n* A * x = s*b, A**T * x = s*b, or A**H * x = s*b,\n*\n* with scaling to prevent overflow. Here A is an upper or lower\n* triangular matrix, A**T denotes the transpose of A, A**H denotes the\n* conjugate transpose of A, x and b are n-element vectors, and s is a\n* scaling factor, usually less than or equal to 1, chosen so that the\n* components of x will be less than the overflow threshold. If the\n* unscaled problem will not cause overflow, the Level 2 BLAS routine\n* CTRSV is called. If the matrix A is singular (A(j,j) = 0 for some j),\n* then s is set to 0 and a non-trivial solution to A*x = 0 is returned.\n*\n\n* Arguments\n* =========\n*\n* UPLO (input) CHARACTER*1\n* Specifies whether the matrix A is upper or lower triangular.\n* = 'U': Upper triangular\n* = 'L': Lower triangular\n*\n* TRANS (input) CHARACTER*1\n* Specifies the operation applied to A.\n* = 'N': Solve A * x = s*b (No transpose)\n* = 'T': Solve A**T * x = s*b (Transpose)\n* = 'C': Solve A**H * x = s*b (Conjugate transpose)\n*\n* DIAG (input) CHARACTER*1\n* Specifies whether or not the matrix A is unit triangular.\n* = 'N': Non-unit triangular\n* = 'U': Unit triangular\n*\n* NORMIN (input) CHARACTER*1\n* Specifies whether CNORM has been set or not.\n* = 'Y': CNORM contains the column norms on entry\n* = 'N': CNORM is not set on entry. On exit, the norms will\n* be computed and stored in CNORM.\n*\n* N (input) INTEGER\n* The order of the matrix A. N >= 0.\n*\n* A (input) COMPLEX array, dimension (LDA,N)\n* The triangular matrix A. If UPLO = 'U', the leading n by n\n* upper triangular part of the array A contains the upper\n* triangular matrix, and the strictly lower triangular part of\n* A is not referenced. If UPLO = 'L', the leading n by n lower\n* triangular part of the array A contains the lower triangular\n* matrix, and the strictly upper triangular part of A is not\n* referenced. If DIAG = 'U', the diagonal elements of A are\n* also not referenced and are assumed to be 1.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max (1,N).\n*\n* X (input/output) COMPLEX array, dimension (N)\n* On entry, the right hand side b of the triangular system.\n* On exit, X is overwritten by the solution vector x.\n*\n* SCALE (output) REAL\n* The scaling factor s for the triangular system\n* A * x = s*b, A**T * x = s*b, or A**H * x = s*b.\n* If SCALE = 0, the matrix A is singular or badly scaled, and\n* the vector x is an exact or approximate solution to A*x = 0.\n*\n* CNORM (input or output) REAL array, dimension (N)\n*\n* If NORMIN = 'Y', CNORM is an input argument and CNORM(j)\n* contains the norm of the off-diagonal part of the j-th column\n* of A. If TRANS = 'N', CNORM(j) must be greater than or equal\n* to the infinity-norm, and if TRANS = 'T' or 'C', CNORM(j)\n* must be greater than or equal to the 1-norm.\n*\n* If NORMIN = 'N', CNORM is an output argument and CNORM(j)\n* returns the 1-norm of the offdiagonal part of the j-th column\n* of A.\n*\n* INFO (output) INTEGER\n* = 0: successful exit\n* < 0: if INFO = -k, the k-th argument had an illegal value\n*\n\n* Further Details\n* ======= =======\n*\n* A rough bound on x is computed; if that is less than overflow, CTRSV\n* is called, otherwise, specific code is used which checks for possible\n* overflow or divide-by-zero at every operation.\n*\n* A columnwise scheme is used for solving A*x = b. The basic algorithm\n* if A is lower triangular is\n*\n* x[1:n] := b[1:n]\n* for j = 1, ..., n\n* x(j) := x(j) / A(j,j)\n* x[j+1:n] := x[j+1:n] - x(j) * A[j+1:n,j]\n* end\n*\n* Define bounds on the components of x after j iterations of the loop:\n* M(j) = bound on x[1:j]\n* G(j) = bound on x[j+1:n]\n* Initially, let M(0) = 0 and G(0) = max{x(i), i=1,...,n}.\n*\n* Then for iteration j+1 we have\n* M(j+1) <= G(j) / | A(j+1,j+1) |\n* G(j+1) <= G(j) + M(j+1) * | A[j+2:n,j+1] |\n* <= G(j) ( 1 + CNORM(j+1) / | A(j+1,j+1) | )\n*\n* where CNORM(j+1) is greater than or equal to the infinity-norm of\n* column j+1 of A, not counting the diagonal. Hence\n*\n* G(j) <= G(0) product ( 1 + CNORM(i) / | A(i,i) | )\n* 1<=i<=j\n* and\n*\n* |x(j)| <= ( G(0) / |A(j,j)| ) product ( 1 + CNORM(i) / |A(i,i)| )\n* 1<=i< j\n*\n* Since |x(j)| <= M(j), we use the Level 2 BLAS routine CTRSV if the\n* reciprocal of the largest M(j), j=1,..,n, is larger than\n* max(underflow, 1/overflow).\n*\n* The bound on x(j) is also used to determine when a step in the\n* columnwise method can be performed without fear of overflow. If\n* the computed bound is greater than a large constant, x is scaled to\n* prevent overflow, but if the bound overflows, x is set to 0, x(j) to\n* 1, and scale to 0, and a non-trivial solution to A*x = 0 is found.\n*\n* Similarly, a row-wise scheme is used to solve A**T *x = b or\n* A**H *x = b. The basic algorithm for A upper triangular is\n*\n* for j = 1, ..., n\n* x(j) := ( b(j) - A[1:j-1,j]' * x[1:j-1] ) / A(j,j)\n* end\n*\n* We simultaneously compute two bounds\n* G(j) = bound on ( b(i) - A[1:i-1,i]' * x[1:i-1] ), 1<=i<=j\n* M(j) = bound on x(i), 1<=i<=j\n*\n* The initial values are G(0) = 0, M(0) = max{b(i), i=1,..,n}, and we\n* add the constraint G(j) >= G(j-1) and M(j) >= M(j-1) for j >= 1.\n* Then the bound on x(j) is\n*\n* M(j) <= M(j-1) * ( 1 + CNORM(j) ) / | A(j,j) |\n*\n* <= M(0) * product ( ( 1 + CNORM(i) ) / |A(i,i)| )\n* 1<=i<=j\n*\n* and we can safely call CTRSV if 1/M(n) and 1/G(n) are both greater\n* than max(underflow, 1/overflow).\n*\n* =====================================================================\n*\n\n");
|
|
40
|
-
return Qnil;
|
|
41
|
-
}
|
|
42
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
43
|
-
printf("%s\n", "USAGE:\n scale, info, x, cnorm = NumRu::Lapack.clatrs( uplo, trans, diag, normin, a, x, cnorm, [:usage => usage, :help => help])\n");
|
|
44
|
-
return Qnil;
|
|
45
|
-
}
|
|
46
|
-
} else
|
|
47
|
-
rblapack_options = Qnil;
|
|
48
|
-
if (argc != 7 && argc != 7)
|
|
49
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 7)", argc);
|
|
50
|
-
rblapack_uplo = argv[0];
|
|
51
|
-
rblapack_trans = argv[1];
|
|
52
|
-
rblapack_diag = argv[2];
|
|
53
|
-
rblapack_normin = argv[3];
|
|
54
|
-
rblapack_a = argv[4];
|
|
55
|
-
rblapack_x = argv[5];
|
|
56
|
-
rblapack_cnorm = argv[6];
|
|
57
|
-
if (argc == 7) {
|
|
58
|
-
} else if (rblapack_options != Qnil) {
|
|
59
|
-
} else {
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
uplo = StringValueCStr(rblapack_uplo)[0];
|
|
63
|
-
diag = StringValueCStr(rblapack_diag)[0];
|
|
64
|
-
if (!NA_IsNArray(rblapack_a))
|
|
65
|
-
rb_raise(rb_eArgError, "a (5th argument) must be NArray");
|
|
66
|
-
if (NA_RANK(rblapack_a) != 2)
|
|
67
|
-
rb_raise(rb_eArgError, "rank of a (5th argument) must be %d", 2);
|
|
68
|
-
lda = NA_SHAPE0(rblapack_a);
|
|
69
|
-
n = NA_SHAPE1(rblapack_a);
|
|
70
|
-
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
71
|
-
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
72
|
-
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
73
|
-
if (!NA_IsNArray(rblapack_cnorm))
|
|
74
|
-
rb_raise(rb_eArgError, "cnorm (7th argument) must be NArray");
|
|
75
|
-
if (NA_RANK(rblapack_cnorm) != 1)
|
|
76
|
-
rb_raise(rb_eArgError, "rank of cnorm (7th argument) must be %d", 1);
|
|
77
|
-
if (NA_SHAPE0(rblapack_cnorm) != n)
|
|
78
|
-
rb_raise(rb_eRuntimeError, "shape 0 of cnorm must be the same as shape 1 of a");
|
|
79
|
-
if (NA_TYPE(rblapack_cnorm) != NA_SFLOAT)
|
|
80
|
-
rblapack_cnorm = na_change_type(rblapack_cnorm, NA_SFLOAT);
|
|
81
|
-
cnorm = NA_PTR_TYPE(rblapack_cnorm, real*);
|
|
82
|
-
trans = StringValueCStr(rblapack_trans)[0];
|
|
83
|
-
if (!NA_IsNArray(rblapack_x))
|
|
84
|
-
rb_raise(rb_eArgError, "x (6th argument) must be NArray");
|
|
85
|
-
if (NA_RANK(rblapack_x) != 1)
|
|
86
|
-
rb_raise(rb_eArgError, "rank of x (6th argument) must be %d", 1);
|
|
87
|
-
if (NA_SHAPE0(rblapack_x) != n)
|
|
88
|
-
rb_raise(rb_eRuntimeError, "shape 0 of x must be the same as shape 1 of a");
|
|
89
|
-
if (NA_TYPE(rblapack_x) != NA_SCOMPLEX)
|
|
90
|
-
rblapack_x = na_change_type(rblapack_x, NA_SCOMPLEX);
|
|
91
|
-
x = NA_PTR_TYPE(rblapack_x, complex*);
|
|
92
|
-
normin = StringValueCStr(rblapack_normin)[0];
|
|
93
|
-
{
|
|
94
|
-
int shape[1];
|
|
95
|
-
shape[0] = n;
|
|
96
|
-
rblapack_x_out__ = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
|
|
97
|
-
}
|
|
98
|
-
x_out__ = NA_PTR_TYPE(rblapack_x_out__, complex*);
|
|
99
|
-
MEMCPY(x_out__, x, complex, NA_TOTAL(rblapack_x));
|
|
100
|
-
rblapack_x = rblapack_x_out__;
|
|
101
|
-
x = x_out__;
|
|
102
|
-
{
|
|
103
|
-
int shape[1];
|
|
104
|
-
shape[0] = n;
|
|
105
|
-
rblapack_cnorm_out__ = na_make_object(NA_SFLOAT, 1, shape, cNArray);
|
|
106
|
-
}
|
|
107
|
-
cnorm_out__ = NA_PTR_TYPE(rblapack_cnorm_out__, real*);
|
|
108
|
-
MEMCPY(cnorm_out__, cnorm, real, NA_TOTAL(rblapack_cnorm));
|
|
109
|
-
rblapack_cnorm = rblapack_cnorm_out__;
|
|
110
|
-
cnorm = cnorm_out__;
|
|
111
|
-
|
|
112
|
-
clatrs_(&uplo, &trans, &diag, &normin, &n, a, &lda, x, &scale, cnorm, &info);
|
|
113
|
-
|
|
114
|
-
rblapack_scale = rb_float_new((double)scale);
|
|
115
|
-
rblapack_info = INT2NUM(info);
|
|
116
|
-
return rb_ary_new3(4, rblapack_scale, rblapack_info, rblapack_x, rblapack_cnorm);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
void
|
|
120
|
-
init_lapack_clatrs(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
121
|
-
sHelp = sH;
|
|
122
|
-
sUsage = sU;
|
|
123
|
-
rblapack_ZERO = zero;
|
|
124
|
-
|
|
125
|
-
rb_define_module_function(mLapack, "clatrs", rblapack_clatrs, -1);
|
|
126
|
-
}
|
data/ext/clatrz.c
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID clatrz_(integer* m, integer* n, integer* l, complex* a, integer* lda, complex* tau, complex* work);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_clatrz(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_l;
|
|
9
|
-
integer l;
|
|
10
|
-
VALUE rblapack_a;
|
|
11
|
-
complex *a;
|
|
12
|
-
VALUE rblapack_tau;
|
|
13
|
-
complex *tau;
|
|
14
|
-
VALUE rblapack_a_out__;
|
|
15
|
-
complex *a_out__;
|
|
16
|
-
complex *work;
|
|
17
|
-
|
|
18
|
-
integer lda;
|
|
19
|
-
integer n;
|
|
20
|
-
integer m;
|
|
21
|
-
|
|
22
|
-
VALUE rblapack_options;
|
|
23
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
24
|
-
argc--;
|
|
25
|
-
rblapack_options = argv[argc];
|
|
26
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
27
|
-
printf("%s\n", "USAGE:\n tau, a = NumRu::Lapack.clatrz( l, a, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLATRZ( M, N, L, A, LDA, TAU, WORK )\n\n* Purpose\n* =======\n*\n* CLATRZ factors the M-by-(M+L) complex upper trapezoidal matrix\n* [ A1 A2 ] = [ A(1:M,1:M) A(1:M,N-L+1:N) ] as ( R 0 ) * Z by means\n* of unitary transformations, where Z is an (M+L)-by-(M+L) unitary\n* matrix and, R and A1 are M-by-M upper triangular matrices.\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* L (input) INTEGER\n* The number of columns of the matrix A containing the\n* meaningful part of the Householder vectors. N-M >= L >= 0.\n*\n* A (input/output) COMPLEX array, dimension (LDA,N)\n* On entry, the leading M-by-N upper trapezoidal part of the\n* array A must contain the matrix to be factorized.\n* On exit, the leading M-by-M upper triangular part of A\n* contains the upper triangular matrix R, and elements N-L+1 to\n* N of the first M rows of A, with the array TAU, represent the\n* unitary matrix Z as a product of M elementary reflectors.\n*\n* LDA (input) INTEGER\n* The leading dimension of the array A. LDA >= max(1,M).\n*\n* TAU (output) COMPLEX array, dimension (M)\n* The scalar factors of the elementary reflectors.\n*\n* WORK (workspace) COMPLEX array, dimension (M)\n*\n\n* Further Details\n* ===============\n*\n* Based on contributions by\n* A. Petitet, Computer Science Dept., Univ. of Tenn., Knoxville, USA\n*\n* The factorization is obtained by Householder's method. The kth\n* transformation matrix, Z( k ), which is used to introduce zeros into\n* the ( m - k + 1 )th row of A, is given in the form\n*\n* Z( k ) = ( I 0 ),\n* ( 0 T( k ) )\n*\n* where\n*\n* T( k ) = I - tau*u( k )*u( k )', u( k ) = ( 1 ),\n* ( 0 )\n* ( z( k ) )\n*\n* tau is a scalar and z( k ) is an l element vector. tau and z( k )\n* are chosen to annihilate the elements of the kth row of A2.\n*\n* The scalar tau is returned in the kth element of TAU and the vector\n* u( k ) in the kth row of A2, such that the elements of z( k ) are\n* in a( k, l + 1 ), ..., a( k, n ). The elements of R are returned in\n* the upper triangular part of A1.\n*\n* Z is given by\n*\n* Z = Z( 1 ) * Z( 2 ) * ... * Z( m ).\n*\n* =====================================================================\n*\n\n");
|
|
28
|
-
return Qnil;
|
|
29
|
-
}
|
|
30
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
31
|
-
printf("%s\n", "USAGE:\n tau, a = NumRu::Lapack.clatrz( l, a, [:usage => usage, :help => help])\n");
|
|
32
|
-
return Qnil;
|
|
33
|
-
}
|
|
34
|
-
} else
|
|
35
|
-
rblapack_options = Qnil;
|
|
36
|
-
if (argc != 2 && argc != 2)
|
|
37
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 2)", argc);
|
|
38
|
-
rblapack_l = argv[0];
|
|
39
|
-
rblapack_a = argv[1];
|
|
40
|
-
if (argc == 2) {
|
|
41
|
-
} else if (rblapack_options != Qnil) {
|
|
42
|
-
} else {
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
l = NUM2INT(rblapack_l);
|
|
46
|
-
if (!NA_IsNArray(rblapack_a))
|
|
47
|
-
rb_raise(rb_eArgError, "a (2th argument) must be NArray");
|
|
48
|
-
if (NA_RANK(rblapack_a) != 2)
|
|
49
|
-
rb_raise(rb_eArgError, "rank of a (2th argument) must be %d", 2);
|
|
50
|
-
lda = NA_SHAPE0(rblapack_a);
|
|
51
|
-
n = NA_SHAPE1(rblapack_a);
|
|
52
|
-
if (NA_TYPE(rblapack_a) != NA_SCOMPLEX)
|
|
53
|
-
rblapack_a = na_change_type(rblapack_a, NA_SCOMPLEX);
|
|
54
|
-
a = NA_PTR_TYPE(rblapack_a, complex*);
|
|
55
|
-
m = lda;
|
|
56
|
-
{
|
|
57
|
-
int shape[1];
|
|
58
|
-
shape[0] = m;
|
|
59
|
-
rblapack_tau = na_make_object(NA_SCOMPLEX, 1, shape, cNArray);
|
|
60
|
-
}
|
|
61
|
-
tau = NA_PTR_TYPE(rblapack_tau, complex*);
|
|
62
|
-
{
|
|
63
|
-
int shape[2];
|
|
64
|
-
shape[0] = lda;
|
|
65
|
-
shape[1] = n;
|
|
66
|
-
rblapack_a_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
67
|
-
}
|
|
68
|
-
a_out__ = NA_PTR_TYPE(rblapack_a_out__, complex*);
|
|
69
|
-
MEMCPY(a_out__, a, complex, NA_TOTAL(rblapack_a));
|
|
70
|
-
rblapack_a = rblapack_a_out__;
|
|
71
|
-
a = a_out__;
|
|
72
|
-
work = ALLOC_N(complex, (m));
|
|
73
|
-
|
|
74
|
-
clatrz_(&m, &n, &l, a, &lda, tau, work);
|
|
75
|
-
|
|
76
|
-
free(work);
|
|
77
|
-
return rb_ary_new3(2, rblapack_tau, rblapack_a);
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
void
|
|
81
|
-
init_lapack_clatrz(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
82
|
-
sHelp = sH;
|
|
83
|
-
sUsage = sU;
|
|
84
|
-
rblapack_ZERO = zero;
|
|
85
|
-
|
|
86
|
-
rb_define_module_function(mLapack, "clatrz", rblapack_clatrz, -1);
|
|
87
|
-
}
|
data/ext/clatzm.c
DELETED
|
@@ -1,132 +0,0 @@
|
|
|
1
|
-
#include "rb_lapack.h"
|
|
2
|
-
|
|
3
|
-
extern VOID clatzm_(char* side, integer* m, integer* n, complex* v, integer* incv, complex* tau, complex* c1, complex* c2, integer* ldc, complex* work);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
static VALUE
|
|
7
|
-
rblapack_clatzm(int argc, VALUE *argv, VALUE self){
|
|
8
|
-
VALUE rblapack_side;
|
|
9
|
-
char side;
|
|
10
|
-
VALUE rblapack_m;
|
|
11
|
-
integer m;
|
|
12
|
-
VALUE rblapack_n;
|
|
13
|
-
integer n;
|
|
14
|
-
VALUE rblapack_v;
|
|
15
|
-
complex *v;
|
|
16
|
-
VALUE rblapack_incv;
|
|
17
|
-
integer incv;
|
|
18
|
-
VALUE rblapack_tau;
|
|
19
|
-
complex tau;
|
|
20
|
-
VALUE rblapack_c1;
|
|
21
|
-
complex *c1;
|
|
22
|
-
VALUE rblapack_c2;
|
|
23
|
-
complex *c2;
|
|
24
|
-
VALUE rblapack_c1_out__;
|
|
25
|
-
complex *c1_out__;
|
|
26
|
-
VALUE rblapack_c2_out__;
|
|
27
|
-
complex *c2_out__;
|
|
28
|
-
complex *work;
|
|
29
|
-
|
|
30
|
-
integer ldc;
|
|
31
|
-
|
|
32
|
-
VALUE rblapack_options;
|
|
33
|
-
if (argc > 0 && TYPE(argv[argc-1]) == T_HASH) {
|
|
34
|
-
argc--;
|
|
35
|
-
rblapack_options = argv[argc];
|
|
36
|
-
if (rb_hash_aref(rblapack_options, sHelp) == Qtrue) {
|
|
37
|
-
printf("%s\n", "USAGE:\n c1, c2 = NumRu::Lapack.clatzm( side, m, n, v, incv, tau, c1, c2, [:usage => usage, :help => help])\n\n\nFORTRAN MANUAL\n SUBROUTINE CLATZM( SIDE, M, N, V, INCV, TAU, C1, C2, LDC, WORK )\n\n* Purpose\n* =======\n*\n* This routine is deprecated and has been replaced by routine CUNMRZ.\n*\n* CLATZM applies a Householder matrix generated by CTZRQF to a matrix.\n*\n* Let P = I - tau*u*u', u = ( 1 ),\n* ( v )\n* where v is an (m-1) vector if SIDE = 'L', or a (n-1) vector if\n* SIDE = 'R'.\n*\n* If SIDE equals 'L', let\n* C = [ C1 ] 1\n* [ C2 ] m-1\n* n\n* Then C is overwritten by P*C.\n*\n* If SIDE equals 'R', let\n* C = [ C1, C2 ] m\n* 1 n-1\n* Then C is overwritten by C*P.\n*\n\n* Arguments\n* =========\n*\n* SIDE (input) CHARACTER*1\n* = 'L': form P * C\n* = 'R': form C * P\n*\n* M (input) INTEGER\n* The number of rows of the matrix C.\n*\n* N (input) INTEGER\n* The number of columns of the matrix C.\n*\n* V (input) COMPLEX array, dimension\n* (1 + (M-1)*abs(INCV)) if SIDE = 'L'\n* (1 + (N-1)*abs(INCV)) if SIDE = 'R'\n* The vector v in the representation of P. V is not used\n* if TAU = 0.\n*\n* INCV (input) INTEGER\n* The increment between elements of v. INCV <> 0\n*\n* TAU (input) COMPLEX\n* The value tau in the representation of P.\n*\n* C1 (input/output) COMPLEX array, dimension\n* (LDC,N) if SIDE = 'L'\n* (M,1) if SIDE = 'R'\n* On entry, the n-vector C1 if SIDE = 'L', or the m-vector C1\n* if SIDE = 'R'.\n*\n* On exit, the first row of P*C if SIDE = 'L', or the first\n* column of C*P if SIDE = 'R'.\n*\n* C2 (input/output) COMPLEX array, dimension\n* (LDC, N) if SIDE = 'L'\n* (LDC, N-1) if SIDE = 'R'\n* On entry, the (m - 1) x n matrix C2 if SIDE = 'L', or the\n* m x (n - 1) matrix C2 if SIDE = 'R'.\n*\n* On exit, rows 2:m of P*C if SIDE = 'L', or columns 2:m of C*P\n* if SIDE = 'R'.\n*\n* LDC (input) INTEGER\n* The leading dimension of the arrays C1 and C2.\n* LDC >= max(1,M).\n*\n* WORK (workspace) COMPLEX array, dimension\n* (N) if SIDE = 'L'\n* (M) if SIDE = 'R'\n*\n\n* =====================================================================\n*\n\n");
|
|
38
|
-
return Qnil;
|
|
39
|
-
}
|
|
40
|
-
if (rb_hash_aref(rblapack_options, sUsage) == Qtrue) {
|
|
41
|
-
printf("%s\n", "USAGE:\n c1, c2 = NumRu::Lapack.clatzm( side, m, n, v, incv, tau, c1, c2, [:usage => usage, :help => help])\n");
|
|
42
|
-
return Qnil;
|
|
43
|
-
}
|
|
44
|
-
} else
|
|
45
|
-
rblapack_options = Qnil;
|
|
46
|
-
if (argc != 8 && argc != 8)
|
|
47
|
-
rb_raise(rb_eArgError,"wrong number of arguments (%d for 8)", argc);
|
|
48
|
-
rblapack_side = argv[0];
|
|
49
|
-
rblapack_m = argv[1];
|
|
50
|
-
rblapack_n = argv[2];
|
|
51
|
-
rblapack_v = argv[3];
|
|
52
|
-
rblapack_incv = argv[4];
|
|
53
|
-
rblapack_tau = argv[5];
|
|
54
|
-
rblapack_c1 = argv[6];
|
|
55
|
-
rblapack_c2 = argv[7];
|
|
56
|
-
if (argc == 8) {
|
|
57
|
-
} else if (rblapack_options != Qnil) {
|
|
58
|
-
} else {
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
side = StringValueCStr(rblapack_side)[0];
|
|
62
|
-
n = NUM2INT(rblapack_n);
|
|
63
|
-
incv = NUM2INT(rblapack_incv);
|
|
64
|
-
if (!NA_IsNArray(rblapack_c2))
|
|
65
|
-
rb_raise(rb_eArgError, "c2 (8th argument) must be NArray");
|
|
66
|
-
if (NA_RANK(rblapack_c2) != 2)
|
|
67
|
-
rb_raise(rb_eArgError, "rank of c2 (8th argument) must be %d", 2);
|
|
68
|
-
ldc = NA_SHAPE0(rblapack_c2);
|
|
69
|
-
if (NA_SHAPE1(rblapack_c2) != (lsame_(&side,"L") ? n : lsame_(&side,"R") ? n-1 : 0))
|
|
70
|
-
rb_raise(rb_eRuntimeError, "shape 1 of c2 must be %d", lsame_(&side,"L") ? n : lsame_(&side,"R") ? n-1 : 0);
|
|
71
|
-
if (NA_TYPE(rblapack_c2) != NA_SCOMPLEX)
|
|
72
|
-
rblapack_c2 = na_change_type(rblapack_c2, NA_SCOMPLEX);
|
|
73
|
-
c2 = NA_PTR_TYPE(rblapack_c2, complex*);
|
|
74
|
-
m = NUM2INT(rblapack_m);
|
|
75
|
-
tau.r = (real)NUM2DBL(rb_funcall(rblapack_tau, rb_intern("real"), 0));
|
|
76
|
-
tau.i = (real)NUM2DBL(rb_funcall(rblapack_tau, rb_intern("imag"), 0));
|
|
77
|
-
if (!NA_IsNArray(rblapack_v))
|
|
78
|
-
rb_raise(rb_eArgError, "v (4th argument) must be NArray");
|
|
79
|
-
if (NA_RANK(rblapack_v) != 1)
|
|
80
|
-
rb_raise(rb_eArgError, "rank of v (4th argument) must be %d", 1);
|
|
81
|
-
if (NA_SHAPE0(rblapack_v) != (1 + (m-1)*abs(incv)))
|
|
82
|
-
rb_raise(rb_eRuntimeError, "shape 0 of v must be %d", 1 + (m-1)*abs(incv));
|
|
83
|
-
if (NA_TYPE(rblapack_v) != NA_SCOMPLEX)
|
|
84
|
-
rblapack_v = na_change_type(rblapack_v, NA_SCOMPLEX);
|
|
85
|
-
v = NA_PTR_TYPE(rblapack_v, complex*);
|
|
86
|
-
if (!NA_IsNArray(rblapack_c1))
|
|
87
|
-
rb_raise(rb_eArgError, "c1 (7th argument) must be NArray");
|
|
88
|
-
if (NA_RANK(rblapack_c1) != 2)
|
|
89
|
-
rb_raise(rb_eArgError, "rank of c1 (7th argument) must be %d", 2);
|
|
90
|
-
if (NA_SHAPE0(rblapack_c1) != (lsame_(&side,"L") ? ldc : lsame_(&side,"R") ? m : 0))
|
|
91
|
-
rb_raise(rb_eRuntimeError, "shape 0 of c1 must be %d", lsame_(&side,"L") ? ldc : lsame_(&side,"R") ? m : 0);
|
|
92
|
-
if (NA_SHAPE1(rblapack_c1) != (lsame_(&side,"L") ? n : lsame_(&side,"R") ? 1 : 0))
|
|
93
|
-
rb_raise(rb_eRuntimeError, "shape 1 of c1 must be %d", lsame_(&side,"L") ? n : lsame_(&side,"R") ? 1 : 0);
|
|
94
|
-
if (NA_TYPE(rblapack_c1) != NA_SCOMPLEX)
|
|
95
|
-
rblapack_c1 = na_change_type(rblapack_c1, NA_SCOMPLEX);
|
|
96
|
-
c1 = NA_PTR_TYPE(rblapack_c1, complex*);
|
|
97
|
-
{
|
|
98
|
-
int shape[2];
|
|
99
|
-
shape[0] = lsame_(&side,"L") ? ldc : lsame_(&side,"R") ? m : 0;
|
|
100
|
-
shape[1] = lsame_(&side,"L") ? n : lsame_(&side,"R") ? 1 : 0;
|
|
101
|
-
rblapack_c1_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
102
|
-
}
|
|
103
|
-
c1_out__ = NA_PTR_TYPE(rblapack_c1_out__, complex*);
|
|
104
|
-
MEMCPY(c1_out__, c1, complex, NA_TOTAL(rblapack_c1));
|
|
105
|
-
rblapack_c1 = rblapack_c1_out__;
|
|
106
|
-
c1 = c1_out__;
|
|
107
|
-
{
|
|
108
|
-
int shape[2];
|
|
109
|
-
shape[0] = ldc;
|
|
110
|
-
shape[1] = lsame_(&side,"L") ? n : lsame_(&side,"R") ? n-1 : 0;
|
|
111
|
-
rblapack_c2_out__ = na_make_object(NA_SCOMPLEX, 2, shape, cNArray);
|
|
112
|
-
}
|
|
113
|
-
c2_out__ = NA_PTR_TYPE(rblapack_c2_out__, complex*);
|
|
114
|
-
MEMCPY(c2_out__, c2, complex, NA_TOTAL(rblapack_c2));
|
|
115
|
-
rblapack_c2 = rblapack_c2_out__;
|
|
116
|
-
c2 = c2_out__;
|
|
117
|
-
work = ALLOC_N(complex, (lsame_(&side,"L") ? n : lsame_(&side,"R") ? m : 0));
|
|
118
|
-
|
|
119
|
-
clatzm_(&side, &m, &n, v, &incv, &tau, c1, c2, &ldc, work);
|
|
120
|
-
|
|
121
|
-
free(work);
|
|
122
|
-
return rb_ary_new3(2, rblapack_c1, rblapack_c2);
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
void
|
|
126
|
-
init_lapack_clatzm(VALUE mLapack, VALUE sH, VALUE sU, VALUE zero){
|
|
127
|
-
sHelp = sH;
|
|
128
|
-
sUsage = sU;
|
|
129
|
-
rblapack_ZERO = zero;
|
|
130
|
-
|
|
131
|
-
rb_define_module_function(mLapack, "clatzm", rblapack_clatzm, -1);
|
|
132
|
-
}
|