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/zhg.html
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
<HTML>
|
|
2
|
+
<HEAD>
|
|
3
|
+
<TITLE>COMPLEX*16 or DOUBLE COMPLEX routines for upper Hessenberg matrix, generalized problem (i.e a Hessenberg and a triangular matrix) matrix</TITLE>
|
|
4
|
+
</HEAD>
|
|
5
|
+
<BODY>
|
|
6
|
+
<A NAME="top"></A>
|
|
7
|
+
<H1>COMPLEX*16 or DOUBLE COMPLEX routines for upper Hessenberg matrix, generalized problem (i.e a Hessenberg and a triangular matrix) matrix</H1>
|
|
8
|
+
<UL>
|
|
9
|
+
<LI><A HREF="#zhgeqz">zhgeqz</A></LI>
|
|
10
|
+
</UL>
|
|
11
|
+
|
|
12
|
+
<A NAME="zhgeqz"></A>
|
|
13
|
+
<H2>zhgeqz</H2>
|
|
14
|
+
<PRE>
|
|
15
|
+
USAGE:
|
|
16
|
+
alpha, beta, work, info, h, t, q, z = NumRu::Lapack.zhgeqz( job, compq, compz, ilo, ihi, h, t, q, z, [:lwork => lwork, :usage => usage, :help => help])
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
FORTRAN MANUAL
|
|
20
|
+
SUBROUTINE ZHGEQZ( JOB, COMPQ, COMPZ, N, ILO, IHI, H, LDH, T, LDT, ALPHA, BETA, Q, LDQ, Z, LDZ, WORK, LWORK, RWORK, INFO )
|
|
21
|
+
|
|
22
|
+
* Purpose
|
|
23
|
+
* =======
|
|
24
|
+
*
|
|
25
|
+
* ZHGEQZ computes the eigenvalues of a complex matrix pair (H,T),
|
|
26
|
+
* where H is an upper Hessenberg matrix and T is upper triangular,
|
|
27
|
+
* using the single-shift QZ method.
|
|
28
|
+
* Matrix pairs of this type are produced by the reduction to
|
|
29
|
+
* generalized upper Hessenberg form of a complex matrix pair (A,B):
|
|
30
|
+
*
|
|
31
|
+
* A = Q1*H*Z1**H, B = Q1*T*Z1**H,
|
|
32
|
+
*
|
|
33
|
+
* as computed by ZGGHRD.
|
|
34
|
+
*
|
|
35
|
+
* If JOB='S', then the Hessenberg-triangular pair (H,T) is
|
|
36
|
+
* also reduced to generalized Schur form,
|
|
37
|
+
*
|
|
38
|
+
* H = Q*S*Z**H, T = Q*P*Z**H,
|
|
39
|
+
*
|
|
40
|
+
* where Q and Z are unitary matrices and S and P are upper triangular.
|
|
41
|
+
*
|
|
42
|
+
* Optionally, the unitary matrix Q from the generalized Schur
|
|
43
|
+
* factorization may be postmultiplied into an input matrix Q1, and the
|
|
44
|
+
* unitary matrix Z may be postmultiplied into an input matrix Z1.
|
|
45
|
+
* If Q1 and Z1 are the unitary matrices from ZGGHRD that reduced
|
|
46
|
+
* the matrix pair (A,B) to generalized Hessenberg form, then the output
|
|
47
|
+
* matrices Q1*Q and Z1*Z are the unitary factors from the generalized
|
|
48
|
+
* Schur factorization of (A,B):
|
|
49
|
+
*
|
|
50
|
+
* A = (Q1*Q)*S*(Z1*Z)**H, B = (Q1*Q)*P*(Z1*Z)**H.
|
|
51
|
+
*
|
|
52
|
+
* To avoid overflow, eigenvalues of the matrix pair (H,T)
|
|
53
|
+
* (equivalently, of (A,B)) are computed as a pair of complex values
|
|
54
|
+
* (alpha,beta). If beta is nonzero, lambda = alpha / beta is an
|
|
55
|
+
* eigenvalue of the generalized nonsymmetric eigenvalue problem (GNEP)
|
|
56
|
+
* A*x = lambda*B*x
|
|
57
|
+
* and if alpha is nonzero, mu = beta / alpha is an eigenvalue of the
|
|
58
|
+
* alternate form of the GNEP
|
|
59
|
+
* mu*A*y = B*y.
|
|
60
|
+
* The values of alpha and beta for the i-th eigenvalue can be read
|
|
61
|
+
* directly from the generalized Schur form: alpha = S(i,i),
|
|
62
|
+
* beta = P(i,i).
|
|
63
|
+
*
|
|
64
|
+
* Ref: C.B. Moler & G.W. Stewart, "An Algorithm for Generalized Matrix
|
|
65
|
+
* Eigenvalue Problems", SIAM J. Numer. Anal., 10(1973),
|
|
66
|
+
* pp. 241--256.
|
|
67
|
+
*
|
|
68
|
+
|
|
69
|
+
* Arguments
|
|
70
|
+
* =========
|
|
71
|
+
*
|
|
72
|
+
* JOB (input) CHARACTER*1
|
|
73
|
+
* = 'E': Compute eigenvalues only;
|
|
74
|
+
* = 'S': Computer eigenvalues and the Schur form.
|
|
75
|
+
*
|
|
76
|
+
* COMPQ (input) CHARACTER*1
|
|
77
|
+
* = 'N': Left Schur vectors (Q) are not computed;
|
|
78
|
+
* = 'I': Q is initialized to the unit matrix and the matrix Q
|
|
79
|
+
* of left Schur vectors of (H,T) is returned;
|
|
80
|
+
* = 'V': Q must contain a unitary matrix Q1 on entry and
|
|
81
|
+
* the product Q1*Q is returned.
|
|
82
|
+
*
|
|
83
|
+
* COMPZ (input) CHARACTER*1
|
|
84
|
+
* = 'N': Right Schur vectors (Z) are not computed;
|
|
85
|
+
* = 'I': Q is initialized to the unit matrix and the matrix Z
|
|
86
|
+
* of right Schur vectors of (H,T) is returned;
|
|
87
|
+
* = 'V': Z must contain a unitary matrix Z1 on entry and
|
|
88
|
+
* the product Z1*Z is returned.
|
|
89
|
+
*
|
|
90
|
+
* N (input) INTEGER
|
|
91
|
+
* The order of the matrices H, T, Q, and Z. N >= 0.
|
|
92
|
+
*
|
|
93
|
+
* ILO (input) INTEGER
|
|
94
|
+
* IHI (input) INTEGER
|
|
95
|
+
* ILO and IHI mark the rows and columns of H which are in
|
|
96
|
+
* Hessenberg form. It is assumed that A is already upper
|
|
97
|
+
* triangular in rows and columns 1:ILO-1 and IHI+1:N.
|
|
98
|
+
* If N > 0, 1 <= ILO <= IHI <= N; if N = 0, ILO=1 and IHI=0.
|
|
99
|
+
*
|
|
100
|
+
* H (input/output) COMPLEX*16 array, dimension (LDH, N)
|
|
101
|
+
* On entry, the N-by-N upper Hessenberg matrix H.
|
|
102
|
+
* On exit, if JOB = 'S', H contains the upper triangular
|
|
103
|
+
* matrix S from the generalized Schur factorization.
|
|
104
|
+
* If JOB = 'E', the diagonal of H matches that of S, but
|
|
105
|
+
* the rest of H is unspecified.
|
|
106
|
+
*
|
|
107
|
+
* LDH (input) INTEGER
|
|
108
|
+
* The leading dimension of the array H. LDH >= max( 1, N ).
|
|
109
|
+
*
|
|
110
|
+
* T (input/output) COMPLEX*16 array, dimension (LDT, N)
|
|
111
|
+
* On entry, the N-by-N upper triangular matrix T.
|
|
112
|
+
* On exit, if JOB = 'S', T contains the upper triangular
|
|
113
|
+
* matrix P from the generalized Schur factorization.
|
|
114
|
+
* If JOB = 'E', the diagonal of T matches that of P, but
|
|
115
|
+
* the rest of T is unspecified.
|
|
116
|
+
*
|
|
117
|
+
* LDT (input) INTEGER
|
|
118
|
+
* The leading dimension of the array T. LDT >= max( 1, N ).
|
|
119
|
+
*
|
|
120
|
+
* ALPHA (output) COMPLEX*16 array, dimension (N)
|
|
121
|
+
* The complex scalars alpha that define the eigenvalues of
|
|
122
|
+
* GNEP. ALPHA(i) = S(i,i) in the generalized Schur
|
|
123
|
+
* factorization.
|
|
124
|
+
*
|
|
125
|
+
* BETA (output) COMPLEX*16 array, dimension (N)
|
|
126
|
+
* The real non-negative scalars beta that define the
|
|
127
|
+
* eigenvalues of GNEP. BETA(i) = P(i,i) in the generalized
|
|
128
|
+
* Schur factorization.
|
|
129
|
+
*
|
|
130
|
+
* Together, the quantities alpha = ALPHA(j) and beta = BETA(j)
|
|
131
|
+
* represent the j-th eigenvalue of the matrix pair (A,B), in
|
|
132
|
+
* one of the forms lambda = alpha/beta or mu = beta/alpha.
|
|
133
|
+
* Since either lambda or mu may overflow, they should not,
|
|
134
|
+
* in general, be computed.
|
|
135
|
+
*
|
|
136
|
+
* Q (input/output) COMPLEX*16 array, dimension (LDQ, N)
|
|
137
|
+
* On entry, if COMPZ = 'V', the unitary matrix Q1 used in the
|
|
138
|
+
* reduction of (A,B) to generalized Hessenberg form.
|
|
139
|
+
* On exit, if COMPZ = 'I', the unitary matrix of left Schur
|
|
140
|
+
* vectors of (H,T), and if COMPZ = 'V', the unitary matrix of
|
|
141
|
+
* left Schur vectors of (A,B).
|
|
142
|
+
* Not referenced if COMPZ = 'N'.
|
|
143
|
+
*
|
|
144
|
+
* LDQ (input) INTEGER
|
|
145
|
+
* The leading dimension of the array Q. LDQ >= 1.
|
|
146
|
+
* If COMPQ='V' or 'I', then LDQ >= N.
|
|
147
|
+
*
|
|
148
|
+
* Z (input/output) COMPLEX*16 array, dimension (LDZ, N)
|
|
149
|
+
* On entry, if COMPZ = 'V', the unitary matrix Z1 used in the
|
|
150
|
+
* reduction of (A,B) to generalized Hessenberg form.
|
|
151
|
+
* On exit, if COMPZ = 'I', the unitary matrix of right Schur
|
|
152
|
+
* vectors of (H,T), and if COMPZ = 'V', the unitary matrix of
|
|
153
|
+
* right Schur vectors of (A,B).
|
|
154
|
+
* Not referenced if COMPZ = 'N'.
|
|
155
|
+
*
|
|
156
|
+
* LDZ (input) INTEGER
|
|
157
|
+
* The leading dimension of the array Z. LDZ >= 1.
|
|
158
|
+
* If COMPZ='V' or 'I', then LDZ >= N.
|
|
159
|
+
*
|
|
160
|
+
* WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
|
|
161
|
+
* On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.
|
|
162
|
+
*
|
|
163
|
+
* LWORK (input) INTEGER
|
|
164
|
+
* The dimension of the array WORK. LWORK >= max(1,N).
|
|
165
|
+
*
|
|
166
|
+
* If LWORK = -1, then a workspace query is assumed; the routine
|
|
167
|
+
* only calculates the optimal size of the WORK array, returns
|
|
168
|
+
* this value as the first entry of the WORK array, and no error
|
|
169
|
+
* message related to LWORK is issued by XERBLA.
|
|
170
|
+
*
|
|
171
|
+
* RWORK (workspace) DOUBLE PRECISION array, dimension (N)
|
|
172
|
+
*
|
|
173
|
+
* INFO (output) INTEGER
|
|
174
|
+
* = 0: successful exit
|
|
175
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
176
|
+
* = 1,...,N: the QZ iteration did not converge. (H,T) is not
|
|
177
|
+
* in Schur form, but ALPHA(i) and BETA(i),
|
|
178
|
+
* i=INFO+1,...,N should be correct.
|
|
179
|
+
* = N+1,...,2*N: the shift calculation failed. (H,T) is not
|
|
180
|
+
* in Schur form, but ALPHA(i) and BETA(i),
|
|
181
|
+
* i=INFO-N+1,...,N should be correct.
|
|
182
|
+
*
|
|
183
|
+
|
|
184
|
+
* Further Details
|
|
185
|
+
* ===============
|
|
186
|
+
*
|
|
187
|
+
* We assume that complex ABS works as long as its value is less than
|
|
188
|
+
* overflow.
|
|
189
|
+
*
|
|
190
|
+
* =====================================================================
|
|
191
|
+
*
|
|
192
|
+
|
|
193
|
+
|
|
194
|
+
</PRE>
|
|
195
|
+
<A HREF="#top">go to the page top</A>
|
|
196
|
+
|
|
197
|
+
<HR />
|
|
198
|
+
<A HREF="z.html">back to matrix types</A><BR>
|
|
199
|
+
<A HREF="z.html">back to data types</A>
|
|
200
|
+
</BODY>
|
|
201
|
+
</HTML>
|
data/doc/zhp.html
ADDED
|
@@ -0,0 +1,1697 @@
|
|
|
1
|
+
<HTML>
|
|
2
|
+
<HEAD>
|
|
3
|
+
<TITLE>COMPLEX*16 or DOUBLE COMPLEX routines for (complex) Hermitian, packed storage matrix</TITLE>
|
|
4
|
+
</HEAD>
|
|
5
|
+
<BODY>
|
|
6
|
+
<A NAME="top"></A>
|
|
7
|
+
<H1>COMPLEX*16 or DOUBLE COMPLEX routines for (complex) Hermitian, packed storage matrix</H1>
|
|
8
|
+
<UL>
|
|
9
|
+
<LI><A HREF="#zhpcon">zhpcon</A></LI>
|
|
10
|
+
<LI><A HREF="#zhpev">zhpev</A></LI>
|
|
11
|
+
<LI><A HREF="#zhpevd">zhpevd</A></LI>
|
|
12
|
+
<LI><A HREF="#zhpevx">zhpevx</A></LI>
|
|
13
|
+
<LI><A HREF="#zhpgst">zhpgst</A></LI>
|
|
14
|
+
<LI><A HREF="#zhpgv">zhpgv</A></LI>
|
|
15
|
+
<LI><A HREF="#zhpgvd">zhpgvd</A></LI>
|
|
16
|
+
<LI><A HREF="#zhpgvx">zhpgvx</A></LI>
|
|
17
|
+
<LI><A HREF="#zhprfs">zhprfs</A></LI>
|
|
18
|
+
<LI><A HREF="#zhpsv">zhpsv</A></LI>
|
|
19
|
+
<LI><A HREF="#zhpsvx">zhpsvx</A></LI>
|
|
20
|
+
<LI><A HREF="#zhptrd">zhptrd</A></LI>
|
|
21
|
+
<LI><A HREF="#zhptrf">zhptrf</A></LI>
|
|
22
|
+
<LI><A HREF="#zhptri">zhptri</A></LI>
|
|
23
|
+
<LI><A HREF="#zhptrs">zhptrs</A></LI>
|
|
24
|
+
</UL>
|
|
25
|
+
|
|
26
|
+
<A NAME="zhpcon"></A>
|
|
27
|
+
<H2>zhpcon</H2>
|
|
28
|
+
<PRE>
|
|
29
|
+
USAGE:
|
|
30
|
+
rcond, info = NumRu::Lapack.zhpcon( uplo, ap, ipiv, anorm, [:usage => usage, :help => help])
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
FORTRAN MANUAL
|
|
34
|
+
SUBROUTINE ZHPCON( UPLO, N, AP, IPIV, ANORM, RCOND, WORK, INFO )
|
|
35
|
+
|
|
36
|
+
* Purpose
|
|
37
|
+
* =======
|
|
38
|
+
*
|
|
39
|
+
* ZHPCON estimates the reciprocal of the condition number of a complex
|
|
40
|
+
* Hermitian packed matrix A using the factorization A = U*D*U**H or
|
|
41
|
+
* A = L*D*L**H computed by ZHPTRF.
|
|
42
|
+
*
|
|
43
|
+
* An estimate is obtained for norm(inv(A)), and the reciprocal of the
|
|
44
|
+
* condition number is computed as RCOND = 1 / (ANORM * norm(inv(A))).
|
|
45
|
+
*
|
|
46
|
+
|
|
47
|
+
* Arguments
|
|
48
|
+
* =========
|
|
49
|
+
*
|
|
50
|
+
* UPLO (input) CHARACTER*1
|
|
51
|
+
* Specifies whether the details of the factorization are stored
|
|
52
|
+
* as an upper or lower triangular matrix.
|
|
53
|
+
* = 'U': Upper triangular, form is A = U*D*U**H;
|
|
54
|
+
* = 'L': Lower triangular, form is A = L*D*L**H.
|
|
55
|
+
*
|
|
56
|
+
* N (input) INTEGER
|
|
57
|
+
* The order of the matrix A. N >= 0.
|
|
58
|
+
*
|
|
59
|
+
* AP (input) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
60
|
+
* The block diagonal matrix D and the multipliers used to
|
|
61
|
+
* obtain the factor U or L as computed by ZHPTRF, stored as a
|
|
62
|
+
* packed triangular matrix.
|
|
63
|
+
*
|
|
64
|
+
* IPIV (input) INTEGER array, dimension (N)
|
|
65
|
+
* Details of the interchanges and the block structure of D
|
|
66
|
+
* as determined by ZHPTRF.
|
|
67
|
+
*
|
|
68
|
+
* ANORM (input) DOUBLE PRECISION
|
|
69
|
+
* The 1-norm of the original matrix A.
|
|
70
|
+
*
|
|
71
|
+
* RCOND (output) DOUBLE PRECISION
|
|
72
|
+
* The reciprocal of the condition number of the matrix A,
|
|
73
|
+
* computed as RCOND = 1/(ANORM * AINVNM), where AINVNM is an
|
|
74
|
+
* estimate of the 1-norm of inv(A) computed in this routine.
|
|
75
|
+
*
|
|
76
|
+
* WORK (workspace) COMPLEX*16 array, dimension (2*N)
|
|
77
|
+
*
|
|
78
|
+
* INFO (output) INTEGER
|
|
79
|
+
* = 0: successful exit
|
|
80
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
81
|
+
*
|
|
82
|
+
|
|
83
|
+
* =====================================================================
|
|
84
|
+
*
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
</PRE>
|
|
88
|
+
<A HREF="#top">go to the page top</A>
|
|
89
|
+
|
|
90
|
+
<A NAME="zhpev"></A>
|
|
91
|
+
<H2>zhpev</H2>
|
|
92
|
+
<PRE>
|
|
93
|
+
USAGE:
|
|
94
|
+
w, z, info, ap = NumRu::Lapack.zhpev( jobz, uplo, ap, [:usage => usage, :help => help])
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
FORTRAN MANUAL
|
|
98
|
+
SUBROUTINE ZHPEV( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, RWORK, INFO )
|
|
99
|
+
|
|
100
|
+
* Purpose
|
|
101
|
+
* =======
|
|
102
|
+
*
|
|
103
|
+
* ZHPEV computes all the eigenvalues and, optionally, eigenvectors of a
|
|
104
|
+
* complex Hermitian matrix in packed storage.
|
|
105
|
+
*
|
|
106
|
+
|
|
107
|
+
* Arguments
|
|
108
|
+
* =========
|
|
109
|
+
*
|
|
110
|
+
* JOBZ (input) CHARACTER*1
|
|
111
|
+
* = 'N': Compute eigenvalues only;
|
|
112
|
+
* = 'V': Compute eigenvalues and eigenvectors.
|
|
113
|
+
*
|
|
114
|
+
* UPLO (input) CHARACTER*1
|
|
115
|
+
* = 'U': Upper triangle of A is stored;
|
|
116
|
+
* = 'L': Lower triangle of A is stored.
|
|
117
|
+
*
|
|
118
|
+
* N (input) INTEGER
|
|
119
|
+
* The order of the matrix A. N >= 0.
|
|
120
|
+
*
|
|
121
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
122
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
123
|
+
* A, packed columnwise in a linear array. The j-th column of A
|
|
124
|
+
* is stored in the array AP as follows:
|
|
125
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
126
|
+
* if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
|
|
127
|
+
*
|
|
128
|
+
* On exit, AP is overwritten by values generated during the
|
|
129
|
+
* reduction to tridiagonal form. If UPLO = 'U', the diagonal
|
|
130
|
+
* and first superdiagonal of the tridiagonal matrix T overwrite
|
|
131
|
+
* the corresponding elements of A, and if UPLO = 'L', the
|
|
132
|
+
* diagonal and first subdiagonal of T overwrite the
|
|
133
|
+
* corresponding elements of A.
|
|
134
|
+
*
|
|
135
|
+
* W (output) DOUBLE PRECISION array, dimension (N)
|
|
136
|
+
* If INFO = 0, the eigenvalues in ascending order.
|
|
137
|
+
*
|
|
138
|
+
* Z (output) COMPLEX*16 array, dimension (LDZ, N)
|
|
139
|
+
* If JOBZ = 'V', then if INFO = 0, Z contains the orthonormal
|
|
140
|
+
* eigenvectors of the matrix A, with the i-th column of Z
|
|
141
|
+
* holding the eigenvector associated with W(i).
|
|
142
|
+
* If JOBZ = 'N', then Z is not referenced.
|
|
143
|
+
*
|
|
144
|
+
* LDZ (input) INTEGER
|
|
145
|
+
* The leading dimension of the array Z. LDZ >= 1, and if
|
|
146
|
+
* JOBZ = 'V', LDZ >= max(1,N).
|
|
147
|
+
*
|
|
148
|
+
* WORK (workspace) COMPLEX*16 array, dimension (max(1, 2*N-1))
|
|
149
|
+
*
|
|
150
|
+
* RWORK (workspace) DOUBLE PRECISION array, dimension (max(1, 3*N-2))
|
|
151
|
+
*
|
|
152
|
+
* INFO (output) INTEGER
|
|
153
|
+
* = 0: successful exit.
|
|
154
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value.
|
|
155
|
+
* > 0: if INFO = i, the algorithm failed to converge; i
|
|
156
|
+
* off-diagonal elements of an intermediate tridiagonal
|
|
157
|
+
* form did not converge to zero.
|
|
158
|
+
*
|
|
159
|
+
|
|
160
|
+
* =====================================================================
|
|
161
|
+
*
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
</PRE>
|
|
165
|
+
<A HREF="#top">go to the page top</A>
|
|
166
|
+
|
|
167
|
+
<A NAME="zhpevd"></A>
|
|
168
|
+
<H2>zhpevd</H2>
|
|
169
|
+
<PRE>
|
|
170
|
+
USAGE:
|
|
171
|
+
w, z, work, rwork, iwork, info, ap = NumRu::Lapack.zhpevd( jobz, uplo, ap, [:lwork => lwork, :lrwork => lrwork, :liwork => liwork, :usage => usage, :help => help])
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
FORTRAN MANUAL
|
|
175
|
+
SUBROUTINE ZHPEVD( JOBZ, UPLO, N, AP, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO )
|
|
176
|
+
|
|
177
|
+
* Purpose
|
|
178
|
+
* =======
|
|
179
|
+
*
|
|
180
|
+
* ZHPEVD computes all the eigenvalues and, optionally, eigenvectors of
|
|
181
|
+
* a complex Hermitian matrix A in packed storage. If eigenvectors are
|
|
182
|
+
* desired, it uses a divide and conquer algorithm.
|
|
183
|
+
*
|
|
184
|
+
* The divide and conquer algorithm makes very mild assumptions about
|
|
185
|
+
* floating point arithmetic. It will work on machines with a guard
|
|
186
|
+
* digit in add/subtract, or on those binary machines without guard
|
|
187
|
+
* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or
|
|
188
|
+
* Cray-2. It could conceivably fail on hexadecimal or decimal machines
|
|
189
|
+
* without guard digits, but we know of none.
|
|
190
|
+
*
|
|
191
|
+
|
|
192
|
+
* Arguments
|
|
193
|
+
* =========
|
|
194
|
+
*
|
|
195
|
+
* JOBZ (input) CHARACTER*1
|
|
196
|
+
* = 'N': Compute eigenvalues only;
|
|
197
|
+
* = 'V': Compute eigenvalues and eigenvectors.
|
|
198
|
+
*
|
|
199
|
+
* UPLO (input) CHARACTER*1
|
|
200
|
+
* = 'U': Upper triangle of A is stored;
|
|
201
|
+
* = 'L': Lower triangle of A is stored.
|
|
202
|
+
*
|
|
203
|
+
* N (input) INTEGER
|
|
204
|
+
* The order of the matrix A. N >= 0.
|
|
205
|
+
*
|
|
206
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
207
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
208
|
+
* A, packed columnwise in a linear array. The j-th column of A
|
|
209
|
+
* is stored in the array AP as follows:
|
|
210
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
211
|
+
* if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
|
|
212
|
+
*
|
|
213
|
+
* On exit, AP is overwritten by values generated during the
|
|
214
|
+
* reduction to tridiagonal form. If UPLO = 'U', the diagonal
|
|
215
|
+
* and first superdiagonal of the tridiagonal matrix T overwrite
|
|
216
|
+
* the corresponding elements of A, and if UPLO = 'L', the
|
|
217
|
+
* diagonal and first subdiagonal of T overwrite the
|
|
218
|
+
* corresponding elements of A.
|
|
219
|
+
*
|
|
220
|
+
* W (output) DOUBLE PRECISION array, dimension (N)
|
|
221
|
+
* If INFO = 0, the eigenvalues in ascending order.
|
|
222
|
+
*
|
|
223
|
+
* Z (output) COMPLEX*16 array, dimension (LDZ, N)
|
|
224
|
+
* If JOBZ = 'V', then if INFO = 0, Z contains the orthonormal
|
|
225
|
+
* eigenvectors of the matrix A, with the i-th column of Z
|
|
226
|
+
* holding the eigenvector associated with W(i).
|
|
227
|
+
* If JOBZ = 'N', then Z is not referenced.
|
|
228
|
+
*
|
|
229
|
+
* LDZ (input) INTEGER
|
|
230
|
+
* The leading dimension of the array Z. LDZ >= 1, and if
|
|
231
|
+
* JOBZ = 'V', LDZ >= max(1,N).
|
|
232
|
+
*
|
|
233
|
+
* WORK (workspace/output) COMPLEX*16 array, dimension (MAX(1,LWORK))
|
|
234
|
+
* On exit, if INFO = 0, WORK(1) returns the required LWORK.
|
|
235
|
+
*
|
|
236
|
+
* LWORK (input) INTEGER
|
|
237
|
+
* The dimension of array WORK.
|
|
238
|
+
* If N <= 1, LWORK must be at least 1.
|
|
239
|
+
* If JOBZ = 'N' and N > 1, LWORK must be at least N.
|
|
240
|
+
* If JOBZ = 'V' and N > 1, LWORK must be at least 2*N.
|
|
241
|
+
*
|
|
242
|
+
* If LWORK = -1, then a workspace query is assumed; the routine
|
|
243
|
+
* only calculates the required sizes of the WORK, RWORK and
|
|
244
|
+
* IWORK arrays, returns these values as the first entries of
|
|
245
|
+
* the WORK, RWORK and IWORK arrays, and no error message
|
|
246
|
+
* related to LWORK or LRWORK or LIWORK is issued by XERBLA.
|
|
247
|
+
*
|
|
248
|
+
* RWORK (workspace/output) DOUBLE PRECISION array,
|
|
249
|
+
* dimension (LRWORK)
|
|
250
|
+
* On exit, if INFO = 0, RWORK(1) returns the required LRWORK.
|
|
251
|
+
*
|
|
252
|
+
* LRWORK (input) INTEGER
|
|
253
|
+
* The dimension of array RWORK.
|
|
254
|
+
* If N <= 1, LRWORK must be at least 1.
|
|
255
|
+
* If JOBZ = 'N' and N > 1, LRWORK must be at least N.
|
|
256
|
+
* If JOBZ = 'V' and N > 1, LRWORK must be at least
|
|
257
|
+
* 1 + 5*N + 2*N**2.
|
|
258
|
+
*
|
|
259
|
+
* If LRWORK = -1, then a workspace query is assumed; the
|
|
260
|
+
* routine only calculates the required sizes of the WORK, RWORK
|
|
261
|
+
* and IWORK arrays, returns these values as the first entries
|
|
262
|
+
* of the WORK, RWORK and IWORK arrays, and no error message
|
|
263
|
+
* related to LWORK or LRWORK or LIWORK is issued by XERBLA.
|
|
264
|
+
*
|
|
265
|
+
* IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
|
|
266
|
+
* On exit, if INFO = 0, IWORK(1) returns the required LIWORK.
|
|
267
|
+
*
|
|
268
|
+
* LIWORK (input) INTEGER
|
|
269
|
+
* The dimension of array IWORK.
|
|
270
|
+
* If JOBZ = 'N' or N <= 1, LIWORK must be at least 1.
|
|
271
|
+
* If JOBZ = 'V' and N > 1, LIWORK must be at least 3 + 5*N.
|
|
272
|
+
*
|
|
273
|
+
* If LIWORK = -1, then a workspace query is assumed; the
|
|
274
|
+
* routine only calculates the required sizes of the WORK, RWORK
|
|
275
|
+
* and IWORK arrays, returns these values as the first entries
|
|
276
|
+
* of the WORK, RWORK and IWORK arrays, and no error message
|
|
277
|
+
* related to LWORK or LRWORK or LIWORK is issued by XERBLA.
|
|
278
|
+
*
|
|
279
|
+
* INFO (output) INTEGER
|
|
280
|
+
* = 0: successful exit
|
|
281
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value.
|
|
282
|
+
* > 0: if INFO = i, the algorithm failed to converge; i
|
|
283
|
+
* off-diagonal elements of an intermediate tridiagonal
|
|
284
|
+
* form did not converge to zero.
|
|
285
|
+
*
|
|
286
|
+
|
|
287
|
+
* =====================================================================
|
|
288
|
+
*
|
|
289
|
+
|
|
290
|
+
|
|
291
|
+
</PRE>
|
|
292
|
+
<A HREF="#top">go to the page top</A>
|
|
293
|
+
|
|
294
|
+
<A NAME="zhpevx"></A>
|
|
295
|
+
<H2>zhpevx</H2>
|
|
296
|
+
<PRE>
|
|
297
|
+
USAGE:
|
|
298
|
+
m, w, z, ifail, info, ap = NumRu::Lapack.zhpevx( jobz, range, uplo, ap, vl, vu, il, iu, abstol, [:usage => usage, :help => help])
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
FORTRAN MANUAL
|
|
302
|
+
SUBROUTINE ZHPEVX( JOBZ, RANGE, UPLO, N, AP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO )
|
|
303
|
+
|
|
304
|
+
* Purpose
|
|
305
|
+
* =======
|
|
306
|
+
*
|
|
307
|
+
* ZHPEVX computes selected eigenvalues and, optionally, eigenvectors
|
|
308
|
+
* of a complex Hermitian matrix A in packed storage.
|
|
309
|
+
* Eigenvalues/vectors can be selected by specifying either a range of
|
|
310
|
+
* values or a range of indices for the desired eigenvalues.
|
|
311
|
+
*
|
|
312
|
+
|
|
313
|
+
* Arguments
|
|
314
|
+
* =========
|
|
315
|
+
*
|
|
316
|
+
* JOBZ (input) CHARACTER*1
|
|
317
|
+
* = 'N': Compute eigenvalues only;
|
|
318
|
+
* = 'V': Compute eigenvalues and eigenvectors.
|
|
319
|
+
*
|
|
320
|
+
* RANGE (input) CHARACTER*1
|
|
321
|
+
* = 'A': all eigenvalues will be found;
|
|
322
|
+
* = 'V': all eigenvalues in the half-open interval (VL,VU]
|
|
323
|
+
* will be found;
|
|
324
|
+
* = 'I': the IL-th through IU-th eigenvalues will be found.
|
|
325
|
+
*
|
|
326
|
+
* UPLO (input) CHARACTER*1
|
|
327
|
+
* = 'U': Upper triangle of A is stored;
|
|
328
|
+
* = 'L': Lower triangle of A is stored.
|
|
329
|
+
*
|
|
330
|
+
* N (input) INTEGER
|
|
331
|
+
* The order of the matrix A. N >= 0.
|
|
332
|
+
*
|
|
333
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
334
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
335
|
+
* A, packed columnwise in a linear array. The j-th column of A
|
|
336
|
+
* is stored in the array AP as follows:
|
|
337
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
338
|
+
* if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
|
|
339
|
+
*
|
|
340
|
+
* On exit, AP is overwritten by values generated during the
|
|
341
|
+
* reduction to tridiagonal form. If UPLO = 'U', the diagonal
|
|
342
|
+
* and first superdiagonal of the tridiagonal matrix T overwrite
|
|
343
|
+
* the corresponding elements of A, and if UPLO = 'L', the
|
|
344
|
+
* diagonal and first subdiagonal of T overwrite the
|
|
345
|
+
* corresponding elements of A.
|
|
346
|
+
*
|
|
347
|
+
* VL (input) DOUBLE PRECISION
|
|
348
|
+
* VU (input) DOUBLE PRECISION
|
|
349
|
+
* If RANGE='V', the lower and upper bounds of the interval to
|
|
350
|
+
* be searched for eigenvalues. VL < VU.
|
|
351
|
+
* Not referenced if RANGE = 'A' or 'I'.
|
|
352
|
+
*
|
|
353
|
+
* IL (input) INTEGER
|
|
354
|
+
* IU (input) INTEGER
|
|
355
|
+
* If RANGE='I', the indices (in ascending order) of the
|
|
356
|
+
* smallest and largest eigenvalues to be returned.
|
|
357
|
+
* 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.
|
|
358
|
+
* Not referenced if RANGE = 'A' or 'V'.
|
|
359
|
+
*
|
|
360
|
+
* ABSTOL (input) DOUBLE PRECISION
|
|
361
|
+
* The absolute error tolerance for the eigenvalues.
|
|
362
|
+
* An approximate eigenvalue is accepted as converged
|
|
363
|
+
* when it is determined to lie in an interval [a,b]
|
|
364
|
+
* of width less than or equal to
|
|
365
|
+
*
|
|
366
|
+
* ABSTOL + EPS * max( |a|,|b| ) ,
|
|
367
|
+
*
|
|
368
|
+
* where EPS is the machine precision. If ABSTOL is less than
|
|
369
|
+
* or equal to zero, then EPS*|T| will be used in its place,
|
|
370
|
+
* where |T| is the 1-norm of the tridiagonal matrix obtained
|
|
371
|
+
* by reducing AP to tridiagonal form.
|
|
372
|
+
*
|
|
373
|
+
* Eigenvalues will be computed most accurately when ABSTOL is
|
|
374
|
+
* set to twice the underflow threshold 2*DLAMCH('S'), not zero.
|
|
375
|
+
* If this routine returns with INFO>0, indicating that some
|
|
376
|
+
* eigenvectors did not converge, try setting ABSTOL to
|
|
377
|
+
* 2*DLAMCH('S').
|
|
378
|
+
*
|
|
379
|
+
* See "Computing Small Singular Values of Bidiagonal Matrices
|
|
380
|
+
* with Guaranteed High Relative Accuracy," by Demmel and
|
|
381
|
+
* Kahan, LAPACK Working Note #3.
|
|
382
|
+
*
|
|
383
|
+
* M (output) INTEGER
|
|
384
|
+
* The total number of eigenvalues found. 0 <= M <= N.
|
|
385
|
+
* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
|
|
386
|
+
*
|
|
387
|
+
* W (output) DOUBLE PRECISION array, dimension (N)
|
|
388
|
+
* If INFO = 0, the selected eigenvalues in ascending order.
|
|
389
|
+
*
|
|
390
|
+
* Z (output) COMPLEX*16 array, dimension (LDZ, max(1,M))
|
|
391
|
+
* If JOBZ = 'V', then if INFO = 0, the first M columns of Z
|
|
392
|
+
* contain the orthonormal eigenvectors of the matrix A
|
|
393
|
+
* corresponding to the selected eigenvalues, with the i-th
|
|
394
|
+
* column of Z holding the eigenvector associated with W(i).
|
|
395
|
+
* If an eigenvector fails to converge, then that column of Z
|
|
396
|
+
* contains the latest approximation to the eigenvector, and
|
|
397
|
+
* the index of the eigenvector is returned in IFAIL.
|
|
398
|
+
* If JOBZ = 'N', then Z is not referenced.
|
|
399
|
+
* Note: the user must ensure that at least max(1,M) columns are
|
|
400
|
+
* supplied in the array Z; if RANGE = 'V', the exact value of M
|
|
401
|
+
* is not known in advance and an upper bound must be used.
|
|
402
|
+
*
|
|
403
|
+
* LDZ (input) INTEGER
|
|
404
|
+
* The leading dimension of the array Z. LDZ >= 1, and if
|
|
405
|
+
* JOBZ = 'V', LDZ >= max(1,N).
|
|
406
|
+
*
|
|
407
|
+
* WORK (workspace) COMPLEX*16 array, dimension (2*N)
|
|
408
|
+
*
|
|
409
|
+
* RWORK (workspace) DOUBLE PRECISION array, dimension (7*N)
|
|
410
|
+
*
|
|
411
|
+
* IWORK (workspace) INTEGER array, dimension (5*N)
|
|
412
|
+
*
|
|
413
|
+
* IFAIL (output) INTEGER array, dimension (N)
|
|
414
|
+
* If JOBZ = 'V', then if INFO = 0, the first M elements of
|
|
415
|
+
* IFAIL are zero. If INFO > 0, then IFAIL contains the
|
|
416
|
+
* indices of the eigenvectors that failed to converge.
|
|
417
|
+
* If JOBZ = 'N', then IFAIL is not referenced.
|
|
418
|
+
*
|
|
419
|
+
* INFO (output) INTEGER
|
|
420
|
+
* = 0: successful exit
|
|
421
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
422
|
+
* > 0: if INFO = i, then i eigenvectors failed to converge.
|
|
423
|
+
* Their indices are stored in array IFAIL.
|
|
424
|
+
*
|
|
425
|
+
|
|
426
|
+
* =====================================================================
|
|
427
|
+
*
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
</PRE>
|
|
431
|
+
<A HREF="#top">go to the page top</A>
|
|
432
|
+
|
|
433
|
+
<A NAME="zhpgst"></A>
|
|
434
|
+
<H2>zhpgst</H2>
|
|
435
|
+
<PRE>
|
|
436
|
+
USAGE:
|
|
437
|
+
info, ap = NumRu::Lapack.zhpgst( itype, uplo, n, ap, bp, [:usage => usage, :help => help])
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
FORTRAN MANUAL
|
|
441
|
+
SUBROUTINE ZHPGST( ITYPE, UPLO, N, AP, BP, INFO )
|
|
442
|
+
|
|
443
|
+
* Purpose
|
|
444
|
+
* =======
|
|
445
|
+
*
|
|
446
|
+
* ZHPGST reduces a complex Hermitian-definite generalized
|
|
447
|
+
* eigenproblem to standard form, using packed storage.
|
|
448
|
+
*
|
|
449
|
+
* If ITYPE = 1, the problem is A*x = lambda*B*x,
|
|
450
|
+
* and A is overwritten by inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H)
|
|
451
|
+
*
|
|
452
|
+
* If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or
|
|
453
|
+
* B*A*x = lambda*x, and A is overwritten by U*A*U**H or L**H*A*L.
|
|
454
|
+
*
|
|
455
|
+
* B must have been previously factorized as U**H*U or L*L**H by ZPPTRF.
|
|
456
|
+
*
|
|
457
|
+
|
|
458
|
+
* Arguments
|
|
459
|
+
* =========
|
|
460
|
+
*
|
|
461
|
+
* ITYPE (input) INTEGER
|
|
462
|
+
* = 1: compute inv(U**H)*A*inv(U) or inv(L)*A*inv(L**H);
|
|
463
|
+
* = 2 or 3: compute U*A*U**H or L**H*A*L.
|
|
464
|
+
*
|
|
465
|
+
* UPLO (input) CHARACTER*1
|
|
466
|
+
* = 'U': Upper triangle of A is stored and B is factored as
|
|
467
|
+
* U**H*U;
|
|
468
|
+
* = 'L': Lower triangle of A is stored and B is factored as
|
|
469
|
+
* L*L**H.
|
|
470
|
+
*
|
|
471
|
+
* N (input) INTEGER
|
|
472
|
+
* The order of the matrices A and B. N >= 0.
|
|
473
|
+
*
|
|
474
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
475
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
476
|
+
* A, packed columnwise in a linear array. The j-th column of A
|
|
477
|
+
* is stored in the array AP as follows:
|
|
478
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
479
|
+
* if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
|
|
480
|
+
*
|
|
481
|
+
* On exit, if INFO = 0, the transformed matrix, stored in the
|
|
482
|
+
* same format as A.
|
|
483
|
+
*
|
|
484
|
+
* BP (input) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
485
|
+
* The triangular factor from the Cholesky factorization of B,
|
|
486
|
+
* stored in the same format as A, as returned by ZPPTRF.
|
|
487
|
+
*
|
|
488
|
+
* INFO (output) INTEGER
|
|
489
|
+
* = 0: successful exit
|
|
490
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
491
|
+
*
|
|
492
|
+
|
|
493
|
+
* =====================================================================
|
|
494
|
+
*
|
|
495
|
+
|
|
496
|
+
|
|
497
|
+
</PRE>
|
|
498
|
+
<A HREF="#top">go to the page top</A>
|
|
499
|
+
|
|
500
|
+
<A NAME="zhpgv"></A>
|
|
501
|
+
<H2>zhpgv</H2>
|
|
502
|
+
<PRE>
|
|
503
|
+
USAGE:
|
|
504
|
+
w, z, info, ap, bp = NumRu::Lapack.zhpgv( itype, jobz, uplo, ap, bp, [:usage => usage, :help => help])
|
|
505
|
+
|
|
506
|
+
|
|
507
|
+
FORTRAN MANUAL
|
|
508
|
+
SUBROUTINE ZHPGV( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, RWORK, INFO )
|
|
509
|
+
|
|
510
|
+
* Purpose
|
|
511
|
+
* =======
|
|
512
|
+
*
|
|
513
|
+
* ZHPGV computes all the eigenvalues and, optionally, the eigenvectors
|
|
514
|
+
* of a complex generalized Hermitian-definite eigenproblem, of the form
|
|
515
|
+
* A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x.
|
|
516
|
+
* Here A and B are assumed to be Hermitian, stored in packed format,
|
|
517
|
+
* and B is also positive definite.
|
|
518
|
+
*
|
|
519
|
+
|
|
520
|
+
* Arguments
|
|
521
|
+
* =========
|
|
522
|
+
*
|
|
523
|
+
* ITYPE (input) INTEGER
|
|
524
|
+
* Specifies the problem type to be solved:
|
|
525
|
+
* = 1: A*x = (lambda)*B*x
|
|
526
|
+
* = 2: A*B*x = (lambda)*x
|
|
527
|
+
* = 3: B*A*x = (lambda)*x
|
|
528
|
+
*
|
|
529
|
+
* JOBZ (input) CHARACTER*1
|
|
530
|
+
* = 'N': Compute eigenvalues only;
|
|
531
|
+
* = 'V': Compute eigenvalues and eigenvectors.
|
|
532
|
+
*
|
|
533
|
+
* UPLO (input) CHARACTER*1
|
|
534
|
+
* = 'U': Upper triangles of A and B are stored;
|
|
535
|
+
* = 'L': Lower triangles of A and B are stored.
|
|
536
|
+
*
|
|
537
|
+
* N (input) INTEGER
|
|
538
|
+
* The order of the matrices A and B. N >= 0.
|
|
539
|
+
*
|
|
540
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
541
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
542
|
+
* A, packed columnwise in a linear array. The j-th column of A
|
|
543
|
+
* is stored in the array AP as follows:
|
|
544
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
545
|
+
* if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
|
|
546
|
+
*
|
|
547
|
+
* On exit, the contents of AP are destroyed.
|
|
548
|
+
*
|
|
549
|
+
* BP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
550
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
551
|
+
* B, packed columnwise in a linear array. The j-th column of B
|
|
552
|
+
* is stored in the array BP as follows:
|
|
553
|
+
* if UPLO = 'U', BP(i + (j-1)*j/2) = B(i,j) for 1<=i<=j;
|
|
554
|
+
* if UPLO = 'L', BP(i + (j-1)*(2*n-j)/2) = B(i,j) for j<=i<=n.
|
|
555
|
+
*
|
|
556
|
+
* On exit, the triangular factor U or L from the Cholesky
|
|
557
|
+
* factorization B = U**H*U or B = L*L**H, in the same storage
|
|
558
|
+
* format as B.
|
|
559
|
+
*
|
|
560
|
+
* W (output) DOUBLE PRECISION array, dimension (N)
|
|
561
|
+
* If INFO = 0, the eigenvalues in ascending order.
|
|
562
|
+
*
|
|
563
|
+
* Z (output) COMPLEX*16 array, dimension (LDZ, N)
|
|
564
|
+
* If JOBZ = 'V', then if INFO = 0, Z contains the matrix Z of
|
|
565
|
+
* eigenvectors. The eigenvectors are normalized as follows:
|
|
566
|
+
* if ITYPE = 1 or 2, Z**H*B*Z = I;
|
|
567
|
+
* if ITYPE = 3, Z**H*inv(B)*Z = I.
|
|
568
|
+
* If JOBZ = 'N', then Z is not referenced.
|
|
569
|
+
*
|
|
570
|
+
* LDZ (input) INTEGER
|
|
571
|
+
* The leading dimension of the array Z. LDZ >= 1, and if
|
|
572
|
+
* JOBZ = 'V', LDZ >= max(1,N).
|
|
573
|
+
*
|
|
574
|
+
* WORK (workspace) COMPLEX*16 array, dimension (max(1, 2*N-1))
|
|
575
|
+
*
|
|
576
|
+
* RWORK (workspace) DOUBLE PRECISION array, dimension (max(1, 3*N-2))
|
|
577
|
+
*
|
|
578
|
+
* INFO (output) INTEGER
|
|
579
|
+
* = 0: successful exit
|
|
580
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
581
|
+
* > 0: ZPPTRF or ZHPEV returned an error code:
|
|
582
|
+
* <= N: if INFO = i, ZHPEV failed to converge;
|
|
583
|
+
* i off-diagonal elements of an intermediate
|
|
584
|
+
* tridiagonal form did not convergeto zero;
|
|
585
|
+
* > N: if INFO = N + i, for 1 <= i <= n, then the leading
|
|
586
|
+
* minor of order i of B is not positive definite.
|
|
587
|
+
* The factorization of B could not be completed and
|
|
588
|
+
* no eigenvalues or eigenvectors were computed.
|
|
589
|
+
*
|
|
590
|
+
|
|
591
|
+
* =====================================================================
|
|
592
|
+
*
|
|
593
|
+
* .. Local Scalars ..
|
|
594
|
+
LOGICAL UPPER, WANTZ
|
|
595
|
+
CHARACTER TRANS
|
|
596
|
+
INTEGER J, NEIG
|
|
597
|
+
* ..
|
|
598
|
+
* .. External Functions ..
|
|
599
|
+
LOGICAL LSAME
|
|
600
|
+
EXTERNAL LSAME
|
|
601
|
+
* ..
|
|
602
|
+
* .. External Subroutines ..
|
|
603
|
+
EXTERNAL XERBLA, ZHPEV, ZHPGST, ZPPTRF, ZTPMV, ZTPSV
|
|
604
|
+
* ..
|
|
605
|
+
|
|
606
|
+
|
|
607
|
+
</PRE>
|
|
608
|
+
<A HREF="#top">go to the page top</A>
|
|
609
|
+
|
|
610
|
+
<A NAME="zhpgvd"></A>
|
|
611
|
+
<H2>zhpgvd</H2>
|
|
612
|
+
<PRE>
|
|
613
|
+
USAGE:
|
|
614
|
+
w, z, iwork, info, ap, bp = NumRu::Lapack.zhpgvd( itype, jobz, uplo, ap, bp, [:lwork => lwork, :lrwork => lrwork, :liwork => liwork, :usage => usage, :help => help])
|
|
615
|
+
|
|
616
|
+
|
|
617
|
+
FORTRAN MANUAL
|
|
618
|
+
SUBROUTINE ZHPGVD( ITYPE, JOBZ, UPLO, N, AP, BP, W, Z, LDZ, WORK, LWORK, RWORK, LRWORK, IWORK, LIWORK, INFO )
|
|
619
|
+
|
|
620
|
+
* Purpose
|
|
621
|
+
* =======
|
|
622
|
+
*
|
|
623
|
+
* ZHPGVD computes all the eigenvalues and, optionally, the eigenvectors
|
|
624
|
+
* of a complex generalized Hermitian-definite eigenproblem, of the form
|
|
625
|
+
* A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and
|
|
626
|
+
* B are assumed to be Hermitian, stored in packed format, and B is also
|
|
627
|
+
* positive definite.
|
|
628
|
+
* If eigenvectors are desired, it uses a divide and conquer algorithm.
|
|
629
|
+
*
|
|
630
|
+
* The divide and conquer algorithm makes very mild assumptions about
|
|
631
|
+
* floating point arithmetic. It will work on machines with a guard
|
|
632
|
+
* digit in add/subtract, or on those binary machines without guard
|
|
633
|
+
* digits which subtract like the Cray X-MP, Cray Y-MP, Cray C-90, or
|
|
634
|
+
* Cray-2. It could conceivably fail on hexadecimal or decimal machines
|
|
635
|
+
* without guard digits, but we know of none.
|
|
636
|
+
*
|
|
637
|
+
|
|
638
|
+
* Arguments
|
|
639
|
+
* =========
|
|
640
|
+
*
|
|
641
|
+
* ITYPE (input) INTEGER
|
|
642
|
+
* Specifies the problem type to be solved:
|
|
643
|
+
* = 1: A*x = (lambda)*B*x
|
|
644
|
+
* = 2: A*B*x = (lambda)*x
|
|
645
|
+
* = 3: B*A*x = (lambda)*x
|
|
646
|
+
*
|
|
647
|
+
* JOBZ (input) CHARACTER*1
|
|
648
|
+
* = 'N': Compute eigenvalues only;
|
|
649
|
+
* = 'V': Compute eigenvalues and eigenvectors.
|
|
650
|
+
*
|
|
651
|
+
* UPLO (input) CHARACTER*1
|
|
652
|
+
* = 'U': Upper triangles of A and B are stored;
|
|
653
|
+
* = 'L': Lower triangles of A and B are stored.
|
|
654
|
+
*
|
|
655
|
+
* N (input) INTEGER
|
|
656
|
+
* The order of the matrices A and B. N >= 0.
|
|
657
|
+
*
|
|
658
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
659
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
660
|
+
* A, packed columnwise in a linear array. The j-th column of A
|
|
661
|
+
* is stored in the array AP as follows:
|
|
662
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
663
|
+
* if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
|
|
664
|
+
*
|
|
665
|
+
* On exit, the contents of AP are destroyed.
|
|
666
|
+
*
|
|
667
|
+
* BP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
668
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
669
|
+
* B, packed columnwise in a linear array. The j-th column of B
|
|
670
|
+
* is stored in the array BP as follows:
|
|
671
|
+
* if UPLO = 'U', BP(i + (j-1)*j/2) = B(i,j) for 1<=i<=j;
|
|
672
|
+
* if UPLO = 'L', BP(i + (j-1)*(2*n-j)/2) = B(i,j) for j<=i<=n.
|
|
673
|
+
*
|
|
674
|
+
* On exit, the triangular factor U or L from the Cholesky
|
|
675
|
+
* factorization B = U**H*U or B = L*L**H, in the same storage
|
|
676
|
+
* format as B.
|
|
677
|
+
*
|
|
678
|
+
* W (output) DOUBLE PRECISION array, dimension (N)
|
|
679
|
+
* If INFO = 0, the eigenvalues in ascending order.
|
|
680
|
+
*
|
|
681
|
+
* Z (output) COMPLEX*16 array, dimension (LDZ, N)
|
|
682
|
+
* If JOBZ = 'V', then if INFO = 0, Z contains the matrix Z of
|
|
683
|
+
* eigenvectors. The eigenvectors are normalized as follows:
|
|
684
|
+
* if ITYPE = 1 or 2, Z**H*B*Z = I;
|
|
685
|
+
* if ITYPE = 3, Z**H*inv(B)*Z = I.
|
|
686
|
+
* If JOBZ = 'N', then Z is not referenced.
|
|
687
|
+
*
|
|
688
|
+
* LDZ (input) INTEGER
|
|
689
|
+
* The leading dimension of the array Z. LDZ >= 1, and if
|
|
690
|
+
* JOBZ = 'V', LDZ >= max(1,N).
|
|
691
|
+
*
|
|
692
|
+
* WORK (workspace) COMPLEX*16 array, dimension (MAX(1,LWORK))
|
|
693
|
+
* On exit, if INFO = 0, WORK(1) returns the required LWORK.
|
|
694
|
+
*
|
|
695
|
+
* LWORK (input) INTEGER
|
|
696
|
+
* The dimension of array WORK.
|
|
697
|
+
* If N <= 1, LWORK >= 1.
|
|
698
|
+
* If JOBZ = 'N' and N > 1, LWORK >= N.
|
|
699
|
+
* If JOBZ = 'V' and N > 1, LWORK >= 2*N.
|
|
700
|
+
*
|
|
701
|
+
* If LWORK = -1, then a workspace query is assumed; the routine
|
|
702
|
+
* only calculates the required sizes of the WORK, RWORK and
|
|
703
|
+
* IWORK arrays, returns these values as the first entries of
|
|
704
|
+
* the WORK, RWORK and IWORK arrays, and no error message
|
|
705
|
+
* related to LWORK or LRWORK or LIWORK is issued by XERBLA.
|
|
706
|
+
*
|
|
707
|
+
* RWORK (workspace) DOUBLE PRECISION array, dimension (MAX(1,LRWORK))
|
|
708
|
+
* On exit, if INFO = 0, RWORK(1) returns the required LRWORK.
|
|
709
|
+
*
|
|
710
|
+
* LRWORK (input) INTEGER
|
|
711
|
+
* The dimension of array RWORK.
|
|
712
|
+
* If N <= 1, LRWORK >= 1.
|
|
713
|
+
* If JOBZ = 'N' and N > 1, LRWORK >= N.
|
|
714
|
+
* If JOBZ = 'V' and N > 1, LRWORK >= 1 + 5*N + 2*N**2.
|
|
715
|
+
*
|
|
716
|
+
* If LRWORK = -1, then a workspace query is assumed; the
|
|
717
|
+
* routine only calculates the required sizes of the WORK, RWORK
|
|
718
|
+
* and IWORK arrays, returns these values as the first entries
|
|
719
|
+
* of the WORK, RWORK and IWORK arrays, and no error message
|
|
720
|
+
* related to LWORK or LRWORK or LIWORK is issued by XERBLA.
|
|
721
|
+
*
|
|
722
|
+
* IWORK (workspace/output) INTEGER array, dimension (MAX(1,LIWORK))
|
|
723
|
+
* On exit, if INFO = 0, IWORK(1) returns the required LIWORK.
|
|
724
|
+
*
|
|
725
|
+
* LIWORK (input) INTEGER
|
|
726
|
+
* The dimension of array IWORK.
|
|
727
|
+
* If JOBZ = 'N' or N <= 1, LIWORK >= 1.
|
|
728
|
+
* If JOBZ = 'V' and N > 1, LIWORK >= 3 + 5*N.
|
|
729
|
+
*
|
|
730
|
+
* If LIWORK = -1, then a workspace query is assumed; the
|
|
731
|
+
* routine only calculates the required sizes of the WORK, RWORK
|
|
732
|
+
* and IWORK arrays, returns these values as the first entries
|
|
733
|
+
* of the WORK, RWORK and IWORK arrays, and no error message
|
|
734
|
+
* related to LWORK or LRWORK or LIWORK is issued by XERBLA.
|
|
735
|
+
*
|
|
736
|
+
* INFO (output) INTEGER
|
|
737
|
+
* = 0: successful exit
|
|
738
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
739
|
+
* > 0: ZPPTRF or ZHPEVD returned an error code:
|
|
740
|
+
* <= N: if INFO = i, ZHPEVD failed to converge;
|
|
741
|
+
* i off-diagonal elements of an intermediate
|
|
742
|
+
* tridiagonal form did not convergeto zero;
|
|
743
|
+
* > N: if INFO = N + i, for 1 <= i <= n, then the leading
|
|
744
|
+
* minor of order i of B is not positive definite.
|
|
745
|
+
* The factorization of B could not be completed and
|
|
746
|
+
* no eigenvalues or eigenvectors were computed.
|
|
747
|
+
*
|
|
748
|
+
|
|
749
|
+
* Further Details
|
|
750
|
+
* ===============
|
|
751
|
+
*
|
|
752
|
+
* Based on contributions by
|
|
753
|
+
* Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
|
|
754
|
+
*
|
|
755
|
+
* =====================================================================
|
|
756
|
+
*
|
|
757
|
+
* .. Local Scalars ..
|
|
758
|
+
LOGICAL LQUERY, UPPER, WANTZ
|
|
759
|
+
CHARACTER TRANS
|
|
760
|
+
INTEGER J, LIWMIN, LRWMIN, LWMIN, NEIG
|
|
761
|
+
* ..
|
|
762
|
+
* .. External Functions ..
|
|
763
|
+
LOGICAL LSAME
|
|
764
|
+
EXTERNAL LSAME
|
|
765
|
+
* ..
|
|
766
|
+
* .. External Subroutines ..
|
|
767
|
+
EXTERNAL XERBLA, ZHPEVD, ZHPGST, ZPPTRF, ZTPMV, ZTPSV
|
|
768
|
+
* ..
|
|
769
|
+
* .. Intrinsic Functions ..
|
|
770
|
+
INTRINSIC DBLE, MAX
|
|
771
|
+
* ..
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
</PRE>
|
|
775
|
+
<A HREF="#top">go to the page top</A>
|
|
776
|
+
|
|
777
|
+
<A NAME="zhpgvx"></A>
|
|
778
|
+
<H2>zhpgvx</H2>
|
|
779
|
+
<PRE>
|
|
780
|
+
USAGE:
|
|
781
|
+
m, w, z, ifail, info, ap, bp = NumRu::Lapack.zhpgvx( itype, jobz, range, uplo, ap, bp, vl, vu, il, iu, abstol, [:usage => usage, :help => help])
|
|
782
|
+
|
|
783
|
+
|
|
784
|
+
FORTRAN MANUAL
|
|
785
|
+
SUBROUTINE ZHPGVX( ITYPE, JOBZ, RANGE, UPLO, N, AP, BP, VL, VU, IL, IU, ABSTOL, M, W, Z, LDZ, WORK, RWORK, IWORK, IFAIL, INFO )
|
|
786
|
+
|
|
787
|
+
* Purpose
|
|
788
|
+
* =======
|
|
789
|
+
*
|
|
790
|
+
* ZHPGVX computes selected eigenvalues and, optionally, eigenvectors
|
|
791
|
+
* of a complex generalized Hermitian-definite eigenproblem, of the form
|
|
792
|
+
* A*x=(lambda)*B*x, A*Bx=(lambda)*x, or B*A*x=(lambda)*x. Here A and
|
|
793
|
+
* B are assumed to be Hermitian, stored in packed format, and B is also
|
|
794
|
+
* positive definite. Eigenvalues and eigenvectors can be selected by
|
|
795
|
+
* specifying either a range of values or a range of indices for the
|
|
796
|
+
* desired eigenvalues.
|
|
797
|
+
*
|
|
798
|
+
|
|
799
|
+
* Arguments
|
|
800
|
+
* =========
|
|
801
|
+
*
|
|
802
|
+
* ITYPE (input) INTEGER
|
|
803
|
+
* Specifies the problem type to be solved:
|
|
804
|
+
* = 1: A*x = (lambda)*B*x
|
|
805
|
+
* = 2: A*B*x = (lambda)*x
|
|
806
|
+
* = 3: B*A*x = (lambda)*x
|
|
807
|
+
*
|
|
808
|
+
* JOBZ (input) CHARACTER*1
|
|
809
|
+
* = 'N': Compute eigenvalues only;
|
|
810
|
+
* = 'V': Compute eigenvalues and eigenvectors.
|
|
811
|
+
*
|
|
812
|
+
* RANGE (input) CHARACTER*1
|
|
813
|
+
* = 'A': all eigenvalues will be found;
|
|
814
|
+
* = 'V': all eigenvalues in the half-open interval (VL,VU]
|
|
815
|
+
* will be found;
|
|
816
|
+
* = 'I': the IL-th through IU-th eigenvalues will be found.
|
|
817
|
+
*
|
|
818
|
+
* UPLO (input) CHARACTER*1
|
|
819
|
+
* = 'U': Upper triangles of A and B are stored;
|
|
820
|
+
* = 'L': Lower triangles of A and B are stored.
|
|
821
|
+
*
|
|
822
|
+
* N (input) INTEGER
|
|
823
|
+
* The order of the matrices A and B. N >= 0.
|
|
824
|
+
*
|
|
825
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
826
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
827
|
+
* A, packed columnwise in a linear array. The j-th column of A
|
|
828
|
+
* is stored in the array AP as follows:
|
|
829
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
830
|
+
* if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
|
|
831
|
+
*
|
|
832
|
+
* On exit, the contents of AP are destroyed.
|
|
833
|
+
*
|
|
834
|
+
* BP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
835
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
836
|
+
* B, packed columnwise in a linear array. The j-th column of B
|
|
837
|
+
* is stored in the array BP as follows:
|
|
838
|
+
* if UPLO = 'U', BP(i + (j-1)*j/2) = B(i,j) for 1<=i<=j;
|
|
839
|
+
* if UPLO = 'L', BP(i + (j-1)*(2*n-j)/2) = B(i,j) for j<=i<=n.
|
|
840
|
+
*
|
|
841
|
+
* On exit, the triangular factor U or L from the Cholesky
|
|
842
|
+
* factorization B = U**H*U or B = L*L**H, in the same storage
|
|
843
|
+
* format as B.
|
|
844
|
+
*
|
|
845
|
+
* VL (input) DOUBLE PRECISION
|
|
846
|
+
* VU (input) DOUBLE PRECISION
|
|
847
|
+
* If RANGE='V', the lower and upper bounds of the interval to
|
|
848
|
+
* be searched for eigenvalues. VL < VU.
|
|
849
|
+
* Not referenced if RANGE = 'A' or 'I'.
|
|
850
|
+
*
|
|
851
|
+
* IL (input) INTEGER
|
|
852
|
+
* IU (input) INTEGER
|
|
853
|
+
* If RANGE='I', the indices (in ascending order) of the
|
|
854
|
+
* smallest and largest eigenvalues to be returned.
|
|
855
|
+
* 1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0 if N = 0.
|
|
856
|
+
* Not referenced if RANGE = 'A' or 'V'.
|
|
857
|
+
*
|
|
858
|
+
* ABSTOL (input) DOUBLE PRECISION
|
|
859
|
+
* The absolute error tolerance for the eigenvalues.
|
|
860
|
+
* An approximate eigenvalue is accepted as converged
|
|
861
|
+
* when it is determined to lie in an interval [a,b]
|
|
862
|
+
* of width less than or equal to
|
|
863
|
+
*
|
|
864
|
+
* ABSTOL + EPS * max( |a|,|b| ) ,
|
|
865
|
+
*
|
|
866
|
+
* where EPS is the machine precision. If ABSTOL is less than
|
|
867
|
+
* or equal to zero, then EPS*|T| will be used in its place,
|
|
868
|
+
* where |T| is the 1-norm of the tridiagonal matrix obtained
|
|
869
|
+
* by reducing AP to tridiagonal form.
|
|
870
|
+
*
|
|
871
|
+
* Eigenvalues will be computed most accurately when ABSTOL is
|
|
872
|
+
* set to twice the underflow threshold 2*DLAMCH('S'), not zero.
|
|
873
|
+
* If this routine returns with INFO>0, indicating that some
|
|
874
|
+
* eigenvectors did not converge, try setting ABSTOL to
|
|
875
|
+
* 2*DLAMCH('S').
|
|
876
|
+
*
|
|
877
|
+
* M (output) INTEGER
|
|
878
|
+
* The total number of eigenvalues found. 0 <= M <= N.
|
|
879
|
+
* If RANGE = 'A', M = N, and if RANGE = 'I', M = IU-IL+1.
|
|
880
|
+
*
|
|
881
|
+
* W (output) DOUBLE PRECISION array, dimension (N)
|
|
882
|
+
* On normal exit, the first M elements contain the selected
|
|
883
|
+
* eigenvalues in ascending order.
|
|
884
|
+
*
|
|
885
|
+
* Z (output) COMPLEX*16 array, dimension (LDZ, N)
|
|
886
|
+
* If JOBZ = 'N', then Z is not referenced.
|
|
887
|
+
* If JOBZ = 'V', then if INFO = 0, the first M columns of Z
|
|
888
|
+
* contain the orthonormal eigenvectors of the matrix A
|
|
889
|
+
* corresponding to the selected eigenvalues, with the i-th
|
|
890
|
+
* column of Z holding the eigenvector associated with W(i).
|
|
891
|
+
* The eigenvectors are normalized as follows:
|
|
892
|
+
* if ITYPE = 1 or 2, Z**H*B*Z = I;
|
|
893
|
+
* if ITYPE = 3, Z**H*inv(B)*Z = I.
|
|
894
|
+
*
|
|
895
|
+
* If an eigenvector fails to converge, then that column of Z
|
|
896
|
+
* contains the latest approximation to the eigenvector, and the
|
|
897
|
+
* index of the eigenvector is returned in IFAIL.
|
|
898
|
+
* Note: the user must ensure that at least max(1,M) columns are
|
|
899
|
+
* supplied in the array Z; if RANGE = 'V', the exact value of M
|
|
900
|
+
* is not known in advance and an upper bound must be used.
|
|
901
|
+
*
|
|
902
|
+
* LDZ (input) INTEGER
|
|
903
|
+
* The leading dimension of the array Z. LDZ >= 1, and if
|
|
904
|
+
* JOBZ = 'V', LDZ >= max(1,N).
|
|
905
|
+
*
|
|
906
|
+
* WORK (workspace) COMPLEX*16 array, dimension (2*N)
|
|
907
|
+
*
|
|
908
|
+
* RWORK (workspace) DOUBLE PRECISION array, dimension (7*N)
|
|
909
|
+
*
|
|
910
|
+
* IWORK (workspace) INTEGER array, dimension (5*N)
|
|
911
|
+
*
|
|
912
|
+
* IFAIL (output) INTEGER array, dimension (N)
|
|
913
|
+
* If JOBZ = 'V', then if INFO = 0, the first M elements of
|
|
914
|
+
* IFAIL are zero. If INFO > 0, then IFAIL contains the
|
|
915
|
+
* indices of the eigenvectors that failed to converge.
|
|
916
|
+
* If JOBZ = 'N', then IFAIL is not referenced.
|
|
917
|
+
*
|
|
918
|
+
* INFO (output) INTEGER
|
|
919
|
+
* = 0: successful exit
|
|
920
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
921
|
+
* > 0: ZPPTRF or ZHPEVX returned an error code:
|
|
922
|
+
* <= N: if INFO = i, ZHPEVX failed to converge;
|
|
923
|
+
* i eigenvectors failed to converge. Their indices
|
|
924
|
+
* are stored in array IFAIL.
|
|
925
|
+
* > N: if INFO = N + i, for 1 <= i <= n, then the leading
|
|
926
|
+
* minor of order i of B is not positive definite.
|
|
927
|
+
* The factorization of B could not be completed and
|
|
928
|
+
* no eigenvalues or eigenvectors were computed.
|
|
929
|
+
*
|
|
930
|
+
|
|
931
|
+
* Further Details
|
|
932
|
+
* ===============
|
|
933
|
+
*
|
|
934
|
+
* Based on contributions by
|
|
935
|
+
* Mark Fahey, Department of Mathematics, Univ. of Kentucky, USA
|
|
936
|
+
*
|
|
937
|
+
* =====================================================================
|
|
938
|
+
*
|
|
939
|
+
* .. Local Scalars ..
|
|
940
|
+
LOGICAL ALLEIG, INDEIG, UPPER, VALEIG, WANTZ
|
|
941
|
+
CHARACTER TRANS
|
|
942
|
+
INTEGER J
|
|
943
|
+
* ..
|
|
944
|
+
* .. External Functions ..
|
|
945
|
+
LOGICAL LSAME
|
|
946
|
+
EXTERNAL LSAME
|
|
947
|
+
* ..
|
|
948
|
+
* .. External Subroutines ..
|
|
949
|
+
EXTERNAL XERBLA, ZHPEVX, ZHPGST, ZPPTRF, ZTPMV, ZTPSV
|
|
950
|
+
* ..
|
|
951
|
+
* .. Intrinsic Functions ..
|
|
952
|
+
INTRINSIC MIN
|
|
953
|
+
* ..
|
|
954
|
+
|
|
955
|
+
|
|
956
|
+
</PRE>
|
|
957
|
+
<A HREF="#top">go to the page top</A>
|
|
958
|
+
|
|
959
|
+
<A NAME="zhprfs"></A>
|
|
960
|
+
<H2>zhprfs</H2>
|
|
961
|
+
<PRE>
|
|
962
|
+
USAGE:
|
|
963
|
+
ferr, berr, info, x = NumRu::Lapack.zhprfs( uplo, ap, afp, ipiv, b, x, [:usage => usage, :help => help])
|
|
964
|
+
|
|
965
|
+
|
|
966
|
+
FORTRAN MANUAL
|
|
967
|
+
SUBROUTINE ZHPRFS( UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, FERR, BERR, WORK, RWORK, INFO )
|
|
968
|
+
|
|
969
|
+
* Purpose
|
|
970
|
+
* =======
|
|
971
|
+
*
|
|
972
|
+
* ZHPRFS improves the computed solution to a system of linear
|
|
973
|
+
* equations when the coefficient matrix is Hermitian indefinite
|
|
974
|
+
* and packed, and provides error bounds and backward error estimates
|
|
975
|
+
* for the solution.
|
|
976
|
+
*
|
|
977
|
+
|
|
978
|
+
* Arguments
|
|
979
|
+
* =========
|
|
980
|
+
*
|
|
981
|
+
* UPLO (input) CHARACTER*1
|
|
982
|
+
* = 'U': Upper triangle of A is stored;
|
|
983
|
+
* = 'L': Lower triangle of A is stored.
|
|
984
|
+
*
|
|
985
|
+
* N (input) INTEGER
|
|
986
|
+
* The order of the matrix A. N >= 0.
|
|
987
|
+
*
|
|
988
|
+
* NRHS (input) INTEGER
|
|
989
|
+
* The number of right hand sides, i.e., the number of columns
|
|
990
|
+
* of the matrices B and X. NRHS >= 0.
|
|
991
|
+
*
|
|
992
|
+
* AP (input) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
993
|
+
* The upper or lower triangle of the Hermitian matrix A, packed
|
|
994
|
+
* columnwise in a linear array. The j-th column of A is stored
|
|
995
|
+
* in the array AP as follows:
|
|
996
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
997
|
+
* if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
|
|
998
|
+
*
|
|
999
|
+
* AFP (input) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
1000
|
+
* The factored form of the matrix A. AFP contains the block
|
|
1001
|
+
* diagonal matrix D and the multipliers used to obtain the
|
|
1002
|
+
* factor U or L from the factorization A = U*D*U**H or
|
|
1003
|
+
* A = L*D*L**H as computed by ZHPTRF, stored as a packed
|
|
1004
|
+
* triangular matrix.
|
|
1005
|
+
*
|
|
1006
|
+
* IPIV (input) INTEGER array, dimension (N)
|
|
1007
|
+
* Details of the interchanges and the block structure of D
|
|
1008
|
+
* as determined by ZHPTRF.
|
|
1009
|
+
*
|
|
1010
|
+
* B (input) COMPLEX*16 array, dimension (LDB,NRHS)
|
|
1011
|
+
* The right hand side matrix B.
|
|
1012
|
+
*
|
|
1013
|
+
* LDB (input) INTEGER
|
|
1014
|
+
* The leading dimension of the array B. LDB >= max(1,N).
|
|
1015
|
+
*
|
|
1016
|
+
* X (input/output) COMPLEX*16 array, dimension (LDX,NRHS)
|
|
1017
|
+
* On entry, the solution matrix X, as computed by ZHPTRS.
|
|
1018
|
+
* On exit, the improved solution matrix X.
|
|
1019
|
+
*
|
|
1020
|
+
* LDX (input) INTEGER
|
|
1021
|
+
* The leading dimension of the array X. LDX >= max(1,N).
|
|
1022
|
+
*
|
|
1023
|
+
* FERR (output) DOUBLE PRECISION array, dimension (NRHS)
|
|
1024
|
+
* The estimated forward error bound for each solution vector
|
|
1025
|
+
* X(j) (the j-th column of the solution matrix X).
|
|
1026
|
+
* If XTRUE is the true solution corresponding to X(j), FERR(j)
|
|
1027
|
+
* is an estimated upper bound for the magnitude of the largest
|
|
1028
|
+
* element in (X(j) - XTRUE) divided by the magnitude of the
|
|
1029
|
+
* largest element in X(j). The estimate is as reliable as
|
|
1030
|
+
* the estimate for RCOND, and is almost always a slight
|
|
1031
|
+
* overestimate of the true error.
|
|
1032
|
+
*
|
|
1033
|
+
* BERR (output) DOUBLE PRECISION array, dimension (NRHS)
|
|
1034
|
+
* The componentwise relative backward error of each solution
|
|
1035
|
+
* vector X(j) (i.e., the smallest relative change in
|
|
1036
|
+
* any element of A or B that makes X(j) an exact solution).
|
|
1037
|
+
*
|
|
1038
|
+
* WORK (workspace) COMPLEX*16 array, dimension (2*N)
|
|
1039
|
+
*
|
|
1040
|
+
* RWORK (workspace) DOUBLE PRECISION array, dimension (N)
|
|
1041
|
+
*
|
|
1042
|
+
* INFO (output) INTEGER
|
|
1043
|
+
* = 0: successful exit
|
|
1044
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
1045
|
+
*
|
|
1046
|
+
* Internal Parameters
|
|
1047
|
+
* ===================
|
|
1048
|
+
*
|
|
1049
|
+
* ITMAX is the maximum number of steps of iterative refinement.
|
|
1050
|
+
*
|
|
1051
|
+
|
|
1052
|
+
* =====================================================================
|
|
1053
|
+
*
|
|
1054
|
+
|
|
1055
|
+
|
|
1056
|
+
</PRE>
|
|
1057
|
+
<A HREF="#top">go to the page top</A>
|
|
1058
|
+
|
|
1059
|
+
<A NAME="zhpsv"></A>
|
|
1060
|
+
<H2>zhpsv</H2>
|
|
1061
|
+
<PRE>
|
|
1062
|
+
USAGE:
|
|
1063
|
+
ipiv, info, ap, b = NumRu::Lapack.zhpsv( uplo, ap, b, [:usage => usage, :help => help])
|
|
1064
|
+
|
|
1065
|
+
|
|
1066
|
+
FORTRAN MANUAL
|
|
1067
|
+
SUBROUTINE ZHPSV( UPLO, N, NRHS, AP, IPIV, B, LDB, INFO )
|
|
1068
|
+
|
|
1069
|
+
* Purpose
|
|
1070
|
+
* =======
|
|
1071
|
+
*
|
|
1072
|
+
* ZHPSV computes the solution to a complex system of linear equations
|
|
1073
|
+
* A * X = B,
|
|
1074
|
+
* where A is an N-by-N Hermitian matrix stored in packed format and X
|
|
1075
|
+
* and B are N-by-NRHS matrices.
|
|
1076
|
+
*
|
|
1077
|
+
* The diagonal pivoting method is used to factor A as
|
|
1078
|
+
* A = U * D * U**H, if UPLO = 'U', or
|
|
1079
|
+
* A = L * D * L**H, if UPLO = 'L',
|
|
1080
|
+
* where U (or L) is a product of permutation and unit upper (lower)
|
|
1081
|
+
* triangular matrices, D is Hermitian and block diagonal with 1-by-1
|
|
1082
|
+
* and 2-by-2 diagonal blocks. The factored form of A is then used to
|
|
1083
|
+
* solve the system of equations A * X = B.
|
|
1084
|
+
*
|
|
1085
|
+
|
|
1086
|
+
* Arguments
|
|
1087
|
+
* =========
|
|
1088
|
+
*
|
|
1089
|
+
* UPLO (input) CHARACTER*1
|
|
1090
|
+
* = 'U': Upper triangle of A is stored;
|
|
1091
|
+
* = 'L': Lower triangle of A is stored.
|
|
1092
|
+
*
|
|
1093
|
+
* N (input) INTEGER
|
|
1094
|
+
* The number of linear equations, i.e., the order of the
|
|
1095
|
+
* matrix A. N >= 0.
|
|
1096
|
+
*
|
|
1097
|
+
* NRHS (input) INTEGER
|
|
1098
|
+
* The number of right hand sides, i.e., the number of columns
|
|
1099
|
+
* of the matrix B. NRHS >= 0.
|
|
1100
|
+
*
|
|
1101
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
1102
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
1103
|
+
* A, packed columnwise in a linear array. The j-th column of A
|
|
1104
|
+
* is stored in the array AP as follows:
|
|
1105
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
1106
|
+
* if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
|
|
1107
|
+
* See below for further details.
|
|
1108
|
+
*
|
|
1109
|
+
* On exit, the block diagonal matrix D and the multipliers used
|
|
1110
|
+
* to obtain the factor U or L from the factorization
|
|
1111
|
+
* A = U*D*U**H or A = L*D*L**H as computed by ZHPTRF, stored as
|
|
1112
|
+
* a packed triangular matrix in the same storage format as A.
|
|
1113
|
+
*
|
|
1114
|
+
* IPIV (output) INTEGER array, dimension (N)
|
|
1115
|
+
* Details of the interchanges and the block structure of D, as
|
|
1116
|
+
* determined by ZHPTRF. If IPIV(k) > 0, then rows and columns
|
|
1117
|
+
* k and IPIV(k) were interchanged, and D(k,k) is a 1-by-1
|
|
1118
|
+
* diagonal block. If UPLO = 'U' and IPIV(k) = IPIV(k-1) < 0,
|
|
1119
|
+
* then rows and columns k-1 and -IPIV(k) were interchanged and
|
|
1120
|
+
* D(k-1:k,k-1:k) is a 2-by-2 diagonal block. If UPLO = 'L' and
|
|
1121
|
+
* IPIV(k) = IPIV(k+1) < 0, then rows and columns k+1 and
|
|
1122
|
+
* -IPIV(k) were interchanged and D(k:k+1,k:k+1) is a 2-by-2
|
|
1123
|
+
* diagonal block.
|
|
1124
|
+
*
|
|
1125
|
+
* B (input/output) COMPLEX*16 array, dimension (LDB,NRHS)
|
|
1126
|
+
* On entry, the N-by-NRHS right hand side matrix B.
|
|
1127
|
+
* On exit, if INFO = 0, the N-by-NRHS solution matrix X.
|
|
1128
|
+
*
|
|
1129
|
+
* LDB (input) INTEGER
|
|
1130
|
+
* The leading dimension of the array B. LDB >= max(1,N).
|
|
1131
|
+
*
|
|
1132
|
+
* INFO (output) INTEGER
|
|
1133
|
+
* = 0: successful exit
|
|
1134
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
1135
|
+
* > 0: if INFO = i, D(i,i) is exactly zero. The factorization
|
|
1136
|
+
* has been completed, but the block diagonal matrix D is
|
|
1137
|
+
* exactly singular, so the solution could not be
|
|
1138
|
+
* computed.
|
|
1139
|
+
*
|
|
1140
|
+
|
|
1141
|
+
* Further Details
|
|
1142
|
+
* ===============
|
|
1143
|
+
*
|
|
1144
|
+
* The packed storage scheme is illustrated by the following example
|
|
1145
|
+
* when N = 4, UPLO = 'U':
|
|
1146
|
+
*
|
|
1147
|
+
* Two-dimensional storage of the Hermitian matrix A:
|
|
1148
|
+
*
|
|
1149
|
+
* a11 a12 a13 a14
|
|
1150
|
+
* a22 a23 a24
|
|
1151
|
+
* a33 a34 (aij = conjg(aji))
|
|
1152
|
+
* a44
|
|
1153
|
+
*
|
|
1154
|
+
* Packed storage of the upper triangle of A:
|
|
1155
|
+
*
|
|
1156
|
+
* AP = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ]
|
|
1157
|
+
*
|
|
1158
|
+
* =====================================================================
|
|
1159
|
+
*
|
|
1160
|
+
* .. External Functions ..
|
|
1161
|
+
LOGICAL LSAME
|
|
1162
|
+
EXTERNAL LSAME
|
|
1163
|
+
* ..
|
|
1164
|
+
* .. External Subroutines ..
|
|
1165
|
+
EXTERNAL XERBLA, ZHPTRF, ZHPTRS
|
|
1166
|
+
* ..
|
|
1167
|
+
* .. Intrinsic Functions ..
|
|
1168
|
+
INTRINSIC MAX
|
|
1169
|
+
* ..
|
|
1170
|
+
|
|
1171
|
+
|
|
1172
|
+
</PRE>
|
|
1173
|
+
<A HREF="#top">go to the page top</A>
|
|
1174
|
+
|
|
1175
|
+
<A NAME="zhpsvx"></A>
|
|
1176
|
+
<H2>zhpsvx</H2>
|
|
1177
|
+
<PRE>
|
|
1178
|
+
USAGE:
|
|
1179
|
+
x, rcond, ferr, berr, info, afp, ipiv = NumRu::Lapack.zhpsvx( fact, uplo, ap, afp, ipiv, b, [:usage => usage, :help => help])
|
|
1180
|
+
|
|
1181
|
+
|
|
1182
|
+
FORTRAN MANUAL
|
|
1183
|
+
SUBROUTINE ZHPSVX( FACT, UPLO, N, NRHS, AP, AFP, IPIV, B, LDB, X, LDX, RCOND, FERR, BERR, WORK, RWORK, INFO )
|
|
1184
|
+
|
|
1185
|
+
* Purpose
|
|
1186
|
+
* =======
|
|
1187
|
+
*
|
|
1188
|
+
* ZHPSVX uses the diagonal pivoting factorization A = U*D*U**H or
|
|
1189
|
+
* A = L*D*L**H to compute the solution to a complex system of linear
|
|
1190
|
+
* equations A * X = B, where A is an N-by-N Hermitian matrix stored
|
|
1191
|
+
* in packed format and X and B are N-by-NRHS matrices.
|
|
1192
|
+
*
|
|
1193
|
+
* Error bounds on the solution and a condition estimate are also
|
|
1194
|
+
* provided.
|
|
1195
|
+
*
|
|
1196
|
+
* Description
|
|
1197
|
+
* ===========
|
|
1198
|
+
*
|
|
1199
|
+
* The following steps are performed:
|
|
1200
|
+
*
|
|
1201
|
+
* 1. If FACT = 'N', the diagonal pivoting method is used to factor A as
|
|
1202
|
+
* A = U * D * U**H, if UPLO = 'U', or
|
|
1203
|
+
* A = L * D * L**H, if UPLO = 'L',
|
|
1204
|
+
* where U (or L) is a product of permutation and unit upper (lower)
|
|
1205
|
+
* triangular matrices and D is Hermitian and block diagonal with
|
|
1206
|
+
* 1-by-1 and 2-by-2 diagonal blocks.
|
|
1207
|
+
*
|
|
1208
|
+
* 2. If some D(i,i)=0, so that D is exactly singular, then the routine
|
|
1209
|
+
* returns with INFO = i. Otherwise, the factored form of A is used
|
|
1210
|
+
* to estimate the condition number of the matrix A. If the
|
|
1211
|
+
* reciprocal of the condition number is less than machine precision,
|
|
1212
|
+
* INFO = N+1 is returned as a warning, but the routine still goes on
|
|
1213
|
+
* to solve for X and compute error bounds as described below.
|
|
1214
|
+
*
|
|
1215
|
+
* 3. The system of equations is solved for X using the factored form
|
|
1216
|
+
* of A.
|
|
1217
|
+
*
|
|
1218
|
+
* 4. Iterative refinement is applied to improve the computed solution
|
|
1219
|
+
* matrix and calculate error bounds and backward error estimates
|
|
1220
|
+
* for it.
|
|
1221
|
+
*
|
|
1222
|
+
|
|
1223
|
+
* Arguments
|
|
1224
|
+
* =========
|
|
1225
|
+
*
|
|
1226
|
+
* FACT (input) CHARACTER*1
|
|
1227
|
+
* Specifies whether or not the factored form of A has been
|
|
1228
|
+
* supplied on entry.
|
|
1229
|
+
* = 'F': On entry, AFP and IPIV contain the factored form of
|
|
1230
|
+
* A. AFP and IPIV will not be modified.
|
|
1231
|
+
* = 'N': The matrix A will be copied to AFP and factored.
|
|
1232
|
+
*
|
|
1233
|
+
* UPLO (input) CHARACTER*1
|
|
1234
|
+
* = 'U': Upper triangle of A is stored;
|
|
1235
|
+
* = 'L': Lower triangle of A is stored.
|
|
1236
|
+
*
|
|
1237
|
+
* N (input) INTEGER
|
|
1238
|
+
* The number of linear equations, i.e., the order of the
|
|
1239
|
+
* matrix A. N >= 0.
|
|
1240
|
+
*
|
|
1241
|
+
* NRHS (input) INTEGER
|
|
1242
|
+
* The number of right hand sides, i.e., the number of columns
|
|
1243
|
+
* of the matrices B and X. NRHS >= 0.
|
|
1244
|
+
*
|
|
1245
|
+
* AP (input) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
1246
|
+
* The upper or lower triangle of the Hermitian matrix A, packed
|
|
1247
|
+
* columnwise in a linear array. The j-th column of A is stored
|
|
1248
|
+
* in the array AP as follows:
|
|
1249
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
1250
|
+
* if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
|
|
1251
|
+
* See below for further details.
|
|
1252
|
+
*
|
|
1253
|
+
* AFP (input or output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
1254
|
+
* If FACT = 'F', then AFP is an input argument and on entry
|
|
1255
|
+
* contains the block diagonal matrix D and the multipliers used
|
|
1256
|
+
* to obtain the factor U or L from the factorization
|
|
1257
|
+
* A = U*D*U**H or A = L*D*L**H as computed by ZHPTRF, stored as
|
|
1258
|
+
* a packed triangular matrix in the same storage format as A.
|
|
1259
|
+
*
|
|
1260
|
+
* If FACT = 'N', then AFP is an output argument and on exit
|
|
1261
|
+
* contains the block diagonal matrix D and the multipliers used
|
|
1262
|
+
* to obtain the factor U or L from the factorization
|
|
1263
|
+
* A = U*D*U**H or A = L*D*L**H as computed by ZHPTRF, stored as
|
|
1264
|
+
* a packed triangular matrix in the same storage format as A.
|
|
1265
|
+
*
|
|
1266
|
+
* IPIV (input or output) INTEGER array, dimension (N)
|
|
1267
|
+
* If FACT = 'F', then IPIV is an input argument and on entry
|
|
1268
|
+
* contains details of the interchanges and the block structure
|
|
1269
|
+
* of D, as determined by ZHPTRF.
|
|
1270
|
+
* If IPIV(k) > 0, then rows and columns k and IPIV(k) were
|
|
1271
|
+
* interchanged and D(k,k) is a 1-by-1 diagonal block.
|
|
1272
|
+
* If UPLO = 'U' and IPIV(k) = IPIV(k-1) < 0, then rows and
|
|
1273
|
+
* columns k-1 and -IPIV(k) were interchanged and D(k-1:k,k-1:k)
|
|
1274
|
+
* is a 2-by-2 diagonal block. If UPLO = 'L' and IPIV(k) =
|
|
1275
|
+
* IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k) were
|
|
1276
|
+
* interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
|
|
1277
|
+
*
|
|
1278
|
+
* If FACT = 'N', then IPIV is an output argument and on exit
|
|
1279
|
+
* contains details of the interchanges and the block structure
|
|
1280
|
+
* of D, as determined by ZHPTRF.
|
|
1281
|
+
*
|
|
1282
|
+
* B (input) COMPLEX*16 array, dimension (LDB,NRHS)
|
|
1283
|
+
* The N-by-NRHS right hand side matrix B.
|
|
1284
|
+
*
|
|
1285
|
+
* LDB (input) INTEGER
|
|
1286
|
+
* The leading dimension of the array B. LDB >= max(1,N).
|
|
1287
|
+
*
|
|
1288
|
+
* X (output) COMPLEX*16 array, dimension (LDX,NRHS)
|
|
1289
|
+
* If INFO = 0 or INFO = N+1, the N-by-NRHS solution matrix X.
|
|
1290
|
+
*
|
|
1291
|
+
* LDX (input) INTEGER
|
|
1292
|
+
* The leading dimension of the array X. LDX >= max(1,N).
|
|
1293
|
+
*
|
|
1294
|
+
* RCOND (output) DOUBLE PRECISION
|
|
1295
|
+
* The estimate of the reciprocal condition number of the matrix
|
|
1296
|
+
* A. If RCOND is less than the machine precision (in
|
|
1297
|
+
* particular, if RCOND = 0), the matrix is singular to working
|
|
1298
|
+
* precision. This condition is indicated by a return code of
|
|
1299
|
+
* INFO > 0.
|
|
1300
|
+
*
|
|
1301
|
+
* FERR (output) DOUBLE PRECISION array, dimension (NRHS)
|
|
1302
|
+
* The estimated forward error bound for each solution vector
|
|
1303
|
+
* X(j) (the j-th column of the solution matrix X).
|
|
1304
|
+
* If XTRUE is the true solution corresponding to X(j), FERR(j)
|
|
1305
|
+
* is an estimated upper bound for the magnitude of the largest
|
|
1306
|
+
* element in (X(j) - XTRUE) divided by the magnitude of the
|
|
1307
|
+
* largest element in X(j). The estimate is as reliable as
|
|
1308
|
+
* the estimate for RCOND, and is almost always a slight
|
|
1309
|
+
* overestimate of the true error.
|
|
1310
|
+
*
|
|
1311
|
+
* BERR (output) DOUBLE PRECISION array, dimension (NRHS)
|
|
1312
|
+
* The componentwise relative backward error of each solution
|
|
1313
|
+
* vector X(j) (i.e., the smallest relative change in
|
|
1314
|
+
* any element of A or B that makes X(j) an exact solution).
|
|
1315
|
+
*
|
|
1316
|
+
* WORK (workspace) COMPLEX*16 array, dimension (2*N)
|
|
1317
|
+
*
|
|
1318
|
+
* RWORK (workspace) DOUBLE PRECISION array, dimension (N)
|
|
1319
|
+
*
|
|
1320
|
+
* INFO (output) INTEGER
|
|
1321
|
+
* = 0: successful exit
|
|
1322
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
1323
|
+
* > 0: if INFO = i, and i is
|
|
1324
|
+
* <= N: D(i,i) is exactly zero. The factorization
|
|
1325
|
+
* has been completed but the factor D is exactly
|
|
1326
|
+
* singular, so the solution and error bounds could
|
|
1327
|
+
* not be computed. RCOND = 0 is returned.
|
|
1328
|
+
* = N+1: D is nonsingular, but RCOND is less than machine
|
|
1329
|
+
* precision, meaning that the matrix is singular
|
|
1330
|
+
* to working precision. Nevertheless, the
|
|
1331
|
+
* solution and error bounds are computed because
|
|
1332
|
+
* there are a number of situations where the
|
|
1333
|
+
* computed solution can be more accurate than the
|
|
1334
|
+
* value of RCOND would suggest.
|
|
1335
|
+
*
|
|
1336
|
+
|
|
1337
|
+
* Further Details
|
|
1338
|
+
* ===============
|
|
1339
|
+
*
|
|
1340
|
+
* The packed storage scheme is illustrated by the following example
|
|
1341
|
+
* when N = 4, UPLO = 'U':
|
|
1342
|
+
*
|
|
1343
|
+
* Two-dimensional storage of the Hermitian matrix A:
|
|
1344
|
+
*
|
|
1345
|
+
* a11 a12 a13 a14
|
|
1346
|
+
* a22 a23 a24
|
|
1347
|
+
* a33 a34 (aij = conjg(aji))
|
|
1348
|
+
* a44
|
|
1349
|
+
*
|
|
1350
|
+
* Packed storage of the upper triangle of A:
|
|
1351
|
+
*
|
|
1352
|
+
* AP = [ a11, a12, a22, a13, a23, a33, a14, a24, a34, a44 ]
|
|
1353
|
+
*
|
|
1354
|
+
* =====================================================================
|
|
1355
|
+
*
|
|
1356
|
+
|
|
1357
|
+
|
|
1358
|
+
</PRE>
|
|
1359
|
+
<A HREF="#top">go to the page top</A>
|
|
1360
|
+
|
|
1361
|
+
<A NAME="zhptrd"></A>
|
|
1362
|
+
<H2>zhptrd</H2>
|
|
1363
|
+
<PRE>
|
|
1364
|
+
USAGE:
|
|
1365
|
+
d, e, tau, info, ap = NumRu::Lapack.zhptrd( uplo, ap, [:usage => usage, :help => help])
|
|
1366
|
+
|
|
1367
|
+
|
|
1368
|
+
FORTRAN MANUAL
|
|
1369
|
+
SUBROUTINE ZHPTRD( UPLO, N, AP, D, E, TAU, INFO )
|
|
1370
|
+
|
|
1371
|
+
* Purpose
|
|
1372
|
+
* =======
|
|
1373
|
+
*
|
|
1374
|
+
* ZHPTRD reduces a complex Hermitian matrix A stored in packed form to
|
|
1375
|
+
* real symmetric tridiagonal form T by a unitary similarity
|
|
1376
|
+
* transformation: Q**H * A * Q = T.
|
|
1377
|
+
*
|
|
1378
|
+
|
|
1379
|
+
* Arguments
|
|
1380
|
+
* =========
|
|
1381
|
+
*
|
|
1382
|
+
* UPLO (input) CHARACTER*1
|
|
1383
|
+
* = 'U': Upper triangle of A is stored;
|
|
1384
|
+
* = 'L': Lower triangle of A is stored.
|
|
1385
|
+
*
|
|
1386
|
+
* N (input) INTEGER
|
|
1387
|
+
* The order of the matrix A. N >= 0.
|
|
1388
|
+
*
|
|
1389
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
1390
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
1391
|
+
* A, packed columnwise in a linear array. The j-th column of A
|
|
1392
|
+
* is stored in the array AP as follows:
|
|
1393
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
1394
|
+
* if UPLO = 'L', AP(i + (j-1)*(2*n-j)/2) = A(i,j) for j<=i<=n.
|
|
1395
|
+
* On exit, if UPLO = 'U', the diagonal and first superdiagonal
|
|
1396
|
+
* of A are overwritten by the corresponding elements of the
|
|
1397
|
+
* tridiagonal matrix T, and the elements above the first
|
|
1398
|
+
* superdiagonal, with the array TAU, represent the unitary
|
|
1399
|
+
* matrix Q as a product of elementary reflectors; if UPLO
|
|
1400
|
+
* = 'L', the diagonal and first subdiagonal of A are over-
|
|
1401
|
+
* written by the corresponding elements of the tridiagonal
|
|
1402
|
+
* matrix T, and the elements below the first subdiagonal, with
|
|
1403
|
+
* the array TAU, represent the unitary matrix Q as a product
|
|
1404
|
+
* of elementary reflectors. See Further Details.
|
|
1405
|
+
*
|
|
1406
|
+
* D (output) DOUBLE PRECISION array, dimension (N)
|
|
1407
|
+
* The diagonal elements of the tridiagonal matrix T:
|
|
1408
|
+
* D(i) = A(i,i).
|
|
1409
|
+
*
|
|
1410
|
+
* E (output) DOUBLE PRECISION array, dimension (N-1)
|
|
1411
|
+
* The off-diagonal elements of the tridiagonal matrix T:
|
|
1412
|
+
* E(i) = A(i,i+1) if UPLO = 'U', E(i) = A(i+1,i) if UPLO = 'L'.
|
|
1413
|
+
*
|
|
1414
|
+
* TAU (output) COMPLEX*16 array, dimension (N-1)
|
|
1415
|
+
* The scalar factors of the elementary reflectors (see Further
|
|
1416
|
+
* Details).
|
|
1417
|
+
*
|
|
1418
|
+
* INFO (output) INTEGER
|
|
1419
|
+
* = 0: successful exit
|
|
1420
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
1421
|
+
*
|
|
1422
|
+
|
|
1423
|
+
* Further Details
|
|
1424
|
+
* ===============
|
|
1425
|
+
*
|
|
1426
|
+
* If UPLO = 'U', the matrix Q is represented as a product of elementary
|
|
1427
|
+
* reflectors
|
|
1428
|
+
*
|
|
1429
|
+
* Q = H(n-1) . . . H(2) H(1).
|
|
1430
|
+
*
|
|
1431
|
+
* Each H(i) has the form
|
|
1432
|
+
*
|
|
1433
|
+
* H(i) = I - tau * v * v'
|
|
1434
|
+
*
|
|
1435
|
+
* where tau is a complex scalar, and v is a complex vector with
|
|
1436
|
+
* v(i+1:n) = 0 and v(i) = 1; v(1:i-1) is stored on exit in AP,
|
|
1437
|
+
* overwriting A(1:i-1,i+1), and tau is stored in TAU(i).
|
|
1438
|
+
*
|
|
1439
|
+
* If UPLO = 'L', the matrix Q is represented as a product of elementary
|
|
1440
|
+
* reflectors
|
|
1441
|
+
*
|
|
1442
|
+
* Q = H(1) H(2) . . . H(n-1).
|
|
1443
|
+
*
|
|
1444
|
+
* Each H(i) has the form
|
|
1445
|
+
*
|
|
1446
|
+
* H(i) = I - tau * v * v'
|
|
1447
|
+
*
|
|
1448
|
+
* where tau is a complex scalar, and v is a complex vector with
|
|
1449
|
+
* v(1:i) = 0 and v(i+1) = 1; v(i+2:n) is stored on exit in AP,
|
|
1450
|
+
* overwriting A(i+2:n,i), and tau is stored in TAU(i).
|
|
1451
|
+
*
|
|
1452
|
+
* =====================================================================
|
|
1453
|
+
*
|
|
1454
|
+
|
|
1455
|
+
|
|
1456
|
+
</PRE>
|
|
1457
|
+
<A HREF="#top">go to the page top</A>
|
|
1458
|
+
|
|
1459
|
+
<A NAME="zhptrf"></A>
|
|
1460
|
+
<H2>zhptrf</H2>
|
|
1461
|
+
<PRE>
|
|
1462
|
+
USAGE:
|
|
1463
|
+
ipiv, info, ap = NumRu::Lapack.zhptrf( uplo, ap, [:usage => usage, :help => help])
|
|
1464
|
+
|
|
1465
|
+
|
|
1466
|
+
FORTRAN MANUAL
|
|
1467
|
+
SUBROUTINE ZHPTRF( UPLO, N, AP, IPIV, INFO )
|
|
1468
|
+
|
|
1469
|
+
* Purpose
|
|
1470
|
+
* =======
|
|
1471
|
+
*
|
|
1472
|
+
* ZHPTRF computes the factorization of a complex Hermitian packed
|
|
1473
|
+
* matrix A using the Bunch-Kaufman diagonal pivoting method:
|
|
1474
|
+
*
|
|
1475
|
+
* A = U*D*U**H or A = L*D*L**H
|
|
1476
|
+
*
|
|
1477
|
+
* where U (or L) is a product of permutation and unit upper (lower)
|
|
1478
|
+
* triangular matrices, and D is Hermitian and block diagonal with
|
|
1479
|
+
* 1-by-1 and 2-by-2 diagonal blocks.
|
|
1480
|
+
*
|
|
1481
|
+
|
|
1482
|
+
* Arguments
|
|
1483
|
+
* =========
|
|
1484
|
+
*
|
|
1485
|
+
* UPLO (input) CHARACTER*1
|
|
1486
|
+
* = 'U': Upper triangle of A is stored;
|
|
1487
|
+
* = 'L': Lower triangle of A is stored.
|
|
1488
|
+
*
|
|
1489
|
+
* N (input) INTEGER
|
|
1490
|
+
* The order of the matrix A. N >= 0.
|
|
1491
|
+
*
|
|
1492
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
1493
|
+
* On entry, the upper or lower triangle of the Hermitian matrix
|
|
1494
|
+
* A, packed columnwise in a linear array. The j-th column of A
|
|
1495
|
+
* is stored in the array AP as follows:
|
|
1496
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = A(i,j) for 1<=i<=j;
|
|
1497
|
+
* if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j) for j<=i<=n.
|
|
1498
|
+
*
|
|
1499
|
+
* On exit, the block diagonal matrix D and the multipliers used
|
|
1500
|
+
* to obtain the factor U or L, stored as a packed triangular
|
|
1501
|
+
* matrix overwriting A (see below for further details).
|
|
1502
|
+
*
|
|
1503
|
+
* IPIV (output) INTEGER array, dimension (N)
|
|
1504
|
+
* Details of the interchanges and the block structure of D.
|
|
1505
|
+
* If IPIV(k) > 0, then rows and columns k and IPIV(k) were
|
|
1506
|
+
* interchanged and D(k,k) is a 1-by-1 diagonal block.
|
|
1507
|
+
* If UPLO = 'U' and IPIV(k) = IPIV(k-1) < 0, then rows and
|
|
1508
|
+
* columns k-1 and -IPIV(k) were interchanged and D(k-1:k,k-1:k)
|
|
1509
|
+
* is a 2-by-2 diagonal block. If UPLO = 'L' and IPIV(k) =
|
|
1510
|
+
* IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k) were
|
|
1511
|
+
* interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal block.
|
|
1512
|
+
*
|
|
1513
|
+
* INFO (output) INTEGER
|
|
1514
|
+
* = 0: successful exit
|
|
1515
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
1516
|
+
* > 0: if INFO = i, D(i,i) is exactly zero. The factorization
|
|
1517
|
+
* has been completed, but the block diagonal matrix D is
|
|
1518
|
+
* exactly singular, and division by zero will occur if it
|
|
1519
|
+
* is used to solve a system of equations.
|
|
1520
|
+
*
|
|
1521
|
+
|
|
1522
|
+
* Further Details
|
|
1523
|
+
* ===============
|
|
1524
|
+
*
|
|
1525
|
+
* 5-96 - Based on modifications by J. Lewis, Boeing Computer Services
|
|
1526
|
+
* Company
|
|
1527
|
+
*
|
|
1528
|
+
* If UPLO = 'U', then A = U*D*U', where
|
|
1529
|
+
* U = P(n)*U(n)* ... *P(k)U(k)* ...,
|
|
1530
|
+
* i.e., U is a product of terms P(k)*U(k), where k decreases from n to
|
|
1531
|
+
* 1 in steps of 1 or 2, and D is a block diagonal matrix with 1-by-1
|
|
1532
|
+
* and 2-by-2 diagonal blocks D(k). P(k) is a permutation matrix as
|
|
1533
|
+
* defined by IPIV(k), and U(k) is a unit upper triangular matrix, such
|
|
1534
|
+
* that if the diagonal block D(k) is of order s (s = 1 or 2), then
|
|
1535
|
+
*
|
|
1536
|
+
* ( I v 0 ) k-s
|
|
1537
|
+
* U(k) = ( 0 I 0 ) s
|
|
1538
|
+
* ( 0 0 I ) n-k
|
|
1539
|
+
* k-s s n-k
|
|
1540
|
+
*
|
|
1541
|
+
* If s = 1, D(k) overwrites A(k,k), and v overwrites A(1:k-1,k).
|
|
1542
|
+
* If s = 2, the upper triangle of D(k) overwrites A(k-1,k-1), A(k-1,k),
|
|
1543
|
+
* and A(k,k), and v overwrites A(1:k-2,k-1:k).
|
|
1544
|
+
*
|
|
1545
|
+
* If UPLO = 'L', then A = L*D*L', where
|
|
1546
|
+
* L = P(1)*L(1)* ... *P(k)*L(k)* ...,
|
|
1547
|
+
* i.e., L is a product of terms P(k)*L(k), where k increases from 1 to
|
|
1548
|
+
* n in steps of 1 or 2, and D is a block diagonal matrix with 1-by-1
|
|
1549
|
+
* and 2-by-2 diagonal blocks D(k). P(k) is a permutation matrix as
|
|
1550
|
+
* defined by IPIV(k), and L(k) is a unit lower triangular matrix, such
|
|
1551
|
+
* that if the diagonal block D(k) is of order s (s = 1 or 2), then
|
|
1552
|
+
*
|
|
1553
|
+
* ( I 0 0 ) k-1
|
|
1554
|
+
* L(k) = ( 0 I 0 ) s
|
|
1555
|
+
* ( 0 v I ) n-k-s+1
|
|
1556
|
+
* k-1 s n-k-s+1
|
|
1557
|
+
*
|
|
1558
|
+
* If s = 1, D(k) overwrites A(k,k), and v overwrites A(k+1:n,k).
|
|
1559
|
+
* If s = 2, the lower triangle of D(k) overwrites A(k,k), A(k+1,k),
|
|
1560
|
+
* and A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).
|
|
1561
|
+
*
|
|
1562
|
+
* =====================================================================
|
|
1563
|
+
*
|
|
1564
|
+
|
|
1565
|
+
|
|
1566
|
+
</PRE>
|
|
1567
|
+
<A HREF="#top">go to the page top</A>
|
|
1568
|
+
|
|
1569
|
+
<A NAME="zhptri"></A>
|
|
1570
|
+
<H2>zhptri</H2>
|
|
1571
|
+
<PRE>
|
|
1572
|
+
USAGE:
|
|
1573
|
+
info, ap = NumRu::Lapack.zhptri( uplo, ap, ipiv, [:usage => usage, :help => help])
|
|
1574
|
+
|
|
1575
|
+
|
|
1576
|
+
FORTRAN MANUAL
|
|
1577
|
+
SUBROUTINE ZHPTRI( UPLO, N, AP, IPIV, WORK, INFO )
|
|
1578
|
+
|
|
1579
|
+
* Purpose
|
|
1580
|
+
* =======
|
|
1581
|
+
*
|
|
1582
|
+
* ZHPTRI computes the inverse of a complex Hermitian indefinite matrix
|
|
1583
|
+
* A in packed storage using the factorization A = U*D*U**H or
|
|
1584
|
+
* A = L*D*L**H computed by ZHPTRF.
|
|
1585
|
+
*
|
|
1586
|
+
|
|
1587
|
+
* Arguments
|
|
1588
|
+
* =========
|
|
1589
|
+
*
|
|
1590
|
+
* UPLO (input) CHARACTER*1
|
|
1591
|
+
* Specifies whether the details of the factorization are stored
|
|
1592
|
+
* as an upper or lower triangular matrix.
|
|
1593
|
+
* = 'U': Upper triangular, form is A = U*D*U**H;
|
|
1594
|
+
* = 'L': Lower triangular, form is A = L*D*L**H.
|
|
1595
|
+
*
|
|
1596
|
+
* N (input) INTEGER
|
|
1597
|
+
* The order of the matrix A. N >= 0.
|
|
1598
|
+
*
|
|
1599
|
+
* AP (input/output) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
1600
|
+
* On entry, the block diagonal matrix D and the multipliers
|
|
1601
|
+
* used to obtain the factor U or L as computed by ZHPTRF,
|
|
1602
|
+
* stored as a packed triangular matrix.
|
|
1603
|
+
*
|
|
1604
|
+
* On exit, if INFO = 0, the (Hermitian) inverse of the original
|
|
1605
|
+
* matrix, stored as a packed triangular matrix. The j-th column
|
|
1606
|
+
* of inv(A) is stored in the array AP as follows:
|
|
1607
|
+
* if UPLO = 'U', AP(i + (j-1)*j/2) = inv(A)(i,j) for 1<=i<=j;
|
|
1608
|
+
* if UPLO = 'L',
|
|
1609
|
+
* AP(i + (j-1)*(2n-j)/2) = inv(A)(i,j) for j<=i<=n.
|
|
1610
|
+
*
|
|
1611
|
+
* IPIV (input) INTEGER array, dimension (N)
|
|
1612
|
+
* Details of the interchanges and the block structure of D
|
|
1613
|
+
* as determined by ZHPTRF.
|
|
1614
|
+
*
|
|
1615
|
+
* WORK (workspace) COMPLEX*16 array, dimension (N)
|
|
1616
|
+
*
|
|
1617
|
+
* INFO (output) INTEGER
|
|
1618
|
+
* = 0: successful exit
|
|
1619
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
1620
|
+
* > 0: if INFO = i, D(i,i) = 0; the matrix is singular and its
|
|
1621
|
+
* inverse could not be computed.
|
|
1622
|
+
*
|
|
1623
|
+
|
|
1624
|
+
* =====================================================================
|
|
1625
|
+
*
|
|
1626
|
+
|
|
1627
|
+
|
|
1628
|
+
</PRE>
|
|
1629
|
+
<A HREF="#top">go to the page top</A>
|
|
1630
|
+
|
|
1631
|
+
<A NAME="zhptrs"></A>
|
|
1632
|
+
<H2>zhptrs</H2>
|
|
1633
|
+
<PRE>
|
|
1634
|
+
USAGE:
|
|
1635
|
+
info, b = NumRu::Lapack.zhptrs( uplo, ap, ipiv, b, [:usage => usage, :help => help])
|
|
1636
|
+
|
|
1637
|
+
|
|
1638
|
+
FORTRAN MANUAL
|
|
1639
|
+
SUBROUTINE ZHPTRS( UPLO, N, NRHS, AP, IPIV, B, LDB, INFO )
|
|
1640
|
+
|
|
1641
|
+
* Purpose
|
|
1642
|
+
* =======
|
|
1643
|
+
*
|
|
1644
|
+
* ZHPTRS solves a system of linear equations A*X = B with a complex
|
|
1645
|
+
* Hermitian matrix A stored in packed format using the factorization
|
|
1646
|
+
* A = U*D*U**H or A = L*D*L**H computed by ZHPTRF.
|
|
1647
|
+
*
|
|
1648
|
+
|
|
1649
|
+
* Arguments
|
|
1650
|
+
* =========
|
|
1651
|
+
*
|
|
1652
|
+
* UPLO (input) CHARACTER*1
|
|
1653
|
+
* Specifies whether the details of the factorization are stored
|
|
1654
|
+
* as an upper or lower triangular matrix.
|
|
1655
|
+
* = 'U': Upper triangular, form is A = U*D*U**H;
|
|
1656
|
+
* = 'L': Lower triangular, form is A = L*D*L**H.
|
|
1657
|
+
*
|
|
1658
|
+
* N (input) INTEGER
|
|
1659
|
+
* The order of the matrix A. N >= 0.
|
|
1660
|
+
*
|
|
1661
|
+
* NRHS (input) INTEGER
|
|
1662
|
+
* The number of right hand sides, i.e., the number of columns
|
|
1663
|
+
* of the matrix B. NRHS >= 0.
|
|
1664
|
+
*
|
|
1665
|
+
* AP (input) COMPLEX*16 array, dimension (N*(N+1)/2)
|
|
1666
|
+
* The block diagonal matrix D and the multipliers used to
|
|
1667
|
+
* obtain the factor U or L as computed by ZHPTRF, stored as a
|
|
1668
|
+
* packed triangular matrix.
|
|
1669
|
+
*
|
|
1670
|
+
* IPIV (input) INTEGER array, dimension (N)
|
|
1671
|
+
* Details of the interchanges and the block structure of D
|
|
1672
|
+
* as determined by ZHPTRF.
|
|
1673
|
+
*
|
|
1674
|
+
* B (input/output) COMPLEX*16 array, dimension (LDB,NRHS)
|
|
1675
|
+
* On entry, the right hand side matrix B.
|
|
1676
|
+
* On exit, the solution matrix X.
|
|
1677
|
+
*
|
|
1678
|
+
* LDB (input) INTEGER
|
|
1679
|
+
* The leading dimension of the array B. LDB >= max(1,N).
|
|
1680
|
+
*
|
|
1681
|
+
* INFO (output) INTEGER
|
|
1682
|
+
* = 0: successful exit
|
|
1683
|
+
* < 0: if INFO = -i, the i-th argument had an illegal value
|
|
1684
|
+
*
|
|
1685
|
+
|
|
1686
|
+
* =====================================================================
|
|
1687
|
+
*
|
|
1688
|
+
|
|
1689
|
+
|
|
1690
|
+
</PRE>
|
|
1691
|
+
<A HREF="#top">go to the page top</A>
|
|
1692
|
+
|
|
1693
|
+
<HR />
|
|
1694
|
+
<A HREF="z.html">back to matrix types</A><BR>
|
|
1695
|
+
<A HREF="z.html">back to data types</A>
|
|
1696
|
+
</BODY>
|
|
1697
|
+
</HTML>
|