ruby-lapack 1.3
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.
- data/COPYING +56 -0
- data/GPL +340 -0
- data/README.rdoc +61 -0
- data/Rakefile +115 -0
- data/dev/common.rb +9 -0
- data/dev/defs/cbbcsd +297 -0
- data/dev/defs/cbdsqr +196 -0
- data/dev/defs/cgbbrd +174 -0
- data/dev/defs/cgbcon +114 -0
- data/dev/defs/cgbequ +121 -0
- data/dev/defs/cgbequb +128 -0
- data/dev/defs/cgbrfs +182 -0
- data/dev/defs/cgbrfsx +418 -0
- data/dev/defs/cgbsv +134 -0
- data/dev/defs/cgbsvx +356 -0
- data/dev/defs/cgbsvxx +539 -0
- data/dev/defs/cgbtf2 +110 -0
- data/dev/defs/cgbtrf +109 -0
- data/dev/defs/cgbtrs +106 -0
- data/dev/defs/cgebak +95 -0
- data/dev/defs/cgebal +125 -0
- data/dev/defs/cgebd2 +162 -0
- data/dev/defs/cgebrd +178 -0
- data/dev/defs/cgecon +90 -0
- data/dev/defs/cgeequ +107 -0
- data/dev/defs/cgeequb +114 -0
- data/dev/defs/cgees +169 -0
- data/dev/defs/cgeesx +209 -0
- data/dev/defs/cgeev +154 -0
- data/dev/defs/cgeevx +263 -0
- data/dev/defs/cgegs +204 -0
- data/dev/defs/cgegv +261 -0
- data/dev/defs/cgehd2 +115 -0
- data/dev/defs/cgehrd +136 -0
- data/dev/defs/cgelq2 +89 -0
- data/dev/defs/cgelqf +113 -0
- data/dev/defs/cgels +157 -0
- data/dev/defs/cgelsd +211 -0
- data/dev/defs/cgelss +156 -0
- data/dev/defs/cgelsx +155 -0
- data/dev/defs/cgelsy +188 -0
- data/dev/defs/cgeql2 +91 -0
- data/dev/defs/cgeqlf +116 -0
- data/dev/defs/cgeqp3 +127 -0
- data/dev/defs/cgeqpf +118 -0
- data/dev/defs/cgeqr2 +89 -0
- data/dev/defs/cgeqr2p +89 -0
- data/dev/defs/cgeqrf +114 -0
- data/dev/defs/cgeqrfp +114 -0
- data/dev/defs/cgerfs +164 -0
- data/dev/defs/cgerfsx +394 -0
- data/dev/defs/cgerq2 +91 -0
- data/dev/defs/cgerqf +116 -0
- data/dev/defs/cgesc2 +87 -0
- data/dev/defs/cgesdd +203 -0
- data/dev/defs/cgesv +97 -0
- data/dev/defs/cgesvd +195 -0
- data/dev/defs/cgesvx +333 -0
- data/dev/defs/cgesvxx +519 -0
- data/dev/defs/cgetc2 +82 -0
- data/dev/defs/cgetf2 +76 -0
- data/dev/defs/cgetrf +76 -0
- data/dev/defs/cgetri +86 -0
- data/dev/defs/cgetrs +91 -0
- data/dev/defs/cggbak +119 -0
- data/dev/defs/cggbal +144 -0
- data/dev/defs/cgges +247 -0
- data/dev/defs/cggesx +311 -0
- data/dev/defs/cggev +197 -0
- data/dev/defs/cggevx +353 -0
- data/dev/defs/cggglm +160 -0
- data/dev/defs/cgghrd +171 -0
- data/dev/defs/cgglse +157 -0
- data/dev/defs/cggqrf +195 -0
- data/dev/defs/cggrqf +194 -0
- data/dev/defs/cggsvd +324 -0
- data/dev/defs/cggsvp +240 -0
- data/dev/defs/cgtcon +112 -0
- data/dev/defs/cgtrfs +193 -0
- data/dev/defs/cgtsv +97 -0
- data/dev/defs/cgtsvx +275 -0
- data/dev/defs/cgttrf +97 -0
- data/dev/defs/cgttrs +119 -0
- data/dev/defs/cgtts2 +108 -0
- data/dev/defs/chbev +124 -0
- data/dev/defs/chbevd +194 -0
- data/dev/defs/chbevx +234 -0
- data/dev/defs/chbgst +137 -0
- data/dev/defs/chbgv +163 -0
- data/dev/defs/chbgvd +231 -0
- data/dev/defs/chbgvx +265 -0
- data/dev/defs/chbtrd +132 -0
- data/dev/defs/checon +91 -0
- data/dev/defs/cheequb +87 -0
- data/dev/defs/cheev +111 -0
- data/dev/defs/cheevd +178 -0
- data/dev/defs/cheevr +325 -0
- data/dev/defs/cheevx +225 -0
- data/dev/defs/chegs2 +96 -0
- data/dev/defs/chegst +96 -0
- data/dev/defs/chegv +155 -0
- data/dev/defs/chegvd +222 -0
- data/dev/defs/chegvx +270 -0
- data/dev/defs/cherfs +170 -0
- data/dev/defs/cherfsx +380 -0
- data/dev/defs/chesv +147 -0
- data/dev/defs/chesvx +261 -0
- data/dev/defs/chesvxx +481 -0
- data/dev/defs/chetd2 +143 -0
- data/dev/defs/chetf2 +141 -0
- data/dev/defs/chetrd +162 -0
- data/dev/defs/chetrf +151 -0
- data/dev/defs/chetri +83 -0
- data/dev/defs/chetrs +90 -0
- data/dev/defs/chetrs2 +97 -0
- data/dev/defs/chfrk +138 -0
- data/dev/defs/chgeqz +258 -0
- data/dev/defs/chla_transtype +32 -0
- data/dev/defs/chpcon +85 -0
- data/dev/defs/chpev +110 -0
- data/dev/defs/chpevd +179 -0
- data/dev/defs/chpevx +204 -0
- data/dev/defs/chpgst +80 -0
- data/dev/defs/chpgv +145 -0
- data/dev/defs/chpgvd +221 -0
- data/dev/defs/chpgvx +247 -0
- data/dev/defs/chprfs +156 -0
- data/dev/defs/chpsv +134 -0
- data/dev/defs/chpsvx +248 -0
- data/dev/defs/chptrd +118 -0
- data/dev/defs/chptrf +120 -0
- data/dev/defs/chptri +77 -0
- data/dev/defs/chptrs +84 -0
- data/dev/defs/chsein +217 -0
- data/dev/defs/chseqr +263 -0
- data/dev/defs/cla_gbamv +154 -0
- data/dev/defs/cla_gbrcond_c +146 -0
- data/dev/defs/cla_gbrcond_x +140 -0
- data/dev/defs/cla_gbrfsx_extended +391 -0
- data/dev/defs/cla_gbrpvgrw +94 -0
- data/dev/defs/cla_geamv +142 -0
- data/dev/defs/cla_gercond_c +128 -0
- data/dev/defs/cla_gercond_x +122 -0
- data/dev/defs/cla_gerfsx_extended +376 -0
- data/dev/defs/cla_heamv +142 -0
- data/dev/defs/cla_hercond_c +125 -0
- data/dev/defs/cla_hercond_x +119 -0
- data/dev/defs/cla_herfsx_extended +375 -0
- data/dev/defs/cla_herpvgrw +105 -0
- data/dev/defs/cla_lin_berr +79 -0
- data/dev/defs/cla_porcond_c +116 -0
- data/dev/defs/cla_porcond_x +110 -0
- data/dev/defs/cla_porfsx_extended +366 -0
- data/dev/defs/cla_porpvgrw +85 -0
- data/dev/defs/cla_rpvgrw +76 -0
- data/dev/defs/cla_syamv +142 -0
- data/dev/defs/cla_syrcond_c +125 -0
- data/dev/defs/cla_syrcond_x +119 -0
- data/dev/defs/cla_syrfsx_extended +375 -0
- data/dev/defs/cla_syrpvgrw +105 -0
- data/dev/defs/cla_wwaddw +53 -0
- data/dev/defs/clabrd +187 -0
- data/dev/defs/clacgv +44 -0
- data/dev/defs/clacn2 +91 -0
- data/dev/defs/clacon +75 -0
- data/dev/defs/clacp2 +78 -0
- data/dev/defs/clacpy +78 -0
- data/dev/defs/clacrm +88 -0
- data/dev/defs/clacrt +73 -0
- data/dev/defs/cladiv +37 -0
- data/dev/defs/claed0 +121 -0
- data/dev/defs/claed7 +237 -0
- data/dev/defs/claed8 +211 -0
- data/dev/defs/claein +117 -0
- data/dev/defs/claesy +81 -0
- data/dev/defs/claev2 +83 -0
- data/dev/defs/clag2z +73 -0
- data/dev/defs/clags2 +116 -0
- data/dev/defs/clagtm +115 -0
- data/dev/defs/clahef +127 -0
- data/dev/defs/clahqr +159 -0
- data/dev/defs/clahr2 +153 -0
- data/dev/defs/clahrd +141 -0
- data/dev/defs/claic1 +101 -0
- data/dev/defs/clals0 +251 -0
- data/dev/defs/clalsa +267 -0
- data/dev/defs/clalsd +160 -0
- data/dev/defs/clangb +92 -0
- data/dev/defs/clange +84 -0
- data/dev/defs/clangt +77 -0
- data/dev/defs/clanhb +99 -0
- data/dev/defs/clanhe +93 -0
- data/dev/defs/clanhf +211 -0
- data/dev/defs/clanhp +85 -0
- data/dev/defs/clanhs +78 -0
- data/dev/defs/clanht +69 -0
- data/dev/defs/clansb +97 -0
- data/dev/defs/clansp +83 -0
- data/dev/defs/clansy +92 -0
- data/dev/defs/clantb +108 -0
- data/dev/defs/clantp +93 -0
- data/dev/defs/clantr +109 -0
- data/dev/defs/clapll +67 -0
- data/dev/defs/clapmr +73 -0
- data/dev/defs/clapmt +73 -0
- data/dev/defs/claqgb +124 -0
- data/dev/defs/claqge +107 -0
- data/dev/defs/claqhb +105 -0
- data/dev/defs/claqhe +98 -0
- data/dev/defs/claqhp +89 -0
- data/dev/defs/claqp2 +115 -0
- data/dev/defs/claqps +146 -0
- data/dev/defs/claqr0 +203 -0
- data/dev/defs/claqr1 +66 -0
- data/dev/defs/claqr2 +243 -0
- data/dev/defs/claqr3 +238 -0
- data/dev/defs/claqr4 +203 -0
- data/dev/defs/claqr5 +221 -0
- data/dev/defs/claqsb +105 -0
- data/dev/defs/claqsp +89 -0
- data/dev/defs/claqsy +98 -0
- data/dev/defs/clar1v +199 -0
- data/dev/defs/clar2v +88 -0
- data/dev/defs/clarcm +88 -0
- data/dev/defs/clarf +97 -0
- data/dev/defs/clarfb +139 -0
- data/dev/defs/clarfg +71 -0
- data/dev/defs/clarfgp +69 -0
- data/dev/defs/clarft +133 -0
- data/dev/defs/clarfx +88 -0
- data/dev/defs/clargv +88 -0
- data/dev/defs/clarnv +63 -0
- data/dev/defs/clarrv +259 -0
- data/dev/defs/clarscl2 +61 -0
- data/dev/defs/clartg +66 -0
- data/dev/defs/clartv +82 -0
- data/dev/defs/clarz +111 -0
- data/dev/defs/clarzb +150 -0
- data/dev/defs/clarzt +151 -0
- data/dev/defs/clascl +102 -0
- data/dev/defs/clascl2 +61 -0
- data/dev/defs/claset +77 -0
- data/dev/defs/clasr +169 -0
- data/dev/defs/classq +71 -0
- data/dev/defs/claswp +81 -0
- data/dev/defs/clasyf +127 -0
- data/dev/defs/clatbs +206 -0
- data/dev/defs/clatdf +133 -0
- data/dev/defs/clatps +193 -0
- data/dev/defs/clatrd +168 -0
- data/dev/defs/clatrs +202 -0
- data/dev/defs/clatrz +106 -0
- data/dev/defs/clatzm +124 -0
- data/dev/defs/clauu2 +68 -0
- data/dev/defs/clauum +68 -0
- data/dev/defs/cpbcon +99 -0
- data/dev/defs/cpbequ +96 -0
- data/dev/defs/cpbrfs +166 -0
- data/dev/defs/cpbstf +116 -0
- data/dev/defs/cpbsv +136 -0
- data/dev/defs/cpbsvx +314 -0
- data/dev/defs/cpbtf2 +105 -0
- data/dev/defs/cpbtrf +103 -0
- data/dev/defs/cpbtrs +98 -0
- data/dev/defs/cpftrf +183 -0
- data/dev/defs/cpftri +175 -0
- data/dev/defs/cpftrs +185 -0
- data/dev/defs/cpocon +87 -0
- data/dev/defs/cpoequ +80 -0
- data/dev/defs/cpoequb +80 -0
- data/dev/defs/cporfs +160 -0
- data/dev/defs/cporfsx +371 -0
- data/dev/defs/cposv +105 -0
- data/dev/defs/cposvx +281 -0
- data/dev/defs/cposvxx +471 -0
- data/dev/defs/cpotf2 +75 -0
- data/dev/defs/cpotrf +73 -0
- data/dev/defs/cpotri +67 -0
- data/dev/defs/cpotrs +79 -0
- data/dev/defs/cppcon +85 -0
- data/dev/defs/cppequ +82 -0
- data/dev/defs/cpprfs +146 -0
- data/dev/defs/cppsv +115 -0
- data/dev/defs/cppsvx +283 -0
- data/dev/defs/cpptrf +81 -0
- data/dev/defs/cpptri +58 -0
- data/dev/defs/cpptrs +84 -0
- data/dev/defs/cpstf2 +108 -0
- data/dev/defs/cpstrf +108 -0
- data/dev/defs/cptcon +84 -0
- data/dev/defs/cpteqr +116 -0
- data/dev/defs/cptrfs +161 -0
- data/dev/defs/cptsv +89 -0
- data/dev/defs/cptsvx +210 -0
- data/dev/defs/cpttrf +59 -0
- data/dev/defs/cpttrs +98 -0
- data/dev/defs/cptts2 +89 -0
- data/dev/defs/crot +72 -0
- data/dev/defs/cspcon +85 -0
- data/dev/defs/cspmv +121 -0
- data/dev/defs/cspr +98 -0
- data/dev/defs/csprfs +156 -0
- data/dev/defs/cspsv +134 -0
- data/dev/defs/cspsvx +248 -0
- data/dev/defs/csptrf +121 -0
- data/dev/defs/csptri +77 -0
- data/dev/defs/csptrs +84 -0
- data/dev/defs/csrscl +49 -0
- data/dev/defs/cstedc +191 -0
- data/dev/defs/cstegr +233 -0
- data/dev/defs/cstein +159 -0
- data/dev/defs/cstemr +302 -0
- data/dev/defs/csteqr +103 -0
- data/dev/defs/csycon +91 -0
- data/dev/defs/csyconv +90 -0
- data/dev/defs/csyequb +104 -0
- data/dev/defs/csymv +126 -0
- data/dev/defs/csyr +102 -0
- data/dev/defs/csyrfs +170 -0
- data/dev/defs/csyrfsx +380 -0
- data/dev/defs/csysv +149 -0
- data/dev/defs/csysvx +261 -0
- data/dev/defs/csysvxx +485 -0
- data/dev/defs/csyswapr +70 -0
- data/dev/defs/csytf2 +140 -0
- data/dev/defs/csytrf +156 -0
- data/dev/defs/csytri +83 -0
- data/dev/defs/csytri2 +110 -0
- data/dev/defs/csytri2x +90 -0
- data/dev/defs/csytrs +90 -0
- data/dev/defs/csytrs2 +97 -0
- data/dev/defs/ctbcon +109 -0
- data/dev/defs/ctbrfs +164 -0
- data/dev/defs/ctbtrs +113 -0
- data/dev/defs/ctfsm +259 -0
- data/dev/defs/ctftri +183 -0
- data/dev/defs/ctfttp +172 -0
- data/dev/defs/ctfttr +182 -0
- data/dev/defs/ctgevc +194 -0
- data/dev/defs/ctgex2 +158 -0
- data/dev/defs/ctgexc +176 -0
- data/dev/defs/ctgsen +406 -0
- data/dev/defs/ctgsja +344 -0
- data/dev/defs/ctgsna +282 -0
- data/dev/defs/ctgsy2 +235 -0
- data/dev/defs/ctgsyl +273 -0
- data/dev/defs/ctpcon +95 -0
- data/dev/defs/ctprfs +150 -0
- data/dev/defs/ctptri +79 -0
- data/dev/defs/ctptrs +98 -0
- data/dev/defs/ctpttf +172 -0
- data/dev/defs/ctpttr +73 -0
- data/dev/defs/ctrcon +103 -0
- data/dev/defs/ctrevc +188 -0
- data/dev/defs/ctrexc +99 -0
- data/dev/defs/ctrrfs +158 -0
- data/dev/defs/ctrsen +234 -0
- data/dev/defs/ctrsna +223 -0
- data/dev/defs/ctrsyl +126 -0
- data/dev/defs/ctrti2 +76 -0
- data/dev/defs/ctrtri +75 -0
- data/dev/defs/ctrtrs +107 -0
- data/dev/defs/ctrttf +181 -0
- data/dev/defs/ctrttp +72 -0
- data/dev/defs/ctzrqf +104 -0
- data/dev/defs/ctzrzf +128 -0
- data/dev/defs/cunbdb +270 -0
- data/dev/defs/cuncsd +283 -0
- data/dev/defs/cung2l +85 -0
- data/dev/defs/cung2r +85 -0
- data/dev/defs/cungbr +129 -0
- data/dev/defs/cunghr +97 -0
- data/dev/defs/cungl2 +84 -0
- data/dev/defs/cunglq +100 -0
- data/dev/defs/cungql +101 -0
- data/dev/defs/cungqr +101 -0
- data/dev/defs/cungr2 +85 -0
- data/dev/defs/cungrq +101 -0
- data/dev/defs/cungtr +95 -0
- data/dev/defs/cunm2l +130 -0
- data/dev/defs/cunm2r +130 -0
- data/dev/defs/cunmbr +179 -0
- data/dev/defs/cunmhr +157 -0
- data/dev/defs/cunml2 +130 -0
- data/dev/defs/cunmlq +143 -0
- data/dev/defs/cunmql +143 -0
- data/dev/defs/cunmqr +143 -0
- data/dev/defs/cunmr2 +130 -0
- data/dev/defs/cunmr3 +152 -0
- data/dev/defs/cunmrq +143 -0
- data/dev/defs/cunmrz +157 -0
- data/dev/defs/cunmtr +152 -0
- data/dev/defs/cupgtr +87 -0
- data/dev/defs/cupmtr +120 -0
- data/dev/defs/dbbcsd +297 -0
- data/dev/defs/dbdsdc +194 -0
- data/dev/defs/dbdsqr +203 -0
- data/dev/defs/ddisna +84 -0
- data/dev/defs/dgbbrd +167 -0
- data/dev/defs/dgbcon +114 -0
- data/dev/defs/dgbequ +121 -0
- data/dev/defs/dgbequb +128 -0
- data/dev/defs/dgbrfs +182 -0
- data/dev/defs/dgbrfsx +418 -0
- data/dev/defs/dgbsv +134 -0
- data/dev/defs/dgbsvx +353 -0
- data/dev/defs/dgbsvxx +536 -0
- data/dev/defs/dgbtf2 +110 -0
- data/dev/defs/dgbtrf +109 -0
- data/dev/defs/dgbtrs +106 -0
- data/dev/defs/dgebak +95 -0
- data/dev/defs/dgebal +125 -0
- data/dev/defs/dgebd2 +162 -0
- data/dev/defs/dgebrd +178 -0
- data/dev/defs/dgecon +90 -0
- data/dev/defs/dgeequ +107 -0
- data/dev/defs/dgeequb +114 -0
- data/dev/defs/dgees +188 -0
- data/dev/defs/dgeesx +251 -0
- data/dev/defs/dgeev +166 -0
- data/dev/defs/dgeevx +282 -0
- data/dev/defs/dgegs +207 -0
- data/dev/defs/dgegv +286 -0
- data/dev/defs/dgehd2 +115 -0
- data/dev/defs/dgehrd +136 -0
- data/dev/defs/dgejsv +862 -0
- data/dev/defs/dgelq2 +89 -0
- data/dev/defs/dgelqf +113 -0
- data/dev/defs/dgels +158 -0
- data/dev/defs/dgelsd +193 -0
- data/dev/defs/dgelss +149 -0
- data/dev/defs/dgelsx +148 -0
- data/dev/defs/dgelsy +181 -0
- data/dev/defs/dgeql2 +91 -0
- data/dev/defs/dgeqlf +116 -0
- data/dev/defs/dgeqp3 +120 -0
- data/dev/defs/dgeqpf +111 -0
- data/dev/defs/dgeqr2 +89 -0
- data/dev/defs/dgeqr2p +89 -0
- data/dev/defs/dgeqrf +114 -0
- data/dev/defs/dgeqrfp +114 -0
- data/dev/defs/dgerfs +164 -0
- data/dev/defs/dgerfsx +394 -0
- data/dev/defs/dgerq2 +91 -0
- data/dev/defs/dgerqf +116 -0
- data/dev/defs/dgesc2 +86 -0
- data/dev/defs/dgesdd +197 -0
- data/dev/defs/dgesv +97 -0
- data/dev/defs/dgesvd +188 -0
- data/dev/defs/dgesvj +308 -0
- data/dev/defs/dgesvx +333 -0
- data/dev/defs/dgesvxx +516 -0
- data/dev/defs/dgetc2 +82 -0
- data/dev/defs/dgetf2 +76 -0
- data/dev/defs/dgetrf +76 -0
- data/dev/defs/dgetri +86 -0
- data/dev/defs/dgetrs +91 -0
- data/dev/defs/dggbak +119 -0
- data/dev/defs/dggbal +145 -0
- data/dev/defs/dgges +261 -0
- data/dev/defs/dggesx +342 -0
- data/dev/defs/dggev +206 -0
- data/dev/defs/dggevx +371 -0
- data/dev/defs/dggglm +160 -0
- data/dev/defs/dgghrd +174 -0
- data/dev/defs/dgglse +157 -0
- data/dev/defs/dggqrf +195 -0
- data/dev/defs/dggrqf +194 -0
- data/dev/defs/dggsvd +319 -0
- data/dev/defs/dggsvp +233 -0
- data/dev/defs/dgsvj0 +200 -0
- data/dev/defs/dgsvj1 +220 -0
- data/dev/defs/dgtcon +119 -0
- data/dev/defs/dgtrfs +193 -0
- data/dev/defs/dgtsv +100 -0
- data/dev/defs/dgtsvx +275 -0
- data/dev/defs/dgttrf +97 -0
- data/dev/defs/dgttrs +119 -0
- data/dev/defs/dgtts2 +106 -0
- data/dev/defs/dhgeqz +282 -0
- data/dev/defs/dhsein +234 -0
- data/dev/defs/dhseqr +279 -0
- data/dev/defs/disnan +29 -0
- data/dev/defs/dla_gbamv +152 -0
- data/dev/defs/dla_gbrcond +152 -0
- data/dev/defs/dla_gbrfsx_extended +393 -0
- data/dev/defs/dla_gbrpvgrw +90 -0
- data/dev/defs/dla_geamv +142 -0
- data/dev/defs/dla_gercond +134 -0
- data/dev/defs/dla_gerfsx_extended +379 -0
- data/dev/defs/dla_lin_berr +78 -0
- data/dev/defs/dla_porcond +122 -0
- data/dev/defs/dla_porfsx_extended +366 -0
- data/dev/defs/dla_porpvgrw +81 -0
- data/dev/defs/dla_rpvgrw +72 -0
- data/dev/defs/dla_syamv +142 -0
- data/dev/defs/dla_syrcond +131 -0
- data/dev/defs/dla_syrfsx_extended +375 -0
- data/dev/defs/dla_syrpvgrw +101 -0
- data/dev/defs/dla_wwaddw +53 -0
- data/dev/defs/dlabad +43 -0
- data/dev/defs/dlabrd +186 -0
- data/dev/defs/dlacn2 +96 -0
- data/dev/defs/dlacon +80 -0
- data/dev/defs/dlacpy +78 -0
- data/dev/defs/dladiv +57 -0
- data/dev/defs/dlae2 +66 -0
- data/dev/defs/dlaebz +292 -0
- data/dev/defs/dlaed0 +147 -0
- data/dev/defs/dlaed1 +141 -0
- data/dev/defs/dlaed2 +194 -0
- data/dev/defs/dlaed3 +167 -0
- data/dev/defs/dlaed4 +113 -0
- data/dev/defs/dlaed5 +78 -0
- data/dev/defs/dlaed6 +101 -0
- data/dev/defs/dlaed7 +241 -0
- data/dev/defs/dlaed8 +227 -0
- data/dev/defs/dlaed9 +137 -0
- data/dev/defs/dlaeda +147 -0
- data/dev/defs/dlaein +141 -0
- data/dev/defs/dlaev2 +83 -0
- data/dev/defs/dlaexc +107 -0
- data/dev/defs/dlag2 +123 -0
- data/dev/defs/dlag2s +81 -0
- data/dev/defs/dlags2 +108 -0
- data/dev/defs/dlagtf +128 -0
- data/dev/defs/dlagtm +115 -0
- data/dev/defs/dlagts +135 -0
- data/dev/defs/dlagv2 +128 -0
- data/dev/defs/dlahqr +172 -0
- data/dev/defs/dlahr2 +153 -0
- data/dev/defs/dlahrd +141 -0
- data/dev/defs/dlaic1 +101 -0
- data/dev/defs/dlaln2 +187 -0
- data/dev/defs/dlals0 +250 -0
- data/dev/defs/dlalsa +268 -0
- data/dev/defs/dlalsd +152 -0
- data/dev/defs/dlamrg +66 -0
- data/dev/defs/dlaneg +87 -0
- data/dev/defs/dlangb +93 -0
- data/dev/defs/dlange +84 -0
- data/dev/defs/dlangt +77 -0
- data/dev/defs/dlanhs +78 -0
- data/dev/defs/dlansb +97 -0
- data/dev/defs/dlansf +178 -0
- data/dev/defs/dlansp +83 -0
- data/dev/defs/dlanst +69 -0
- data/dev/defs/dlansy +92 -0
- data/dev/defs/dlantb +108 -0
- data/dev/defs/dlantp +93 -0
- data/dev/defs/dlantr +109 -0
- data/dev/defs/dlanv2 +84 -0
- data/dev/defs/dlapll +69 -0
- data/dev/defs/dlapmr +73 -0
- data/dev/defs/dlapmt +73 -0
- data/dev/defs/dlapy2 +30 -0
- data/dev/defs/dlapy3 +34 -0
- data/dev/defs/dlaqgb +124 -0
- data/dev/defs/dlaqge +107 -0
- data/dev/defs/dlaqp2 +115 -0
- data/dev/defs/dlaqps +146 -0
- data/dev/defs/dlaqr0 +225 -0
- data/dev/defs/dlaqr1 +79 -0
- data/dev/defs/dlaqr2 +252 -0
- data/dev/defs/dlaqr3 +247 -0
- data/dev/defs/dlaqr4 +225 -0
- data/dev/defs/dlaqr5 +230 -0
- data/dev/defs/dlaqsb +105 -0
- data/dev/defs/dlaqsp +89 -0
- data/dev/defs/dlaqsy +98 -0
- data/dev/defs/dlaqtr +134 -0
- data/dev/defs/dlar1v +199 -0
- data/dev/defs/dlar2v +86 -0
- data/dev/defs/dlarf +93 -0
- data/dev/defs/dlarfb +139 -0
- data/dev/defs/dlarfg +71 -0
- data/dev/defs/dlarfgp +69 -0
- data/dev/defs/dlarft +133 -0
- data/dev/defs/dlarfx +89 -0
- data/dev/defs/dlargv +74 -0
- data/dev/defs/dlarnv +61 -0
- data/dev/defs/dlarra +106 -0
- data/dev/defs/dlarrb +167 -0
- data/dev/defs/dlarrc +99 -0
- data/dev/defs/dlarrd +290 -0
- data/dev/defs/dlarre +265 -0
- data/dev/defs/dlarrf +168 -0
- data/dev/defs/dlarrj +138 -0
- data/dev/defs/dlarrk +108 -0
- data/dev/defs/dlarrr +62 -0
- data/dev/defs/dlarrv +259 -0
- data/dev/defs/dlarscl2 +61 -0
- data/dev/defs/dlartg +64 -0
- data/dev/defs/dlartgp +62 -0
- data/dev/defs/dlartgs +57 -0
- data/dev/defs/dlartv +82 -0
- data/dev/defs/dlaruv +59 -0
- data/dev/defs/dlarz +109 -0
- data/dev/defs/dlarzb +150 -0
- data/dev/defs/dlarzt +151 -0
- data/dev/defs/dlas2 +71 -0
- data/dev/defs/dlascl +102 -0
- data/dev/defs/dlascl2 +61 -0
- data/dev/defs/dlasd0 +133 -0
- data/dev/defs/dlasd1 +180 -0
- data/dev/defs/dlasd2 +254 -0
- data/dev/defs/dlasd3 +213 -0
- data/dev/defs/dlasd4 +123 -0
- data/dev/defs/dlasd5 +88 -0
- data/dev/defs/dlasd6 +300 -0
- data/dev/defs/dlasd7 +264 -0
- data/dev/defs/dlasd8 +144 -0
- data/dev/defs/dlasda +276 -0
- data/dev/defs/dlasdq +187 -0
- data/dev/defs/dlasdt +76 -0
- data/dev/defs/dlaset +81 -0
- data/dev/defs/dlasq1 +75 -0
- data/dev/defs/dlasq2 +73 -0
- data/dev/defs/dlasq3 +141 -0
- data/dev/defs/dlasq4 +107 -0
- data/dev/defs/dlasq5 +100 -0
- data/dev/defs/dlasq6 +90 -0
- data/dev/defs/dlasr +169 -0
- data/dev/defs/dlasrt +53 -0
- data/dev/defs/dlassq +68 -0
- data/dev/defs/dlasv2 +100 -0
- data/dev/defs/dlaswp +81 -0
- data/dev/defs/dlasy2 +145 -0
- data/dev/defs/dlasyf +126 -0
- data/dev/defs/dlat2s +83 -0
- data/dev/defs/dlatbs +206 -0
- data/dev/defs/dlatdf +131 -0
- data/dev/defs/dlatps +192 -0
- data/dev/defs/dlatrd +168 -0
- data/dev/defs/dlatrs +202 -0
- data/dev/defs/dlatrz +106 -0
- data/dev/defs/dlatzm +123 -0
- data/dev/defs/dlauu2 +68 -0
- data/dev/defs/dlauum +68 -0
- data/dev/defs/dopgtr +87 -0
- data/dev/defs/dopmtr +120 -0
- data/dev/defs/dorbdb +270 -0
- data/dev/defs/dorcsd +264 -0
- data/dev/defs/dorg2l +85 -0
- data/dev/defs/dorg2r +85 -0
- data/dev/defs/dorgbr +129 -0
- data/dev/defs/dorghr +97 -0
- data/dev/defs/dorgl2 +84 -0
- data/dev/defs/dorglq +100 -0
- data/dev/defs/dorgql +101 -0
- data/dev/defs/dorgqr +101 -0
- data/dev/defs/dorgr2 +85 -0
- data/dev/defs/dorgrq +101 -0
- data/dev/defs/dorgtr +95 -0
- data/dev/defs/dorm2l +130 -0
- data/dev/defs/dorm2r +130 -0
- data/dev/defs/dormbr +176 -0
- data/dev/defs/dormhr +157 -0
- data/dev/defs/dorml2 +130 -0
- data/dev/defs/dormlq +143 -0
- data/dev/defs/dormql +143 -0
- data/dev/defs/dormqr +143 -0
- data/dev/defs/dormr2 +130 -0
- data/dev/defs/dormr3 +152 -0
- data/dev/defs/dormrq +143 -0
- data/dev/defs/dormrz +157 -0
- data/dev/defs/dormtr +152 -0
- data/dev/defs/dpbcon +98 -0
- data/dev/defs/dpbequ +96 -0
- data/dev/defs/dpbrfs +166 -0
- data/dev/defs/dpbstf +115 -0
- data/dev/defs/dpbsv +136 -0
- data/dev/defs/dpbsvx +314 -0
- data/dev/defs/dpbtf2 +105 -0
- data/dev/defs/dpbtrf +103 -0
- data/dev/defs/dpbtrs +98 -0
- data/dev/defs/dpftrf +161 -0
- data/dev/defs/dpftri +154 -0
- data/dev/defs/dpftrs +164 -0
- data/dev/defs/dpocon +87 -0
- data/dev/defs/dpoequ +80 -0
- data/dev/defs/dpoequb +80 -0
- data/dev/defs/dporfs +160 -0
- data/dev/defs/dporfsx +370 -0
- data/dev/defs/dposv +105 -0
- data/dev/defs/dposvx +281 -0
- data/dev/defs/dposvxx +468 -0
- data/dev/defs/dpotf2 +75 -0
- data/dev/defs/dpotrf +73 -0
- data/dev/defs/dpotri +67 -0
- data/dev/defs/dpotrs +79 -0
- data/dev/defs/dppcon +85 -0
- data/dev/defs/dppequ +82 -0
- data/dev/defs/dpprfs +146 -0
- data/dev/defs/dppsv +115 -0
- data/dev/defs/dppsvx +283 -0
- data/dev/defs/dpptrf +81 -0
- data/dev/defs/dpptri +58 -0
- data/dev/defs/dpptrs +84 -0
- data/dev/defs/dpstf2 +108 -0
- data/dev/defs/dpstrf +108 -0
- data/dev/defs/dptcon +84 -0
- data/dev/defs/dpteqr +117 -0
- data/dev/defs/dptrfs +141 -0
- data/dev/defs/dptsv +89 -0
- data/dev/defs/dptsvx +203 -0
- data/dev/defs/dpttrf +59 -0
- data/dev/defs/dpttrs +88 -0
- data/dev/defs/dptts2 +77 -0
- data/dev/defs/drscl +49 -0
- data/dev/defs/dsbev +117 -0
- data/dev/defs/dsbevd +169 -0
- data/dev/defs/dsbevx +231 -0
- data/dev/defs/dsbgst +130 -0
- data/dev/defs/dsbgv +156 -0
- data/dev/defs/dsbgvd +206 -0
- data/dev/defs/dsbgvx +259 -0
- data/dev/defs/dsbtrd +132 -0
- data/dev/defs/dsfrk +134 -0
- data/dev/defs/dsgesv +170 -0
- data/dev/defs/dspcon +92 -0
- data/dev/defs/dspev +103 -0
- data/dev/defs/dspevd +155 -0
- data/dev/defs/dspevx +197 -0
- data/dev/defs/dspgst +80 -0
- data/dev/defs/dspgv +139 -0
- data/dev/defs/dspgvd +188 -0
- data/dev/defs/dspgvx +241 -0
- data/dev/defs/dsposv +173 -0
- data/dev/defs/dsprfs +156 -0
- data/dev/defs/dspsv +134 -0
- data/dev/defs/dspsvx +249 -0
- data/dev/defs/dsptrd +118 -0
- data/dev/defs/dsptrf +120 -0
- data/dev/defs/dsptri +77 -0
- data/dev/defs/dsptrs +84 -0
- data/dev/defs/dstebz +229 -0
- data/dev/defs/dstedc +165 -0
- data/dev/defs/dstegr +233 -0
- data/dev/defs/dstein +152 -0
- data/dev/defs/dstemr +285 -0
- data/dev/defs/dsteqr +103 -0
- data/dev/defs/dsterf +54 -0
- data/dev/defs/dstev +88 -0
- data/dev/defs/dstevd +138 -0
- data/dev/defs/dstevr +273 -0
- data/dev/defs/dstevx +193 -0
- data/dev/defs/dsycon +98 -0
- data/dev/defs/dsyconv +90 -0
- data/dev/defs/dsyequb +104 -0
- data/dev/defs/dsyev +104 -0
- data/dev/defs/dsyevd +157 -0
- data/dev/defs/dsyevr +300 -0
- data/dev/defs/dsyevx +218 -0
- data/dev/defs/dsygs2 +96 -0
- data/dev/defs/dsygst +96 -0
- data/dev/defs/dsygv +148 -0
- data/dev/defs/dsygvd +197 -0
- data/dev/defs/dsygvx +263 -0
- data/dev/defs/dsyrfs +170 -0
- data/dev/defs/dsyrfsx +380 -0
- data/dev/defs/dsysv +149 -0
- data/dev/defs/dsysvx +261 -0
- data/dev/defs/dsysvxx +481 -0
- data/dev/defs/dsyswapr +70 -0
- data/dev/defs/dsytd2 +142 -0
- data/dev/defs/dsytf2 +143 -0
- data/dev/defs/dsytrd +162 -0
- data/dev/defs/dsytrf +156 -0
- data/dev/defs/dsytri +83 -0
- data/dev/defs/dsytri2 +110 -0
- data/dev/defs/dsytri2x +90 -0
- data/dev/defs/dsytrs +90 -0
- data/dev/defs/dsytrs2 +97 -0
- data/dev/defs/dtbcon +109 -0
- data/dev/defs/dtbrfs +164 -0
- data/dev/defs/dtbtrs +113 -0
- data/dev/defs/dtfsm +243 -0
- data/dev/defs/dtftri +163 -0
- data/dev/defs/dtfttp +151 -0
- data/dev/defs/dtfttr +176 -0
- data/dev/defs/dtgevc +265 -0
- data/dev/defs/dtgex2 +191 -0
- data/dev/defs/dtgexc +190 -0
- data/dev/defs/dtgsen +422 -0
- data/dev/defs/dtgsja +343 -0
- data/dev/defs/dtgsna +354 -0
- data/dev/defs/dtgsy2 +252 -0
- data/dev/defs/dtgsyl +274 -0
- data/dev/defs/dtpcon +95 -0
- data/dev/defs/dtprfs +150 -0
- data/dev/defs/dtptri +79 -0
- data/dev/defs/dtptrs +98 -0
- data/dev/defs/dtpttf +151 -0
- data/dev/defs/dtpttr +73 -0
- data/dev/defs/dtrcon +103 -0
- data/dev/defs/dtrevc +191 -0
- data/dev/defs/dtrexc +113 -0
- data/dev/defs/dtrrfs +158 -0
- data/dev/defs/dtrsen +284 -0
- data/dev/defs/dtrsna +239 -0
- data/dev/defs/dtrsyl +133 -0
- data/dev/defs/dtrti2 +76 -0
- data/dev/defs/dtrtri +75 -0
- data/dev/defs/dtrtrs +107 -0
- data/dev/defs/dtrttf +171 -0
- data/dev/defs/dtrttp +72 -0
- data/dev/defs/dtzrqf +104 -0
- data/dev/defs/dtzrzf +128 -0
- data/dev/defs/dzsum1 +49 -0
- data/dev/defs/icmax1 +55 -0
- data/dev/defs/ieeeck +49 -0
- data/dev/defs/ilaclc +46 -0
- data/dev/defs/ilaclr +46 -0
- data/dev/defs/iladiag +30 -0
- data/dev/defs/iladlc +46 -0
- data/dev/defs/iladlr +46 -0
- data/dev/defs/ilaenv +133 -0
- data/dev/defs/ilaprec +33 -0
- data/dev/defs/ilaslc +46 -0
- data/dev/defs/ilaslr +46 -0
- data/dev/defs/ilatrans +32 -0
- data/dev/defs/ilauplo +30 -0
- data/dev/defs/ilaver +35 -0
- data/dev/defs/ilazlc +46 -0
- data/dev/defs/ilazlr +46 -0
- data/dev/defs/iparmq +177 -0
- data/dev/defs/izmax1 +55 -0
- data/dev/defs/lsamen +50 -0
- data/dev/defs/sbbcsd +297 -0
- data/dev/defs/sbdsdc +192 -0
- data/dev/defs/sbdsqr +203 -0
- data/dev/defs/scsum1 +49 -0
- data/dev/defs/sdisna +84 -0
- data/dev/defs/sgbbrd +167 -0
- data/dev/defs/sgbcon +114 -0
- data/dev/defs/sgbequ +121 -0
- data/dev/defs/sgbequb +128 -0
- data/dev/defs/sgbrfs +182 -0
- data/dev/defs/sgbrfsx +419 -0
- data/dev/defs/sgbsv +134 -0
- data/dev/defs/sgbsvx +356 -0
- data/dev/defs/sgbsvxx +539 -0
- data/dev/defs/sgbtf2 +110 -0
- data/dev/defs/sgbtrf +109 -0
- data/dev/defs/sgbtrs +106 -0
- data/dev/defs/sgebak +95 -0
- data/dev/defs/sgebal +125 -0
- data/dev/defs/sgebd2 +162 -0
- data/dev/defs/sgebrd +178 -0
- data/dev/defs/sgecon +90 -0
- data/dev/defs/sgeequ +107 -0
- data/dev/defs/sgeequb +114 -0
- data/dev/defs/sgees +188 -0
- data/dev/defs/sgeesx +251 -0
- data/dev/defs/sgeev +166 -0
- data/dev/defs/sgeevx +282 -0
- data/dev/defs/sgegs +207 -0
- data/dev/defs/sgegv +286 -0
- data/dev/defs/sgehd2 +115 -0
- data/dev/defs/sgehrd +136 -0
- data/dev/defs/sgejsv +860 -0
- data/dev/defs/sgelq2 +89 -0
- data/dev/defs/sgelqf +113 -0
- data/dev/defs/sgels +158 -0
- data/dev/defs/sgelsd +194 -0
- data/dev/defs/sgelss +149 -0
- data/dev/defs/sgelsx +148 -0
- data/dev/defs/sgelsy +181 -0
- data/dev/defs/sgeql2 +91 -0
- data/dev/defs/sgeqlf +116 -0
- data/dev/defs/sgeqp3 +120 -0
- data/dev/defs/sgeqpf +111 -0
- data/dev/defs/sgeqr2 +89 -0
- data/dev/defs/sgeqr2p +89 -0
- data/dev/defs/sgeqrf +114 -0
- data/dev/defs/sgeqrfp +114 -0
- data/dev/defs/sgerfs +164 -0
- data/dev/defs/sgerfsx +394 -0
- data/dev/defs/sgerq2 +91 -0
- data/dev/defs/sgerqf +116 -0
- data/dev/defs/sgesc2 +86 -0
- data/dev/defs/sgesdd +197 -0
- data/dev/defs/sgesv +97 -0
- data/dev/defs/sgesvd +188 -0
- data/dev/defs/sgesvj +304 -0
- data/dev/defs/sgesvx +333 -0
- data/dev/defs/sgesvxx +519 -0
- data/dev/defs/sgetc2 +82 -0
- data/dev/defs/sgetf2 +76 -0
- data/dev/defs/sgetrf +76 -0
- data/dev/defs/sgetri +86 -0
- data/dev/defs/sgetrs +91 -0
- data/dev/defs/sggbak +119 -0
- data/dev/defs/sggbal +144 -0
- data/dev/defs/sgges +261 -0
- data/dev/defs/sggesx +342 -0
- data/dev/defs/sggev +206 -0
- data/dev/defs/sggevx +371 -0
- data/dev/defs/sggglm +160 -0
- data/dev/defs/sgghrd +174 -0
- data/dev/defs/sgglse +157 -0
- data/dev/defs/sggqrf +195 -0
- data/dev/defs/sggrqf +194 -0
- data/dev/defs/sggsvd +319 -0
- data/dev/defs/sggsvp +233 -0
- data/dev/defs/sgsvj0 +200 -0
- data/dev/defs/sgsvj1 +220 -0
- data/dev/defs/sgtcon +119 -0
- data/dev/defs/sgtrfs +193 -0
- data/dev/defs/sgtsv +100 -0
- data/dev/defs/sgtsvx +275 -0
- data/dev/defs/sgttrf +97 -0
- data/dev/defs/sgttrs +119 -0
- data/dev/defs/sgtts2 +106 -0
- data/dev/defs/shgeqz +282 -0
- data/dev/defs/shsein +234 -0
- data/dev/defs/shseqr +279 -0
- data/dev/defs/sisnan +29 -0
- data/dev/defs/sla_gbamv +152 -0
- data/dev/defs/sla_gbrcond +152 -0
- data/dev/defs/sla_gbrfsx_extended +391 -0
- data/dev/defs/sla_gbrpvgrw +90 -0
- data/dev/defs/sla_geamv +142 -0
- data/dev/defs/sla_gercond +134 -0
- data/dev/defs/sla_gerfsx_extended +376 -0
- data/dev/defs/sla_lin_berr +78 -0
- data/dev/defs/sla_porcond +122 -0
- data/dev/defs/sla_porfsx_extended +363 -0
- data/dev/defs/sla_porpvgrw +81 -0
- data/dev/defs/sla_rpvgrw +72 -0
- data/dev/defs/sla_syamv +142 -0
- data/dev/defs/sla_syrcond +131 -0
- data/dev/defs/sla_syrfsx_extended +372 -0
- data/dev/defs/sla_syrpvgrw +101 -0
- data/dev/defs/sla_wwaddw +53 -0
- data/dev/defs/slabad +43 -0
- data/dev/defs/slabrd +186 -0
- data/dev/defs/slacn2 +96 -0
- data/dev/defs/slacon +80 -0
- data/dev/defs/slacpy +78 -0
- data/dev/defs/sladiv +57 -0
- data/dev/defs/slae2 +66 -0
- data/dev/defs/slaebz +292 -0
- data/dev/defs/slaed0 +147 -0
- data/dev/defs/slaed1 +141 -0
- data/dev/defs/slaed2 +194 -0
- data/dev/defs/slaed3 +167 -0
- data/dev/defs/slaed4 +113 -0
- data/dev/defs/slaed5 +78 -0
- data/dev/defs/slaed6 +101 -0
- data/dev/defs/slaed7 +241 -0
- data/dev/defs/slaed8 +227 -0
- data/dev/defs/slaed9 +137 -0
- data/dev/defs/slaeda +147 -0
- data/dev/defs/slaein +141 -0
- data/dev/defs/slaev2 +83 -0
- data/dev/defs/slaexc +107 -0
- data/dev/defs/slag2 +123 -0
- data/dev/defs/slag2d +74 -0
- data/dev/defs/slags2 +108 -0
- data/dev/defs/slagtf +128 -0
- data/dev/defs/slagtm +115 -0
- data/dev/defs/slagts +135 -0
- data/dev/defs/slagv2 +128 -0
- data/dev/defs/slahqr +172 -0
- data/dev/defs/slahr2 +153 -0
- data/dev/defs/slahrd +142 -0
- data/dev/defs/slaic1 +101 -0
- data/dev/defs/slaln2 +187 -0
- data/dev/defs/slals0 +250 -0
- data/dev/defs/slalsa +268 -0
- data/dev/defs/slalsd +150 -0
- data/dev/defs/slamrg +66 -0
- data/dev/defs/slaneg +87 -0
- data/dev/defs/slangb +93 -0
- data/dev/defs/slange +84 -0
- data/dev/defs/slangt +77 -0
- data/dev/defs/slanhs +78 -0
- data/dev/defs/slansb +97 -0
- data/dev/defs/slansf +179 -0
- data/dev/defs/slansp +83 -0
- data/dev/defs/slanst +69 -0
- data/dev/defs/slansy +92 -0
- data/dev/defs/slantb +108 -0
- data/dev/defs/slantp +93 -0
- data/dev/defs/slantr +109 -0
- data/dev/defs/slanv2 +84 -0
- data/dev/defs/slapll +69 -0
- data/dev/defs/slapmr +73 -0
- data/dev/defs/slapmt +73 -0
- data/dev/defs/slapy2 +30 -0
- data/dev/defs/slapy3 +34 -0
- data/dev/defs/slaqgb +124 -0
- data/dev/defs/slaqge +107 -0
- data/dev/defs/slaqp2 +115 -0
- data/dev/defs/slaqps +146 -0
- data/dev/defs/slaqr0 +225 -0
- data/dev/defs/slaqr1 +79 -0
- data/dev/defs/slaqr2 +252 -0
- data/dev/defs/slaqr3 +247 -0
- data/dev/defs/slaqr4 +225 -0
- data/dev/defs/slaqr5 +230 -0
- data/dev/defs/slaqsb +105 -0
- data/dev/defs/slaqsp +89 -0
- data/dev/defs/slaqsy +98 -0
- data/dev/defs/slaqtr +134 -0
- data/dev/defs/slar1v +199 -0
- data/dev/defs/slar2v +86 -0
- data/dev/defs/slarf +93 -0
- data/dev/defs/slarfb +139 -0
- data/dev/defs/slarfg +71 -0
- data/dev/defs/slarfgp +69 -0
- data/dev/defs/slarft +133 -0
- data/dev/defs/slarfx +89 -0
- data/dev/defs/slargv +74 -0
- data/dev/defs/slarnv +61 -0
- data/dev/defs/slarra +106 -0
- data/dev/defs/slarrb +167 -0
- data/dev/defs/slarrc +99 -0
- data/dev/defs/slarrd +290 -0
- data/dev/defs/slarre +265 -0
- data/dev/defs/slarrf +165 -0
- data/dev/defs/slarrj +138 -0
- data/dev/defs/slarrk +108 -0
- data/dev/defs/slarrr +62 -0
- data/dev/defs/slarrv +259 -0
- data/dev/defs/slarscl2 +61 -0
- data/dev/defs/slartg +64 -0
- data/dev/defs/slartgp +62 -0
- data/dev/defs/slartgs +57 -0
- data/dev/defs/slartv +82 -0
- data/dev/defs/slaruv +59 -0
- data/dev/defs/slarz +109 -0
- data/dev/defs/slarzb +150 -0
- data/dev/defs/slarzt +151 -0
- data/dev/defs/slas2 +71 -0
- data/dev/defs/slascl +102 -0
- data/dev/defs/slascl2 +61 -0
- data/dev/defs/slasd0 +131 -0
- data/dev/defs/slasd1 +179 -0
- data/dev/defs/slasd2 +254 -0
- data/dev/defs/slasd3 +213 -0
- data/dev/defs/slasd4 +123 -0
- data/dev/defs/slasd5 +88 -0
- data/dev/defs/slasd6 +300 -0
- data/dev/defs/slasd7 +264 -0
- data/dev/defs/slasd8 +144 -0
- data/dev/defs/slasda +275 -0
- data/dev/defs/slasdq +187 -0
- data/dev/defs/slasdt +76 -0
- data/dev/defs/slaset +81 -0
- data/dev/defs/slasq1 +75 -0
- data/dev/defs/slasq2 +73 -0
- data/dev/defs/slasq3 +141 -0
- data/dev/defs/slasq4 +107 -0
- data/dev/defs/slasq5 +100 -0
- data/dev/defs/slasq6 +90 -0
- data/dev/defs/slasr +169 -0
- data/dev/defs/slasrt +53 -0
- data/dev/defs/slassq +68 -0
- data/dev/defs/slasv2 +100 -0
- data/dev/defs/slaswp +81 -0
- data/dev/defs/slasy2 +145 -0
- data/dev/defs/slasyf +126 -0
- data/dev/defs/slatbs +206 -0
- data/dev/defs/slatdf +131 -0
- data/dev/defs/slatps +192 -0
- data/dev/defs/slatrd +168 -0
- data/dev/defs/slatrs +202 -0
- data/dev/defs/slatrz +106 -0
- data/dev/defs/slatzm +123 -0
- data/dev/defs/slauu2 +68 -0
- data/dev/defs/slauum +68 -0
- data/dev/defs/sopgtr +87 -0
- data/dev/defs/sopmtr +120 -0
- data/dev/defs/sorbdb +270 -0
- data/dev/defs/sorcsd +264 -0
- data/dev/defs/sorg2l +85 -0
- data/dev/defs/sorg2r +85 -0
- data/dev/defs/sorgbr +129 -0
- data/dev/defs/sorghr +97 -0
- data/dev/defs/sorgl2 +84 -0
- data/dev/defs/sorglq +100 -0
- data/dev/defs/sorgql +101 -0
- data/dev/defs/sorgqr +101 -0
- data/dev/defs/sorgr2 +85 -0
- data/dev/defs/sorgrq +101 -0
- data/dev/defs/sorgtr +95 -0
- data/dev/defs/sorm2l +130 -0
- data/dev/defs/sorm2r +130 -0
- data/dev/defs/sormbr +176 -0
- data/dev/defs/sormhr +157 -0
- data/dev/defs/sorml2 +130 -0
- data/dev/defs/sormlq +143 -0
- data/dev/defs/sormql +143 -0
- data/dev/defs/sormqr +143 -0
- data/dev/defs/sormr2 +130 -0
- data/dev/defs/sormr3 +152 -0
- data/dev/defs/sormrq +143 -0
- data/dev/defs/sormrz +157 -0
- data/dev/defs/sormtr +152 -0
- data/dev/defs/spbcon +98 -0
- data/dev/defs/spbequ +96 -0
- data/dev/defs/spbrfs +166 -0
- data/dev/defs/spbstf +115 -0
- data/dev/defs/spbsv +136 -0
- data/dev/defs/spbsvx +314 -0
- data/dev/defs/spbtf2 +105 -0
- data/dev/defs/spbtrf +103 -0
- data/dev/defs/spbtrs +98 -0
- data/dev/defs/spftrf +161 -0
- data/dev/defs/spftri +154 -0
- data/dev/defs/spftrs +164 -0
- data/dev/defs/spocon +87 -0
- data/dev/defs/spoequ +80 -0
- data/dev/defs/spoequb +80 -0
- data/dev/defs/sporfs +160 -0
- data/dev/defs/sporfsx +370 -0
- data/dev/defs/sposv +105 -0
- data/dev/defs/sposvx +281 -0
- data/dev/defs/sposvxx +471 -0
- data/dev/defs/spotf2 +75 -0
- data/dev/defs/spotrf +73 -0
- data/dev/defs/spotri +67 -0
- data/dev/defs/spotrs +79 -0
- data/dev/defs/sppcon +85 -0
- data/dev/defs/sppequ +82 -0
- data/dev/defs/spprfs +146 -0
- data/dev/defs/sppsv +115 -0
- data/dev/defs/sppsvx +283 -0
- data/dev/defs/spptrf +81 -0
- data/dev/defs/spptri +58 -0
- data/dev/defs/spptrs +84 -0
- data/dev/defs/spstf2 +108 -0
- data/dev/defs/spstrf +108 -0
- data/dev/defs/sptcon +84 -0
- data/dev/defs/spteqr +117 -0
- data/dev/defs/sptrfs +141 -0
- data/dev/defs/sptsv +89 -0
- data/dev/defs/sptsvx +203 -0
- data/dev/defs/spttrf +59 -0
- data/dev/defs/spttrs +88 -0
- data/dev/defs/sptts2 +77 -0
- data/dev/defs/srscl +49 -0
- data/dev/defs/ssbev +117 -0
- data/dev/defs/ssbevd +169 -0
- data/dev/defs/ssbevx +231 -0
- data/dev/defs/ssbgst +130 -0
- data/dev/defs/ssbgv +156 -0
- data/dev/defs/ssbgvd +206 -0
- data/dev/defs/ssbgvx +259 -0
- data/dev/defs/ssbtrd +132 -0
- data/dev/defs/ssfrk +134 -0
- data/dev/defs/sspcon +92 -0
- data/dev/defs/sspev +103 -0
- data/dev/defs/sspevd +154 -0
- data/dev/defs/sspevx +197 -0
- data/dev/defs/sspgst +80 -0
- data/dev/defs/sspgv +139 -0
- data/dev/defs/sspgvd +188 -0
- data/dev/defs/sspgvx +241 -0
- data/dev/defs/ssprfs +156 -0
- data/dev/defs/sspsv +134 -0
- data/dev/defs/sspsvx +249 -0
- data/dev/defs/ssptrd +118 -0
- data/dev/defs/ssptrf +120 -0
- data/dev/defs/ssptri +77 -0
- data/dev/defs/ssptrs +84 -0
- data/dev/defs/sstebz +229 -0
- data/dev/defs/sstedc +164 -0
- data/dev/defs/sstegr +233 -0
- data/dev/defs/sstein +152 -0
- data/dev/defs/sstemr +285 -0
- data/dev/defs/ssteqr +103 -0
- data/dev/defs/ssterf +54 -0
- data/dev/defs/sstev +88 -0
- data/dev/defs/sstevd +138 -0
- data/dev/defs/sstevr +275 -0
- data/dev/defs/sstevx +193 -0
- data/dev/defs/ssycon +98 -0
- data/dev/defs/ssyconv +90 -0
- data/dev/defs/ssyequb +104 -0
- data/dev/defs/ssyev +104 -0
- data/dev/defs/ssyevd +157 -0
- data/dev/defs/ssyevr +302 -0
- data/dev/defs/ssyevx +218 -0
- data/dev/defs/ssygs2 +96 -0
- data/dev/defs/ssygst +96 -0
- data/dev/defs/ssygv +148 -0
- data/dev/defs/ssygvd +197 -0
- data/dev/defs/ssygvx +263 -0
- data/dev/defs/ssyrfs +170 -0
- data/dev/defs/ssyrfsx +380 -0
- data/dev/defs/ssysv +149 -0
- data/dev/defs/ssysvx +261 -0
- data/dev/defs/ssysvxx +484 -0
- data/dev/defs/ssyswapr +70 -0
- data/dev/defs/ssytd2 +142 -0
- data/dev/defs/ssytf2 +143 -0
- data/dev/defs/ssytrd +162 -0
- data/dev/defs/ssytrf +156 -0
- data/dev/defs/ssytri +83 -0
- data/dev/defs/ssytri2 +110 -0
- data/dev/defs/ssytri2x +90 -0
- data/dev/defs/ssytrs +90 -0
- data/dev/defs/ssytrs2 +97 -0
- data/dev/defs/stbcon +109 -0
- data/dev/defs/stbrfs +164 -0
- data/dev/defs/stbtrs +113 -0
- data/dev/defs/stfsm +243 -0
- data/dev/defs/stftri +163 -0
- data/dev/defs/stfttp +151 -0
- data/dev/defs/stfttr +174 -0
- data/dev/defs/stgevc +265 -0
- data/dev/defs/stgex2 +191 -0
- data/dev/defs/stgexc +190 -0
- data/dev/defs/stgsen +421 -0
- data/dev/defs/stgsja +343 -0
- data/dev/defs/stgsna +354 -0
- data/dev/defs/stgsy2 +252 -0
- data/dev/defs/stgsyl +274 -0
- data/dev/defs/stpcon +95 -0
- data/dev/defs/stprfs +150 -0
- data/dev/defs/stptri +79 -0
- data/dev/defs/stptrs +98 -0
- data/dev/defs/stpttf +151 -0
- data/dev/defs/stpttr +73 -0
- data/dev/defs/strcon +103 -0
- data/dev/defs/strevc +191 -0
- data/dev/defs/strexc +113 -0
- data/dev/defs/strrfs +158 -0
- data/dev/defs/strsen +284 -0
- data/dev/defs/strsna +239 -0
- data/dev/defs/strsyl +133 -0
- data/dev/defs/strti2 +76 -0
- data/dev/defs/strtri +75 -0
- data/dev/defs/strtrs +107 -0
- data/dev/defs/strttf +171 -0
- data/dev/defs/strttp +72 -0
- data/dev/defs/stzrqf +104 -0
- data/dev/defs/stzrzf +128 -0
- data/dev/defs/xerbla +40 -0
- data/dev/defs/xerbla_array +65 -0
- data/dev/defs/zbbcsd +297 -0
- data/dev/defs/zbdsqr +196 -0
- data/dev/defs/zcgesv +176 -0
- data/dev/defs/zcposv +182 -0
- data/dev/defs/zdrscl +49 -0
- data/dev/defs/zgbbrd +174 -0
- data/dev/defs/zgbcon +114 -0
- data/dev/defs/zgbequ +121 -0
- data/dev/defs/zgbequb +128 -0
- data/dev/defs/zgbrfs +182 -0
- data/dev/defs/zgbrfsx +418 -0
- data/dev/defs/zgbsv +134 -0
- data/dev/defs/zgbsvx +356 -0
- data/dev/defs/zgbsvxx +536 -0
- data/dev/defs/zgbtf2 +110 -0
- data/dev/defs/zgbtrf +109 -0
- data/dev/defs/zgbtrs +106 -0
- data/dev/defs/zgebak +95 -0
- data/dev/defs/zgebal +125 -0
- data/dev/defs/zgebd2 +162 -0
- data/dev/defs/zgebrd +178 -0
- data/dev/defs/zgecon +90 -0
- data/dev/defs/zgeequ +107 -0
- data/dev/defs/zgeequb +114 -0
- data/dev/defs/zgees +170 -0
- data/dev/defs/zgeesx +209 -0
- data/dev/defs/zgeev +154 -0
- data/dev/defs/zgeevx +263 -0
- data/dev/defs/zgegs +205 -0
- data/dev/defs/zgegv +261 -0
- data/dev/defs/zgehd2 +115 -0
- data/dev/defs/zgehrd +136 -0
- data/dev/defs/zgelq2 +89 -0
- data/dev/defs/zgelqf +113 -0
- data/dev/defs/zgels +157 -0
- data/dev/defs/zgelsd +211 -0
- data/dev/defs/zgelss +156 -0
- data/dev/defs/zgelsx +155 -0
- data/dev/defs/zgelsy +188 -0
- data/dev/defs/zgeql2 +91 -0
- data/dev/defs/zgeqlf +116 -0
- data/dev/defs/zgeqp3 +127 -0
- data/dev/defs/zgeqpf +118 -0
- data/dev/defs/zgeqr2 +89 -0
- data/dev/defs/zgeqr2p +89 -0
- data/dev/defs/zgeqrf +114 -0
- data/dev/defs/zgeqrfp +114 -0
- data/dev/defs/zgerfs +164 -0
- data/dev/defs/zgerfsx +394 -0
- data/dev/defs/zgerq2 +91 -0
- data/dev/defs/zgerqf +116 -0
- data/dev/defs/zgesc2 +87 -0
- data/dev/defs/zgesdd +203 -0
- data/dev/defs/zgesv +97 -0
- data/dev/defs/zgesvd +195 -0
- data/dev/defs/zgesvx +333 -0
- data/dev/defs/zgesvxx +516 -0
- data/dev/defs/zgetc2 +82 -0
- data/dev/defs/zgetf2 +76 -0
- data/dev/defs/zgetrf +76 -0
- data/dev/defs/zgetri +86 -0
- data/dev/defs/zgetrs +91 -0
- data/dev/defs/zggbak +119 -0
- data/dev/defs/zggbal +144 -0
- data/dev/defs/zgges +247 -0
- data/dev/defs/zggesx +311 -0
- data/dev/defs/zggev +197 -0
- data/dev/defs/zggevx +353 -0
- data/dev/defs/zggglm +160 -0
- data/dev/defs/zgghrd +171 -0
- data/dev/defs/zgglse +157 -0
- data/dev/defs/zggqrf +195 -0
- data/dev/defs/zggrqf +194 -0
- data/dev/defs/zggsvd +324 -0
- data/dev/defs/zggsvp +240 -0
- data/dev/defs/zgtcon +112 -0
- data/dev/defs/zgtrfs +193 -0
- data/dev/defs/zgtsv +97 -0
- data/dev/defs/zgtsvx +275 -0
- data/dev/defs/zgttrf +97 -0
- data/dev/defs/zgttrs +119 -0
- data/dev/defs/zgtts2 +108 -0
- data/dev/defs/zhbev +124 -0
- data/dev/defs/zhbevd +194 -0
- data/dev/defs/zhbevx +234 -0
- data/dev/defs/zhbgst +137 -0
- data/dev/defs/zhbgv +163 -0
- data/dev/defs/zhbgvd +231 -0
- data/dev/defs/zhbgvx +265 -0
- data/dev/defs/zhbtrd +132 -0
- data/dev/defs/zhecon +91 -0
- data/dev/defs/zheequb +87 -0
- data/dev/defs/zheev +111 -0
- data/dev/defs/zheevd +178 -0
- data/dev/defs/zheevr +325 -0
- data/dev/defs/zheevx +225 -0
- data/dev/defs/zhegs2 +96 -0
- data/dev/defs/zhegst +96 -0
- data/dev/defs/zhegv +155 -0
- data/dev/defs/zhegvd +222 -0
- data/dev/defs/zhegvx +270 -0
- data/dev/defs/zherfs +170 -0
- data/dev/defs/zherfsx +380 -0
- data/dev/defs/zhesv +147 -0
- data/dev/defs/zhesvx +261 -0
- data/dev/defs/zhesvxx +478 -0
- data/dev/defs/zhetd2 +143 -0
- data/dev/defs/zhetf2 +141 -0
- data/dev/defs/zhetrd +162 -0
- data/dev/defs/zhetrf +151 -0
- data/dev/defs/zhetri +83 -0
- data/dev/defs/zhetrs +90 -0
- data/dev/defs/zhetrs2 +97 -0
- data/dev/defs/zhfrk +138 -0
- data/dev/defs/zhgeqz +258 -0
- data/dev/defs/zhpcon +85 -0
- data/dev/defs/zhpev +110 -0
- data/dev/defs/zhpevd +180 -0
- data/dev/defs/zhpevx +204 -0
- data/dev/defs/zhpgst +80 -0
- data/dev/defs/zhpgv +145 -0
- data/dev/defs/zhpgvd +221 -0
- data/dev/defs/zhpgvx +247 -0
- data/dev/defs/zhprfs +156 -0
- data/dev/defs/zhpsv +134 -0
- data/dev/defs/zhpsvx +248 -0
- data/dev/defs/zhptrd +118 -0
- data/dev/defs/zhptrf +120 -0
- data/dev/defs/zhptri +77 -0
- data/dev/defs/zhptrs +84 -0
- data/dev/defs/zhsein +217 -0
- data/dev/defs/zhseqr +263 -0
- data/dev/defs/zla_gbamv +154 -0
- data/dev/defs/zla_gbrcond_c +146 -0
- data/dev/defs/zla_gbrcond_x +140 -0
- data/dev/defs/zla_gbrfsx_extended +391 -0
- data/dev/defs/zla_gbrpvgrw +94 -0
- data/dev/defs/zla_geamv +142 -0
- data/dev/defs/zla_gercond_c +128 -0
- data/dev/defs/zla_gercond_x +122 -0
- data/dev/defs/zla_gerfsx_extended +378 -0
- data/dev/defs/zla_heamv +142 -0
- data/dev/defs/zla_hercond_c +125 -0
- data/dev/defs/zla_hercond_x +119 -0
- data/dev/defs/zla_herfsx_extended +375 -0
- data/dev/defs/zla_herpvgrw +105 -0
- data/dev/defs/zla_lin_berr +79 -0
- data/dev/defs/zla_porcond_c +116 -0
- data/dev/defs/zla_porcond_x +110 -0
- data/dev/defs/zla_porfsx_extended +366 -0
- data/dev/defs/zla_porpvgrw +85 -0
- data/dev/defs/zla_rpvgrw +76 -0
- data/dev/defs/zla_syamv +142 -0
- data/dev/defs/zla_syrcond_c +125 -0
- data/dev/defs/zla_syrcond_x +119 -0
- data/dev/defs/zla_syrfsx_extended +375 -0
- data/dev/defs/zla_syrpvgrw +105 -0
- data/dev/defs/zla_wwaddw +53 -0
- data/dev/defs/zlabrd +187 -0
- data/dev/defs/zlacgv +44 -0
- data/dev/defs/zlacn2 +91 -0
- data/dev/defs/zlacon +75 -0
- data/dev/defs/zlacp2 +78 -0
- data/dev/defs/zlacpy +78 -0
- data/dev/defs/zlacrm +88 -0
- data/dev/defs/zlacrt +73 -0
- data/dev/defs/zladiv +37 -0
- data/dev/defs/zlaed0 +121 -0
- data/dev/defs/zlaed7 +237 -0
- data/dev/defs/zlaed8 +211 -0
- data/dev/defs/zlaein +117 -0
- data/dev/defs/zlaesy +81 -0
- data/dev/defs/zlaev2 +83 -0
- data/dev/defs/zlag2c +82 -0
- data/dev/defs/zlags2 +116 -0
- data/dev/defs/zlagtm +115 -0
- data/dev/defs/zlahef +127 -0
- data/dev/defs/zlahqr +159 -0
- data/dev/defs/zlahr2 +153 -0
- data/dev/defs/zlahrd +141 -0
- data/dev/defs/zlaic1 +101 -0
- data/dev/defs/zlals0 +251 -0
- data/dev/defs/zlalsa +267 -0
- data/dev/defs/zlalsd +160 -0
- data/dev/defs/zlangb +92 -0
- data/dev/defs/zlange +84 -0
- data/dev/defs/zlangt +77 -0
- data/dev/defs/zlanhb +99 -0
- data/dev/defs/zlanhe +93 -0
- data/dev/defs/zlanhf +211 -0
- data/dev/defs/zlanhp +85 -0
- data/dev/defs/zlanhs +78 -0
- data/dev/defs/zlanht +69 -0
- data/dev/defs/zlansb +97 -0
- data/dev/defs/zlansp +83 -0
- data/dev/defs/zlansy +92 -0
- data/dev/defs/zlantb +108 -0
- data/dev/defs/zlantp +93 -0
- data/dev/defs/zlantr +109 -0
- data/dev/defs/zlapll +67 -0
- data/dev/defs/zlapmr +73 -0
- data/dev/defs/zlapmt +73 -0
- data/dev/defs/zlaqgb +124 -0
- data/dev/defs/zlaqge +107 -0
- data/dev/defs/zlaqhb +105 -0
- data/dev/defs/zlaqhe +98 -0
- data/dev/defs/zlaqhp +89 -0
- data/dev/defs/zlaqp2 +115 -0
- data/dev/defs/zlaqps +141 -0
- data/dev/defs/zlaqr0 +203 -0
- data/dev/defs/zlaqr1 +66 -0
- data/dev/defs/zlaqr2 +243 -0
- data/dev/defs/zlaqr3 +238 -0
- data/dev/defs/zlaqr4 +203 -0
- data/dev/defs/zlaqr5 +221 -0
- data/dev/defs/zlaqsb +105 -0
- data/dev/defs/zlaqsp +89 -0
- data/dev/defs/zlaqsy +98 -0
- data/dev/defs/zlar1v +199 -0
- data/dev/defs/zlar2v +88 -0
- data/dev/defs/zlarcm +88 -0
- data/dev/defs/zlarf +97 -0
- data/dev/defs/zlarfb +139 -0
- data/dev/defs/zlarfg +71 -0
- data/dev/defs/zlarfgp +69 -0
- data/dev/defs/zlarft +133 -0
- data/dev/defs/zlarfx +88 -0
- data/dev/defs/zlargv +88 -0
- data/dev/defs/zlarnv +63 -0
- data/dev/defs/zlarrv +259 -0
- data/dev/defs/zlarscl2 +61 -0
- data/dev/defs/zlartg +66 -0
- data/dev/defs/zlartv +82 -0
- data/dev/defs/zlarz +111 -0
- data/dev/defs/zlarzb +150 -0
- data/dev/defs/zlarzt +151 -0
- data/dev/defs/zlascl +102 -0
- data/dev/defs/zlascl2 +61 -0
- data/dev/defs/zlaset +77 -0
- data/dev/defs/zlasr +169 -0
- data/dev/defs/zlassq +71 -0
- data/dev/defs/zlaswp +81 -0
- data/dev/defs/zlasyf +127 -0
- data/dev/defs/zlat2c +85 -0
- data/dev/defs/zlatbs +206 -0
- data/dev/defs/zlatdf +133 -0
- data/dev/defs/zlatps +193 -0
- data/dev/defs/zlatrd +168 -0
- data/dev/defs/zlatrs +202 -0
- data/dev/defs/zlatrz +106 -0
- data/dev/defs/zlatzm +124 -0
- data/dev/defs/zlauu2 +68 -0
- data/dev/defs/zlauum +68 -0
- data/dev/defs/zpbcon +99 -0
- data/dev/defs/zpbequ +96 -0
- data/dev/defs/zpbrfs +166 -0
- data/dev/defs/zpbstf +116 -0
- data/dev/defs/zpbsv +136 -0
- data/dev/defs/zpbsvx +314 -0
- data/dev/defs/zpbtf2 +105 -0
- data/dev/defs/zpbtrf +103 -0
- data/dev/defs/zpbtrs +98 -0
- data/dev/defs/zpftrf +182 -0
- data/dev/defs/zpftri +175 -0
- data/dev/defs/zpftrs +185 -0
- data/dev/defs/zpocon +87 -0
- data/dev/defs/zpoequ +80 -0
- data/dev/defs/zpoequb +80 -0
- data/dev/defs/zporfs +160 -0
- data/dev/defs/zporfsx +370 -0
- data/dev/defs/zposv +105 -0
- data/dev/defs/zposvx +281 -0
- data/dev/defs/zposvxx +468 -0
- data/dev/defs/zpotf2 +75 -0
- data/dev/defs/zpotrf +73 -0
- data/dev/defs/zpotri +67 -0
- data/dev/defs/zpotrs +79 -0
- data/dev/defs/zppcon +85 -0
- data/dev/defs/zppequ +82 -0
- data/dev/defs/zpprfs +146 -0
- data/dev/defs/zppsv +115 -0
- data/dev/defs/zppsvx +283 -0
- data/dev/defs/zpptrf +81 -0
- data/dev/defs/zpptri +58 -0
- data/dev/defs/zpptrs +84 -0
- data/dev/defs/zpstf2 +108 -0
- data/dev/defs/zpstrf +108 -0
- data/dev/defs/zptcon +84 -0
- data/dev/defs/zpteqr +116 -0
- data/dev/defs/zptrfs +161 -0
- data/dev/defs/zptsv +89 -0
- data/dev/defs/zptsvx +210 -0
- data/dev/defs/zpttrf +59 -0
- data/dev/defs/zpttrs +98 -0
- data/dev/defs/zptts2 +89 -0
- data/dev/defs/zrot +72 -0
- data/dev/defs/zspcon +85 -0
- data/dev/defs/zspmv +119 -0
- data/dev/defs/zspr +98 -0
- data/dev/defs/zsprfs +156 -0
- data/dev/defs/zspsv +134 -0
- data/dev/defs/zspsvx +248 -0
- data/dev/defs/zsptrf +121 -0
- data/dev/defs/zsptri +77 -0
- data/dev/defs/zsptrs +84 -0
- data/dev/defs/zstedc +192 -0
- data/dev/defs/zstegr +233 -0
- data/dev/defs/zstein +159 -0
- data/dev/defs/zstemr +302 -0
- data/dev/defs/zsteqr +103 -0
- data/dev/defs/zsycon +91 -0
- data/dev/defs/zsyconv +90 -0
- data/dev/defs/zsyequb +104 -0
- data/dev/defs/zsymv +126 -0
- data/dev/defs/zsyr +102 -0
- data/dev/defs/zsyrfs +170 -0
- data/dev/defs/zsyrfsx +380 -0
- data/dev/defs/zsysv +149 -0
- data/dev/defs/zsysvx +261 -0
- data/dev/defs/zsysvxx +482 -0
- data/dev/defs/zsyswapr +70 -0
- data/dev/defs/zsytf2 +140 -0
- data/dev/defs/zsytrf +156 -0
- data/dev/defs/zsytri +83 -0
- data/dev/defs/zsytri2 +111 -0
- data/dev/defs/zsytri2x +90 -0
- data/dev/defs/zsytrs +90 -0
- data/dev/defs/zsytrs2 +97 -0
- data/dev/defs/ztbcon +109 -0
- data/dev/defs/ztbrfs +164 -0
- data/dev/defs/ztbtrs +113 -0
- data/dev/defs/ztfsm +259 -0
- data/dev/defs/ztftri +183 -0
- data/dev/defs/ztfttp +172 -0
- data/dev/defs/ztfttr +182 -0
- data/dev/defs/ztgevc +194 -0
- data/dev/defs/ztgex2 +158 -0
- data/dev/defs/ztgexc +176 -0
- data/dev/defs/ztgsen +406 -0
- data/dev/defs/ztgsja +344 -0
- data/dev/defs/ztgsna +282 -0
- data/dev/defs/ztgsy2 +235 -0
- data/dev/defs/ztgsyl +273 -0
- data/dev/defs/ztpcon +95 -0
- data/dev/defs/ztprfs +150 -0
- data/dev/defs/ztptri +79 -0
- data/dev/defs/ztptrs +98 -0
- data/dev/defs/ztpttf +172 -0
- data/dev/defs/ztpttr +73 -0
- data/dev/defs/ztrcon +103 -0
- data/dev/defs/ztrevc +188 -0
- data/dev/defs/ztrexc +99 -0
- data/dev/defs/ztrrfs +158 -0
- data/dev/defs/ztrsen +234 -0
- data/dev/defs/ztrsna +223 -0
- data/dev/defs/ztrsyl +126 -0
- data/dev/defs/ztrti2 +76 -0
- data/dev/defs/ztrtri +75 -0
- data/dev/defs/ztrtrs +107 -0
- data/dev/defs/ztrttf +181 -0
- data/dev/defs/ztrttp +72 -0
- data/dev/defs/ztzrqf +104 -0
- data/dev/defs/ztzrzf +128 -0
- data/dev/defs/zunbdb +270 -0
- data/dev/defs/zuncsd +283 -0
- data/dev/defs/zung2l +85 -0
- data/dev/defs/zung2r +85 -0
- data/dev/defs/zungbr +129 -0
- data/dev/defs/zunghr +97 -0
- data/dev/defs/zungl2 +84 -0
- data/dev/defs/zunglq +100 -0
- data/dev/defs/zungql +101 -0
- data/dev/defs/zungqr +101 -0
- data/dev/defs/zungr2 +85 -0
- data/dev/defs/zungrq +101 -0
- data/dev/defs/zungtr +95 -0
- data/dev/defs/zunm2l +130 -0
- data/dev/defs/zunm2r +130 -0
- data/dev/defs/zunmbr +177 -0
- data/dev/defs/zunmhr +157 -0
- data/dev/defs/zunml2 +130 -0
- data/dev/defs/zunmlq +143 -0
- data/dev/defs/zunmql +143 -0
- data/dev/defs/zunmqr +143 -0
- data/dev/defs/zunmr2 +130 -0
- data/dev/defs/zunmr3 +152 -0
- data/dev/defs/zunmrq +143 -0
- data/dev/defs/zunmrz +157 -0
- data/dev/defs/zunmtr +152 -0
- data/dev/defs/zupgtr +87 -0
- data/dev/defs/zupmtr +120 -0
- data/dev/make_csrc.rb +857 -0
- data/dev/mkdoc.rb +265 -0
- data/dev/parse.rb +1972 -0
- data/doc/bd.html +16 -0
- data/doc/c.html +36 -0
- data/doc/cbd.html +161 -0
- data/doc/cgb.html +1865 -0
- data/doc/cge.html +5261 -0
- data/doc/cgg.html +2027 -0
- data/doc/cgt.html +711 -0
- data/doc/chb.html +1031 -0
- data/doc/che.html +3165 -0
- data/doc/chg.html +201 -0
- data/doc/chp.html +1696 -0
- data/doc/chs.html +386 -0
- data/doc/cpb.html +994 -0
- data/doc/cpo.html +1520 -0
- data/doc/cpp.html +770 -0
- data/doc/cpt.html +706 -0
- data/doc/csp.html +905 -0
- data/doc/cst.html +742 -0
- data/doc/csy.html +2194 -0
- data/doc/ctb.html +284 -0
- data/doc/ctg.html +1544 -0
- data/doc/ctp.html +553 -0
- data/doc/ctr.html +1281 -0
- data/doc/ctz.html +211 -0
- data/doc/cun.html +2553 -0
- data/doc/cup.html +166 -0
- data/doc/d.html +35 -0
- data/doc/dbd.html +304 -0
- data/doc/ddi.html +87 -0
- data/doc/dgb.html +1857 -0
- data/doc/dge.html +7267 -0
- data/doc/dgg.html +2102 -0
- data/doc/dgt.html +713 -0
- data/doc/dhg.html +225 -0
- data/doc/dhs.html +414 -0
- data/doc/di.html +14 -0
- data/doc/dop.html +166 -0
- data/doc/dor.html +2540 -0
- data/doc/dpb.html +992 -0
- data/doc/dpo.html +1517 -0
- data/doc/dpp.html +770 -0
- data/doc/dpt.html +675 -0
- data/doc/dsb.html +995 -0
- data/doc/dsp.html +1777 -0
- data/doc/dst.html +1422 -0
- data/doc/dsy.html +3433 -0
- data/doc/dtb.html +284 -0
- data/doc/dtg.html +1730 -0
- data/doc/dtp.html +532 -0
- data/doc/dtr.html +1346 -0
- data/doc/dtz.html +211 -0
- data/doc/gb.html +16 -0
- data/doc/ge.html +16 -0
- data/doc/gg.html +16 -0
- data/doc/gt.html +16 -0
- data/doc/hb.html +14 -0
- data/doc/he.html +14 -0
- data/doc/hg.html +16 -0
- data/doc/hp.html +14 -0
- data/doc/hs.html +16 -0
- data/doc/index.html +53 -0
- data/doc/op.html +14 -0
- data/doc/or.html +14 -0
- data/doc/others.html +1142 -0
- data/doc/pb.html +16 -0
- data/doc/po.html +16 -0
- data/doc/pp.html +16 -0
- data/doc/pt.html +16 -0
- data/doc/s.html +35 -0
- data/doc/sb.html +14 -0
- data/doc/sbd.html +303 -0
- data/doc/sdi.html +87 -0
- data/doc/sgb.html +1863 -0
- data/doc/sge.html +7263 -0
- data/doc/sgg.html +2102 -0
- data/doc/sgt.html +713 -0
- data/doc/shg.html +225 -0
- data/doc/shs.html +414 -0
- data/doc/sop.html +166 -0
- data/doc/sor.html +2540 -0
- data/doc/sp.html +16 -0
- data/doc/spb.html +992 -0
- data/doc/spo.html +1520 -0
- data/doc/spp.html +770 -0
- data/doc/spt.html +675 -0
- data/doc/ssb.html +995 -0
- data/doc/ssp.html +1647 -0
- data/doc/sst.html +1423 -0
- data/doc/ssy.html +3438 -0
- data/doc/st.html +16 -0
- data/doc/stb.html +284 -0
- data/doc/stg.html +1729 -0
- data/doc/stp.html +532 -0
- data/doc/str.html +1346 -0
- data/doc/stz.html +211 -0
- data/doc/sy.html +16 -0
- data/doc/tb.html +16 -0
- data/doc/tg.html +16 -0
- data/doc/tp.html +16 -0
- data/doc/tr.html +16 -0
- data/doc/tz.html +16 -0
- data/doc/un.html +14 -0
- data/doc/up.html +14 -0
- data/doc/z.html +36 -0
- data/doc/zbd.html +161 -0
- data/doc/zgb.html +1862 -0
- data/doc/zge.html +5258 -0
- data/doc/zgg.html +2027 -0
- data/doc/zgt.html +711 -0
- data/doc/zhb.html +1031 -0
- data/doc/zhe.html +3162 -0
- data/doc/zhg.html +201 -0
- data/doc/zhp.html +1697 -0
- data/doc/zhs.html +386 -0
- data/doc/zpb.html +994 -0
- data/doc/zpo.html +1517 -0
- data/doc/zpp.html +770 -0
- data/doc/zpt.html +706 -0
- data/doc/zsp.html +905 -0
- data/doc/zst.html +743 -0
- data/doc/zsy.html +2191 -0
- data/doc/ztb.html +284 -0
- data/doc/ztg.html +1544 -0
- data/doc/ztp.html +553 -0
- data/doc/ztr.html +1281 -0
- data/doc/ztz.html +211 -0
- data/doc/zun.html +2553 -0
- data/doc/zup.html +166 -0
- data/ext/cbbcsd.c +279 -0
- data/ext/cbdsqr.c +178 -0
- data/ext/cgbbrd.c +153 -0
- data/ext/cgbcon.c +94 -0
- data/ext/cgbequ.c +94 -0
- data/ext/cgbequb.c +92 -0
- data/ext/cgbrfs.c +157 -0
- data/ext/cgbrfsx.c +245 -0
- data/ext/cgbsv.c +111 -0
- data/ext/cgbsvx.c +282 -0
- data/ext/cgbsvxx.c +285 -0
- data/ext/cgbtf2.c +89 -0
- data/ext/cgbtrf.c +89 -0
- data/ext/cgbtrs.c +107 -0
- data/ext/cgebak.c +97 -0
- data/ext/cgebal.c +87 -0
- data/ext/cgebd2.c +108 -0
- data/ext/cgebrd.c +123 -0
- data/ext/cgecon.c +74 -0
- data/ext/cgeequ.c +84 -0
- data/ext/cgeequb.c +84 -0
- data/ext/cgees.c +138 -0
- data/ext/cgeesx.c +148 -0
- data/ext/cgeev.c +128 -0
- data/ext/cgeevx.c +169 -0
- data/ext/cgegs.c +162 -0
- data/ext/cgegv.c +167 -0
- data/ext/cgehd2.c +88 -0
- data/ext/cgehrd.c +103 -0
- data/ext/cgelq2.c +82 -0
- data/ext/cgelqf.c +99 -0
- data/ext/cgels.c +133 -0
- data/ext/cgelsd.c +150 -0
- data/ext/cgelss.c +147 -0
- data/ext/cgelsx.c +135 -0
- data/ext/cgelsy.c +162 -0
- data/ext/cgeql2.c +84 -0
- data/ext/cgeqlf.c +99 -0
- data/ext/cgeqp3.c +125 -0
- data/ext/cgeqpf.c +110 -0
- data/ext/cgeqr2.c +84 -0
- data/ext/cgeqr2p.c +84 -0
- data/ext/cgeqrf.c +99 -0
- data/ext/cgeqrfp.c +99 -0
- data/ext/cgerfs.c +149 -0
- data/ext/cgerfsx.c +215 -0
- data/ext/cgerq2.c +82 -0
- data/ext/cgerqf.c +99 -0
- data/ext/cgesc2.c +104 -0
- data/ext/cgesdd.c +131 -0
- data/ext/cgesv.c +103 -0
- data/ext/cgesvd.c +142 -0
- data/ext/cgesvx.c +274 -0
- data/ext/cgesvxx.c +277 -0
- data/ext/cgetc2.c +85 -0
- data/ext/cgetf2.c +81 -0
- data/ext/cgetrf.c +81 -0
- data/ext/cgetri.c +99 -0
- data/ext/cgetrs.c +99 -0
- data/ext/cggbak.c +109 -0
- data/ext/cggbal.c +124 -0
- data/ext/cgges.c +188 -0
- data/ext/cggesx.c +226 -0
- data/ext/cggev.c +167 -0
- data/ext/cggevx.c +222 -0
- data/ext/cggglm.c +152 -0
- data/ext/cgghrd.c +163 -0
- data/ext/cgglse.c +167 -0
- data/ext/cggqrf.c +133 -0
- data/ext/cggrqf.c +137 -0
- data/ext/cggsvd.c +180 -0
- data/ext/cggsvp.c +170 -0
- data/ext/cgtcon.c +117 -0
- data/ext/cgtrfs.c +205 -0
- data/ext/cgtsv.c +138 -0
- data/ext/cgtsvx.c +252 -0
- data/ext/cgttrf.c +128 -0
- data/ext/cgttrs.c +133 -0
- data/ext/cgtts2.c +130 -0
- data/ext/chbev.c +106 -0
- data/ext/chbevd.c +154 -0
- data/ext/chbevx.c +156 -0
- data/ext/chbgst.c +116 -0
- data/ext/chbgv.c +136 -0
- data/ext/chbgvd.c +184 -0
- data/ext/chbgvx.c +185 -0
- data/ext/chbtrd.c +126 -0
- data/ext/checon.c +83 -0
- data/ext/cheequb.c +78 -0
- data/ext/cheev.c +106 -0
- data/ext/cheevd.c +139 -0
- data/ext/cheevr.c +186 -0
- data/ext/cheevx.c +156 -0
- data/ext/chegs2.c +91 -0
- data/ext/chegst.c +91 -0
- data/ext/chegv.c +136 -0
- data/ext/chegvd.c +169 -0
- data/ext/chegvx.c +186 -0
- data/ext/cherfs.c +149 -0
- data/ext/cherfsx.c +214 -0
- data/ext/chesv.c +119 -0
- data/ext/chesvx.c +179 -0
- data/ext/chesvxx.c +254 -0
- data/ext/chetd2.c +97 -0
- data/ext/chetf2.c +81 -0
- data/ext/chetrd.c +109 -0
- data/ext/chetrf.c +93 -0
- data/ext/chetri.c +88 -0
- data/ext/chetrs.c +99 -0
- data/ext/chetrs2.c +102 -0
- data/ext/chfrk.c +105 -0
- data/ext/chgeqz.c +204 -0
- data/ext/chla_transtype.c +47 -0
- data/ext/chpcon.c +81 -0
- data/ext/chpev.c +101 -0
- data/ext/chpevd.c +149 -0
- data/ext/chpevx.c +140 -0
- data/ext/chpgst.c +90 -0
- data/ext/chpgv.c +128 -0
- data/ext/chpgvd.c +166 -0
- data/ext/chpgvx.c +166 -0
- data/ext/chprfs.c +145 -0
- data/ext/chpsv.c +106 -0
- data/ext/chpsvx.c +159 -0
- data/ext/chptrd.c +96 -0
- data/ext/chptrf.c +80 -0
- data/ext/chptri.c +85 -0
- data/ext/chptrs.c +97 -0
- data/ext/chsein.c +181 -0
- data/ext/chseqr.c +141 -0
- data/ext/cla_gbamv.c +123 -0
- data/ext/cla_gbrcond_c.c +138 -0
- data/ext/cla_gbrcond_x.c +134 -0
- data/ext/cla_gbrfsx_extended.c +291 -0
- data/ext/cla_gbrpvgrw.c +83 -0
- data/ext/cla_geamv.c +113 -0
- data/ext/cla_gercond_c.c +130 -0
- data/ext/cla_gercond_x.c +126 -0
- data/ext/cla_gerfsx_extended.c +277 -0
- data/ext/cla_heamv.c +112 -0
- data/ext/cla_hercond_c.c +130 -0
- data/ext/cla_hercond_x.c +126 -0
- data/ext/cla_herfsx_extended.c +279 -0
- data/ext/cla_herpvgrw.c +103 -0
- data/ext/cla_lin_berr.c +80 -0
- data/ext/cla_porcond_c.c +118 -0
- data/ext/cla_porcond_x.c +114 -0
- data/ext/cla_porfsx_extended.c +267 -0
- data/ext/cla_porpvgrw.c +91 -0
- data/ext/cla_rpvgrw.c +75 -0
- data/ext/cla_syamv.c +111 -0
- data/ext/cla_syrcond_c.c +130 -0
- data/ext/cla_syrcond_x.c +126 -0
- data/ext/cla_syrfsx_extended.c +279 -0
- data/ext/cla_syrpvgrw.c +103 -0
- data/ext/cla_wwaddw.c +98 -0
- data/ext/clabrd.c +128 -0
- data/ext/clacgv.c +71 -0
- data/ext/clacn2.c +99 -0
- data/ext/clacon.c +76 -0
- data/ext/clacp2.c +73 -0
- data/ext/clacpy.c +73 -0
- data/ext/clacrm.c +86 -0
- data/ext/clacrt.c +104 -0
- data/ext/cladiv.c +53 -0
- data/ext/claed0.c +130 -0
- data/ext/claed7.c +243 -0
- data/ext/claed8.c +194 -0
- data/ext/claein.c +109 -0
- data/ext/claesy.c +70 -0
- data/ext/claev2.c +67 -0
- data/ext/clag2z.c +72 -0
- data/ext/clags2.c +88 -0
- data/ext/clagtm.c +128 -0
- data/ext/clahef.c +93 -0
- data/ext/clahqr.c +131 -0
- data/ext/clahr2.c +108 -0
- data/ext/clahrd.c +108 -0
- data/ext/claic1.c +86 -0
- data/ext/clals0.c +197 -0
- data/ext/clalsa.c +266 -0
- data/ext/clalsd.c +141 -0
- data/ext/clangb.c +72 -0
- data/ext/clange.c +70 -0
- data/ext/clangt.c +83 -0
- data/ext/clanhb.c +74 -0
- data/ext/clanhe.c +68 -0
- data/ext/clanhf.c +76 -0
- data/ext/clanhp.c +70 -0
- data/ext/clanhs.c +66 -0
- data/ext/clanht.c +71 -0
- data/ext/clansb.c +74 -0
- data/ext/clansp.c +70 -0
- data/ext/clansy.c +68 -0
- data/ext/clantb.c +76 -0
- data/ext/clantp.c +76 -0
- data/ext/clantr.c +78 -0
- data/ext/clapll.c +101 -0
- data/ext/clapmr.c +93 -0
- data/ext/clapmt.c +97 -0
- data/ext/claqgb.c +113 -0
- data/ext/claqge.c +105 -0
- data/ext/claqhb.c +93 -0
- data/ext/claqhe.c +93 -0
- data/ext/claqhp.c +90 -0
- data/ext/claqp2.c +154 -0
- data/ext/claqps.c +204 -0
- data/ext/claqr0.c +141 -0
- data/ext/claqr1.c +72 -0
- data/ext/claqr2.c +170 -0
- data/ext/claqr3.c +170 -0
- data/ext/claqr4.c +141 -0
- data/ext/claqr5.c +175 -0
- data/ext/claqsb.c +97 -0
- data/ext/claqsp.c +90 -0
- data/ext/claqsy.c +93 -0
- data/ext/clar1v.c +169 -0
- data/ext/clar2v.c +145 -0
- data/ext/clarcm.c +82 -0
- data/ext/clarf.c +98 -0
- data/ext/clarfb.c +119 -0
- data/ext/clarfg.c +80 -0
- data/ext/clarfgp.c +80 -0
- data/ext/clarft.c +101 -0
- data/ext/clarfx.c +90 -0
- data/ext/clargv.c +110 -0
- data/ext/clarnv.c +79 -0
- data/ext/clarrv.c +267 -0
- data/ext/clarscl2.c +78 -0
- data/ext/clartg.c +59 -0
- data/ext/clartv.c +126 -0
- data/ext/clarz.c +102 -0
- data/ext/clarzb.c +123 -0
- data/ext/clarzt.c +101 -0
- data/ext/clascl.c +93 -0
- data/ext/clascl2.c +78 -0
- data/ext/claset.c +84 -0
- data/ext/clasr.c +106 -0
- data/ext/classq.c +66 -0
- data/ext/claswp.c +90 -0
- data/ext/clasyf.c +93 -0
- data/ext/clatbs.c +126 -0
- data/ext/clatdf.c +115 -0
- data/ext/clatps.c +120 -0
- data/ext/clatrd.c +101 -0
- data/ext/clatrs.c +122 -0
- data/ext/clatrz.c +83 -0
- data/ext/clatzm.c +128 -0
- data/ext/clauu2.c +73 -0
- data/ext/clauum.c +73 -0
- data/ext/cpbcon.c +78 -0
- data/ext/cpbequ.c +79 -0
- data/ext/cpbrfs.c +141 -0
- data/ext/cpbstf.c +77 -0
- data/ext/cpbsv.c +103 -0
- data/ext/cpbsvx.c +197 -0
- data/ext/cpbtf2.c +77 -0
- data/ext/cpbtrf.c +77 -0
- data/ext/cpbtrs.c +91 -0
- data/ext/cpftrf.c +78 -0
- data/ext/cpftri.c +78 -0
- data/ext/cpftrs.c +93 -0
- data/ext/cpocon.c +74 -0
- data/ext/cpoequ.c +71 -0
- data/ext/cpoequb.c +71 -0
- data/ext/cporfs.c +137 -0
- data/ext/cporfsx.c +202 -0
- data/ext/cposv.c +99 -0
- data/ext/cposvx.c +193 -0
- data/ext/cposvxx.c +231 -0
- data/ext/cpotf2.c +73 -0
- data/ext/cpotrf.c +73 -0
- data/ext/cpotri.c +73 -0
- data/ext/cpotrs.c +87 -0
- data/ext/cppcon.c +74 -0
- data/ext/cppequ.c +75 -0
- data/ext/cpprfs.c +135 -0
- data/ext/cppsv.c +100 -0
- data/ext/cppsvx.c +187 -0
- data/ext/cpptrf.c +74 -0
- data/ext/cpptri.c +74 -0
- data/ext/cpptrs.c +89 -0
- data/ext/cpstf2.c +91 -0
- data/ext/cpstrf.c +91 -0
- data/ext/cptcon.c +77 -0
- data/ext/cpteqr.c +122 -0
- data/ext/cptrfs.c +157 -0
- data/ext/cptsv.c +115 -0
- data/ext/cptsvx.c +167 -0
- data/ext/cpttrf.c +89 -0
- data/ext/cpttrs.c +97 -0
- data/ext/cptts2.c +94 -0
- data/ext/crot.c +103 -0
- data/ext/cspcon.c +81 -0
- data/ext/cspmv.c +111 -0
- data/ext/cspr.c +92 -0
- data/ext/csprfs.c +145 -0
- data/ext/cspsv.c +106 -0
- data/ext/cspsvx.c +159 -0
- data/ext/csptrf.c +80 -0
- data/ext/csptri.c +85 -0
- data/ext/csptrs.c +97 -0
- data/ext/csrscl.c +75 -0
- data/ext/cstedc.c +173 -0
- data/ext/cstegr.c +184 -0
- data/ext/cstein.c +130 -0
- data/ext/cstemr.c +189 -0
- data/ext/csteqr.c +122 -0
- data/ext/csycon.c +83 -0
- data/ext/csyconv.c +80 -0
- data/ext/csyequb.c +78 -0
- data/ext/csymv.c +111 -0
- data/ext/csyr.c +91 -0
- data/ext/csyrfs.c +149 -0
- data/ext/csyrfsx.c +214 -0
- data/ext/csysv.c +125 -0
- data/ext/csysvx.c +179 -0
- data/ext/csysvxx.c +254 -0
- data/ext/csyswapr.c +78 -0
- data/ext/csytf2.c +81 -0
- data/ext/csytrf.c +93 -0
- data/ext/csytri.c +88 -0
- data/ext/csytri2.c +104 -0
- data/ext/csytri2x.c +92 -0
- data/ext/csytrs.c +99 -0
- data/ext/csytrs2.c +102 -0
- data/ext/ctbcon.c +82 -0
- data/ext/ctbrfs.c +123 -0
- data/ext/ctbtrs.c +99 -0
- data/ext/ctfsm.c +107 -0
- data/ext/ctftri.c +82 -0
- data/ext/ctfttp.c +75 -0
- data/ext/ctfttr.c +76 -0
- data/ext/ctgevc.c +152 -0
- data/ext/ctgex2.c +167 -0
- data/ext/ctgexc.c +168 -0
- data/ext/ctgsen.c +240 -0
- data/ext/ctgsja.c +223 -0
- data/ext/ctgsna.c +160 -0
- data/ext/ctgsy2.c +172 -0
- data/ext/ctgsyl.c +186 -0
- data/ext/ctpcon.c +78 -0
- data/ext/ctprfs.c +119 -0
- data/ext/ctptri.c +78 -0
- data/ext/ctptrs.c +97 -0
- data/ext/ctpttf.c +75 -0
- data/ext/ctpttr.c +72 -0
- data/ext/ctrcon.c +78 -0
- data/ext/ctrevc.c +150 -0
- data/ext/ctrexc.c +107 -0
- data/ext/ctrrfs.c +119 -0
- data/ext/ctrsen.c +150 -0
- data/ext/ctrsna.c +133 -0
- data/ext/ctrsyl.c +112 -0
- data/ext/ctrti2.c +77 -0
- data/ext/ctrtri.c +77 -0
- data/ext/ctrtrs.c +95 -0
- data/ext/ctrttf.c +73 -0
- data/ext/ctrttp.c +69 -0
- data/ext/ctzrqf.c +79 -0
- data/ext/ctzrzf.c +97 -0
- data/ext/cunbdb.c +228 -0
- data/ext/cuncsd.c +200 -0
- data/ext/cung2l.c +88 -0
- data/ext/cung2r.c +88 -0
- data/ext/cungbr.c +111 -0
- data/ext/cunghr.c +107 -0
- data/ext/cungl2.c +86 -0
- data/ext/cunglq.c +103 -0
- data/ext/cungql.c +103 -0
- data/ext/cungqr.c +103 -0
- data/ext/cungr2.c +86 -0
- data/ext/cungrq.c +103 -0
- data/ext/cungtr.c +103 -0
- data/ext/cunm2l.c +110 -0
- data/ext/cunm2r.c +110 -0
- data/ext/cunmbr.c +135 -0
- data/ext/cunmhr.c +129 -0
- data/ext/cunml2.c +106 -0
- data/ext/cunmlq.c +121 -0
- data/ext/cunmql.c +125 -0
- data/ext/cunmqr.c +125 -0
- data/ext/cunmr2.c +106 -0
- data/ext/cunmr3.c +110 -0
- data/ext/cunmrq.c +121 -0
- data/ext/cunmrz.c +125 -0
- data/ext/cunmtr.c +125 -0
- data/ext/cupgtr.c +87 -0
- data/ext/cupmtr.c +112 -0
- data/ext/dbbcsd.c +283 -0
- data/ext/dbdsdc.c +147 -0
- data/ext/dbdsqr.c +178 -0
- data/ext/ddisna.c +71 -0
- data/ext/dgbbrd.c +150 -0
- data/ext/dgbcon.c +94 -0
- data/ext/dgbequ.c +94 -0
- data/ext/dgbequb.c +92 -0
- data/ext/dgbrfs.c +157 -0
- data/ext/dgbrfsx.c +245 -0
- data/ext/dgbsv.c +111 -0
- data/ext/dgbsvx.c +282 -0
- data/ext/dgbsvxx.c +285 -0
- data/ext/dgbtf2.c +89 -0
- data/ext/dgbtrf.c +89 -0
- data/ext/dgbtrs.c +107 -0
- data/ext/dgebak.c +97 -0
- data/ext/dgebal.c +87 -0
- data/ext/dgebd2.c +108 -0
- data/ext/dgebrd.c +123 -0
- data/ext/dgecon.c +74 -0
- data/ext/dgeequ.c +84 -0
- data/ext/dgeequb.c +84 -0
- data/ext/dgees.c +144 -0
- data/ext/dgeesx.c +166 -0
- data/ext/dgeev.c +133 -0
- data/ext/dgeevx.c +177 -0
- data/ext/dgegs.c +167 -0
- data/ext/dgegv.c +167 -0
- data/ext/dgehd2.c +88 -0
- data/ext/dgehrd.c +103 -0
- data/ext/dgejsv.c +155 -0
- data/ext/dgelq2.c +82 -0
- data/ext/dgelqf.c +99 -0
- data/ext/dgels.c +133 -0
- data/ext/dgelsd.c +145 -0
- data/ext/dgelss.c +144 -0
- data/ext/dgelsx.c +132 -0
- data/ext/dgelsy.c +159 -0
- data/ext/dgeql2.c +84 -0
- data/ext/dgeqlf.c +99 -0
- data/ext/dgeqp3.c +122 -0
- data/ext/dgeqpf.c +107 -0
- data/ext/dgeqr2.c +84 -0
- data/ext/dgeqr2p.c +84 -0
- data/ext/dgeqrf.c +99 -0
- data/ext/dgeqrfp.c +99 -0
- data/ext/dgerfs.c +149 -0
- data/ext/dgerfsx.c +215 -0
- data/ext/dgerq2.c +82 -0
- data/ext/dgerqf.c +99 -0
- data/ext/dgesc2.c +104 -0
- data/ext/dgesdd.c +128 -0
- data/ext/dgesv.c +103 -0
- data/ext/dgesvd.c +139 -0
- data/ext/dgesvj.c +152 -0
- data/ext/dgesvx.c +274 -0
- data/ext/dgesvxx.c +277 -0
- data/ext/dgetc2.c +85 -0
- data/ext/dgetf2.c +81 -0
- data/ext/dgetrf.c +81 -0
- data/ext/dgetri.c +99 -0
- data/ext/dgetrs.c +99 -0
- data/ext/dggbak.c +109 -0
- data/ext/dggbal.c +124 -0
- data/ext/dgges.c +194 -0
- data/ext/dggesx.c +227 -0
- data/ext/dggev.c +167 -0
- data/ext/dggevx.c +225 -0
- data/ext/dggglm.c +152 -0
- data/ext/dgghrd.c +163 -0
- data/ext/dgglse.c +167 -0
- data/ext/dggqrf.c +133 -0
- data/ext/dggrqf.c +137 -0
- data/ext/dggsvd.c +177 -0
- data/ext/dggsvp.c +167 -0
- data/ext/dgsvj0.c +178 -0
- data/ext/dgsvj1.c +182 -0
- data/ext/dgtcon.c +120 -0
- data/ext/dgtrfs.c +205 -0
- data/ext/dgtsv.c +138 -0
- data/ext/dgtsvx.c +252 -0
- data/ext/dgttrf.c +128 -0
- data/ext/dgttrs.c +133 -0
- data/ext/dgtts2.c +130 -0
- data/ext/dhgeqz.c +209 -0
- data/ext/dhsein.c +201 -0
- data/ext/dhseqr.c +149 -0
- data/ext/disnan.c +47 -0
- data/ext/dla_gbamv.c +125 -0
- data/ext/dla_gbrcond.c +138 -0
- data/ext/dla_gbrfsx_extended.c +289 -0
- data/ext/dla_gbrpvgrw.c +83 -0
- data/ext/dla_geamv.c +115 -0
- data/ext/dla_gercond.c +130 -0
- data/ext/dla_gerfsx_extended.c +277 -0
- data/ext/dla_lin_berr.c +80 -0
- data/ext/dla_porcond.c +118 -0
- data/ext/dla_porfsx_extended.c +267 -0
- data/ext/dla_porpvgrw.c +91 -0
- data/ext/dla_rpvgrw.c +75 -0
- data/ext/dla_syamv.c +109 -0
- data/ext/dla_syrcond.c +130 -0
- data/ext/dla_syrfsx_extended.c +279 -0
- data/ext/dla_syrpvgrw.c +103 -0
- data/ext/dla_wwaddw.c +98 -0
- data/ext/dlabad.c +50 -0
- data/ext/dlabrd.c +128 -0
- data/ext/dlacn2.c +102 -0
- data/ext/dlacon.c +79 -0
- data/ext/dlacpy.c +73 -0
- data/ext/dladiv.c +62 -0
- data/ext/dlae2.c +58 -0
- data/ext/dlaebz.c +214 -0
- data/ext/dlaed0.c +123 -0
- data/ext/dlaed1.c +129 -0
- data/ext/dlaed2.c +185 -0
- data/ext/dlaed3.c +157 -0
- data/ext/dlaed4.c +86 -0
- data/ext/dlaed5.c +83 -0
- data/ext/dlaed6.c +86 -0
- data/ext/dlaed7.c +244 -0
- data/ext/dlaed8.c +202 -0
- data/ext/dlaed9.c +107 -0
- data/ext/dlaeda.c +156 -0
- data/ext/dlaein.c +139 -0
- data/ext/dlaev2.c +64 -0
- data/ext/dlaexc.c +114 -0
- data/ext/dlag2.c +87 -0
- data/ext/dlag2s.c +72 -0
- data/ext/dlags2.c +86 -0
- data/ext/dlagtf.c +136 -0
- data/ext/dlagtm.c +128 -0
- data/ext/dlagts.c +135 -0
- data/ext/dlagv2.c +128 -0
- data/ext/dlahqr.c +139 -0
- data/ext/dlahr2.c +108 -0
- data/ext/dlahrd.c +108 -0
- data/ext/dlaic1.c +85 -0
- data/ext/dlaln2.c +116 -0
- data/ext/dlals0.c +197 -0
- data/ext/dlalsa.c +266 -0
- data/ext/dlalsd.c +138 -0
- data/ext/dlamrg.c +76 -0
- data/ext/dlaneg.c +79 -0
- data/ext/dlangb.c +74 -0
- data/ext/dlange.c +70 -0
- data/ext/dlangt.c +83 -0
- data/ext/dlanhs.c +66 -0
- data/ext/dlansb.c +74 -0
- data/ext/dlansf.c +76 -0
- data/ext/dlansp.c +72 -0
- data/ext/dlanst.c +71 -0
- data/ext/dlansy.c +70 -0
- data/ext/dlantb.c +78 -0
- data/ext/dlantp.c +76 -0
- data/ext/dlantr.c +78 -0
- data/ext/dlanv2.c +78 -0
- data/ext/dlapll.c +101 -0
- data/ext/dlapmr.c +93 -0
- data/ext/dlapmt.c +97 -0
- data/ext/dlapy2.c +51 -0
- data/ext/dlapy3.c +55 -0
- data/ext/dlaqgb.c +113 -0
- data/ext/dlaqge.c +105 -0
- data/ext/dlaqp2.c +154 -0
- data/ext/dlaqps.c +204 -0
- data/ext/dlaqr0.c +149 -0
- data/ext/dlaqr1.c +78 -0
- data/ext/dlaqr2.c +178 -0
- data/ext/dlaqr3.c +178 -0
- data/ext/dlaqr4.c +149 -0
- data/ext/dlaqr5.c +196 -0
- data/ext/dlaqsb.c +97 -0
- data/ext/dlaqsp.c +90 -0
- data/ext/dlaqsy.c +93 -0
- data/ext/dlaqtr.c +110 -0
- data/ext/dlar1v.c +169 -0
- data/ext/dlar2v.c +145 -0
- data/ext/dlarf.c +97 -0
- data/ext/dlarfb.c +119 -0
- data/ext/dlarfg.c +79 -0
- data/ext/dlarfgp.c +79 -0
- data/ext/dlarft.c +101 -0
- data/ext/dlarfx.c +89 -0
- data/ext/dlargv.c +110 -0
- data/ext/dlarnv.c +79 -0
- data/ext/dlarra.c +120 -0
- data/ext/dlarrb.c +174 -0
- data/ext/dlarrc.c +92 -0
- data/ext/dlarrd.c +186 -0
- data/ext/dlarre.c +217 -0
- data/ext/dlarrf.c +172 -0
- data/ext/dlarrj.c +143 -0
- data/ext/dlarrk.c +93 -0
- data/ext/dlarrr.c +78 -0
- data/ext/dlarrv.c +267 -0
- data/ext/dlarscl2.c +78 -0
- data/ext/dlartg.c +57 -0
- data/ext/dlartgp.c +57 -0
- data/ext/dlartgs.c +58 -0
- data/ext/dlartv.c +126 -0
- data/ext/dlaruv.c +75 -0
- data/ext/dlarz.c +101 -0
- data/ext/dlarzb.c +123 -0
- data/ext/dlarzt.c +101 -0
- data/ext/dlas2.c +58 -0
- data/ext/dlascl.c +93 -0
- data/ext/dlascl2.c +78 -0
- data/ext/dlasd0.c +116 -0
- data/ext/dlasd1.c +158 -0
- data/ext/dlasd2.c +224 -0
- data/ext/dlasd3.c +198 -0
- data/ext/dlasd4.c +89 -0
- data/ext/dlasd5.c +86 -0
- data/ext/dlasd6.c +232 -0
- data/ext/dlasd7.c +221 -0
- data/ext/dlasd8.c +169 -0
- data/ext/dlasda.c +217 -0
- data/ext/dlasdq.c +182 -0
- data/ext/dlasdt.c +78 -0
- data/ext/dlaset.c +82 -0
- data/ext/dlasq1.c +92 -0
- data/ext/dlasq2.c +70 -0
- data/ext/dlasq3.c +134 -0
- data/ext/dlasq4.c +103 -0
- data/ext/dlasq5.c +90 -0
- data/ext/dlasq6.c +82 -0
- data/ext/dlasr.c +106 -0
- data/ext/dlasrt.c +70 -0
- data/ext/dlassq.c +66 -0
- data/ext/dlasv2.c +70 -0
- data/ext/dlaswp.c +90 -0
- data/ext/dlasy2.c +122 -0
- data/ext/dlasyf.c +93 -0
- data/ext/dlat2s.c +72 -0
- data/ext/dlatbs.c +126 -0
- data/ext/dlatdf.c +115 -0
- data/ext/dlatps.c +120 -0
- data/ext/dlatrd.c +101 -0
- data/ext/dlatrs.c +122 -0
- data/ext/dlatrz.c +83 -0
- data/ext/dlatzm.c +127 -0
- data/ext/dlauu2.c +73 -0
- data/ext/dlauum.c +73 -0
- data/ext/dopgtr.c +87 -0
- data/ext/dopmtr.c +112 -0
- data/ext/dorbdb.c +228 -0
- data/ext/dorcsd.c +193 -0
- data/ext/dorg2l.c +88 -0
- data/ext/dorg2r.c +88 -0
- data/ext/dorgbr.c +111 -0
- data/ext/dorghr.c +107 -0
- data/ext/dorgl2.c +86 -0
- data/ext/dorglq.c +103 -0
- data/ext/dorgql.c +103 -0
- data/ext/dorgqr.c +103 -0
- data/ext/dorgr2.c +86 -0
- data/ext/dorgrq.c +103 -0
- data/ext/dorgtr.c +103 -0
- data/ext/dorm2l.c +110 -0
- data/ext/dorm2r.c +110 -0
- data/ext/dormbr.c +135 -0
- data/ext/dormhr.c +129 -0
- data/ext/dorml2.c +106 -0
- data/ext/dormlq.c +121 -0
- data/ext/dormql.c +125 -0
- data/ext/dormqr.c +125 -0
- data/ext/dormr2.c +106 -0
- data/ext/dormr3.c +110 -0
- data/ext/dormrq.c +121 -0
- data/ext/dormrz.c +125 -0
- data/ext/dormtr.c +125 -0
- data/ext/dpbcon.c +78 -0
- data/ext/dpbequ.c +79 -0
- data/ext/dpbrfs.c +141 -0
- data/ext/dpbstf.c +77 -0
- data/ext/dpbsv.c +103 -0
- data/ext/dpbsvx.c +197 -0
- data/ext/dpbtf2.c +77 -0
- data/ext/dpbtrf.c +77 -0
- data/ext/dpbtrs.c +91 -0
- data/ext/dpftrf.c +78 -0
- data/ext/dpftri.c +78 -0
- data/ext/dpftrs.c +93 -0
- data/ext/dpocon.c +74 -0
- data/ext/dpoequ.c +71 -0
- data/ext/dpoequb.c +71 -0
- data/ext/dporfs.c +137 -0
- data/ext/dporfsx.c +202 -0
- data/ext/dposv.c +99 -0
- data/ext/dposvx.c +193 -0
- data/ext/dposvxx.c +231 -0
- data/ext/dpotf2.c +73 -0
- data/ext/dpotrf.c +73 -0
- data/ext/dpotri.c +73 -0
- data/ext/dpotrs.c +87 -0
- data/ext/dppcon.c +74 -0
- data/ext/dppequ.c +75 -0
- data/ext/dpprfs.c +135 -0
- data/ext/dppsv.c +100 -0
- data/ext/dppsvx.c +187 -0
- data/ext/dpptrf.c +74 -0
- data/ext/dpptri.c +74 -0
- data/ext/dpptrs.c +89 -0
- data/ext/dpstf2.c +91 -0
- data/ext/dpstrf.c +91 -0
- data/ext/dptcon.c +77 -0
- data/ext/dpteqr.c +122 -0
- data/ext/dptrfs.c +150 -0
- data/ext/dptsv.c +115 -0
- data/ext/dptsvx.c +164 -0
- data/ext/dpttrf.c +89 -0
- data/ext/dpttrs.c +93 -0
- data/ext/dptts2.c +90 -0
- data/ext/drscl.c +75 -0
- data/ext/dsbev.c +103 -0
- data/ext/dsbevd.c +136 -0
- data/ext/dsbevx.c +153 -0
- data/ext/dsbgst.c +113 -0
- data/ext/dsbgv.c +133 -0
- data/ext/dsbgvd.c +166 -0
- data/ext/dsbgvx.c +193 -0
- data/ext/dsbtrd.c +126 -0
- data/ext/dsfrk.c +105 -0
- data/ext/dsgesv.c +111 -0
- data/ext/dspcon.c +84 -0
- data/ext/dspev.c +98 -0
- data/ext/dspevd.c +131 -0
- data/ext/dspevx.c +137 -0
- data/ext/dspgst.c +90 -0
- data/ext/dspgv.c +125 -0
- data/ext/dspgvd.c +158 -0
- data/ext/dspgvx.c +164 -0
- data/ext/dsposv.c +107 -0
- data/ext/dsprfs.c +145 -0
- data/ext/dspsv.c +106 -0
- data/ext/dspsvx.c +159 -0
- data/ext/dsptrd.c +96 -0
- data/ext/dsptrf.c +80 -0
- data/ext/dsptri.c +85 -0
- data/ext/dsptrs.c +97 -0
- data/ext/dstebz.c +131 -0
- data/ext/dstedc.c +155 -0
- data/ext/dstegr.c +184 -0
- data/ext/dstein.c +130 -0
- data/ext/dstemr.c +189 -0
- data/ext/dsteqr.c +122 -0
- data/ext/dsterf.c +89 -0
- data/ext/dstev.c +107 -0
- data/ext/dstevd.c +140 -0
- data/ext/dstevr.c +184 -0
- data/ext/dstevx.c +154 -0
- data/ext/dsycon.c +86 -0
- data/ext/dsyconv.c +80 -0
- data/ext/dsyequb.c +78 -0
- data/ext/dsyev.c +103 -0
- data/ext/dsyevd.c +121 -0
- data/ext/dsyevr.c +168 -0
- data/ext/dsyevx.c +153 -0
- data/ext/dsygs2.c +91 -0
- data/ext/dsygst.c +91 -0
- data/ext/dsygv.c +133 -0
- data/ext/dsygvd.c +151 -0
- data/ext/dsygvx.c +183 -0
- data/ext/dsyrfs.c +149 -0
- data/ext/dsyrfsx.c +214 -0
- data/ext/dsysv.c +125 -0
- data/ext/dsysvx.c +179 -0
- data/ext/dsysvxx.c +254 -0
- data/ext/dsyswapr.c +78 -0
- data/ext/dsytd2.c +97 -0
- data/ext/dsytf2.c +81 -0
- data/ext/dsytrd.c +109 -0
- data/ext/dsytrf.c +93 -0
- data/ext/dsytri.c +88 -0
- data/ext/dsytri2.c +104 -0
- data/ext/dsytri2x.c +92 -0
- data/ext/dsytrs.c +99 -0
- data/ext/dsytrs2.c +102 -0
- data/ext/dtbcon.c +82 -0
- data/ext/dtbrfs.c +123 -0
- data/ext/dtbtrs.c +99 -0
- data/ext/dtfsm.c +106 -0
- data/ext/dtftri.c +82 -0
- data/ext/dtfttp.c +75 -0
- data/ext/dtfttr.c +76 -0
- data/ext/dtgevc.c +149 -0
- data/ext/dtgex2.c +176 -0
- data/ext/dtgexc.c +183 -0
- data/ext/dtgsen.c +248 -0
- data/ext/dtgsja.c +223 -0
- data/ext/dtgsna.c +160 -0
- data/ext/dtgsy2.c +178 -0
- data/ext/dtgsyl.c +186 -0
- data/ext/dtpcon.c +78 -0
- data/ext/dtprfs.c +119 -0
- data/ext/dtptri.c +78 -0
- data/ext/dtptrs.c +97 -0
- data/ext/dtpttf.c +75 -0
- data/ext/dtpttr.c +72 -0
- data/ext/dtrcon.c +78 -0
- data/ext/dtrevc.c +146 -0
- data/ext/dtrexc.c +112 -0
- data/ext/dtrrfs.c +119 -0
- data/ext/dtrsen.c +165 -0
- data/ext/dtrsna.c +133 -0
- data/ext/dtrsyl.c +112 -0
- data/ext/dtrti2.c +77 -0
- data/ext/dtrtri.c +77 -0
- data/ext/dtrtrs.c +95 -0
- data/ext/dtrttf.c +73 -0
- data/ext/dtrttp.c +69 -0
- data/ext/dtzrqf.c +79 -0
- data/ext/dtzrzf.c +97 -0
- data/ext/dzsum1.c +59 -0
- data/ext/extconf.rb +136 -0
- data/ext/f2c_minimal.h +36 -0
- data/ext/icmax1.c +59 -0
- data/ext/ieeeck.c +55 -0
- data/ext/ilaclc.c +61 -0
- data/ext/ilaclr.c +61 -0
- data/ext/iladiag.c +47 -0
- data/ext/iladlc.c +61 -0
- data/ext/iladlr.c +61 -0
- data/ext/ilaenv.c +71 -0
- data/ext/ilaprec.c +47 -0
- data/ext/ilaslc.c +61 -0
- data/ext/ilaslr.c +61 -0
- data/ext/ilatrans.c +47 -0
- data/ext/ilauplo.c +47 -0
- data/ext/ilaver.c +49 -0
- data/ext/ilazlc.c +61 -0
- data/ext/ilazlr.c +61 -0
- data/ext/iparmq.c +71 -0
- data/ext/izmax1.c +59 -0
- data/ext/lsamen.c +55 -0
- data/ext/rb_lapack.c +3279 -0
- data/ext/rb_lapack.h +18 -0
- data/ext/sbbcsd.c +283 -0
- data/ext/sbdsdc.c +153 -0
- data/ext/sbdsqr.c +178 -0
- data/ext/scsum1.c +59 -0
- data/ext/sdisna.c +71 -0
- data/ext/sgbbrd.c +150 -0
- data/ext/sgbcon.c +94 -0
- data/ext/sgbequ.c +94 -0
- data/ext/sgbequb.c +92 -0
- data/ext/sgbrfs.c +157 -0
- data/ext/sgbrfsx.c +245 -0
- data/ext/sgbsv.c +111 -0
- data/ext/sgbsvx.c +282 -0
- data/ext/sgbsvxx.c +285 -0
- data/ext/sgbtf2.c +89 -0
- data/ext/sgbtrf.c +89 -0
- data/ext/sgbtrs.c +107 -0
- data/ext/sgebak.c +97 -0
- data/ext/sgebal.c +87 -0
- data/ext/sgebd2.c +108 -0
- data/ext/sgebrd.c +123 -0
- data/ext/sgecon.c +74 -0
- data/ext/sgeequ.c +84 -0
- data/ext/sgeequb.c +84 -0
- data/ext/sgees.c +144 -0
- data/ext/sgeesx.c +166 -0
- data/ext/sgeev.c +133 -0
- data/ext/sgeevx.c +177 -0
- data/ext/sgegs.c +167 -0
- data/ext/sgegv.c +167 -0
- data/ext/sgehd2.c +88 -0
- data/ext/sgehrd.c +103 -0
- data/ext/sgejsv.c +155 -0
- data/ext/sgelq2.c +82 -0
- data/ext/sgelqf.c +99 -0
- data/ext/sgels.c +133 -0
- data/ext/sgelsd.c +145 -0
- data/ext/sgelss.c +144 -0
- data/ext/sgelsx.c +132 -0
- data/ext/sgelsy.c +159 -0
- data/ext/sgeql2.c +84 -0
- data/ext/sgeqlf.c +99 -0
- data/ext/sgeqp3.c +122 -0
- data/ext/sgeqpf.c +107 -0
- data/ext/sgeqr2.c +84 -0
- data/ext/sgeqr2p.c +84 -0
- data/ext/sgeqrf.c +99 -0
- data/ext/sgeqrfp.c +99 -0
- data/ext/sgerfs.c +149 -0
- data/ext/sgerfsx.c +215 -0
- data/ext/sgerq2.c +82 -0
- data/ext/sgerqf.c +99 -0
- data/ext/sgesc2.c +104 -0
- data/ext/sgesdd.c +128 -0
- data/ext/sgesv.c +103 -0
- data/ext/sgesvd.c +139 -0
- data/ext/sgesvj.c +152 -0
- data/ext/sgesvx.c +274 -0
- data/ext/sgesvxx.c +277 -0
- data/ext/sgetc2.c +85 -0
- data/ext/sgetf2.c +81 -0
- data/ext/sgetrf.c +81 -0
- data/ext/sgetri.c +99 -0
- data/ext/sgetrs.c +99 -0
- data/ext/sggbak.c +109 -0
- data/ext/sggbal.c +124 -0
- data/ext/sgges.c +194 -0
- data/ext/sggesx.c +227 -0
- data/ext/sggev.c +167 -0
- data/ext/sggevx.c +225 -0
- data/ext/sggglm.c +152 -0
- data/ext/sgghrd.c +163 -0
- data/ext/sgglse.c +167 -0
- data/ext/sggqrf.c +133 -0
- data/ext/sggrqf.c +137 -0
- data/ext/sggsvd.c +177 -0
- data/ext/sggsvp.c +167 -0
- data/ext/sgsvj0.c +178 -0
- data/ext/sgsvj1.c +182 -0
- data/ext/sgtcon.c +120 -0
- data/ext/sgtrfs.c +205 -0
- data/ext/sgtsv.c +138 -0
- data/ext/sgtsvx.c +252 -0
- data/ext/sgttrf.c +128 -0
- data/ext/sgttrs.c +133 -0
- data/ext/sgtts2.c +130 -0
- data/ext/shgeqz.c +209 -0
- data/ext/shsein.c +201 -0
- data/ext/shseqr.c +149 -0
- data/ext/sisnan.c +47 -0
- data/ext/sla_gbamv.c +125 -0
- data/ext/sla_gbrcond.c +138 -0
- data/ext/sla_gbrfsx_extended.c +287 -0
- data/ext/sla_gbrpvgrw.c +83 -0
- data/ext/sla_geamv.c +115 -0
- data/ext/sla_gercond.c +130 -0
- data/ext/sla_gerfsx_extended.c +279 -0
- data/ext/sla_lin_berr.c +80 -0
- data/ext/sla_porcond.c +118 -0
- data/ext/sla_porfsx_extended.c +267 -0
- data/ext/sla_porpvgrw.c +91 -0
- data/ext/sla_rpvgrw.c +75 -0
- data/ext/sla_syamv.c +112 -0
- data/ext/sla_syrcond.c +130 -0
- data/ext/sla_syrfsx_extended.c +279 -0
- data/ext/sla_syrpvgrw.c +103 -0
- data/ext/sla_wwaddw.c +98 -0
- data/ext/slabad.c +50 -0
- data/ext/slabrd.c +128 -0
- data/ext/slacn2.c +102 -0
- data/ext/slacon.c +79 -0
- data/ext/slacpy.c +73 -0
- data/ext/sladiv.c +62 -0
- data/ext/slae2.c +58 -0
- data/ext/slaebz.c +214 -0
- data/ext/slaed0.c +123 -0
- data/ext/slaed1.c +129 -0
- data/ext/slaed2.c +185 -0
- data/ext/slaed3.c +157 -0
- data/ext/slaed4.c +86 -0
- data/ext/slaed5.c +83 -0
- data/ext/slaed6.c +86 -0
- data/ext/slaed7.c +244 -0
- data/ext/slaed8.c +202 -0
- data/ext/slaed9.c +107 -0
- data/ext/slaeda.c +156 -0
- data/ext/slaein.c +139 -0
- data/ext/slaev2.c +64 -0
- data/ext/slaexc.c +114 -0
- data/ext/slag2.c +87 -0
- data/ext/slag2d.c +72 -0
- data/ext/slags2.c +86 -0
- data/ext/slagtf.c +136 -0
- data/ext/slagtm.c +128 -0
- data/ext/slagts.c +135 -0
- data/ext/slagv2.c +128 -0
- data/ext/slahqr.c +139 -0
- data/ext/slahr2.c +108 -0
- data/ext/slahrd.c +110 -0
- data/ext/slaic1.c +85 -0
- data/ext/slaln2.c +116 -0
- data/ext/slals0.c +197 -0
- data/ext/slalsa.c +266 -0
- data/ext/slalsd.c +138 -0
- data/ext/slamrg.c +76 -0
- data/ext/slaneg.c +79 -0
- data/ext/slangb.c +74 -0
- data/ext/slange.c +70 -0
- data/ext/slangt.c +83 -0
- data/ext/slanhs.c +66 -0
- data/ext/slansb.c +74 -0
- data/ext/slansf.c +74 -0
- data/ext/slansp.c +72 -0
- data/ext/slanst.c +71 -0
- data/ext/slansy.c +70 -0
- data/ext/slantb.c +78 -0
- data/ext/slantp.c +76 -0
- data/ext/slantr.c +78 -0
- data/ext/slanv2.c +78 -0
- data/ext/slapll.c +101 -0
- data/ext/slapmr.c +93 -0
- data/ext/slapmt.c +97 -0
- data/ext/slapy2.c +51 -0
- data/ext/slapy3.c +55 -0
- data/ext/slaqgb.c +113 -0
- data/ext/slaqge.c +105 -0
- data/ext/slaqp2.c +154 -0
- data/ext/slaqps.c +204 -0
- data/ext/slaqr0.c +149 -0
- data/ext/slaqr1.c +78 -0
- data/ext/slaqr2.c +178 -0
- data/ext/slaqr3.c +178 -0
- data/ext/slaqr4.c +149 -0
- data/ext/slaqr5.c +196 -0
- data/ext/slaqsb.c +97 -0
- data/ext/slaqsp.c +90 -0
- data/ext/slaqsy.c +93 -0
- data/ext/slaqtr.c +110 -0
- data/ext/slar1v.c +169 -0
- data/ext/slar2v.c +145 -0
- data/ext/slarf.c +97 -0
- data/ext/slarfb.c +119 -0
- data/ext/slarfg.c +79 -0
- data/ext/slarfgp.c +79 -0
- data/ext/slarft.c +101 -0
- data/ext/slarfx.c +89 -0
- data/ext/slargv.c +110 -0
- data/ext/slarnv.c +79 -0
- data/ext/slarra.c +120 -0
- data/ext/slarrb.c +174 -0
- data/ext/slarrc.c +92 -0
- data/ext/slarrd.c +186 -0
- data/ext/slarre.c +217 -0
- data/ext/slarrf.c +172 -0
- data/ext/slarrj.c +143 -0
- data/ext/slarrk.c +93 -0
- data/ext/slarrr.c +78 -0
- data/ext/slarrv.c +267 -0
- data/ext/slarscl2.c +78 -0
- data/ext/slartg.c +57 -0
- data/ext/slartgp.c +57 -0
- data/ext/slartgs.c +58 -0
- data/ext/slartv.c +126 -0
- data/ext/slaruv.c +75 -0
- data/ext/slarz.c +101 -0
- data/ext/slarzb.c +123 -0
- data/ext/slarzt.c +101 -0
- data/ext/slas2.c +58 -0
- data/ext/slascl.c +93 -0
- data/ext/slascl2.c +78 -0
- data/ext/slasd0.c +116 -0
- data/ext/slasd1.c +156 -0
- data/ext/slasd2.c +224 -0
- data/ext/slasd3.c +208 -0
- data/ext/slasd4.c +89 -0
- data/ext/slasd5.c +86 -0
- data/ext/slasd6.c +232 -0
- data/ext/slasd7.c +221 -0
- data/ext/slasd8.c +169 -0
- data/ext/slasda.c +217 -0
- data/ext/slasdq.c +182 -0
- data/ext/slasdt.c +78 -0
- data/ext/slaset.c +82 -0
- data/ext/slasq1.c +92 -0
- data/ext/slasq2.c +70 -0
- data/ext/slasq3.c +134 -0
- data/ext/slasq4.c +103 -0
- data/ext/slasq5.c +90 -0
- data/ext/slasq6.c +82 -0
- data/ext/slasr.c +106 -0
- data/ext/slasrt.c +70 -0
- data/ext/slassq.c +66 -0
- data/ext/slasv2.c +70 -0
- data/ext/slaswp.c +90 -0
- data/ext/slasy2.c +122 -0
- data/ext/slasyf.c +93 -0
- data/ext/slatbs.c +126 -0
- data/ext/slatdf.c +115 -0
- data/ext/slatps.c +120 -0
- data/ext/slatrd.c +101 -0
- data/ext/slatrs.c +122 -0
- data/ext/slatrz.c +83 -0
- data/ext/slatzm.c +127 -0
- data/ext/slauu2.c +73 -0
- data/ext/slauum.c +73 -0
- data/ext/sopgtr.c +87 -0
- data/ext/sopmtr.c +112 -0
- data/ext/sorbdb.c +228 -0
- data/ext/sorcsd.c +193 -0
- data/ext/sorg2l.c +88 -0
- data/ext/sorg2r.c +88 -0
- data/ext/sorgbr.c +111 -0
- data/ext/sorghr.c +107 -0
- data/ext/sorgl2.c +86 -0
- data/ext/sorglq.c +103 -0
- data/ext/sorgql.c +103 -0
- data/ext/sorgqr.c +103 -0
- data/ext/sorgr2.c +86 -0
- data/ext/sorgrq.c +103 -0
- data/ext/sorgtr.c +103 -0
- data/ext/sorm2l.c +110 -0
- data/ext/sorm2r.c +110 -0
- data/ext/sormbr.c +135 -0
- data/ext/sormhr.c +129 -0
- data/ext/sorml2.c +106 -0
- data/ext/sormlq.c +121 -0
- data/ext/sormql.c +125 -0
- data/ext/sormqr.c +125 -0
- data/ext/sormr2.c +106 -0
- data/ext/sormr3.c +110 -0
- data/ext/sormrq.c +121 -0
- data/ext/sormrz.c +125 -0
- data/ext/sormtr.c +125 -0
- data/ext/spbcon.c +78 -0
- data/ext/spbequ.c +79 -0
- data/ext/spbrfs.c +141 -0
- data/ext/spbstf.c +77 -0
- data/ext/spbsv.c +103 -0
- data/ext/spbsvx.c +197 -0
- data/ext/spbtf2.c +77 -0
- data/ext/spbtrf.c +77 -0
- data/ext/spbtrs.c +91 -0
- data/ext/spftrf.c +78 -0
- data/ext/spftri.c +78 -0
- data/ext/spftrs.c +93 -0
- data/ext/spocon.c +74 -0
- data/ext/spoequ.c +71 -0
- data/ext/spoequb.c +71 -0
- data/ext/sporfs.c +137 -0
- data/ext/sporfsx.c +202 -0
- data/ext/sposv.c +99 -0
- data/ext/sposvx.c +193 -0
- data/ext/sposvxx.c +231 -0
- data/ext/spotf2.c +73 -0
- data/ext/spotrf.c +73 -0
- data/ext/spotri.c +73 -0
- data/ext/spotrs.c +87 -0
- data/ext/sppcon.c +74 -0
- data/ext/sppequ.c +75 -0
- data/ext/spprfs.c +135 -0
- data/ext/sppsv.c +100 -0
- data/ext/sppsvx.c +187 -0
- data/ext/spptrf.c +74 -0
- data/ext/spptri.c +74 -0
- data/ext/spptrs.c +89 -0
- data/ext/spstf2.c +91 -0
- data/ext/spstrf.c +91 -0
- data/ext/sptcon.c +77 -0
- data/ext/spteqr.c +122 -0
- data/ext/sptrfs.c +150 -0
- data/ext/sptsv.c +115 -0
- data/ext/sptsvx.c +164 -0
- data/ext/spttrf.c +89 -0
- data/ext/spttrs.c +93 -0
- data/ext/sptts2.c +90 -0
- data/ext/srscl.c +75 -0
- data/ext/ssbev.c +103 -0
- data/ext/ssbevd.c +136 -0
- data/ext/ssbevx.c +153 -0
- data/ext/ssbgst.c +113 -0
- data/ext/ssbgv.c +133 -0
- data/ext/ssbgvd.c +166 -0
- data/ext/ssbgvx.c +193 -0
- data/ext/ssbtrd.c +126 -0
- data/ext/ssfrk.c +105 -0
- data/ext/sspcon.c +84 -0
- data/ext/sspev.c +98 -0
- data/ext/sspevd.c +131 -0
- data/ext/sspevx.c +137 -0
- data/ext/sspgst.c +90 -0
- data/ext/sspgv.c +125 -0
- data/ext/sspgvd.c +158 -0
- data/ext/sspgvx.c +164 -0
- data/ext/ssprfs.c +145 -0
- data/ext/sspsv.c +106 -0
- data/ext/sspsvx.c +159 -0
- data/ext/ssptrd.c +96 -0
- data/ext/ssptrf.c +80 -0
- data/ext/ssptri.c +85 -0
- data/ext/ssptrs.c +97 -0
- data/ext/sstebz.c +131 -0
- data/ext/sstedc.c +155 -0
- data/ext/sstegr.c +184 -0
- data/ext/sstein.c +130 -0
- data/ext/sstemr.c +189 -0
- data/ext/ssteqr.c +122 -0
- data/ext/ssterf.c +89 -0
- data/ext/sstev.c +107 -0
- data/ext/sstevd.c +140 -0
- data/ext/sstevr.c +184 -0
- data/ext/sstevx.c +154 -0
- data/ext/ssycon.c +86 -0
- data/ext/ssyconv.c +80 -0
- data/ext/ssyequb.c +78 -0
- data/ext/ssyev.c +103 -0
- data/ext/ssyevd.c +121 -0
- data/ext/ssyevr.c +168 -0
- data/ext/ssyevx.c +153 -0
- data/ext/ssygs2.c +91 -0
- data/ext/ssygst.c +91 -0
- data/ext/ssygv.c +133 -0
- data/ext/ssygvd.c +151 -0
- data/ext/ssygvx.c +187 -0
- data/ext/ssyrfs.c +149 -0
- data/ext/ssyrfsx.c +214 -0
- data/ext/ssysv.c +125 -0
- data/ext/ssysvx.c +179 -0
- data/ext/ssysvxx.c +254 -0
- data/ext/ssyswapr.c +78 -0
- data/ext/ssytd2.c +97 -0
- data/ext/ssytf2.c +81 -0
- data/ext/ssytrd.c +109 -0
- data/ext/ssytrf.c +93 -0
- data/ext/ssytri.c +88 -0
- data/ext/ssytri2.c +123 -0
- data/ext/ssytri2x.c +92 -0
- data/ext/ssytrs.c +99 -0
- data/ext/ssytrs2.c +102 -0
- data/ext/stbcon.c +82 -0
- data/ext/stbrfs.c +123 -0
- data/ext/stbtrs.c +99 -0
- data/ext/stfsm.c +108 -0
- data/ext/stftri.c +82 -0
- data/ext/stfttp.c +75 -0
- data/ext/stfttr.c +76 -0
- data/ext/stgevc.c +149 -0
- data/ext/stgex2.c +180 -0
- data/ext/stgexc.c +187 -0
- data/ext/stgsen.c +248 -0
- data/ext/stgsja.c +223 -0
- data/ext/stgsna.c +160 -0
- data/ext/stgsy2.c +178 -0
- data/ext/stgsyl.c +186 -0
- data/ext/stpcon.c +78 -0
- data/ext/stprfs.c +119 -0
- data/ext/stptri.c +78 -0
- data/ext/stptrs.c +97 -0
- data/ext/stpttf.c +75 -0
- data/ext/stpttr.c +72 -0
- data/ext/strcon.c +78 -0
- data/ext/strevc.c +146 -0
- data/ext/strexc.c +112 -0
- data/ext/strrfs.c +119 -0
- data/ext/strsen.c +165 -0
- data/ext/strsna.c +133 -0
- data/ext/strsyl.c +112 -0
- data/ext/strti2.c +77 -0
- data/ext/strtri.c +77 -0
- data/ext/strtrs.c +95 -0
- data/ext/strttf.c +73 -0
- data/ext/strttp.c +69 -0
- data/ext/stzrqf.c +79 -0
- data/ext/stzrzf.c +97 -0
- data/ext/xerbla.c +48 -0
- data/ext/xerbla_array.c +49 -0
- data/ext/zbbcsd.c +279 -0
- data/ext/zbdsqr.c +178 -0
- data/ext/zcgesv.c +114 -0
- data/ext/zcposv.c +110 -0
- data/ext/zdrscl.c +75 -0
- data/ext/zgbbrd.c +153 -0
- data/ext/zgbcon.c +94 -0
- data/ext/zgbequ.c +94 -0
- data/ext/zgbequb.c +92 -0
- data/ext/zgbrfs.c +157 -0
- data/ext/zgbrfsx.c +245 -0
- data/ext/zgbsv.c +111 -0
- data/ext/zgbsvx.c +282 -0
- data/ext/zgbsvxx.c +285 -0
- data/ext/zgbtf2.c +89 -0
- data/ext/zgbtrf.c +89 -0
- data/ext/zgbtrs.c +107 -0
- data/ext/zgebak.c +97 -0
- data/ext/zgebal.c +87 -0
- data/ext/zgebd2.c +108 -0
- data/ext/zgebrd.c +123 -0
- data/ext/zgecon.c +74 -0
- data/ext/zgeequ.c +84 -0
- data/ext/zgeequb.c +84 -0
- data/ext/zgees.c +138 -0
- data/ext/zgeesx.c +148 -0
- data/ext/zgeev.c +128 -0
- data/ext/zgeevx.c +169 -0
- data/ext/zgegs.c +162 -0
- data/ext/zgegv.c +167 -0
- data/ext/zgehd2.c +88 -0
- data/ext/zgehrd.c +103 -0
- data/ext/zgelq2.c +82 -0
- data/ext/zgelqf.c +99 -0
- data/ext/zgels.c +133 -0
- data/ext/zgelsd.c +150 -0
- data/ext/zgelss.c +147 -0
- data/ext/zgelsx.c +135 -0
- data/ext/zgelsy.c +162 -0
- data/ext/zgeql2.c +84 -0
- data/ext/zgeqlf.c +99 -0
- data/ext/zgeqp3.c +125 -0
- data/ext/zgeqpf.c +110 -0
- data/ext/zgeqr2.c +84 -0
- data/ext/zgeqr2p.c +84 -0
- data/ext/zgeqrf.c +99 -0
- data/ext/zgeqrfp.c +99 -0
- data/ext/zgerfs.c +149 -0
- data/ext/zgerfsx.c +215 -0
- data/ext/zgerq2.c +82 -0
- data/ext/zgerqf.c +99 -0
- data/ext/zgesc2.c +104 -0
- data/ext/zgesdd.c +131 -0
- data/ext/zgesv.c +103 -0
- data/ext/zgesvd.c +142 -0
- data/ext/zgesvx.c +274 -0
- data/ext/zgesvxx.c +277 -0
- data/ext/zgetc2.c +85 -0
- data/ext/zgetf2.c +81 -0
- data/ext/zgetrf.c +81 -0
- data/ext/zgetri.c +99 -0
- data/ext/zgetrs.c +99 -0
- data/ext/zggbak.c +109 -0
- data/ext/zggbal.c +124 -0
- data/ext/zgges.c +188 -0
- data/ext/zggesx.c +226 -0
- data/ext/zggev.c +167 -0
- data/ext/zggevx.c +222 -0
- data/ext/zggglm.c +152 -0
- data/ext/zgghrd.c +163 -0
- data/ext/zgglse.c +167 -0
- data/ext/zggqrf.c +133 -0
- data/ext/zggrqf.c +137 -0
- data/ext/zggsvd.c +180 -0
- data/ext/zggsvp.c +170 -0
- data/ext/zgtcon.c +117 -0
- data/ext/zgtrfs.c +205 -0
- data/ext/zgtsv.c +138 -0
- data/ext/zgtsvx.c +252 -0
- data/ext/zgttrf.c +128 -0
- data/ext/zgttrs.c +133 -0
- data/ext/zgtts2.c +130 -0
- data/ext/zhbev.c +106 -0
- data/ext/zhbevd.c +154 -0
- data/ext/zhbevx.c +156 -0
- data/ext/zhbgst.c +116 -0
- data/ext/zhbgv.c +136 -0
- data/ext/zhbgvd.c +184 -0
- data/ext/zhbgvx.c +185 -0
- data/ext/zhbtrd.c +126 -0
- data/ext/zhecon.c +83 -0
- data/ext/zheequb.c +78 -0
- data/ext/zheev.c +106 -0
- data/ext/zheevd.c +139 -0
- data/ext/zheevr.c +186 -0
- data/ext/zheevx.c +156 -0
- data/ext/zhegs2.c +91 -0
- data/ext/zhegst.c +91 -0
- data/ext/zhegv.c +136 -0
- data/ext/zhegvd.c +169 -0
- data/ext/zhegvx.c +186 -0
- data/ext/zherfs.c +149 -0
- data/ext/zherfsx.c +214 -0
- data/ext/zhesv.c +119 -0
- data/ext/zhesvx.c +179 -0
- data/ext/zhesvxx.c +254 -0
- data/ext/zhetd2.c +97 -0
- data/ext/zhetf2.c +81 -0
- data/ext/zhetrd.c +109 -0
- data/ext/zhetrf.c +93 -0
- data/ext/zhetri.c +88 -0
- data/ext/zhetrs.c +99 -0
- data/ext/zhetrs2.c +102 -0
- data/ext/zhfrk.c +105 -0
- data/ext/zhgeqz.c +204 -0
- data/ext/zhpcon.c +81 -0
- data/ext/zhpev.c +101 -0
- data/ext/zhpevd.c +149 -0
- data/ext/zhpevx.c +140 -0
- data/ext/zhpgst.c +90 -0
- data/ext/zhpgv.c +128 -0
- data/ext/zhpgvd.c +166 -0
- data/ext/zhpgvx.c +166 -0
- data/ext/zhprfs.c +145 -0
- data/ext/zhpsv.c +106 -0
- data/ext/zhpsvx.c +159 -0
- data/ext/zhptrd.c +96 -0
- data/ext/zhptrf.c +80 -0
- data/ext/zhptri.c +85 -0
- data/ext/zhptrs.c +97 -0
- data/ext/zhsein.c +181 -0
- data/ext/zhseqr.c +141 -0
- data/ext/zla_gbamv.c +123 -0
- data/ext/zla_gbrcond_c.c +138 -0
- data/ext/zla_gbrcond_x.c +134 -0
- data/ext/zla_gbrfsx_extended.c +291 -0
- data/ext/zla_gbrpvgrw.c +83 -0
- data/ext/zla_geamv.c +115 -0
- data/ext/zla_gercond_c.c +130 -0
- data/ext/zla_gercond_x.c +126 -0
- data/ext/zla_gerfsx_extended.c +277 -0
- data/ext/zla_heamv.c +112 -0
- data/ext/zla_hercond_c.c +130 -0
- data/ext/zla_hercond_x.c +126 -0
- data/ext/zla_herfsx_extended.c +279 -0
- data/ext/zla_herpvgrw.c +103 -0
- data/ext/zla_lin_berr.c +80 -0
- data/ext/zla_porcond_c.c +118 -0
- data/ext/zla_porcond_x.c +114 -0
- data/ext/zla_porfsx_extended.c +267 -0
- data/ext/zla_porpvgrw.c +91 -0
- data/ext/zla_rpvgrw.c +75 -0
- data/ext/zla_syamv.c +112 -0
- data/ext/zla_syrcond_c.c +130 -0
- data/ext/zla_syrcond_x.c +126 -0
- data/ext/zla_syrfsx_extended.c +279 -0
- data/ext/zla_syrpvgrw.c +103 -0
- data/ext/zla_wwaddw.c +98 -0
- data/ext/zlabrd.c +128 -0
- data/ext/zlacgv.c +71 -0
- data/ext/zlacn2.c +99 -0
- data/ext/zlacon.c +76 -0
- data/ext/zlacp2.c +73 -0
- data/ext/zlacpy.c +73 -0
- data/ext/zlacrm.c +86 -0
- data/ext/zlacrt.c +104 -0
- data/ext/zladiv.c +53 -0
- data/ext/zlaed0.c +130 -0
- data/ext/zlaed7.c +243 -0
- data/ext/zlaed8.c +194 -0
- data/ext/zlaein.c +109 -0
- data/ext/zlaesy.c +70 -0
- data/ext/zlaev2.c +67 -0
- data/ext/zlag2c.c +72 -0
- data/ext/zlags2.c +88 -0
- data/ext/zlagtm.c +128 -0
- data/ext/zlahef.c +93 -0
- data/ext/zlahqr.c +131 -0
- data/ext/zlahr2.c +108 -0
- data/ext/zlahrd.c +108 -0
- data/ext/zlaic1.c +86 -0
- data/ext/zlals0.c +197 -0
- data/ext/zlalsa.c +266 -0
- data/ext/zlalsd.c +141 -0
- data/ext/zlangb.c +72 -0
- data/ext/zlange.c +70 -0
- data/ext/zlangt.c +83 -0
- data/ext/zlanhb.c +74 -0
- data/ext/zlanhe.c +70 -0
- data/ext/zlanhf.c +76 -0
- data/ext/zlanhp.c +72 -0
- data/ext/zlanhs.c +66 -0
- data/ext/zlanht.c +71 -0
- data/ext/zlansb.c +74 -0
- data/ext/zlansp.c +72 -0
- data/ext/zlansy.c +70 -0
- data/ext/zlantb.c +78 -0
- data/ext/zlantp.c +76 -0
- data/ext/zlantr.c +78 -0
- data/ext/zlapll.c +101 -0
- data/ext/zlapmr.c +93 -0
- data/ext/zlapmt.c +97 -0
- data/ext/zlaqgb.c +113 -0
- data/ext/zlaqge.c +105 -0
- data/ext/zlaqhb.c +93 -0
- data/ext/zlaqhe.c +93 -0
- data/ext/zlaqhp.c +90 -0
- data/ext/zlaqp2.c +154 -0
- data/ext/zlaqps.c +204 -0
- data/ext/zlaqr0.c +149 -0
- data/ext/zlaqr1.c +72 -0
- data/ext/zlaqr2.c +170 -0
- data/ext/zlaqr3.c +170 -0
- data/ext/zlaqr4.c +143 -0
- data/ext/zlaqr5.c +175 -0
- data/ext/zlaqsb.c +97 -0
- data/ext/zlaqsp.c +90 -0
- data/ext/zlaqsy.c +93 -0
- data/ext/zlar1v.c +169 -0
- data/ext/zlar2v.c +145 -0
- data/ext/zlarcm.c +82 -0
- data/ext/zlarf.c +98 -0
- data/ext/zlarfb.c +119 -0
- data/ext/zlarfg.c +80 -0
- data/ext/zlarfgp.c +80 -0
- data/ext/zlarft.c +101 -0
- data/ext/zlarfx.c +90 -0
- data/ext/zlargv.c +110 -0
- data/ext/zlarnv.c +79 -0
- data/ext/zlarrv.c +267 -0
- data/ext/zlarscl2.c +78 -0
- data/ext/zlartg.c +59 -0
- data/ext/zlartv.c +126 -0
- data/ext/zlarz.c +102 -0
- data/ext/zlarzb.c +123 -0
- data/ext/zlarzt.c +101 -0
- data/ext/zlascl.c +93 -0
- data/ext/zlascl2.c +78 -0
- data/ext/zlaset.c +84 -0
- data/ext/zlasr.c +106 -0
- data/ext/zlassq.c +66 -0
- data/ext/zlaswp.c +90 -0
- data/ext/zlasyf.c +93 -0
- data/ext/zlat2c.c +72 -0
- data/ext/zlatbs.c +126 -0
- data/ext/zlatdf.c +115 -0
- data/ext/zlatps.c +120 -0
- data/ext/zlatrd.c +101 -0
- data/ext/zlatrs.c +122 -0
- data/ext/zlatrz.c +83 -0
- data/ext/zlatzm.c +128 -0
- data/ext/zlauu2.c +73 -0
- data/ext/zlauum.c +73 -0
- data/ext/zpbcon.c +78 -0
- data/ext/zpbequ.c +79 -0
- data/ext/zpbrfs.c +141 -0
- data/ext/zpbstf.c +77 -0
- data/ext/zpbsv.c +103 -0
- data/ext/zpbsvx.c +197 -0
- data/ext/zpbtf2.c +77 -0
- data/ext/zpbtrf.c +77 -0
- data/ext/zpbtrs.c +91 -0
- data/ext/zpftrf.c +78 -0
- data/ext/zpftri.c +78 -0
- data/ext/zpftrs.c +93 -0
- data/ext/zpocon.c +74 -0
- data/ext/zpoequ.c +71 -0
- data/ext/zpoequb.c +71 -0
- data/ext/zporfs.c +137 -0
- data/ext/zporfsx.c +202 -0
- data/ext/zposv.c +99 -0
- data/ext/zposvx.c +193 -0
- data/ext/zposvxx.c +231 -0
- data/ext/zpotf2.c +73 -0
- data/ext/zpotrf.c +73 -0
- data/ext/zpotri.c +73 -0
- data/ext/zpotrs.c +87 -0
- data/ext/zppcon.c +74 -0
- data/ext/zppequ.c +75 -0
- data/ext/zpprfs.c +135 -0
- data/ext/zppsv.c +100 -0
- data/ext/zppsvx.c +187 -0
- data/ext/zpptrf.c +74 -0
- data/ext/zpptri.c +74 -0
- data/ext/zpptrs.c +89 -0
- data/ext/zpstf2.c +91 -0
- data/ext/zpstrf.c +91 -0
- data/ext/zptcon.c +77 -0
- data/ext/zpteqr.c +122 -0
- data/ext/zptrfs.c +157 -0
- data/ext/zptsv.c +119 -0
- data/ext/zptsvx.c +167 -0
- data/ext/zpttrf.c +89 -0
- data/ext/zpttrs.c +97 -0
- data/ext/zptts2.c +94 -0
- data/ext/zrot.c +103 -0
- data/ext/zspcon.c +81 -0
- data/ext/zspmv.c +113 -0
- data/ext/zspr.c +92 -0
- data/ext/zsprfs.c +145 -0
- data/ext/zspsv.c +106 -0
- data/ext/zspsvx.c +159 -0
- data/ext/zsptrf.c +80 -0
- data/ext/zsptri.c +85 -0
- data/ext/zsptrs.c +97 -0
- data/ext/zstedc.c +173 -0
- data/ext/zstegr.c +184 -0
- data/ext/zstein.c +130 -0
- data/ext/zstemr.c +189 -0
- data/ext/zsteqr.c +122 -0
- data/ext/zsycon.c +83 -0
- data/ext/zsyconv.c +80 -0
- data/ext/zsyequb.c +78 -0
- data/ext/zsymv.c +111 -0
- data/ext/zsyr.c +91 -0
- data/ext/zsyrfs.c +149 -0
- data/ext/zsyrfsx.c +214 -0
- data/ext/zsysv.c +125 -0
- data/ext/zsysvx.c +179 -0
- data/ext/zsysvxx.c +254 -0
- data/ext/zsyswapr.c +78 -0
- data/ext/zsytf2.c +81 -0
- data/ext/zsytrf.c +93 -0
- data/ext/zsytri.c +88 -0
- data/ext/zsytri2.c +100 -0
- data/ext/zsytri2x.c +92 -0
- data/ext/zsytrs.c +99 -0
- data/ext/zsytrs2.c +102 -0
- data/ext/ztbcon.c +82 -0
- data/ext/ztbrfs.c +123 -0
- data/ext/ztbtrs.c +99 -0
- data/ext/ztfsm.c +107 -0
- data/ext/ztftri.c +82 -0
- data/ext/ztfttp.c +75 -0
- data/ext/ztfttr.c +76 -0
- data/ext/ztgevc.c +152 -0
- data/ext/ztgex2.c +167 -0
- data/ext/ztgexc.c +168 -0
- data/ext/ztgsen.c +240 -0
- data/ext/ztgsja.c +223 -0
- data/ext/ztgsna.c +160 -0
- data/ext/ztgsy2.c +172 -0
- data/ext/ztgsyl.c +186 -0
- data/ext/ztpcon.c +78 -0
- data/ext/ztprfs.c +119 -0
- data/ext/ztptri.c +78 -0
- data/ext/ztptrs.c +97 -0
- data/ext/ztpttf.c +75 -0
- data/ext/ztpttr.c +72 -0
- data/ext/ztrcon.c +78 -0
- data/ext/ztrevc.c +150 -0
- data/ext/ztrexc.c +107 -0
- data/ext/ztrrfs.c +119 -0
- data/ext/ztrsen.c +150 -0
- data/ext/ztrsna.c +133 -0
- data/ext/ztrsyl.c +112 -0
- data/ext/ztrti2.c +77 -0
- data/ext/ztrtri.c +77 -0
- data/ext/ztrtrs.c +95 -0
- data/ext/ztrttf.c +73 -0
- data/ext/ztrttp.c +69 -0
- data/ext/ztzrqf.c +79 -0
- data/ext/ztzrzf.c +97 -0
- data/ext/zunbdb.c +228 -0
- data/ext/zuncsd.c +200 -0
- data/ext/zung2l.c +88 -0
- data/ext/zung2r.c +88 -0
- data/ext/zungbr.c +111 -0
- data/ext/zunghr.c +107 -0
- data/ext/zungl2.c +86 -0
- data/ext/zunglq.c +103 -0
- data/ext/zungql.c +103 -0
- data/ext/zungqr.c +103 -0
- data/ext/zungr2.c +86 -0
- data/ext/zungrq.c +103 -0
- data/ext/zungtr.c +103 -0
- data/ext/zunm2l.c +110 -0
- data/ext/zunm2r.c +110 -0
- data/ext/zunmbr.c +135 -0
- data/ext/zunmhr.c +129 -0
- data/ext/zunml2.c +106 -0
- data/ext/zunmlq.c +121 -0
- data/ext/zunmql.c +125 -0
- data/ext/zunmqr.c +125 -0
- data/ext/zunmr2.c +106 -0
- data/ext/zunmr3.c +110 -0
- data/ext/zunmrq.c +121 -0
- data/ext/zunmrz.c +125 -0
- data/ext/zunmtr.c +125 -0
- data/ext/zupgtr.c +87 -0
- data/ext/zupmtr.c +112 -0
- data/lib/numru/lapack.rb +51 -0
- data/samples/dsyevr.rb +25 -0
- data/tests/eig/ge/test_gesdd.rb +90 -0
- data/tests/eig/ge/test_gesvd.rb +99 -0
- data/tests/eig/gg/test_ggev.rb +124 -0
- data/tests/eig/gg/test_ggsvd.rb +76 -0
- data/tests/eig/sb/test_sbev.rb +39 -0
- data/tests/lapack_test.rb +50 -0
- data/tests/lin/gb/test_gbsv.rb +46 -0
- data/tests/lin/gb/test_gbsvx.rb +56 -0
- data/tests/lin/ge/test_gels.rb +63 -0
- data/tests/lin/ge/test_gelsd.rb +54 -0
- data/tests/lin/ge/test_gelss.rb +73 -0
- data/tests/lin/ge/test_gelsy.rb +73 -0
- data/tests/lin/ge/test_gesv.rb +43 -0
- data/tests/lin/ge/test_gesvx.rb +52 -0
- data/tests/lin/gt/test_gtsv.rb +39 -0
- data/tests/test_all.rb +7 -0
- metadata +3513 -0
data/doc/ctb.html
ADDED
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
<HTML>
|
|
2
|
+
<HEAD>
|
|
3
|
+
<TITLE>COMPLEX routines for triangular band matrix</TITLE>
|
|
4
|
+
</HEAD>
|
|
5
|
+
<BODY>
|
|
6
|
+
<A NAME="top"></A>
|
|
7
|
+
<H1>COMPLEX routines for triangular band matrix</H1>
|
|
8
|
+
<UL>
|
|
9
|
+
<LI><A HREF="#ctbcon">ctbcon</A></LI>
|
|
10
|
+
<LI><A HREF="#ctbrfs">ctbrfs</A></LI>
|
|
11
|
+
<LI><A HREF="#ctbtrs">ctbtrs</A></LI>
|
|
12
|
+
</UL>
|
|
13
|
+
|
|
14
|
+
<A NAME="ctbcon"></A>
|
|
15
|
+
<H2>ctbcon</H2>
|
|
16
|
+
<PRE>
|
|
17
|
+
USAGE:
|
|
18
|
+
rcond, info = NumRu::Lapack.ctbcon( norm, uplo, diag, kd, ab, [:usage => usage, :help => help])
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
FORTRAN MANUAL
|
|
22
|
+
SUBROUTINE CTBCON( NORM, UPLO, DIAG, N, KD, AB, LDAB, RCOND, WORK, RWORK, INFO )
|
|
23
|
+
|
|
24
|
+
* Purpose
|
|
25
|
+
* =======
|
|
26
|
+
*
|
|
27
|
+
* CTBCON estimates the reciprocal of the condition number of a
|
|
28
|
+
* triangular band matrix A, in either the 1-norm or the infinity-norm.
|
|
29
|
+
*
|
|
30
|
+
* The norm of A is computed and an estimate is obtained for
|
|
31
|
+
* norm(inv(A)), then the reciprocal of the condition number is
|
|
32
|
+
* computed as
|
|
33
|
+
* RCOND = 1 / ( norm(A) * norm(inv(A)) ).
|
|
34
|
+
*
|
|
35
|
+
|
|
36
|
+
* Arguments
|
|
37
|
+
* =========
|
|
38
|
+
*
|
|
39
|
+
* NORM (input) CHARACTER*1
|
|
40
|
+
* Specifies whether the 1-norm condition number or the
|
|
41
|
+
* infinity-norm condition number is required:
|
|
42
|
+
* = '1' or 'O': 1-norm;
|
|
43
|
+
* = 'I': Infinity-norm.
|
|
44
|
+
*
|
|
45
|
+
* UPLO (input) CHARACTER*1
|
|
46
|
+
* = 'U': A is upper triangular;
|
|
47
|
+
* = 'L': A is lower triangular.
|
|
48
|
+
*
|
|
49
|
+
* DIAG (input) CHARACTER*1
|
|
50
|
+
* = 'N': A is non-unit triangular;
|
|
51
|
+
* = 'U': A is unit triangular.
|
|
52
|
+
*
|
|
53
|
+
* N (input) INTEGER
|
|
54
|
+
* The order of the matrix A. N >= 0.
|
|
55
|
+
*
|
|
56
|
+
* KD (input) INTEGER
|
|
57
|
+
* The number of superdiagonals or subdiagonals of the
|
|
58
|
+
* triangular band matrix A. KD >= 0.
|
|
59
|
+
*
|
|
60
|
+
* AB (input) COMPLEX array, dimension (LDAB,N)
|
|
61
|
+
* The upper or lower triangular band matrix A, stored in the
|
|
62
|
+
* first kd+1 rows of the array. The j-th column of A is stored
|
|
63
|
+
* in the j-th column of the array AB as follows:
|
|
64
|
+
* if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
|
|
65
|
+
* if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).
|
|
66
|
+
* If DIAG = 'U', the diagonal elements of A are not referenced
|
|
67
|
+
* and are assumed to be 1.
|
|
68
|
+
*
|
|
69
|
+
* LDAB (input) INTEGER
|
|
70
|
+
* The leading dimension of the array AB. LDAB >= KD+1.
|
|
71
|
+
*
|
|
72
|
+
* RCOND (output) REAL
|
|
73
|
+
* The reciprocal of the condition number of the matrix A,
|
|
74
|
+
* computed as RCOND = 1/(norm(A) * norm(inv(A))).
|
|
75
|
+
*
|
|
76
|
+
* WORK (workspace) COMPLEX array, dimension (2*N)
|
|
77
|
+
*
|
|
78
|
+
* RWORK (workspace) REAL array, dimension (N)
|
|
79
|
+
*
|
|
80
|
+
* INFO (output) INTEGER
|
|
81
|
+
* = 0: successful exit
|
|
82
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
83
|
+
*
|
|
84
|
+
|
|
85
|
+
* =====================================================================
|
|
86
|
+
*
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
</PRE>
|
|
90
|
+
<A HREF="#top">go to the page top</A>
|
|
91
|
+
|
|
92
|
+
<A NAME="ctbrfs"></A>
|
|
93
|
+
<H2>ctbrfs</H2>
|
|
94
|
+
<PRE>
|
|
95
|
+
USAGE:
|
|
96
|
+
ferr, berr, info = NumRu::Lapack.ctbrfs( uplo, trans, diag, kd, ab, b, x, [:usage => usage, :help => help])
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
FORTRAN MANUAL
|
|
100
|
+
SUBROUTINE CTBRFS( UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO )
|
|
101
|
+
|
|
102
|
+
* Purpose
|
|
103
|
+
* =======
|
|
104
|
+
*
|
|
105
|
+
* CTBRFS provides error bounds and backward error estimates for the
|
|
106
|
+
* solution to a system of linear equations with a triangular band
|
|
107
|
+
* coefficient matrix.
|
|
108
|
+
*
|
|
109
|
+
* The solution matrix X must be computed by CTBTRS or some other
|
|
110
|
+
* means before entering this routine. CTBRFS does not do iterative
|
|
111
|
+
* refinement because doing so cannot improve the backward error.
|
|
112
|
+
*
|
|
113
|
+
|
|
114
|
+
* Arguments
|
|
115
|
+
* =========
|
|
116
|
+
*
|
|
117
|
+
* UPLO (input) CHARACTER*1
|
|
118
|
+
* = 'U': A is upper triangular;
|
|
119
|
+
* = 'L': A is lower triangular.
|
|
120
|
+
*
|
|
121
|
+
* TRANS (input) CHARACTER*1
|
|
122
|
+
* Specifies the form of the system of equations:
|
|
123
|
+
* = 'N': A * X = B (No transpose)
|
|
124
|
+
* = 'T': A**T * X = B (Transpose)
|
|
125
|
+
* = 'C': A**H * X = B (Conjugate transpose)
|
|
126
|
+
*
|
|
127
|
+
* DIAG (input) CHARACTER*1
|
|
128
|
+
* = 'N': A is non-unit triangular;
|
|
129
|
+
* = 'U': A is unit triangular.
|
|
130
|
+
*
|
|
131
|
+
* N (input) INTEGER
|
|
132
|
+
* The order of the matrix A. N >= 0.
|
|
133
|
+
*
|
|
134
|
+
* KD (input) INTEGER
|
|
135
|
+
* The number of superdiagonals or subdiagonals of the
|
|
136
|
+
* triangular band matrix A. KD >= 0.
|
|
137
|
+
*
|
|
138
|
+
* NRHS (input) INTEGER
|
|
139
|
+
* The number of right hand sides, i.e., the number of columns
|
|
140
|
+
* of the matrices B and X. NRHS >= 0.
|
|
141
|
+
*
|
|
142
|
+
* AB (input) COMPLEX array, dimension (LDAB,N)
|
|
143
|
+
* The upper or lower triangular band matrix A, stored in the
|
|
144
|
+
* first kd+1 rows of the array. The j-th column of A is stored
|
|
145
|
+
* in the j-th column of the array AB as follows:
|
|
146
|
+
* if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
|
|
147
|
+
* if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).
|
|
148
|
+
* If DIAG = 'U', the diagonal elements of A are not referenced
|
|
149
|
+
* and are assumed to be 1.
|
|
150
|
+
*
|
|
151
|
+
* LDAB (input) INTEGER
|
|
152
|
+
* The leading dimension of the array AB. LDAB >= KD+1.
|
|
153
|
+
*
|
|
154
|
+
* B (input) COMPLEX array, dimension (LDB,NRHS)
|
|
155
|
+
* The right hand side matrix B.
|
|
156
|
+
*
|
|
157
|
+
* LDB (input) INTEGER
|
|
158
|
+
* The leading dimension of the array B. LDB >= max(1,N).
|
|
159
|
+
*
|
|
160
|
+
* X (input) COMPLEX array, dimension (LDX,NRHS)
|
|
161
|
+
* The solution matrix X.
|
|
162
|
+
*
|
|
163
|
+
* LDX (input) INTEGER
|
|
164
|
+
* The leading dimension of the array X. LDX >= max(1,N).
|
|
165
|
+
*
|
|
166
|
+
* FERR (output) REAL array, dimension (NRHS)
|
|
167
|
+
* The estimated forward error bound for each solution vector
|
|
168
|
+
* X(j) (the j-th column of the solution matrix X).
|
|
169
|
+
* If XTRUE is the true solution corresponding to X(j), FERR(j)
|
|
170
|
+
* is an estimated upper bound for the magnitude of the largest
|
|
171
|
+
* element in (X(j) - XTRUE) divided by the magnitude of the
|
|
172
|
+
* largest element in X(j). The estimate is as reliable as
|
|
173
|
+
* the estimate for RCOND, and is almost always a slight
|
|
174
|
+
* overestimate of the true error.
|
|
175
|
+
*
|
|
176
|
+
* BERR (output) REAL array, dimension (NRHS)
|
|
177
|
+
* The componentwise relative backward error of each solution
|
|
178
|
+
* vector X(j) (i.e., the smallest relative change in
|
|
179
|
+
* any element of A or B that makes X(j) an exact solution).
|
|
180
|
+
*
|
|
181
|
+
* WORK (workspace) COMPLEX array, dimension (2*N)
|
|
182
|
+
*
|
|
183
|
+
* RWORK (workspace) REAL array, dimension (N)
|
|
184
|
+
*
|
|
185
|
+
* INFO (output) INTEGER
|
|
186
|
+
* = 0: successful exit
|
|
187
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
188
|
+
*
|
|
189
|
+
|
|
190
|
+
* =====================================================================
|
|
191
|
+
*
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
</PRE>
|
|
195
|
+
<A HREF="#top">go to the page top</A>
|
|
196
|
+
|
|
197
|
+
<A NAME="ctbtrs"></A>
|
|
198
|
+
<H2>ctbtrs</H2>
|
|
199
|
+
<PRE>
|
|
200
|
+
USAGE:
|
|
201
|
+
info, b = NumRu::Lapack.ctbtrs( uplo, trans, diag, kd, ab, b, [:usage => usage, :help => help])
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
FORTRAN MANUAL
|
|
205
|
+
SUBROUTINE CTBTRS( UPLO, TRANS, DIAG, N, KD, NRHS, AB, LDAB, B, LDB, INFO )
|
|
206
|
+
|
|
207
|
+
* Purpose
|
|
208
|
+
* =======
|
|
209
|
+
*
|
|
210
|
+
* CTBTRS solves a triangular system of the form
|
|
211
|
+
*
|
|
212
|
+
* A * X = B, A**T * X = B, or A**H * X = B,
|
|
213
|
+
*
|
|
214
|
+
* where A is a triangular band matrix of order N, and B is an
|
|
215
|
+
* N-by-NRHS matrix. A check is made to verify that A is nonsingular.
|
|
216
|
+
*
|
|
217
|
+
|
|
218
|
+
* Arguments
|
|
219
|
+
* =========
|
|
220
|
+
*
|
|
221
|
+
* UPLO (input) CHARACTER*1
|
|
222
|
+
* = 'U': A is upper triangular;
|
|
223
|
+
* = 'L': A is lower triangular.
|
|
224
|
+
*
|
|
225
|
+
* TRANS (input) CHARACTER*1
|
|
226
|
+
* Specifies the form of the system of equations:
|
|
227
|
+
* = 'N': A * X = B (No transpose)
|
|
228
|
+
* = 'T': A**T * X = B (Transpose)
|
|
229
|
+
* = 'C': A**H * X = B (Conjugate transpose)
|
|
230
|
+
*
|
|
231
|
+
* DIAG (input) CHARACTER*1
|
|
232
|
+
* = 'N': A is non-unit triangular;
|
|
233
|
+
* = 'U': A is unit triangular.
|
|
234
|
+
*
|
|
235
|
+
* N (input) INTEGER
|
|
236
|
+
* The order of the matrix A. N >= 0.
|
|
237
|
+
*
|
|
238
|
+
* KD (input) INTEGER
|
|
239
|
+
* The number of superdiagonals or subdiagonals of the
|
|
240
|
+
* triangular band matrix A. KD >= 0.
|
|
241
|
+
*
|
|
242
|
+
* NRHS (input) INTEGER
|
|
243
|
+
* The number of right hand sides, i.e., the number of columns
|
|
244
|
+
* of the matrix B. NRHS >= 0.
|
|
245
|
+
*
|
|
246
|
+
* AB (input) COMPLEX array, dimension (LDAB,N)
|
|
247
|
+
* The upper or lower triangular band matrix A, stored in the
|
|
248
|
+
* first kd+1 rows of AB. The j-th column of A is stored
|
|
249
|
+
* in the j-th column of the array AB as follows:
|
|
250
|
+
* if UPLO = 'U', AB(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;
|
|
251
|
+
* if UPLO = 'L', AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).
|
|
252
|
+
* If DIAG = 'U', the diagonal elements of A are not referenced
|
|
253
|
+
* and are assumed to be 1.
|
|
254
|
+
*
|
|
255
|
+
* LDAB (input) INTEGER
|
|
256
|
+
* The leading dimension of the array AB. LDAB >= KD+1.
|
|
257
|
+
*
|
|
258
|
+
* B (input/output) COMPLEX array, dimension (LDB,NRHS)
|
|
259
|
+
* On entry, the right hand side matrix B.
|
|
260
|
+
* On exit, if INFO = 0, the solution matrix X.
|
|
261
|
+
*
|
|
262
|
+
* LDB (input) INTEGER
|
|
263
|
+
* The leading dimension of the array B. LDB >= max(1,N).
|
|
264
|
+
*
|
|
265
|
+
* INFO (output) INTEGER
|
|
266
|
+
* = 0: successful exit
|
|
267
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
268
|
+
* > 0: if INFO = i, the i-th diagonal element of A is zero,
|
|
269
|
+
* indicating that the matrix is singular and the
|
|
270
|
+
* solutions X have not been computed.
|
|
271
|
+
*
|
|
272
|
+
|
|
273
|
+
* =====================================================================
|
|
274
|
+
*
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
</PRE>
|
|
278
|
+
<A HREF="#top">go to the page top</A>
|
|
279
|
+
|
|
280
|
+
<HR />
|
|
281
|
+
<A HREF="c.html">back to matrix types</A><BR>
|
|
282
|
+
<A HREF="c.html">back to data types</A>
|
|
283
|
+
</BODY>
|
|
284
|
+
</HTML>
|
data/doc/ctg.html
ADDED
|
@@ -0,0 +1,1544 @@
|
|
|
1
|
+
<HTML>
|
|
2
|
+
<HEAD>
|
|
3
|
+
<TITLE>COMPLEX routines for triangular matrices, generalized problem (i.e., a pair of triangular matrices) matrix</TITLE>
|
|
4
|
+
</HEAD>
|
|
5
|
+
<BODY>
|
|
6
|
+
<A NAME="top"></A>
|
|
7
|
+
<H1>COMPLEX routines for triangular matrices, generalized problem (i.e., a pair of triangular matrices) matrix</H1>
|
|
8
|
+
<UL>
|
|
9
|
+
<LI><A HREF="#ctgevc">ctgevc</A></LI>
|
|
10
|
+
<LI><A HREF="#ctgex2">ctgex2</A></LI>
|
|
11
|
+
<LI><A HREF="#ctgexc">ctgexc</A></LI>
|
|
12
|
+
<LI><A HREF="#ctgsen">ctgsen</A></LI>
|
|
13
|
+
<LI><A HREF="#ctgsja">ctgsja</A></LI>
|
|
14
|
+
<LI><A HREF="#ctgsna">ctgsna</A></LI>
|
|
15
|
+
<LI><A HREF="#ctgsy2">ctgsy2</A></LI>
|
|
16
|
+
<LI><A HREF="#ctgsyl">ctgsyl</A></LI>
|
|
17
|
+
</UL>
|
|
18
|
+
|
|
19
|
+
<A NAME="ctgevc"></A>
|
|
20
|
+
<H2>ctgevc</H2>
|
|
21
|
+
<PRE>
|
|
22
|
+
USAGE:
|
|
23
|
+
m, info, vl, vr = NumRu::Lapack.ctgevc( side, howmny, select, s, p, vl, vr, [:usage => usage, :help => help])
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
FORTRAN MANUAL
|
|
27
|
+
SUBROUTINE CTGEVC( SIDE, HOWMNY, SELECT, N, S, LDS, P, LDP, VL, LDVL, VR, LDVR, MM, M, WORK, RWORK, INFO )
|
|
28
|
+
|
|
29
|
+
* Purpose
|
|
30
|
+
* =======
|
|
31
|
+
*
|
|
32
|
+
* CTGEVC computes some or all of the right and/or left eigenvectors of
|
|
33
|
+
* a pair of complex matrices (S,P), where S and P are upper triangular.
|
|
34
|
+
* Matrix pairs of this type are produced by the generalized Schur
|
|
35
|
+
* factorization of a complex matrix pair (A,B):
|
|
36
|
+
*
|
|
37
|
+
* A = Q*S*Z**H, B = Q*P*Z**H
|
|
38
|
+
*
|
|
39
|
+
* as computed by CGGHRD + CHGEQZ.
|
|
40
|
+
*
|
|
41
|
+
* The right eigenvector x and the left eigenvector y of (S,P)
|
|
42
|
+
* corresponding to an eigenvalue w are defined by:
|
|
43
|
+
*
|
|
44
|
+
* S*x = w*P*x, (y**H)*S = w*(y**H)*P,
|
|
45
|
+
*
|
|
46
|
+
* where y**H denotes the conjugate tranpose of y.
|
|
47
|
+
* The eigenvalues are not input to this routine, but are computed
|
|
48
|
+
* directly from the diagonal elements of S and P.
|
|
49
|
+
*
|
|
50
|
+
* This routine returns the matrices X and/or Y of right and left
|
|
51
|
+
* eigenvectors of (S,P), or the products Z*X and/or Q*Y,
|
|
52
|
+
* where Z and Q are input matrices.
|
|
53
|
+
* If Q and Z are the unitary factors from the generalized Schur
|
|
54
|
+
* factorization of a matrix pair (A,B), then Z*X and Q*Y
|
|
55
|
+
* are the matrices of right and left eigenvectors of (A,B).
|
|
56
|
+
*
|
|
57
|
+
|
|
58
|
+
* Arguments
|
|
59
|
+
* =========
|
|
60
|
+
*
|
|
61
|
+
* SIDE (input) CHARACTER*1
|
|
62
|
+
* = 'R': compute right eigenvectors only;
|
|
63
|
+
* = 'L': compute left eigenvectors only;
|
|
64
|
+
* = 'B': compute both right and left eigenvectors.
|
|
65
|
+
*
|
|
66
|
+
* HOWMNY (input) CHARACTER*1
|
|
67
|
+
* = 'A': compute all right and/or left eigenvectors;
|
|
68
|
+
* = 'B': compute all right and/or left eigenvectors,
|
|
69
|
+
* backtransformed by the matrices in VR and/or VL;
|
|
70
|
+
* = 'S': compute selected right and/or left eigenvectors,
|
|
71
|
+
* specified by the logical array SELECT.
|
|
72
|
+
*
|
|
73
|
+
* SELECT (input) LOGICAL array, dimension (N)
|
|
74
|
+
* If HOWMNY='S', SELECT specifies the eigenvectors to be
|
|
75
|
+
* computed. The eigenvector corresponding to the j-th
|
|
76
|
+
* eigenvalue is computed if SELECT(j) = .TRUE..
|
|
77
|
+
* Not referenced if HOWMNY = 'A' or 'B'.
|
|
78
|
+
*
|
|
79
|
+
* N (input) INTEGER
|
|
80
|
+
* The order of the matrices S and P. N >= 0.
|
|
81
|
+
*
|
|
82
|
+
* S (input) COMPLEX array, dimension (LDS,N)
|
|
83
|
+
* The upper triangular matrix S from a generalized Schur
|
|
84
|
+
* factorization, as computed by CHGEQZ.
|
|
85
|
+
*
|
|
86
|
+
* LDS (input) INTEGER
|
|
87
|
+
* The leading dimension of array S. LDS >= max(1,N).
|
|
88
|
+
*
|
|
89
|
+
* P (input) COMPLEX array, dimension (LDP,N)
|
|
90
|
+
* The upper triangular matrix P from a generalized Schur
|
|
91
|
+
* factorization, as computed by CHGEQZ. P must have real
|
|
92
|
+
* diagonal elements.
|
|
93
|
+
*
|
|
94
|
+
* LDP (input) INTEGER
|
|
95
|
+
* The leading dimension of array P. LDP >= max(1,N).
|
|
96
|
+
*
|
|
97
|
+
* VL (input/output) COMPLEX array, dimension (LDVL,MM)
|
|
98
|
+
* On entry, if SIDE = 'L' or 'B' and HOWMNY = 'B', VL must
|
|
99
|
+
* contain an N-by-N matrix Q (usually the unitary matrix Q
|
|
100
|
+
* of left Schur vectors returned by CHGEQZ).
|
|
101
|
+
* On exit, if SIDE = 'L' or 'B', VL contains:
|
|
102
|
+
* if HOWMNY = 'A', the matrix Y of left eigenvectors of (S,P);
|
|
103
|
+
* if HOWMNY = 'B', the matrix Q*Y;
|
|
104
|
+
* if HOWMNY = 'S', the left eigenvectors of (S,P) specified by
|
|
105
|
+
* SELECT, stored consecutively in the columns of
|
|
106
|
+
* VL, in the same order as their eigenvalues.
|
|
107
|
+
* Not referenced if SIDE = 'R'.
|
|
108
|
+
*
|
|
109
|
+
* LDVL (input) INTEGER
|
|
110
|
+
* The leading dimension of array VL. LDVL >= 1, and if
|
|
111
|
+
* SIDE = 'L' or 'l' or 'B' or 'b', LDVL >= N.
|
|
112
|
+
*
|
|
113
|
+
* VR (input/output) COMPLEX array, dimension (LDVR,MM)
|
|
114
|
+
* On entry, if SIDE = 'R' or 'B' and HOWMNY = 'B', VR must
|
|
115
|
+
* contain an N-by-N matrix Q (usually the unitary matrix Z
|
|
116
|
+
* of right Schur vectors returned by CHGEQZ).
|
|
117
|
+
* On exit, if SIDE = 'R' or 'B', VR contains:
|
|
118
|
+
* if HOWMNY = 'A', the matrix X of right eigenvectors of (S,P);
|
|
119
|
+
* if HOWMNY = 'B', the matrix Z*X;
|
|
120
|
+
* if HOWMNY = 'S', the right eigenvectors of (S,P) specified by
|
|
121
|
+
* SELECT, stored consecutively in the columns of
|
|
122
|
+
* VR, in the same order as their eigenvalues.
|
|
123
|
+
* Not referenced if SIDE = 'L'.
|
|
124
|
+
*
|
|
125
|
+
* LDVR (input) INTEGER
|
|
126
|
+
* The leading dimension of the array VR. LDVR >= 1, and if
|
|
127
|
+
* SIDE = 'R' or 'B', LDVR >= N.
|
|
128
|
+
*
|
|
129
|
+
* MM (input) INTEGER
|
|
130
|
+
* The number of columns in the arrays VL and/or VR. MM >= M.
|
|
131
|
+
*
|
|
132
|
+
* M (output) INTEGER
|
|
133
|
+
* The number of columns in the arrays VL and/or VR actually
|
|
134
|
+
* used to store the eigenvectors. If HOWMNY = 'A' or 'B', M
|
|
135
|
+
* is set to N. Each selected eigenvector occupies one column.
|
|
136
|
+
*
|
|
137
|
+
* WORK (workspace) COMPLEX array, dimension (2*N)
|
|
138
|
+
*
|
|
139
|
+
* RWORK (workspace) REAL array, dimension (2*N)
|
|
140
|
+
*
|
|
141
|
+
* INFO (output) INTEGER
|
|
142
|
+
* = 0: successful exit.
|
|
143
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value.
|
|
144
|
+
*
|
|
145
|
+
|
|
146
|
+
* =====================================================================
|
|
147
|
+
*
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
</PRE>
|
|
151
|
+
<A HREF="#top">go to the page top</A>
|
|
152
|
+
|
|
153
|
+
<A NAME="ctgex2"></A>
|
|
154
|
+
<H2>ctgex2</H2>
|
|
155
|
+
<PRE>
|
|
156
|
+
USAGE:
|
|
157
|
+
info, a, b, q, z = NumRu::Lapack.ctgex2( wantq, wantz, a, b, q, ldq, z, ldz, j1, [:usage => usage, :help => help])
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
FORTRAN MANUAL
|
|
161
|
+
SUBROUTINE CTGEX2( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, J1, INFO )
|
|
162
|
+
|
|
163
|
+
* Purpose
|
|
164
|
+
* =======
|
|
165
|
+
*
|
|
166
|
+
* CTGEX2 swaps adjacent diagonal 1 by 1 blocks (A11,B11) and (A22,B22)
|
|
167
|
+
* in an upper triangular matrix pair (A, B) by an unitary equivalence
|
|
168
|
+
* transformation.
|
|
169
|
+
*
|
|
170
|
+
* (A, B) must be in generalized Schur canonical form, that is, A and
|
|
171
|
+
* B are both upper triangular.
|
|
172
|
+
*
|
|
173
|
+
* Optionally, the matrices Q and Z of generalized Schur vectors are
|
|
174
|
+
* updated.
|
|
175
|
+
*
|
|
176
|
+
* Q(in) * A(in) * Z(in)' = Q(out) * A(out) * Z(out)'
|
|
177
|
+
* Q(in) * B(in) * Z(in)' = Q(out) * B(out) * Z(out)'
|
|
178
|
+
*
|
|
179
|
+
*
|
|
180
|
+
|
|
181
|
+
* Arguments
|
|
182
|
+
* =========
|
|
183
|
+
*
|
|
184
|
+
* WANTQ (input) LOGICAL
|
|
185
|
+
* .TRUE. : update the left transformation matrix Q;
|
|
186
|
+
* .FALSE.: do not update Q.
|
|
187
|
+
*
|
|
188
|
+
* WANTZ (input) LOGICAL
|
|
189
|
+
* .TRUE. : update the right transformation matrix Z;
|
|
190
|
+
* .FALSE.: do not update Z.
|
|
191
|
+
*
|
|
192
|
+
* N (input) INTEGER
|
|
193
|
+
* The order of the matrices A and B. N >= 0.
|
|
194
|
+
*
|
|
195
|
+
* A (input/output) COMPLEX arrays, dimensions (LDA,N)
|
|
196
|
+
* On entry, the matrix A in the pair (A, B).
|
|
197
|
+
* On exit, the updated matrix A.
|
|
198
|
+
*
|
|
199
|
+
* LDA (input) INTEGER
|
|
200
|
+
* The leading dimension of the array A. LDA >= max(1,N).
|
|
201
|
+
*
|
|
202
|
+
* B (input/output) COMPLEX arrays, dimensions (LDB,N)
|
|
203
|
+
* On entry, the matrix B in the pair (A, B).
|
|
204
|
+
* On exit, the updated matrix B.
|
|
205
|
+
*
|
|
206
|
+
* LDB (input) INTEGER
|
|
207
|
+
* The leading dimension of the array B. LDB >= max(1,N).
|
|
208
|
+
*
|
|
209
|
+
* Q (input/output) COMPLEX array, dimension (LDZ,N)
|
|
210
|
+
* If WANTQ = .TRUE, on entry, the unitary matrix Q. On exit,
|
|
211
|
+
* the updated matrix Q.
|
|
212
|
+
* Not referenced if WANTQ = .FALSE..
|
|
213
|
+
*
|
|
214
|
+
* LDQ (input) INTEGER
|
|
215
|
+
* The leading dimension of the array Q. LDQ >= 1;
|
|
216
|
+
* If WANTQ = .TRUE., LDQ >= N.
|
|
217
|
+
*
|
|
218
|
+
* Z (input/output) COMPLEX array, dimension (LDZ,N)
|
|
219
|
+
* If WANTZ = .TRUE, on entry, the unitary matrix Z. On exit,
|
|
220
|
+
* the updated matrix Z.
|
|
221
|
+
* Not referenced if WANTZ = .FALSE..
|
|
222
|
+
*
|
|
223
|
+
* LDZ (input) INTEGER
|
|
224
|
+
* The leading dimension of the array Z. LDZ >= 1;
|
|
225
|
+
* If WANTZ = .TRUE., LDZ >= N.
|
|
226
|
+
*
|
|
227
|
+
* J1 (input) INTEGER
|
|
228
|
+
* The index to the first block (A11, B11).
|
|
229
|
+
*
|
|
230
|
+
* INFO (output) INTEGER
|
|
231
|
+
* =0: Successful exit.
|
|
232
|
+
* =1: The transformed matrix pair (A, B) would be too far
|
|
233
|
+
* from generalized Schur form; the problem is ill-
|
|
234
|
+
* conditioned.
|
|
235
|
+
*
|
|
236
|
+
*
|
|
237
|
+
|
|
238
|
+
* Further Details
|
|
239
|
+
* ===============
|
|
240
|
+
*
|
|
241
|
+
* Based on contributions by
|
|
242
|
+
* Bo Kagstrom and Peter Poromaa, Department of Computing Science,
|
|
243
|
+
* Umea University, S-901 87 Umea, Sweden.
|
|
244
|
+
*
|
|
245
|
+
* In the current code both weak and strong stability tests are
|
|
246
|
+
* performed. The user can omit the strong stability test by changing
|
|
247
|
+
* the internal logical parameter WANDS to .FALSE.. See ref. [2] for
|
|
248
|
+
* details.
|
|
249
|
+
*
|
|
250
|
+
* [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
|
|
251
|
+
* Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
|
|
252
|
+
* M.S. Moonen et al (eds), Linear Algebra for Large Scale and
|
|
253
|
+
* Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.
|
|
254
|
+
*
|
|
255
|
+
* [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
|
|
256
|
+
* Eigenvalues of a Regular Matrix Pair (A, B) and Condition
|
|
257
|
+
* Estimation: Theory, Algorithms and Software, Report UMINF-94.04,
|
|
258
|
+
* Department of Computing Science, Umea University, S-901 87 Umea,
|
|
259
|
+
* Sweden, 1994. Also as LAPACK Working Note 87. To appear in
|
|
260
|
+
* Numerical Algorithms, 1996.
|
|
261
|
+
*
|
|
262
|
+
* =====================================================================
|
|
263
|
+
*
|
|
264
|
+
|
|
265
|
+
|
|
266
|
+
</PRE>
|
|
267
|
+
<A HREF="#top">go to the page top</A>
|
|
268
|
+
|
|
269
|
+
<A NAME="ctgexc"></A>
|
|
270
|
+
<H2>ctgexc</H2>
|
|
271
|
+
<PRE>
|
|
272
|
+
USAGE:
|
|
273
|
+
info, a, b, q, z, ilst = NumRu::Lapack.ctgexc( wantq, wantz, a, b, q, ldq, z, ifst, ilst, [:usage => usage, :help => help])
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
FORTRAN MANUAL
|
|
277
|
+
SUBROUTINE CTGEXC( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, IFST, ILST, INFO )
|
|
278
|
+
|
|
279
|
+
* Purpose
|
|
280
|
+
* =======
|
|
281
|
+
*
|
|
282
|
+
* CTGEXC reorders the generalized Schur decomposition of a complex
|
|
283
|
+
* matrix pair (A,B), using an unitary equivalence transformation
|
|
284
|
+
* (A, B) := Q * (A, B) * Z', so that the diagonal block of (A, B) with
|
|
285
|
+
* row index IFST is moved to row ILST.
|
|
286
|
+
*
|
|
287
|
+
* (A, B) must be in generalized Schur canonical form, that is, A and
|
|
288
|
+
* B are both upper triangular.
|
|
289
|
+
*
|
|
290
|
+
* Optionally, the matrices Q and Z of generalized Schur vectors are
|
|
291
|
+
* updated.
|
|
292
|
+
*
|
|
293
|
+
* Q(in) * A(in) * Z(in)' = Q(out) * A(out) * Z(out)'
|
|
294
|
+
* Q(in) * B(in) * Z(in)' = Q(out) * B(out) * Z(out)'
|
|
295
|
+
*
|
|
296
|
+
|
|
297
|
+
* Arguments
|
|
298
|
+
* =========
|
|
299
|
+
*
|
|
300
|
+
* WANTQ (input) LOGICAL
|
|
301
|
+
* .TRUE. : update the left transformation matrix Q;
|
|
302
|
+
* .FALSE.: do not update Q.
|
|
303
|
+
*
|
|
304
|
+
* WANTZ (input) LOGICAL
|
|
305
|
+
* .TRUE. : update the right transformation matrix Z;
|
|
306
|
+
* .FALSE.: do not update Z.
|
|
307
|
+
*
|
|
308
|
+
* N (input) INTEGER
|
|
309
|
+
* The order of the matrices A and B. N >= 0.
|
|
310
|
+
*
|
|
311
|
+
* A (input/output) COMPLEX array, dimension (LDA,N)
|
|
312
|
+
* On entry, the upper triangular matrix A in the pair (A, B).
|
|
313
|
+
* On exit, the updated matrix A.
|
|
314
|
+
*
|
|
315
|
+
* LDA (input) INTEGER
|
|
316
|
+
* The leading dimension of the array A. LDA >= max(1,N).
|
|
317
|
+
*
|
|
318
|
+
* B (input/output) COMPLEX array, dimension (LDB,N)
|
|
319
|
+
* On entry, the upper triangular matrix B in the pair (A, B).
|
|
320
|
+
* On exit, the updated matrix B.
|
|
321
|
+
*
|
|
322
|
+
* LDB (input) INTEGER
|
|
323
|
+
* The leading dimension of the array B. LDB >= max(1,N).
|
|
324
|
+
*
|
|
325
|
+
* Q (input/output) COMPLEX array, dimension (LDZ,N)
|
|
326
|
+
* On entry, if WANTQ = .TRUE., the unitary matrix Q.
|
|
327
|
+
* On exit, the updated matrix Q.
|
|
328
|
+
* If WANTQ = .FALSE., Q is not referenced.
|
|
329
|
+
*
|
|
330
|
+
* LDQ (input) INTEGER
|
|
331
|
+
* The leading dimension of the array Q. LDQ >= 1;
|
|
332
|
+
* If WANTQ = .TRUE., LDQ >= N.
|
|
333
|
+
*
|
|
334
|
+
* Z (input/output) COMPLEX array, dimension (LDZ,N)
|
|
335
|
+
* On entry, if WANTZ = .TRUE., the unitary matrix Z.
|
|
336
|
+
* On exit, the updated matrix Z.
|
|
337
|
+
* If WANTZ = .FALSE., Z is not referenced.
|
|
338
|
+
*
|
|
339
|
+
* LDZ (input) INTEGER
|
|
340
|
+
* The leading dimension of the array Z. LDZ >= 1;
|
|
341
|
+
* If WANTZ = .TRUE., LDZ >= N.
|
|
342
|
+
*
|
|
343
|
+
* IFST (input) INTEGER
|
|
344
|
+
* ILST (input/output) INTEGER
|
|
345
|
+
* Specify the reordering of the diagonal blocks of (A, B).
|
|
346
|
+
* The block with row index IFST is moved to row ILST, by a
|
|
347
|
+
* sequence of swapping between adjacent blocks.
|
|
348
|
+
*
|
|
349
|
+
* INFO (output) INTEGER
|
|
350
|
+
* =0: Successful exit.
|
|
351
|
+
* <0: if INFO = -i, the i-th argument had an illegal value.
|
|
352
|
+
* =1: The transformed matrix pair (A, B) would be too far
|
|
353
|
+
* from generalized Schur form; the problem is ill-
|
|
354
|
+
* conditioned. (A, B) may have been partially reordered,
|
|
355
|
+
* and ILST points to the first row of the current
|
|
356
|
+
* position of the block being moved.
|
|
357
|
+
*
|
|
358
|
+
*
|
|
359
|
+
|
|
360
|
+
* Further Details
|
|
361
|
+
* ===============
|
|
362
|
+
*
|
|
363
|
+
* Based on contributions by
|
|
364
|
+
* Bo Kagstrom and Peter Poromaa, Department of Computing Science,
|
|
365
|
+
* Umea University, S-901 87 Umea, Sweden.
|
|
366
|
+
*
|
|
367
|
+
* [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
|
|
368
|
+
* Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
|
|
369
|
+
* M.S. Moonen et al (eds), Linear Algebra for Large Scale and
|
|
370
|
+
* Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.
|
|
371
|
+
*
|
|
372
|
+
* [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
|
|
373
|
+
* Eigenvalues of a Regular Matrix Pair (A, B) and Condition
|
|
374
|
+
* Estimation: Theory, Algorithms and Software, Report
|
|
375
|
+
* UMINF - 94.04, Department of Computing Science, Umea University,
|
|
376
|
+
* S-901 87 Umea, Sweden, 1994. Also as LAPACK Working Note 87.
|
|
377
|
+
* To appear in Numerical Algorithms, 1996.
|
|
378
|
+
*
|
|
379
|
+
* [3] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
|
|
380
|
+
* for Solving the Generalized Sylvester Equation and Estimating the
|
|
381
|
+
* Separation between Regular Matrix Pairs, Report UMINF - 93.23,
|
|
382
|
+
* Department of Computing Science, Umea University, S-901 87 Umea,
|
|
383
|
+
* Sweden, December 1993, Revised April 1994, Also as LAPACK working
|
|
384
|
+
* Note 75. To appear in ACM Trans. on Math. Software, Vol 22, No 1,
|
|
385
|
+
* 1996.
|
|
386
|
+
*
|
|
387
|
+
* =====================================================================
|
|
388
|
+
*
|
|
389
|
+
* .. Local Scalars ..
|
|
390
|
+
INTEGER HERE
|
|
391
|
+
* ..
|
|
392
|
+
* .. External Subroutines ..
|
|
393
|
+
EXTERNAL CTGEX2, XERBLA
|
|
394
|
+
* ..
|
|
395
|
+
* .. Intrinsic Functions ..
|
|
396
|
+
INTRINSIC MAX
|
|
397
|
+
* ..
|
|
398
|
+
|
|
399
|
+
|
|
400
|
+
</PRE>
|
|
401
|
+
<A HREF="#top">go to the page top</A>
|
|
402
|
+
|
|
403
|
+
<A NAME="ctgsen"></A>
|
|
404
|
+
<H2>ctgsen</H2>
|
|
405
|
+
<PRE>
|
|
406
|
+
USAGE:
|
|
407
|
+
alpha, beta, m, pl, pr, dif, work, iwork, info, a, b, q, z = NumRu::Lapack.ctgsen( ijob, wantq, wantz, select, a, b, q, z, [:lwork => lwork, :liwork => liwork, :usage => usage, :help => help])
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
FORTRAN MANUAL
|
|
411
|
+
SUBROUTINE CTGSEN( IJOB, WANTQ, WANTZ, SELECT, N, A, LDA, B, LDB, ALPHA, BETA, Q, LDQ, Z, LDZ, M, PL, PR, DIF, WORK, LWORK, IWORK, LIWORK, INFO )
|
|
412
|
+
|
|
413
|
+
* Purpose
|
|
414
|
+
* =======
|
|
415
|
+
*
|
|
416
|
+
* CTGSEN reorders the generalized Schur decomposition of a complex
|
|
417
|
+
* matrix pair (A, B) (in terms of an unitary equivalence trans-
|
|
418
|
+
* formation Q' * (A, B) * Z), so that a selected cluster of eigenvalues
|
|
419
|
+
* appears in the leading diagonal blocks of the pair (A,B). The leading
|
|
420
|
+
* columns of Q and Z form unitary bases of the corresponding left and
|
|
421
|
+
* right eigenspaces (deflating subspaces). (A, B) must be in
|
|
422
|
+
* generalized Schur canonical form, that is, A and B are both upper
|
|
423
|
+
* triangular.
|
|
424
|
+
*
|
|
425
|
+
* CTGSEN also computes the generalized eigenvalues
|
|
426
|
+
*
|
|
427
|
+
* w(j)= ALPHA(j) / BETA(j)
|
|
428
|
+
*
|
|
429
|
+
* of the reordered matrix pair (A, B).
|
|
430
|
+
*
|
|
431
|
+
* Optionally, the routine computes estimates of reciprocal condition
|
|
432
|
+
* numbers for eigenvalues and eigenspaces. These are Difu[(A11,B11),
|
|
433
|
+
* (A22,B22)] and Difl[(A11,B11), (A22,B22)], i.e. the separation(s)
|
|
434
|
+
* between the matrix pairs (A11, B11) and (A22,B22) that correspond to
|
|
435
|
+
* the selected cluster and the eigenvalues outside the cluster, resp.,
|
|
436
|
+
* and norms of "projections" onto left and right eigenspaces w.r.t.
|
|
437
|
+
* the selected cluster in the (1,1)-block.
|
|
438
|
+
*
|
|
439
|
+
*
|
|
440
|
+
|
|
441
|
+
* Arguments
|
|
442
|
+
* =========
|
|
443
|
+
*
|
|
444
|
+
* IJOB (input) integer
|
|
445
|
+
* Specifies whether condition numbers are required for the
|
|
446
|
+
* cluster of eigenvalues (PL and PR) or the deflating subspaces
|
|
447
|
+
* (Difu and Difl):
|
|
448
|
+
* =0: Only reorder w.r.t. SELECT. No extras.
|
|
449
|
+
* =1: Reciprocal of norms of "projections" onto left and right
|
|
450
|
+
* eigenspaces w.r.t. the selected cluster (PL and PR).
|
|
451
|
+
* =2: Upper bounds on Difu and Difl. F-norm-based estimate
|
|
452
|
+
* (DIF(1:2)).
|
|
453
|
+
* =3: Estimate of Difu and Difl. 1-norm-based estimate
|
|
454
|
+
* (DIF(1:2)).
|
|
455
|
+
* About 5 times as expensive as IJOB = 2.
|
|
456
|
+
* =4: Compute PL, PR and DIF (i.e. 0, 1 and 2 above): Economic
|
|
457
|
+
* version to get it all.
|
|
458
|
+
* =5: Compute PL, PR and DIF (i.e. 0, 1 and 3 above)
|
|
459
|
+
*
|
|
460
|
+
* WANTQ (input) LOGICAL
|
|
461
|
+
* .TRUE. : update the left transformation matrix Q;
|
|
462
|
+
* .FALSE.: do not update Q.
|
|
463
|
+
*
|
|
464
|
+
* WANTZ (input) LOGICAL
|
|
465
|
+
* .TRUE. : update the right transformation matrix Z;
|
|
466
|
+
* .FALSE.: do not update Z.
|
|
467
|
+
*
|
|
468
|
+
* SELECT (input) LOGICAL array, dimension (N)
|
|
469
|
+
* SELECT specifies the eigenvalues in the selected cluster. To
|
|
470
|
+
* select an eigenvalue w(j), SELECT(j) must be set to
|
|
471
|
+
* .TRUE..
|
|
472
|
+
*
|
|
473
|
+
* N (input) INTEGER
|
|
474
|
+
* The order of the matrices A and B. N >= 0.
|
|
475
|
+
*
|
|
476
|
+
* A (input/output) COMPLEX array, dimension(LDA,N)
|
|
477
|
+
* On entry, the upper triangular matrix A, in generalized
|
|
478
|
+
* Schur canonical form.
|
|
479
|
+
* On exit, A is overwritten by the reordered matrix A.
|
|
480
|
+
*
|
|
481
|
+
* LDA (input) INTEGER
|
|
482
|
+
* The leading dimension of the array A. LDA >= max(1,N).
|
|
483
|
+
*
|
|
484
|
+
* B (input/output) COMPLEX array, dimension(LDB,N)
|
|
485
|
+
* On entry, the upper triangular matrix B, in generalized
|
|
486
|
+
* Schur canonical form.
|
|
487
|
+
* On exit, B is overwritten by the reordered matrix B.
|
|
488
|
+
*
|
|
489
|
+
* LDB (input) INTEGER
|
|
490
|
+
* The leading dimension of the array B. LDB >= max(1,N).
|
|
491
|
+
*
|
|
492
|
+
* ALPHA (output) COMPLEX array, dimension (N)
|
|
493
|
+
* BETA (output) COMPLEX array, dimension (N)
|
|
494
|
+
* The diagonal elements of A and B, respectively,
|
|
495
|
+
* when the pair (A,B) has been reduced to generalized Schur
|
|
496
|
+
* form. ALPHA(i)/BETA(i) i=1,...,N are the generalized
|
|
497
|
+
* eigenvalues.
|
|
498
|
+
*
|
|
499
|
+
* Q (input/output) COMPLEX array, dimension (LDQ,N)
|
|
500
|
+
* On entry, if WANTQ = .TRUE., Q is an N-by-N matrix.
|
|
501
|
+
* On exit, Q has been postmultiplied by the left unitary
|
|
502
|
+
* transformation matrix which reorder (A, B); The leading M
|
|
503
|
+
* columns of Q form orthonormal bases for the specified pair of
|
|
504
|
+
* left eigenspaces (deflating subspaces).
|
|
505
|
+
* If WANTQ = .FALSE., Q is not referenced.
|
|
506
|
+
*
|
|
507
|
+
* LDQ (input) INTEGER
|
|
508
|
+
* The leading dimension of the array Q. LDQ >= 1.
|
|
509
|
+
* If WANTQ = .TRUE., LDQ >= N.
|
|
510
|
+
*
|
|
511
|
+
* Z (input/output) COMPLEX array, dimension (LDZ,N)
|
|
512
|
+
* On entry, if WANTZ = .TRUE., Z is an N-by-N matrix.
|
|
513
|
+
* On exit, Z has been postmultiplied by the left unitary
|
|
514
|
+
* transformation matrix which reorder (A, B); The leading M
|
|
515
|
+
* columns of Z form orthonormal bases for the specified pair of
|
|
516
|
+
* left eigenspaces (deflating subspaces).
|
|
517
|
+
* If WANTZ = .FALSE., Z is not referenced.
|
|
518
|
+
*
|
|
519
|
+
* LDZ (input) INTEGER
|
|
520
|
+
* The leading dimension of the array Z. LDZ >= 1.
|
|
521
|
+
* If WANTZ = .TRUE., LDZ >= N.
|
|
522
|
+
*
|
|
523
|
+
* M (output) INTEGER
|
|
524
|
+
* The dimension of the specified pair of left and right
|
|
525
|
+
* eigenspaces, (deflating subspaces) 0 <= M <= N.
|
|
526
|
+
*
|
|
527
|
+
* PL (output) REAL
|
|
528
|
+
* PR (output) REAL
|
|
529
|
+
* If IJOB = 1, 4 or 5, PL, PR are lower bounds on the
|
|
530
|
+
* reciprocal of the norm of "projections" onto left and right
|
|
531
|
+
* eigenspace with respect to the selected cluster.
|
|
532
|
+
* 0 < PL, PR <= 1.
|
|
533
|
+
* If M = 0 or M = N, PL = PR = 1.
|
|
534
|
+
* If IJOB = 0, 2 or 3 PL, PR are not referenced.
|
|
535
|
+
*
|
|
536
|
+
* DIF (output) REAL array, dimension (2).
|
|
537
|
+
* If IJOB >= 2, DIF(1:2) store the estimates of Difu and Difl.
|
|
538
|
+
* If IJOB = 2 or 4, DIF(1:2) are F-norm-based upper bounds on
|
|
539
|
+
* Difu and Difl. If IJOB = 3 or 5, DIF(1:2) are 1-norm-based
|
|
540
|
+
* estimates of Difu and Difl, computed using reversed
|
|
541
|
+
* communication with CLACN2.
|
|
542
|
+
* If M = 0 or N, DIF(1:2) = F-norm([A, B]).
|
|
543
|
+
* If IJOB = 0 or 1, DIF is not referenced.
|
|
544
|
+
*
|
|
545
|
+
* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
|
|
546
|
+
* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
|
|
547
|
+
*
|
|
548
|
+
* LWORK (input) INTEGER
|
|
549
|
+
* The dimension of the array WORK. LWORK >= 1
|
|
550
|
+
* If IJOB = 1, 2 or 4, LWORK >= 2*M*(N-M)
|
|
551
|
+
* If IJOB = 3 or 5, LWORK >= 4*M*(N-M)
|
|
552
|
+
*
|
|
553
|
+
* If LWORK = -1, then a workspace query is assumed; the routine
|
|
554
|
+
* only calculates the optimal size of the WORK array, returns
|
|
555
|
+
* this value as the first entry of the WORK array, and no error
|
|
556
|
+
* message related to LWORK is issued by XERBLA.
|
|
557
|
+
*
|
|
558
|
+
* IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
|
|
559
|
+
* On exit, if INFO = 0, IWORK(1) returns the optimal LIWORK.
|
|
560
|
+
*
|
|
561
|
+
* LIWORK (input) INTEGER
|
|
562
|
+
* The dimension of the array IWORK. LIWORK >= 1.
|
|
563
|
+
* If IJOB = 1, 2 or 4, LIWORK >= N+2;
|
|
564
|
+
* If IJOB = 3 or 5, LIWORK >= MAX(N+2, 2*M*(N-M));
|
|
565
|
+
*
|
|
566
|
+
* If LIWORK = -1, then a workspace query is assumed; the
|
|
567
|
+
* routine only calculates the optimal size of the IWORK array,
|
|
568
|
+
* returns this value as the first entry of the IWORK array, and
|
|
569
|
+
* no error message related to LIWORK is issued by XERBLA.
|
|
570
|
+
*
|
|
571
|
+
* INFO (output) INTEGER
|
|
572
|
+
* =0: Successful exit.
|
|
573
|
+
* <0: If INFO = -i, the i-th argument had an illegal value.
|
|
574
|
+
* =1: Reordering of (A, B) failed because the transformed
|
|
575
|
+
* matrix pair (A, B) would be too far from generalized
|
|
576
|
+
* Schur form; the problem is very ill-conditioned.
|
|
577
|
+
* (A, B) may have been partially reordered.
|
|
578
|
+
* If requested, 0 is returned in DIF(*), PL and PR.
|
|
579
|
+
*
|
|
580
|
+
*
|
|
581
|
+
|
|
582
|
+
* Further Details
|
|
583
|
+
* ===============
|
|
584
|
+
*
|
|
585
|
+
* CTGSEN first collects the selected eigenvalues by computing unitary
|
|
586
|
+
* U and W that move them to the top left corner of (A, B). In other
|
|
587
|
+
* words, the selected eigenvalues are the eigenvalues of (A11, B11) in
|
|
588
|
+
*
|
|
589
|
+
* U'*(A, B)*W = (A11 A12) (B11 B12) n1
|
|
590
|
+
* ( 0 A22),( 0 B22) n2
|
|
591
|
+
* n1 n2 n1 n2
|
|
592
|
+
*
|
|
593
|
+
* where N = n1+n2 and U' means the conjugate transpose of U. The first
|
|
594
|
+
* n1 columns of U and W span the specified pair of left and right
|
|
595
|
+
* eigenspaces (deflating subspaces) of (A, B).
|
|
596
|
+
*
|
|
597
|
+
* If (A, B) has been obtained from the generalized real Schur
|
|
598
|
+
* decomposition of a matrix pair (C, D) = Q*(A, B)*Z', then the
|
|
599
|
+
* reordered generalized Schur form of (C, D) is given by
|
|
600
|
+
*
|
|
601
|
+
* (C, D) = (Q*U)*(U'*(A, B)*W)*(Z*W)',
|
|
602
|
+
*
|
|
603
|
+
* and the first n1 columns of Q*U and Z*W span the corresponding
|
|
604
|
+
* deflating subspaces of (C, D) (Q and Z store Q*U and Z*W, resp.).
|
|
605
|
+
*
|
|
606
|
+
* Note that if the selected eigenvalue is sufficiently ill-conditioned,
|
|
607
|
+
* then its value may differ significantly from its value before
|
|
608
|
+
* reordering.
|
|
609
|
+
*
|
|
610
|
+
* The reciprocal condition numbers of the left and right eigenspaces
|
|
611
|
+
* spanned by the first n1 columns of U and W (or Q*U and Z*W) may
|
|
612
|
+
* be returned in DIF(1:2), corresponding to Difu and Difl, resp.
|
|
613
|
+
*
|
|
614
|
+
* The Difu and Difl are defined as:
|
|
615
|
+
*
|
|
616
|
+
* Difu[(A11, B11), (A22, B22)] = sigma-min( Zu )
|
|
617
|
+
* and
|
|
618
|
+
* Difl[(A11, B11), (A22, B22)] = Difu[(A22, B22), (A11, B11)],
|
|
619
|
+
*
|
|
620
|
+
* where sigma-min(Zu) is the smallest singular value of the
|
|
621
|
+
* (2*n1*n2)-by-(2*n1*n2) matrix
|
|
622
|
+
*
|
|
623
|
+
* Zu = [ kron(In2, A11) -kron(A22', In1) ]
|
|
624
|
+
* [ kron(In2, B11) -kron(B22', In1) ].
|
|
625
|
+
*
|
|
626
|
+
* Here, Inx is the identity matrix of size nx and A22' is the
|
|
627
|
+
* transpose of A22. kron(X, Y) is the Kronecker product between
|
|
628
|
+
* the matrices X and Y.
|
|
629
|
+
*
|
|
630
|
+
* When DIF(2) is small, small changes in (A, B) can cause large changes
|
|
631
|
+
* in the deflating subspace. An approximate (asymptotic) bound on the
|
|
632
|
+
* maximum angular error in the computed deflating subspaces is
|
|
633
|
+
*
|
|
634
|
+
* EPS * norm((A, B)) / DIF(2),
|
|
635
|
+
*
|
|
636
|
+
* where EPS is the machine precision.
|
|
637
|
+
*
|
|
638
|
+
* The reciprocal norm of the projectors on the left and right
|
|
639
|
+
* eigenspaces associated with (A11, B11) may be returned in PL and PR.
|
|
640
|
+
* They are computed as follows. First we compute L and R so that
|
|
641
|
+
* P*(A, B)*Q is block diagonal, where
|
|
642
|
+
*
|
|
643
|
+
* P = ( I -L ) n1 Q = ( I R ) n1
|
|
644
|
+
* ( 0 I ) n2 and ( 0 I ) n2
|
|
645
|
+
* n1 n2 n1 n2
|
|
646
|
+
*
|
|
647
|
+
* and (L, R) is the solution to the generalized Sylvester equation
|
|
648
|
+
*
|
|
649
|
+
* A11*R - L*A22 = -A12
|
|
650
|
+
* B11*R - L*B22 = -B12
|
|
651
|
+
*
|
|
652
|
+
* Then PL = (F-norm(L)**2+1)**(-1/2) and PR = (F-norm(R)**2+1)**(-1/2).
|
|
653
|
+
* An approximate (asymptotic) bound on the average absolute error of
|
|
654
|
+
* the selected eigenvalues is
|
|
655
|
+
*
|
|
656
|
+
* EPS * norm((A, B)) / PL.
|
|
657
|
+
*
|
|
658
|
+
* There are also global error bounds which valid for perturbations up
|
|
659
|
+
* to a certain restriction: A lower bound (x) on the smallest
|
|
660
|
+
* F-norm(E,F) for which an eigenvalue of (A11, B11) may move and
|
|
661
|
+
* coalesce with an eigenvalue of (A22, B22) under perturbation (E,F),
|
|
662
|
+
* (i.e. (A + E, B + F), is
|
|
663
|
+
*
|
|
664
|
+
* x = min(Difu,Difl)/((1/(PL*PL)+1/(PR*PR))**(1/2)+2*max(1/PL,1/PR)).
|
|
665
|
+
*
|
|
666
|
+
* An approximate bound on x can be computed from DIF(1:2), PL and PR.
|
|
667
|
+
*
|
|
668
|
+
* If y = ( F-norm(E,F) / x) <= 1, the angles between the perturbed
|
|
669
|
+
* (L', R') and unperturbed (L, R) left and right deflating subspaces
|
|
670
|
+
* associated with the selected cluster in the (1,1)-blocks can be
|
|
671
|
+
* bounded as
|
|
672
|
+
*
|
|
673
|
+
* max-angle(L, L') <= arctan( y * PL / (1 - y * (1 - PL * PL)**(1/2))
|
|
674
|
+
* max-angle(R, R') <= arctan( y * PR / (1 - y * (1 - PR * PR)**(1/2))
|
|
675
|
+
*
|
|
676
|
+
* See LAPACK User's Guide section 4.11 or the following references
|
|
677
|
+
* for more information.
|
|
678
|
+
*
|
|
679
|
+
* Note that if the default method for computing the Frobenius-norm-
|
|
680
|
+
* based estimate DIF is not wanted (see CLATDF), then the parameter
|
|
681
|
+
* IDIFJB (see below) should be changed from 3 to 4 (routine CLATDF
|
|
682
|
+
* (IJOB = 2 will be used)). See CTGSYL for more details.
|
|
683
|
+
*
|
|
684
|
+
* Based on contributions by
|
|
685
|
+
* Bo Kagstrom and Peter Poromaa, Department of Computing Science,
|
|
686
|
+
* Umea University, S-901 87 Umea, Sweden.
|
|
687
|
+
*
|
|
688
|
+
* References
|
|
689
|
+
* ==========
|
|
690
|
+
*
|
|
691
|
+
* [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
|
|
692
|
+
* Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
|
|
693
|
+
* M.S. Moonen et al (eds), Linear Algebra for Large Scale and
|
|
694
|
+
* Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.
|
|
695
|
+
*
|
|
696
|
+
* [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
|
|
697
|
+
* Eigenvalues of a Regular Matrix Pair (A, B) and Condition
|
|
698
|
+
* Estimation: Theory, Algorithms and Software, Report
|
|
699
|
+
* UMINF - 94.04, Department of Computing Science, Umea University,
|
|
700
|
+
* S-901 87 Umea, Sweden, 1994. Also as LAPACK Working Note 87.
|
|
701
|
+
* To appear in Numerical Algorithms, 1996.
|
|
702
|
+
*
|
|
703
|
+
* [3] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
|
|
704
|
+
* for Solving the Generalized Sylvester Equation and Estimating the
|
|
705
|
+
* Separation between Regular Matrix Pairs, Report UMINF - 93.23,
|
|
706
|
+
* Department of Computing Science, Umea University, S-901 87 Umea,
|
|
707
|
+
* Sweden, December 1993, Revised April 1994, Also as LAPACK working
|
|
708
|
+
* Note 75. To appear in ACM Trans. on Math. Software, Vol 22, No 1,
|
|
709
|
+
* 1996.
|
|
710
|
+
*
|
|
711
|
+
* =====================================================================
|
|
712
|
+
*
|
|
713
|
+
|
|
714
|
+
|
|
715
|
+
</PRE>
|
|
716
|
+
<A HREF="#top">go to the page top</A>
|
|
717
|
+
|
|
718
|
+
<A NAME="ctgsja"></A>
|
|
719
|
+
<H2>ctgsja</H2>
|
|
720
|
+
<PRE>
|
|
721
|
+
USAGE:
|
|
722
|
+
alpha, beta, ncycle, info, a, b, u, v, q = NumRu::Lapack.ctgsja( jobu, jobv, jobq, k, l, a, b, tola, tolb, u, v, q, [:usage => usage, :help => help])
|
|
723
|
+
|
|
724
|
+
|
|
725
|
+
FORTRAN MANUAL
|
|
726
|
+
SUBROUTINE CTGSJA( JOBU, JOBV, JOBQ, M, P, N, K, L, A, LDA, B, LDB, TOLA, TOLB, ALPHA, BETA, U, LDU, V, LDV, Q, LDQ, WORK, NCYCLE, INFO )
|
|
727
|
+
|
|
728
|
+
* Purpose
|
|
729
|
+
* =======
|
|
730
|
+
*
|
|
731
|
+
* CTGSJA computes the generalized singular value decomposition (GSVD)
|
|
732
|
+
* of two complex upper triangular (or trapezoidal) matrices A and B.
|
|
733
|
+
*
|
|
734
|
+
* On entry, it is assumed that matrices A and B have the following
|
|
735
|
+
* forms, which may be obtained by the preprocessing subroutine CGGSVP
|
|
736
|
+
* from a general M-by-N matrix A and P-by-N matrix B:
|
|
737
|
+
*
|
|
738
|
+
* N-K-L K L
|
|
739
|
+
* A = K ( 0 A12 A13 ) if M-K-L >= 0;
|
|
740
|
+
* L ( 0 0 A23 )
|
|
741
|
+
* M-K-L ( 0 0 0 )
|
|
742
|
+
*
|
|
743
|
+
* N-K-L K L
|
|
744
|
+
* A = K ( 0 A12 A13 ) if M-K-L < 0;
|
|
745
|
+
* M-K ( 0 0 A23 )
|
|
746
|
+
*
|
|
747
|
+
* N-K-L K L
|
|
748
|
+
* B = L ( 0 0 B13 )
|
|
749
|
+
* P-L ( 0 0 0 )
|
|
750
|
+
*
|
|
751
|
+
* where the K-by-K matrix A12 and L-by-L matrix B13 are nonsingular
|
|
752
|
+
* upper triangular; A23 is L-by-L upper triangular if M-K-L >= 0,
|
|
753
|
+
* otherwise A23 is (M-K)-by-L upper trapezoidal.
|
|
754
|
+
*
|
|
755
|
+
* On exit,
|
|
756
|
+
*
|
|
757
|
+
* U'*A*Q = D1*( 0 R ), V'*B*Q = D2*( 0 R ),
|
|
758
|
+
*
|
|
759
|
+
* where U, V and Q are unitary matrices, Z' denotes the conjugate
|
|
760
|
+
* transpose of Z, R is a nonsingular upper triangular matrix, and D1
|
|
761
|
+
* and D2 are ``diagonal'' matrices, which are of the following
|
|
762
|
+
* structures:
|
|
763
|
+
*
|
|
764
|
+
* If M-K-L >= 0,
|
|
765
|
+
*
|
|
766
|
+
* K L
|
|
767
|
+
* D1 = K ( I 0 )
|
|
768
|
+
* L ( 0 C )
|
|
769
|
+
* M-K-L ( 0 0 )
|
|
770
|
+
*
|
|
771
|
+
* K L
|
|
772
|
+
* D2 = L ( 0 S )
|
|
773
|
+
* P-L ( 0 0 )
|
|
774
|
+
*
|
|
775
|
+
* N-K-L K L
|
|
776
|
+
* ( 0 R ) = K ( 0 R11 R12 ) K
|
|
777
|
+
* L ( 0 0 R22 ) L
|
|
778
|
+
*
|
|
779
|
+
* where
|
|
780
|
+
*
|
|
781
|
+
* C = diag( ALPHA(K+1), ... , ALPHA(K+L) ),
|
|
782
|
+
* S = diag( BETA(K+1), ... , BETA(K+L) ),
|
|
783
|
+
* C**2 + S**2 = I.
|
|
784
|
+
*
|
|
785
|
+
* R is stored in A(1:K+L,N-K-L+1:N) on exit.
|
|
786
|
+
*
|
|
787
|
+
* If M-K-L < 0,
|
|
788
|
+
*
|
|
789
|
+
* K M-K K+L-M
|
|
790
|
+
* D1 = K ( I 0 0 )
|
|
791
|
+
* M-K ( 0 C 0 )
|
|
792
|
+
*
|
|
793
|
+
* K M-K K+L-M
|
|
794
|
+
* D2 = M-K ( 0 S 0 )
|
|
795
|
+
* K+L-M ( 0 0 I )
|
|
796
|
+
* P-L ( 0 0 0 )
|
|
797
|
+
*
|
|
798
|
+
* N-K-L K M-K K+L-M
|
|
799
|
+
* ( 0 R ) = K ( 0 R11 R12 R13 )
|
|
800
|
+
* M-K ( 0 0 R22 R23 )
|
|
801
|
+
* K+L-M ( 0 0 0 R33 )
|
|
802
|
+
*
|
|
803
|
+
* where
|
|
804
|
+
* C = diag( ALPHA(K+1), ... , ALPHA(M) ),
|
|
805
|
+
* S = diag( BETA(K+1), ... , BETA(M) ),
|
|
806
|
+
* C**2 + S**2 = I.
|
|
807
|
+
*
|
|
808
|
+
* R = ( R11 R12 R13 ) is stored in A(1:M, N-K-L+1:N) and R33 is stored
|
|
809
|
+
* ( 0 R22 R23 )
|
|
810
|
+
* in B(M-K+1:L,N+M-K-L+1:N) on exit.
|
|
811
|
+
*
|
|
812
|
+
* The computation of the unitary transformation matrices U, V or Q
|
|
813
|
+
* is optional. These matrices may either be formed explicitly, or they
|
|
814
|
+
* may be postmultiplied into input matrices U1, V1, or Q1.
|
|
815
|
+
*
|
|
816
|
+
|
|
817
|
+
* Arguments
|
|
818
|
+
* =========
|
|
819
|
+
*
|
|
820
|
+
* JOBU (input) CHARACTER*1
|
|
821
|
+
* = 'U': U must contain a unitary matrix U1 on entry, and
|
|
822
|
+
* the product U1*U is returned;
|
|
823
|
+
* = 'I': U is initialized to the unit matrix, and the
|
|
824
|
+
* unitary matrix U is returned;
|
|
825
|
+
* = 'N': U is not computed.
|
|
826
|
+
*
|
|
827
|
+
* JOBV (input) CHARACTER*1
|
|
828
|
+
* = 'V': V must contain a unitary matrix V1 on entry, and
|
|
829
|
+
* the product V1*V is returned;
|
|
830
|
+
* = 'I': V is initialized to the unit matrix, and the
|
|
831
|
+
* unitary matrix V is returned;
|
|
832
|
+
* = 'N': V is not computed.
|
|
833
|
+
*
|
|
834
|
+
* JOBQ (input) CHARACTER*1
|
|
835
|
+
* = 'Q': Q must contain a unitary matrix Q1 on entry, and
|
|
836
|
+
* the product Q1*Q is returned;
|
|
837
|
+
* = 'I': Q is initialized to the unit matrix, and the
|
|
838
|
+
* unitary matrix Q is returned;
|
|
839
|
+
* = 'N': Q is not computed.
|
|
840
|
+
*
|
|
841
|
+
* M (input) INTEGER
|
|
842
|
+
* The number of rows of the matrix A. M >= 0.
|
|
843
|
+
*
|
|
844
|
+
* P (input) INTEGER
|
|
845
|
+
* The number of rows of the matrix B. P >= 0.
|
|
846
|
+
*
|
|
847
|
+
* N (input) INTEGER
|
|
848
|
+
* The number of columns of the matrices A and B. N >= 0.
|
|
849
|
+
*
|
|
850
|
+
* K (input) INTEGER
|
|
851
|
+
* L (input) INTEGER
|
|
852
|
+
* K and L specify the subblocks in the input matrices A and B:
|
|
853
|
+
* A23 = A(K+1:MIN(K+L,M),N-L+1:N) and B13 = B(1:L,,N-L+1:N)
|
|
854
|
+
* of A and B, whose GSVD is going to be computed by CTGSJA.
|
|
855
|
+
* See Further Details.
|
|
856
|
+
*
|
|
857
|
+
* A (input/output) COMPLEX array, dimension (LDA,N)
|
|
858
|
+
* On entry, the M-by-N matrix A.
|
|
859
|
+
* On exit, A(N-K+1:N,1:MIN(K+L,M) ) contains the triangular
|
|
860
|
+
* matrix R or part of R. See Purpose for details.
|
|
861
|
+
*
|
|
862
|
+
* LDA (input) INTEGER
|
|
863
|
+
* The leading dimension of the array A. LDA >= max(1,M).
|
|
864
|
+
*
|
|
865
|
+
* B (input/output) COMPLEX array, dimension (LDB,N)
|
|
866
|
+
* On entry, the P-by-N matrix B.
|
|
867
|
+
* On exit, if necessary, B(M-K+1:L,N+M-K-L+1:N) contains
|
|
868
|
+
* a part of R. See Purpose for details.
|
|
869
|
+
*
|
|
870
|
+
* LDB (input) INTEGER
|
|
871
|
+
* The leading dimension of the array B. LDB >= max(1,P).
|
|
872
|
+
*
|
|
873
|
+
* TOLA (input) REAL
|
|
874
|
+
* TOLB (input) REAL
|
|
875
|
+
* TOLA and TOLB are the convergence criteria for the Jacobi-
|
|
876
|
+
* Kogbetliantz iteration procedure. Generally, they are the
|
|
877
|
+
* same as used in the preprocessing step, say
|
|
878
|
+
* TOLA = MAX(M,N)*norm(A)*MACHEPS,
|
|
879
|
+
* TOLB = MAX(P,N)*norm(B)*MACHEPS.
|
|
880
|
+
*
|
|
881
|
+
* ALPHA (output) REAL array, dimension (N)
|
|
882
|
+
* BETA (output) REAL array, dimension (N)
|
|
883
|
+
* On exit, ALPHA and BETA contain the generalized singular
|
|
884
|
+
* value pairs of A and B;
|
|
885
|
+
* ALPHA(1:K) = 1,
|
|
886
|
+
* BETA(1:K) = 0,
|
|
887
|
+
* and if M-K-L >= 0,
|
|
888
|
+
* ALPHA(K+1:K+L) = diag(C),
|
|
889
|
+
* BETA(K+1:K+L) = diag(S),
|
|
890
|
+
* or if M-K-L < 0,
|
|
891
|
+
* ALPHA(K+1:M)= C, ALPHA(M+1:K+L)= 0
|
|
892
|
+
* BETA(K+1:M) = S, BETA(M+1:K+L) = 1.
|
|
893
|
+
* Furthermore, if K+L < N,
|
|
894
|
+
* ALPHA(K+L+1:N) = 0
|
|
895
|
+
* BETA(K+L+1:N) = 0.
|
|
896
|
+
*
|
|
897
|
+
* U (input/output) COMPLEX array, dimension (LDU,M)
|
|
898
|
+
* On entry, if JOBU = 'U', U must contain a matrix U1 (usually
|
|
899
|
+
* the unitary matrix returned by CGGSVP).
|
|
900
|
+
* On exit,
|
|
901
|
+
* if JOBU = 'I', U contains the unitary matrix U;
|
|
902
|
+
* if JOBU = 'U', U contains the product U1*U.
|
|
903
|
+
* If JOBU = 'N', U is not referenced.
|
|
904
|
+
*
|
|
905
|
+
* LDU (input) INTEGER
|
|
906
|
+
* The leading dimension of the array U. LDU >= max(1,M) if
|
|
907
|
+
* JOBU = 'U'; LDU >= 1 otherwise.
|
|
908
|
+
*
|
|
909
|
+
* V (input/output) COMPLEX array, dimension (LDV,P)
|
|
910
|
+
* On entry, if JOBV = 'V', V must contain a matrix V1 (usually
|
|
911
|
+
* the unitary matrix returned by CGGSVP).
|
|
912
|
+
* On exit,
|
|
913
|
+
* if JOBV = 'I', V contains the unitary matrix V;
|
|
914
|
+
* if JOBV = 'V', V contains the product V1*V.
|
|
915
|
+
* If JOBV = 'N', V is not referenced.
|
|
916
|
+
*
|
|
917
|
+
* LDV (input) INTEGER
|
|
918
|
+
* The leading dimension of the array V. LDV >= max(1,P) if
|
|
919
|
+
* JOBV = 'V'; LDV >= 1 otherwise.
|
|
920
|
+
*
|
|
921
|
+
* Q (input/output) COMPLEX array, dimension (LDQ,N)
|
|
922
|
+
* On entry, if JOBQ = 'Q', Q must contain a matrix Q1 (usually
|
|
923
|
+
* the unitary matrix returned by CGGSVP).
|
|
924
|
+
* On exit,
|
|
925
|
+
* if JOBQ = 'I', Q contains the unitary matrix Q;
|
|
926
|
+
* if JOBQ = 'Q', Q contains the product Q1*Q.
|
|
927
|
+
* If JOBQ = 'N', Q is not referenced.
|
|
928
|
+
*
|
|
929
|
+
* LDQ (input) INTEGER
|
|
930
|
+
* The leading dimension of the array Q. LDQ >= max(1,N) if
|
|
931
|
+
* JOBQ = 'Q'; LDQ >= 1 otherwise.
|
|
932
|
+
*
|
|
933
|
+
* WORK (workspace) COMPLEX array, dimension (2*N)
|
|
934
|
+
*
|
|
935
|
+
* NCYCLE (output) INTEGER
|
|
936
|
+
* The number of cycles required for convergence.
|
|
937
|
+
*
|
|
938
|
+
* INFO (output) INTEGER
|
|
939
|
+
* = 0: successful exit
|
|
940
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value.
|
|
941
|
+
* = 1: the procedure does not converge after MAXIT cycles.
|
|
942
|
+
*
|
|
943
|
+
* Internal Parameters
|
|
944
|
+
* ===================
|
|
945
|
+
*
|
|
946
|
+
* MAXIT INTEGER
|
|
947
|
+
* MAXIT specifies the total loops that the iterative procedure
|
|
948
|
+
* may take. If after MAXIT cycles, the routine fails to
|
|
949
|
+
* converge, we return INFO = 1.
|
|
950
|
+
*
|
|
951
|
+
|
|
952
|
+
* Further Details
|
|
953
|
+
* ===============
|
|
954
|
+
*
|
|
955
|
+
* CTGSJA essentially uses a variant of Kogbetliantz algorithm to reduce
|
|
956
|
+
* min(L,M-K)-by-L triangular (or trapezoidal) matrix A23 and L-by-L
|
|
957
|
+
* matrix B13 to the form:
|
|
958
|
+
*
|
|
959
|
+
* U1'*A13*Q1 = C1*R1; V1'*B13*Q1 = S1*R1,
|
|
960
|
+
*
|
|
961
|
+
* where U1, V1 and Q1 are unitary matrix, and Z' is the conjugate
|
|
962
|
+
* transpose of Z. C1 and S1 are diagonal matrices satisfying
|
|
963
|
+
*
|
|
964
|
+
* C1**2 + S1**2 = I,
|
|
965
|
+
*
|
|
966
|
+
* and R1 is an L-by-L nonsingular upper triangular matrix.
|
|
967
|
+
*
|
|
968
|
+
* =====================================================================
|
|
969
|
+
*
|
|
970
|
+
|
|
971
|
+
|
|
972
|
+
</PRE>
|
|
973
|
+
<A HREF="#top">go to the page top</A>
|
|
974
|
+
|
|
975
|
+
<A NAME="ctgsna"></A>
|
|
976
|
+
<H2>ctgsna</H2>
|
|
977
|
+
<PRE>
|
|
978
|
+
USAGE:
|
|
979
|
+
s, dif, m, work, info = NumRu::Lapack.ctgsna( job, howmny, select, a, b, vl, vr, [:lwork => lwork, :usage => usage, :help => help])
|
|
980
|
+
|
|
981
|
+
|
|
982
|
+
FORTRAN MANUAL
|
|
983
|
+
SUBROUTINE CTGSNA( JOB, HOWMNY, SELECT, N, A, LDA, B, LDB, VL, LDVL, VR, LDVR, S, DIF, MM, M, WORK, LWORK, IWORK, INFO )
|
|
984
|
+
|
|
985
|
+
* Purpose
|
|
986
|
+
* =======
|
|
987
|
+
*
|
|
988
|
+
* CTGSNA estimates reciprocal condition numbers for specified
|
|
989
|
+
* eigenvalues and/or eigenvectors of a matrix pair (A, B).
|
|
990
|
+
*
|
|
991
|
+
* (A, B) must be in generalized Schur canonical form, that is, A and
|
|
992
|
+
* B are both upper triangular.
|
|
993
|
+
*
|
|
994
|
+
|
|
995
|
+
* Arguments
|
|
996
|
+
* =========
|
|
997
|
+
*
|
|
998
|
+
* JOB (input) CHARACTER*1
|
|
999
|
+
* Specifies whether condition numbers are required for
|
|
1000
|
+
* eigenvalues (S) or eigenvectors (DIF):
|
|
1001
|
+
* = 'E': for eigenvalues only (S);
|
|
1002
|
+
* = 'V': for eigenvectors only (DIF);
|
|
1003
|
+
* = 'B': for both eigenvalues and eigenvectors (S and DIF).
|
|
1004
|
+
*
|
|
1005
|
+
* HOWMNY (input) CHARACTER*1
|
|
1006
|
+
* = 'A': compute condition numbers for all eigenpairs;
|
|
1007
|
+
* = 'S': compute condition numbers for selected eigenpairs
|
|
1008
|
+
* specified by the array SELECT.
|
|
1009
|
+
*
|
|
1010
|
+
* SELECT (input) LOGICAL array, dimension (N)
|
|
1011
|
+
* If HOWMNY = 'S', SELECT specifies the eigenpairs for which
|
|
1012
|
+
* condition numbers are required. To select condition numbers
|
|
1013
|
+
* for the corresponding j-th eigenvalue and/or eigenvector,
|
|
1014
|
+
* SELECT(j) must be set to .TRUE..
|
|
1015
|
+
* If HOWMNY = 'A', SELECT is not referenced.
|
|
1016
|
+
*
|
|
1017
|
+
* N (input) INTEGER
|
|
1018
|
+
* The order of the square matrix pair (A, B). N >= 0.
|
|
1019
|
+
*
|
|
1020
|
+
* A (input) COMPLEX array, dimension (LDA,N)
|
|
1021
|
+
* The upper triangular matrix A in the pair (A,B).
|
|
1022
|
+
*
|
|
1023
|
+
* LDA (input) INTEGER
|
|
1024
|
+
* The leading dimension of the array A. LDA >= max(1,N).
|
|
1025
|
+
*
|
|
1026
|
+
* B (input) COMPLEX array, dimension (LDB,N)
|
|
1027
|
+
* The upper triangular matrix B in the pair (A, B).
|
|
1028
|
+
*
|
|
1029
|
+
* LDB (input) INTEGER
|
|
1030
|
+
* The leading dimension of the array B. LDB >= max(1,N).
|
|
1031
|
+
*
|
|
1032
|
+
* VL (input) COMPLEX array, dimension (LDVL,M)
|
|
1033
|
+
* IF JOB = 'E' or 'B', VL must contain left eigenvectors of
|
|
1034
|
+
* (A, B), corresponding to the eigenpairs specified by HOWMNY
|
|
1035
|
+
* and SELECT. The eigenvectors must be stored in consecutive
|
|
1036
|
+
* columns of VL, as returned by CTGEVC.
|
|
1037
|
+
* If JOB = 'V', VL is not referenced.
|
|
1038
|
+
*
|
|
1039
|
+
* LDVL (input) INTEGER
|
|
1040
|
+
* The leading dimension of the array VL. LDVL >= 1; and
|
|
1041
|
+
* If JOB = 'E' or 'B', LDVL >= N.
|
|
1042
|
+
*
|
|
1043
|
+
* VR (input) COMPLEX array, dimension (LDVR,M)
|
|
1044
|
+
* IF JOB = 'E' or 'B', VR must contain right eigenvectors of
|
|
1045
|
+
* (A, B), corresponding to the eigenpairs specified by HOWMNY
|
|
1046
|
+
* and SELECT. The eigenvectors must be stored in consecutive
|
|
1047
|
+
* columns of VR, as returned by CTGEVC.
|
|
1048
|
+
* If JOB = 'V', VR is not referenced.
|
|
1049
|
+
*
|
|
1050
|
+
* LDVR (input) INTEGER
|
|
1051
|
+
* The leading dimension of the array VR. LDVR >= 1;
|
|
1052
|
+
* If JOB = 'E' or 'B', LDVR >= N.
|
|
1053
|
+
*
|
|
1054
|
+
* S (output) REAL array, dimension (MM)
|
|
1055
|
+
* If JOB = 'E' or 'B', the reciprocal condition numbers of the
|
|
1056
|
+
* selected eigenvalues, stored in consecutive elements of the
|
|
1057
|
+
* array.
|
|
1058
|
+
* If JOB = 'V', S is not referenced.
|
|
1059
|
+
*
|
|
1060
|
+
* DIF (output) REAL array, dimension (MM)
|
|
1061
|
+
* If JOB = 'V' or 'B', the estimated reciprocal condition
|
|
1062
|
+
* numbers of the selected eigenvectors, stored in consecutive
|
|
1063
|
+
* elements of the array.
|
|
1064
|
+
* If the eigenvalues cannot be reordered to compute DIF(j),
|
|
1065
|
+
* DIF(j) is set to 0; this can only occur when the true value
|
|
1066
|
+
* would be very small anyway.
|
|
1067
|
+
* For each eigenvalue/vector specified by SELECT, DIF stores
|
|
1068
|
+
* a Frobenius norm-based estimate of Difl.
|
|
1069
|
+
* If JOB = 'E', DIF is not referenced.
|
|
1070
|
+
*
|
|
1071
|
+
* MM (input) INTEGER
|
|
1072
|
+
* The number of elements in the arrays S and DIF. MM >= M.
|
|
1073
|
+
*
|
|
1074
|
+
* M (output) INTEGER
|
|
1075
|
+
* The number of elements of the arrays S and DIF used to store
|
|
1076
|
+
* the specified condition numbers; for each selected eigenvalue
|
|
1077
|
+
* one element is used. If HOWMNY = 'A', M is set to N.
|
|
1078
|
+
*
|
|
1079
|
+
* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
|
|
1080
|
+
* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
|
|
1081
|
+
*
|
|
1082
|
+
* LWORK (input) INTEGER
|
|
1083
|
+
* The dimension of the array WORK. LWORK >= max(1,N).
|
|
1084
|
+
* If JOB = 'V' or 'B', LWORK >= max(1,2*N*N).
|
|
1085
|
+
*
|
|
1086
|
+
* IWORK (workspace) INTEGER array, dimension (N+2)
|
|
1087
|
+
* If JOB = 'E', IWORK is not referenced.
|
|
1088
|
+
*
|
|
1089
|
+
* INFO (output) INTEGER
|
|
1090
|
+
* = 0: Successful exit
|
|
1091
|
+
* < 0: If INFO = -i, the i-th argument had an illegal value
|
|
1092
|
+
*
|
|
1093
|
+
|
|
1094
|
+
* Further Details
|
|
1095
|
+
* ===============
|
|
1096
|
+
*
|
|
1097
|
+
* The reciprocal of the condition number of the i-th generalized
|
|
1098
|
+
* eigenvalue w = (a, b) is defined as
|
|
1099
|
+
*
|
|
1100
|
+
* S(I) = (|v'Au|**2 + |v'Bu|**2)**(1/2) / (norm(u)*norm(v))
|
|
1101
|
+
*
|
|
1102
|
+
* where u and v are the right and left eigenvectors of (A, B)
|
|
1103
|
+
* corresponding to w; |z| denotes the absolute value of the complex
|
|
1104
|
+
* number, and norm(u) denotes the 2-norm of the vector u. The pair
|
|
1105
|
+
* (a, b) corresponds to an eigenvalue w = a/b (= v'Au/v'Bu) of the
|
|
1106
|
+
* matrix pair (A, B). If both a and b equal zero, then (A,B) is
|
|
1107
|
+
* singular and S(I) = -1 is returned.
|
|
1108
|
+
*
|
|
1109
|
+
* An approximate error bound on the chordal distance between the i-th
|
|
1110
|
+
* computed generalized eigenvalue w and the corresponding exact
|
|
1111
|
+
* eigenvalue lambda is
|
|
1112
|
+
*
|
|
1113
|
+
* chord(w, lambda) <= EPS * norm(A, B) / S(I),
|
|
1114
|
+
*
|
|
1115
|
+
* where EPS is the machine precision.
|
|
1116
|
+
*
|
|
1117
|
+
* The reciprocal of the condition number of the right eigenvector u
|
|
1118
|
+
* and left eigenvector v corresponding to the generalized eigenvalue w
|
|
1119
|
+
* is defined as follows. Suppose
|
|
1120
|
+
*
|
|
1121
|
+
* (A, B) = ( a * ) ( b * ) 1
|
|
1122
|
+
* ( 0 A22 ),( 0 B22 ) n-1
|
|
1123
|
+
* 1 n-1 1 n-1
|
|
1124
|
+
*
|
|
1125
|
+
* Then the reciprocal condition number DIF(I) is
|
|
1126
|
+
*
|
|
1127
|
+
* Difl[(a, b), (A22, B22)] = sigma-min( Zl )
|
|
1128
|
+
*
|
|
1129
|
+
* where sigma-min(Zl) denotes the smallest singular value of
|
|
1130
|
+
*
|
|
1131
|
+
* Zl = [ kron(a, In-1) -kron(1, A22) ]
|
|
1132
|
+
* [ kron(b, In-1) -kron(1, B22) ].
|
|
1133
|
+
*
|
|
1134
|
+
* Here In-1 is the identity matrix of size n-1 and X' is the conjugate
|
|
1135
|
+
* transpose of X. kron(X, Y) is the Kronecker product between the
|
|
1136
|
+
* matrices X and Y.
|
|
1137
|
+
*
|
|
1138
|
+
* We approximate the smallest singular value of Zl with an upper
|
|
1139
|
+
* bound. This is done by CLATDF.
|
|
1140
|
+
*
|
|
1141
|
+
* An approximate error bound for a computed eigenvector VL(i) or
|
|
1142
|
+
* VR(i) is given by
|
|
1143
|
+
*
|
|
1144
|
+
* EPS * norm(A, B) / DIF(i).
|
|
1145
|
+
*
|
|
1146
|
+
* See ref. [2-3] for more details and further references.
|
|
1147
|
+
*
|
|
1148
|
+
* Based on contributions by
|
|
1149
|
+
* Bo Kagstrom and Peter Poromaa, Department of Computing Science,
|
|
1150
|
+
* Umea University, S-901 87 Umea, Sweden.
|
|
1151
|
+
*
|
|
1152
|
+
* References
|
|
1153
|
+
* ==========
|
|
1154
|
+
*
|
|
1155
|
+
* [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
|
|
1156
|
+
* Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
|
|
1157
|
+
* M.S. Moonen et al (eds), Linear Algebra for Large Scale and
|
|
1158
|
+
* Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.
|
|
1159
|
+
*
|
|
1160
|
+
* [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
|
|
1161
|
+
* Eigenvalues of a Regular Matrix Pair (A, B) and Condition
|
|
1162
|
+
* Estimation: Theory, Algorithms and Software, Report
|
|
1163
|
+
* UMINF - 94.04, Department of Computing Science, Umea University,
|
|
1164
|
+
* S-901 87 Umea, Sweden, 1994. Also as LAPACK Working Note 87.
|
|
1165
|
+
* To appear in Numerical Algorithms, 1996.
|
|
1166
|
+
*
|
|
1167
|
+
* [3] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
|
|
1168
|
+
* for Solving the Generalized Sylvester Equation and Estimating the
|
|
1169
|
+
* Separation between Regular Matrix Pairs, Report UMINF - 93.23,
|
|
1170
|
+
* Department of Computing Science, Umea University, S-901 87 Umea,
|
|
1171
|
+
* Sweden, December 1993, Revised April 1994, Also as LAPACK Working
|
|
1172
|
+
* Note 75.
|
|
1173
|
+
* To appear in ACM Trans. on Math. Software, Vol 22, No 1, 1996.
|
|
1174
|
+
*
|
|
1175
|
+
* =====================================================================
|
|
1176
|
+
*
|
|
1177
|
+
|
|
1178
|
+
|
|
1179
|
+
</PRE>
|
|
1180
|
+
<A HREF="#top">go to the page top</A>
|
|
1181
|
+
|
|
1182
|
+
<A NAME="ctgsy2"></A>
|
|
1183
|
+
<H2>ctgsy2</H2>
|
|
1184
|
+
<PRE>
|
|
1185
|
+
USAGE:
|
|
1186
|
+
scale, info, c, f, rdsum, rdscal = NumRu::Lapack.ctgsy2( trans, ijob, a, b, c, d, e, f, rdsum, rdscal, [:usage => usage, :help => help])
|
|
1187
|
+
|
|
1188
|
+
|
|
1189
|
+
FORTRAN MANUAL
|
|
1190
|
+
SUBROUTINE CTGSY2( TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, RDSUM, RDSCAL, INFO )
|
|
1191
|
+
|
|
1192
|
+
* Purpose
|
|
1193
|
+
* =======
|
|
1194
|
+
*
|
|
1195
|
+
* CTGSY2 solves the generalized Sylvester equation
|
|
1196
|
+
*
|
|
1197
|
+
* A * R - L * B = scale * C (1)
|
|
1198
|
+
* D * R - L * E = scale * F
|
|
1199
|
+
*
|
|
1200
|
+
* using Level 1 and 2 BLAS, where R and L are unknown M-by-N matrices,
|
|
1201
|
+
* (A, D), (B, E) and (C, F) are given matrix pairs of size M-by-M,
|
|
1202
|
+
* N-by-N and M-by-N, respectively. A, B, D and E are upper triangular
|
|
1203
|
+
* (i.e., (A,D) and (B,E) in generalized Schur form).
|
|
1204
|
+
*
|
|
1205
|
+
* The solution (R, L) overwrites (C, F). 0 <= SCALE <= 1 is an output
|
|
1206
|
+
* scaling factor chosen to avoid overflow.
|
|
1207
|
+
*
|
|
1208
|
+
* In matrix notation solving equation (1) corresponds to solve
|
|
1209
|
+
* Zx = scale * b, where Z is defined as
|
|
1210
|
+
*
|
|
1211
|
+
* Z = [ kron(In, A) -kron(B', Im) ] (2)
|
|
1212
|
+
* [ kron(In, D) -kron(E', Im) ],
|
|
1213
|
+
*
|
|
1214
|
+
* Ik is the identity matrix of size k and X' is the transpose of X.
|
|
1215
|
+
* kron(X, Y) is the Kronecker product between the matrices X and Y.
|
|
1216
|
+
*
|
|
1217
|
+
* If TRANS = 'C', y in the conjugate transposed system Z'y = scale*b
|
|
1218
|
+
* is solved for, which is equivalent to solve for R and L in
|
|
1219
|
+
*
|
|
1220
|
+
* A' * R + D' * L = scale * C (3)
|
|
1221
|
+
* R * B' + L * E' = scale * -F
|
|
1222
|
+
*
|
|
1223
|
+
* This case is used to compute an estimate of Dif[(A, D), (B, E)] =
|
|
1224
|
+
* = sigma_min(Z) using reverse communicaton with CLACON.
|
|
1225
|
+
*
|
|
1226
|
+
* CTGSY2 also (IJOB >= 1) contributes to the computation in CTGSYL
|
|
1227
|
+
* of an upper bound on the separation between to matrix pairs. Then
|
|
1228
|
+
* the input (A, D), (B, E) are sub-pencils of two matrix pairs in
|
|
1229
|
+
* CTGSYL.
|
|
1230
|
+
*
|
|
1231
|
+
|
|
1232
|
+
* Arguments
|
|
1233
|
+
* =========
|
|
1234
|
+
*
|
|
1235
|
+
* TRANS (input) CHARACTER*1
|
|
1236
|
+
* = 'N', solve the generalized Sylvester equation (1).
|
|
1237
|
+
* = 'T': solve the 'transposed' system (3).
|
|
1238
|
+
*
|
|
1239
|
+
* IJOB (input) INTEGER
|
|
1240
|
+
* Specifies what kind of functionality to be performed.
|
|
1241
|
+
* =0: solve (1) only.
|
|
1242
|
+
* =1: A contribution from this subsystem to a Frobenius
|
|
1243
|
+
* norm-based estimate of the separation between two matrix
|
|
1244
|
+
* pairs is computed. (look ahead strategy is used).
|
|
1245
|
+
* =2: A contribution from this subsystem to a Frobenius
|
|
1246
|
+
* norm-based estimate of the separation between two matrix
|
|
1247
|
+
* pairs is computed. (SGECON on sub-systems is used.)
|
|
1248
|
+
* Not referenced if TRANS = 'T'.
|
|
1249
|
+
*
|
|
1250
|
+
* M (input) INTEGER
|
|
1251
|
+
* On entry, M specifies the order of A and D, and the row
|
|
1252
|
+
* dimension of C, F, R and L.
|
|
1253
|
+
*
|
|
1254
|
+
* N (input) INTEGER
|
|
1255
|
+
* On entry, N specifies the order of B and E, and the column
|
|
1256
|
+
* dimension of C, F, R and L.
|
|
1257
|
+
*
|
|
1258
|
+
* A (input) COMPLEX array, dimension (LDA, M)
|
|
1259
|
+
* On entry, A contains an upper triangular matrix.
|
|
1260
|
+
*
|
|
1261
|
+
* LDA (input) INTEGER
|
|
1262
|
+
* The leading dimension of the matrix A. LDA >= max(1, M).
|
|
1263
|
+
*
|
|
1264
|
+
* B (input) COMPLEX array, dimension (LDB, N)
|
|
1265
|
+
* On entry, B contains an upper triangular matrix.
|
|
1266
|
+
*
|
|
1267
|
+
* LDB (input) INTEGER
|
|
1268
|
+
* The leading dimension of the matrix B. LDB >= max(1, N).
|
|
1269
|
+
*
|
|
1270
|
+
* C (input/output) COMPLEX array, dimension (LDC, N)
|
|
1271
|
+
* On entry, C contains the right-hand-side of the first matrix
|
|
1272
|
+
* equation in (1).
|
|
1273
|
+
* On exit, if IJOB = 0, C has been overwritten by the solution
|
|
1274
|
+
* R.
|
|
1275
|
+
*
|
|
1276
|
+
* LDC (input) INTEGER
|
|
1277
|
+
* The leading dimension of the matrix C. LDC >= max(1, M).
|
|
1278
|
+
*
|
|
1279
|
+
* D (input) COMPLEX array, dimension (LDD, M)
|
|
1280
|
+
* On entry, D contains an upper triangular matrix.
|
|
1281
|
+
*
|
|
1282
|
+
* LDD (input) INTEGER
|
|
1283
|
+
* The leading dimension of the matrix D. LDD >= max(1, M).
|
|
1284
|
+
*
|
|
1285
|
+
* E (input) COMPLEX array, dimension (LDE, N)
|
|
1286
|
+
* On entry, E contains an upper triangular matrix.
|
|
1287
|
+
*
|
|
1288
|
+
* LDE (input) INTEGER
|
|
1289
|
+
* The leading dimension of the matrix E. LDE >= max(1, N).
|
|
1290
|
+
*
|
|
1291
|
+
* F (input/output) COMPLEX array, dimension (LDF, N)
|
|
1292
|
+
* On entry, F contains the right-hand-side of the second matrix
|
|
1293
|
+
* equation in (1).
|
|
1294
|
+
* On exit, if IJOB = 0, F has been overwritten by the solution
|
|
1295
|
+
* L.
|
|
1296
|
+
*
|
|
1297
|
+
* LDF (input) INTEGER
|
|
1298
|
+
* The leading dimension of the matrix F. LDF >= max(1, M).
|
|
1299
|
+
*
|
|
1300
|
+
* SCALE (output) REAL
|
|
1301
|
+
* On exit, 0 <= SCALE <= 1. If 0 < SCALE < 1, the solutions
|
|
1302
|
+
* R and L (C and F on entry) will hold the solutions to a
|
|
1303
|
+
* slightly perturbed system but the input matrices A, B, D and
|
|
1304
|
+
* E have not been changed. If SCALE = 0, R and L will hold the
|
|
1305
|
+
* solutions to the homogeneous system with C = F = 0.
|
|
1306
|
+
* Normally, SCALE = 1.
|
|
1307
|
+
*
|
|
1308
|
+
* RDSUM (input/output) REAL
|
|
1309
|
+
* On entry, the sum of squares of computed contributions to
|
|
1310
|
+
* the Dif-estimate under computation by CTGSYL, where the
|
|
1311
|
+
* scaling factor RDSCAL (see below) has been factored out.
|
|
1312
|
+
* On exit, the corresponding sum of squares updated with the
|
|
1313
|
+
* contributions from the current sub-system.
|
|
1314
|
+
* If TRANS = 'T' RDSUM is not touched.
|
|
1315
|
+
* NOTE: RDSUM only makes sense when CTGSY2 is called by
|
|
1316
|
+
* CTGSYL.
|
|
1317
|
+
*
|
|
1318
|
+
* RDSCAL (input/output) REAL
|
|
1319
|
+
* On entry, scaling factor used to prevent overflow in RDSUM.
|
|
1320
|
+
* On exit, RDSCAL is updated w.r.t. the current contributions
|
|
1321
|
+
* in RDSUM.
|
|
1322
|
+
* If TRANS = 'T', RDSCAL is not touched.
|
|
1323
|
+
* NOTE: RDSCAL only makes sense when CTGSY2 is called by
|
|
1324
|
+
* CTGSYL.
|
|
1325
|
+
*
|
|
1326
|
+
* INFO (output) INTEGER
|
|
1327
|
+
* On exit, if INFO is set to
|
|
1328
|
+
* =0: Successful exit
|
|
1329
|
+
* <0: If INFO = -i, input argument number i is illegal.
|
|
1330
|
+
* >0: The matrix pairs (A, D) and (B, E) have common or very
|
|
1331
|
+
* close eigenvalues.
|
|
1332
|
+
*
|
|
1333
|
+
|
|
1334
|
+
* Further Details
|
|
1335
|
+
* ===============
|
|
1336
|
+
*
|
|
1337
|
+
* Based on contributions by
|
|
1338
|
+
* Bo Kagstrom and Peter Poromaa, Department of Computing Science,
|
|
1339
|
+
* Umea University, S-901 87 Umea, Sweden.
|
|
1340
|
+
*
|
|
1341
|
+
* =====================================================================
|
|
1342
|
+
*
|
|
1343
|
+
|
|
1344
|
+
|
|
1345
|
+
</PRE>
|
|
1346
|
+
<A HREF="#top">go to the page top</A>
|
|
1347
|
+
|
|
1348
|
+
<A NAME="ctgsyl"></A>
|
|
1349
|
+
<H2>ctgsyl</H2>
|
|
1350
|
+
<PRE>
|
|
1351
|
+
USAGE:
|
|
1352
|
+
scale, dif, work, info, c, f = NumRu::Lapack.ctgsyl( trans, ijob, a, b, c, d, e, f, [:lwork => lwork, :usage => usage, :help => help])
|
|
1353
|
+
|
|
1354
|
+
|
|
1355
|
+
FORTRAN MANUAL
|
|
1356
|
+
SUBROUTINE CTGSYL( TRANS, IJOB, M, N, A, LDA, B, LDB, C, LDC, D, LDD, E, LDE, F, LDF, SCALE, DIF, WORK, LWORK, IWORK, INFO )
|
|
1357
|
+
|
|
1358
|
+
* Purpose
|
|
1359
|
+
* =======
|
|
1360
|
+
*
|
|
1361
|
+
* CTGSYL solves the generalized Sylvester equation:
|
|
1362
|
+
*
|
|
1363
|
+
* A * R - L * B = scale * C (1)
|
|
1364
|
+
* D * R - L * E = scale * F
|
|
1365
|
+
*
|
|
1366
|
+
* where R and L are unknown m-by-n matrices, (A, D), (B, E) and
|
|
1367
|
+
* (C, F) are given matrix pairs of size m-by-m, n-by-n and m-by-n,
|
|
1368
|
+
* respectively, with complex entries. A, B, D and E are upper
|
|
1369
|
+
* triangular (i.e., (A,D) and (B,E) in generalized Schur form).
|
|
1370
|
+
*
|
|
1371
|
+
* The solution (R, L) overwrites (C, F). 0 <= SCALE <= 1
|
|
1372
|
+
* is an output scaling factor chosen to avoid overflow.
|
|
1373
|
+
*
|
|
1374
|
+
* In matrix notation (1) is equivalent to solve Zx = scale*b, where Z
|
|
1375
|
+
* is defined as
|
|
1376
|
+
*
|
|
1377
|
+
* Z = [ kron(In, A) -kron(B', Im) ] (2)
|
|
1378
|
+
* [ kron(In, D) -kron(E', Im) ],
|
|
1379
|
+
*
|
|
1380
|
+
* Here Ix is the identity matrix of size x and X' is the conjugate
|
|
1381
|
+
* transpose of X. Kron(X, Y) is the Kronecker product between the
|
|
1382
|
+
* matrices X and Y.
|
|
1383
|
+
*
|
|
1384
|
+
* If TRANS = 'C', y in the conjugate transposed system Z'*y = scale*b
|
|
1385
|
+
* is solved for, which is equivalent to solve for R and L in
|
|
1386
|
+
*
|
|
1387
|
+
* A' * R + D' * L = scale * C (3)
|
|
1388
|
+
* R * B' + L * E' = scale * -F
|
|
1389
|
+
*
|
|
1390
|
+
* This case (TRANS = 'C') is used to compute an one-norm-based estimate
|
|
1391
|
+
* of Dif[(A,D), (B,E)], the separation between the matrix pairs (A,D)
|
|
1392
|
+
* and (B,E), using CLACON.
|
|
1393
|
+
*
|
|
1394
|
+
* If IJOB >= 1, CTGSYL computes a Frobenius norm-based estimate of
|
|
1395
|
+
* Dif[(A,D),(B,E)]. That is, the reciprocal of a lower bound on the
|
|
1396
|
+
* reciprocal of the smallest singular value of Z.
|
|
1397
|
+
*
|
|
1398
|
+
* This is a level-3 BLAS algorithm.
|
|
1399
|
+
*
|
|
1400
|
+
|
|
1401
|
+
* Arguments
|
|
1402
|
+
* =========
|
|
1403
|
+
*
|
|
1404
|
+
* TRANS (input) CHARACTER*1
|
|
1405
|
+
* = 'N': solve the generalized sylvester equation (1).
|
|
1406
|
+
* = 'C': solve the "conjugate transposed" system (3).
|
|
1407
|
+
*
|
|
1408
|
+
* IJOB (input) INTEGER
|
|
1409
|
+
* Specifies what kind of functionality to be performed.
|
|
1410
|
+
* =0: solve (1) only.
|
|
1411
|
+
* =1: The functionality of 0 and 3.
|
|
1412
|
+
* =2: The functionality of 0 and 4.
|
|
1413
|
+
* =3: Only an estimate of Dif[(A,D), (B,E)] is computed.
|
|
1414
|
+
* (look ahead strategy is used).
|
|
1415
|
+
* =4: Only an estimate of Dif[(A,D), (B,E)] is computed.
|
|
1416
|
+
* (CGECON on sub-systems is used).
|
|
1417
|
+
* Not referenced if TRANS = 'C'.
|
|
1418
|
+
*
|
|
1419
|
+
* M (input) INTEGER
|
|
1420
|
+
* The order of the matrices A and D, and the row dimension of
|
|
1421
|
+
* the matrices C, F, R and L.
|
|
1422
|
+
*
|
|
1423
|
+
* N (input) INTEGER
|
|
1424
|
+
* The order of the matrices B and E, and the column dimension
|
|
1425
|
+
* of the matrices C, F, R and L.
|
|
1426
|
+
*
|
|
1427
|
+
* A (input) COMPLEX array, dimension (LDA, M)
|
|
1428
|
+
* The upper triangular matrix A.
|
|
1429
|
+
*
|
|
1430
|
+
* LDA (input) INTEGER
|
|
1431
|
+
* The leading dimension of the array A. LDA >= max(1, M).
|
|
1432
|
+
*
|
|
1433
|
+
* B (input) COMPLEX array, dimension (LDB, N)
|
|
1434
|
+
* The upper triangular matrix B.
|
|
1435
|
+
*
|
|
1436
|
+
* LDB (input) INTEGER
|
|
1437
|
+
* The leading dimension of the array B. LDB >= max(1, N).
|
|
1438
|
+
*
|
|
1439
|
+
* C (input/output) COMPLEX array, dimension (LDC, N)
|
|
1440
|
+
* On entry, C contains the right-hand-side of the first matrix
|
|
1441
|
+
* equation in (1) or (3).
|
|
1442
|
+
* On exit, if IJOB = 0, 1 or 2, C has been overwritten by
|
|
1443
|
+
* the solution R. If IJOB = 3 or 4 and TRANS = 'N', C holds R,
|
|
1444
|
+
* the solution achieved during the computation of the
|
|
1445
|
+
* Dif-estimate.
|
|
1446
|
+
*
|
|
1447
|
+
* LDC (input) INTEGER
|
|
1448
|
+
* The leading dimension of the array C. LDC >= max(1, M).
|
|
1449
|
+
*
|
|
1450
|
+
* D (input) COMPLEX array, dimension (LDD, M)
|
|
1451
|
+
* The upper triangular matrix D.
|
|
1452
|
+
*
|
|
1453
|
+
* LDD (input) INTEGER
|
|
1454
|
+
* The leading dimension of the array D. LDD >= max(1, M).
|
|
1455
|
+
*
|
|
1456
|
+
* E (input) COMPLEX array, dimension (LDE, N)
|
|
1457
|
+
* The upper triangular matrix E.
|
|
1458
|
+
*
|
|
1459
|
+
* LDE (input) INTEGER
|
|
1460
|
+
* The leading dimension of the array E. LDE >= max(1, N).
|
|
1461
|
+
*
|
|
1462
|
+
* F (input/output) COMPLEX array, dimension (LDF, N)
|
|
1463
|
+
* On entry, F contains the right-hand-side of the second matrix
|
|
1464
|
+
* equation in (1) or (3).
|
|
1465
|
+
* On exit, if IJOB = 0, 1 or 2, F has been overwritten by
|
|
1466
|
+
* the solution L. If IJOB = 3 or 4 and TRANS = 'N', F holds L,
|
|
1467
|
+
* the solution achieved during the computation of the
|
|
1468
|
+
* Dif-estimate.
|
|
1469
|
+
*
|
|
1470
|
+
* LDF (input) INTEGER
|
|
1471
|
+
* The leading dimension of the array F. LDF >= max(1, M).
|
|
1472
|
+
*
|
|
1473
|
+
* DIF (output) REAL
|
|
1474
|
+
* On exit DIF is the reciprocal of a lower bound of the
|
|
1475
|
+
* reciprocal of the Dif-function, i.e. DIF is an upper bound of
|
|
1476
|
+
* Dif[(A,D), (B,E)] = sigma-min(Z), where Z as in (2).
|
|
1477
|
+
* IF IJOB = 0 or TRANS = 'C', DIF is not referenced.
|
|
1478
|
+
*
|
|
1479
|
+
* SCALE (output) REAL
|
|
1480
|
+
* On exit SCALE is the scaling factor in (1) or (3).
|
|
1481
|
+
* If 0 < SCALE < 1, C and F hold the solutions R and L, resp.,
|
|
1482
|
+
* to a slightly perturbed system but the input matrices A, B,
|
|
1483
|
+
* D and E have not been changed. If SCALE = 0, R and L will
|
|
1484
|
+
* hold the solutions to the homogenious system with C = F = 0.
|
|
1485
|
+
*
|
|
1486
|
+
* WORK (workspace/output) COMPLEX array, dimension (MAX(1,LWORK))
|
|
1487
|
+
* On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
|
|
1488
|
+
*
|
|
1489
|
+
* LWORK (input) INTEGER
|
|
1490
|
+
* The dimension of the array WORK. LWORK > = 1.
|
|
1491
|
+
* If IJOB = 1 or 2 and TRANS = 'N', LWORK >= max(1,2*M*N).
|
|
1492
|
+
*
|
|
1493
|
+
* If LWORK = -1, then a workspace query is assumed; the routine
|
|
1494
|
+
* only calculates the optimal size of the WORK array, returns
|
|
1495
|
+
* this value as the first entry of the WORK array, and no error
|
|
1496
|
+
* message related to LWORK is issued by XERBLA.
|
|
1497
|
+
*
|
|
1498
|
+
* IWORK (workspace) INTEGER array, dimension (M+N+2)
|
|
1499
|
+
*
|
|
1500
|
+
* INFO (output) INTEGER
|
|
1501
|
+
* =0: successful exit
|
|
1502
|
+
* <0: If INFO = -i, the i-th argument had an illegal value.
|
|
1503
|
+
* >0: (A, D) and (B, E) have common or very close
|
|
1504
|
+
* eigenvalues.
|
|
1505
|
+
*
|
|
1506
|
+
|
|
1507
|
+
* Further Details
|
|
1508
|
+
* ===============
|
|
1509
|
+
*
|
|
1510
|
+
* Based on contributions by
|
|
1511
|
+
* Bo Kagstrom and Peter Poromaa, Department of Computing Science,
|
|
1512
|
+
* Umea University, S-901 87 Umea, Sweden.
|
|
1513
|
+
*
|
|
1514
|
+
* [1] B. Kagstrom and P. Poromaa, LAPACK-Style Algorithms and Software
|
|
1515
|
+
* for Solving the Generalized Sylvester Equation and Estimating the
|
|
1516
|
+
* Separation between Regular Matrix Pairs, Report UMINF - 93.23,
|
|
1517
|
+
* Department of Computing Science, Umea University, S-901 87 Umea,
|
|
1518
|
+
* Sweden, December 1993, Revised April 1994, Also as LAPACK Working
|
|
1519
|
+
* Note 75. To appear in ACM Trans. on Math. Software, Vol 22,
|
|
1520
|
+
* No 1, 1996.
|
|
1521
|
+
*
|
|
1522
|
+
* [2] B. Kagstrom, A Perturbation Analysis of the Generalized Sylvester
|
|
1523
|
+
* Equation (AR - LB, DR - LE ) = (C, F), SIAM J. Matrix Anal.
|
|
1524
|
+
* Appl., 15(4):1045-1060, 1994.
|
|
1525
|
+
*
|
|
1526
|
+
* [3] B. Kagstrom and L. Westin, Generalized Schur Methods with
|
|
1527
|
+
* Condition Estimators for Solving the Generalized Sylvester
|
|
1528
|
+
* Equation, IEEE Transactions on Automatic Control, Vol. 34, No. 7,
|
|
1529
|
+
* July 1989, pp 745-751.
|
|
1530
|
+
*
|
|
1531
|
+
* =====================================================================
|
|
1532
|
+
* Replaced various illegal calls to CCOPY by calls to CLASET.
|
|
1533
|
+
* Sven Hammarling, 1/5/02.
|
|
1534
|
+
*
|
|
1535
|
+
|
|
1536
|
+
|
|
1537
|
+
</PRE>
|
|
1538
|
+
<A HREF="#top">go to the page top</A>
|
|
1539
|
+
|
|
1540
|
+
<HR />
|
|
1541
|
+
<A HREF="c.html">back to matrix types</A><BR>
|
|
1542
|
+
<A HREF="c.html">back to data types</A>
|
|
1543
|
+
</BODY>
|
|
1544
|
+
</HTML>
|