Man page - hgeqz(3)
Packages contains this manual
- hptrd(3)
- potri(3)
- xerbla_array(3)
- ggsvd_driver_grp(3)
- hfrk(3)
- getsqr_comp_grp(3)
- laed6(3)
- gtrfs(3)
- lasdq(3)
- gglse(3)
- la_xisnan_la_isnan(3)
- unmr2(3)
- hetrs_aa(3)
- tpttr(3)
- gerz_comp_grp(3)
- potrf(3)
- hegv_driver(3)
- laqps(3)
- ggqr_comp_grp(3)
- ilalc(3)
- ung2r(3)
- heevd(3)
- pstf2(3)
- lacn2(3)
- ptrfs(3)
- ungrq(3)
- gelqf(3)
- ppsv_comp(3)
- blas2_full(3)
- gemlqt(3)
- unml2(3)
- tplqt(3)
- tpcon(3)
- getf2(3)
- ggbak(3)
- bdsvd_driver(3)
- lamch(3)
- gelq(3)
- gebal(3)
- laqr1(3)
- ptsvx(3)
- lahr2(3)
- larscl2(3)
- geqrt(3)
- larfb(3)
- gtsv_comp(3)
- gesvd_aux(3)
- hbevx_2stage(3)
- hbgvx(3)
- tprfs(3)
- params_grp(3)
- lahef(3)
- laqr_group(3)
- unmqr(3)
- tgsy2(3)
- tfsv_comp(3)
- ggls_driver_grp(3)
- geev(3)
- latrd(3)
- unbdb4(3)
- bbcsd(3)
- lange(3)
- gelq_comp3(3)
- gttrs(3)
- lasy2(3)
- hetf2_rook(3)
- gtsv(3)
- lalsd(3)
- lanhb(3)
- laqhb(3)
- hgeqz(3)
- gesvj(3)
- gsvj0(3)
- ungtsqr_row(3)
- gelq_comp1(3)
- gemmtr(3)
- pbequ(3)
- heev_driver(3)
- unhr_col(3)
- syconvf_rook(3)
- getc2(3)
- syconv(3)
- norm_grp(3)
- larrc(3)
- laqr4(3)
- posv_comp(3)
- geev_driver_grp(3)
- heev_comp(3)
- pfsv(3)
- trevc3(3)
- gesv_driver_grp(3)
- reflector_aux_grp(3)
- langt(3)
- lacrt(3)
- latdf(3)
- hetrs_aa_2stage(3)
- lamc1(3)
- hpev_driver(3)
- hegvd(3)
- pptri(3)
- geqrt3(3)
- gelqt3(3)
- lasd5(3)
- laeda(3)
- geqr(3)
- lamtsqr(3)
- heev(3)
- hpev_comp(3)
- larfg(3)
- blas2_grp(3)
- hesv_rook(3)
- laexc(3)
- hetrd(3)
- geesx(3)
- ppsvx(3)
- blas_top(3)
- gtts2(3)
- la_herpvgrw(3)
- hpevx(3)
- ggevx(3)
- lahqr(3)
- gelq_comp_grp(3)
- hesv_comp_v3(3)
- tplqt2(3)
- hpev(3)
- hbtrd(3)
- getrs(3)
- hecon_3(3)
- lasrt(3)
- lanhe(3)
- gesv_comp(3)
- gbequ(3)
- hetrf_rk(3)
- laqr3(3)
- heev_comp_grp(3)
- ungtsqr(3)
- ppcon(3)
- ggrq_comp_grp(3)
- larmm(3)
- ieeeck(3)
- geqrf(3)
- solve_aux_grp(3)
- herfs(3)
- posvx(3)
- posvxx(3)
- gges3(3)
- hbgvd(3)
- lantb(3)
- lasd_comp_grp(3)
- hpgvx(3)
- lapy2(3)
- lauu2(3)
- copy(3)
- getsqrhrt(3)
- stev_comp_grp(3)
- laev2(3)
- larfb_gett(3)
- trti2(3)
- laqz4(3)
- hegv_driver_grp(3)
- la_porfsx_extended(3)
- laruv(3)
- ggsvd_comp_grp(3)
- dot(3)
- gehd2(3)
- lanhf(3)
- hetri_rook(3)
- pfsv_comp(3)
- gbtrf(3)
- hpgst(3)
- getri(3)
- trevc(3)
- unmrz(3)
- hsein(3)
- lsamen(3)
- lasd6(3)
- trtri(3)
- ggglm(3)
- las2(3)
- latrs(3)
- lapll(3)
- gemlq(3)
- geqpf_comp_grp(3)
- stemr(3)
- rotm(3)
- disna(3)
- ggrqf(3)
- pptrf(3)
- lasd0(3)
- lals0(3)
- laqz2(3)
- hbev_driver2(3)
- geswlq_comp_grp(3)
- laqr0(3)
- trttp(3)
- stedc(3)
- lasq4(3)
- geev_comp_grp(3)
- ungbr(3)
- lanv2(3)
- hpsv(3)
- pprfs(3)
- gehrd(3)
- ppsv(3)
- lagtm(3)
- hpgv(3)
- trsv_comp(3)
- larfx(3)
- gesv_driver(3)
- gerfsx(3)
- la_geamv(3)
- laed9(3)
- tpqrt2(3)
- uncsd(3)
- gecs_comp_grp(3)
- bdsqr(3)
- hegv_comp_grp(3)
- labad(3)
- geqp3(3)
- gesvdq(3)
- tfttp(3)
- laln2(3)
- uncsd2by1(3)
- blas2_like_grp(3)
- latbs(3)
- hbgst(3)
- larrv(3)
- ilaenv2stage(3)
- bdsvdx(3)
- hegs2(3)
- lasq_comp_grp(3)
- hpr2(3)
- laqhe(3)
- larra(3)
- gemqrt(3)
- hbmv(3)
- hpsv_driver(3)
- lacp2(3)
- lapmt(3)
- gecon(3)
- unbdb5(3)
- la_gerpvgrw(3)
- tgex2(3)
- laqhp(3)
- tftri(3)
- getrf2(3)
- porfs(3)
- lartg(3)
- lagts(3)
- ggev_comp_grp(3)
- lasd3(3)
- geqr_comp2(3)
- laqz_group(3)
- pftri(3)
- hetri2x(3)
- lahef_aa(3)
- svd_driver_grp(3)
- gbsv_driver(3)
- hesv_comp_aasen2(3)
- laqtr(3)
- lag2(3)
- la_porcond(3)
- hbev(3)
- pbtrf(3)
- lascl(3)
- larr_comp_grp(3)
- hecon(3)
- pttrs(3)
- lasd8(3)
- lsame(3)
- unm2l(3)
- potrs(3)
- tptrs(3)
- lartv(3)
- trtrs(3)
- gsvj1(3)
- sum1(3)
- larrj(3)
- gbmv(3)
- posv(3)
- gghd3(3)
- geev_top(3)
- geqr_comp_grp(3)
- laset(3)
- hesvxx(3)
- posv_comp_grp(3)
- lahef_rk(3)
- lasd1(3)
- tprfb(3)
- potf2(3)
- laein(3)
- lamc4(3)
- stevd(3)
- gtsv_driver(3)
- gesvd_comp_grp(3)
- la_constants(3)
- gesvx(3)
- hseqr(3)
- launhr_col_getrfnp2(3)
- trcon(3)
- larre(3)
- gelsy(3)
- ptsv(3)
- lacon(3)
- laed_comp_grp(3)
- hpsvx(3)
- gemm(3)
- poequ(3)
- laesy(3)
- lagtf(3)
- trrfs(3)
- ggev3(3)
- pbstf(3)
- poequb(3)
- heevr(3)
- lanhp(3)
- unbdb3(3)
- tgsyl(3)
- lamc5(3)
- geqr2p(3)
- ungqr(3)
- laqz3(3)
- imax1(3)
- gels_top(3)
- hesv(3)
- gelqt(3)
- pfsv_driver(3)
- stegr(3)
- gerqf(3)
- laisnan(3)
- ilatrans(3)
- gbsv_comp(3)
- pbrfs(3)
- lascl2(3)
- larz(3)
- la_hercond(3)
- tgexc(3)
- ggesx(3)
- unbdb6(3)
- ungl2(3)
- laed_comp2(3)
- rscl(3)
- hegv(3)
- gelst(3)
- gbtrs(3)
- pftrf(3)
- langb(3)
- lantr(3)
- laqgb(3)
- ggsvp3(3)
- bdsdc(3)
- ladiv(3)
- laqge(3)
- iparmq(3)
- ggbal(3)
- hb2st_kernels(3)
- lartgs(3)
- lartgp(3)
- rot(3)
- ppequ(3)
- laed3(3)
- her(3)
- hptri(3)
- stevx(3)
- upgtr(3)
- lar2v(3)
- hbev_2stage(3)
- gejsv(3)
- ppsv_driver(3)
- unm22(3)
- gesvxx(3)
- laqz0(3)
- unmtr(3)
- laed5(3)
- tptri(3)
- laed0(3)
- heev_driver2(3)
- hpcon(3)
- lasd4(3)
- hetrf_aa(3)
- geqr_comp3(3)
- rot_aux_grp(3)
- aux_grp(3)
- laebz(3)
- trsyl3(3)
- gges(3)
- gesdd(3)
- trexc(3)
- ung2l(3)
- gesv(3)
- laed4(3)
- md__r_e_a_d_m_e(3)
- blas3_like_grp(3)
- laed1(3)
- larcm(3)
- hbevx(3)
- hesv_driver_grp(3)
- hetrs(3)
- hbevd_2stage(3)
- blas1_grp(3)
- laic1(3)
- geql_comp_grp(3)
- heev_2stage(3)
- hpmv(3)
- pbtf2(3)
- hetrf_aa_2stage(3)
- hbgv(3)
- pptrs(3)
- lapmr(3)
- tpqr_comp_grp(3)
- larfy(3)
- gedmd(3)
- lasr(3)
- hetrd_2stage(3)
- gerfs(3)
- ungtr(3)
- porfsx(3)
- tpmv(3)
- lasd_comp2(3)
- unmbr(3)
- tbtrs(3)
- hetd2(3)
- trsv_comp_grp(3)
- lapy3(3)
- ptts2(3)
- unmhr(3)
- hbev_driver(3)
- lalsa(3)
- tbsv_comp(3)
- hesv_comp_v1(3)
- geql2(3)
- sterf(3)
- larrd(3)
- larft(3)
- lagv2(3)
- gttrf(3)
- tpqrt(3)
- la_lin_berr(3)
- rotg(3)
- solve_top(3)
- lacgv(3)
- larrf(3)
- tbmv(3)
- trsyl(3)
- geequ(3)
- upmtr(3)
- hpgv_driver(3)
- tbsv(3)
- hesvx(3)
- latrz(3)
- tfttr(3)
- gesv_comp_grp(3)
- xerbla_grp(3)
- tpsv(3)
- blas3_grp(3)
- gesvd_driver(3)
- geqr_comp1(3)
- ggev_driver_grp(3)
- la_gbamv(3)
- tpmlqt(3)
- trttf(3)
- larzb(3)
- unmr3(3)
- hecon_rook(3)
- stebz(3)
- lantp(3)
- laqz1(3)
- hesv_rk(3)
- tbcon(3)
- xerbla(3)
- posv_mixed(3)
- latps(3)
- hesv_aa_driver(3)
- gemqr(3)
- larrr(3)
- gebrd(3)
- tgsna(3)
- la_gercond(3)
- gbsv(3)
- hesv_comp_grp(3)
- gesv_mixed(3)
- gghrd(3)
- gbrfs(3)
- tpmqrt(3)
- lasq3(3)
- tpsv_comp(3)
- largv(3)
- gelsd(3)
- pftrs(3)
- asum(3)
- launhr_col_getrfnp(3)
- hptrf(3)
- lacpy(3)
- gesc2(3)
- lasda(3)
- second(3)
- hprfs(3)
- hpsv_comp(3)
- lamrg(3)
- pbsv_comp(3)
- hegv_2stage(3)
- gerq2(3)
- lasdt(3)
- abs1(3)
- hbevd(3)
- hbev_comp(3)
- trsv(3)
- la_porpvgrw(3)
- la_gbrpvgrw(3)
- hbgv_driver(3)
- tgsja(3)
- gebd2(3)
- geqr2(3)
- unm2r(3)
- unmql(3)
- la_gbrfsx_extended(3)
- gelq_comp2(3)
- iparam2stage(3)
- ger(3)
- larf(3)
- ilaprec(3)
- labrd(3)
- unbdb1(3)
- unmlq(3)
- geequb(3)
- la_herfsx_extended(3)
- unbdb2(3)
- lapack_top(3)
- ptsv_driver(3)
- hetrs2(3)
- geqr_comp4(3)
- pbsv(3)
- posv_driver(3)
- steqr(3)
- gels(3)
- lar1v(3)
- hemv(3)
- la_transtype(3)
- hesv_aa(3)
- lacrm(3)
- stevr(3)
- hetf2_rk(3)
- blas2_banded(3)
- stein(3)
- unmrq(3)
- larrk(3)
- hetri2(3)
- hesv_aa_2stage(3)
- pttrf(3)
- gelss(3)
- pbsv_driver(3)
- lasq5(3)
- heevx_2stage(3)
- hetri(3)
- lasd2(3)
- laed2(3)
- pbcon(3)
- ptcon(3)
- laed7(3)
- gels_aux_grp(3)
- hpgvd(3)
- hetf2(3)
- tzrzf(3)
- hpr(3)
- unitary_top(3)
- latsqr(3)
- ungql(3)
- her2(3)
- hetri_3x(3)
- hetrd_hb2st(3)
- tgsen(3)
- ggsvd3(3)
- lasq6(3)
- set_grp(3)
- larfgp(3)
- gels_driver_grp(3)
- pbtrs(3)
- lamswlq(3)
- lanht(3)
- gbsvxx(3)
- tgevc(3)
- ilaenv(3)
- swap(3)
- lae2(3)
- iladiag(3)
- lasq2(3)
- la_heamv(3)
- blas_like_top(3)
- la_gerfsx_extended(3)
- hegst(3)
- tfsm(3)
- gesvd(3)
- ungr2(3)
- ggev(3)
- aux_top(3)
- blas2_packed(3)
- geqlf(3)
- hetrs_rook(3)
- gelq2(3)
- geqrfp(3)
- gbequb(3)
- stev(3)
- lauum(3)
- potrf2(3)
- lamc3(3)
- gbrfsx(3)
- gerq_comp_grp(3)
- pocon(3)
- tbrfs(3)
- heswapr(3)
- lamc2(3)
- hpevd(3)
- hesv_comp_aasen(3)
- scalar_grp(3)
- gemv(3)
- lasv2(3)
- lanhs(3)
- svd_top(3)
- gbsvx(3)
- gesvdx(3)
- tplq_comp_grp(3)
- hesv_driver(3)
- hesv_comp_v2(3)
- trsen(3)
- syconvf(3)
- lasd7(3)
- gbcon(3)
- unbdb(3)
- heev_driver_grp(3)
- ggqrf(3)
- heevx(3)
- gtsvx(3)
- lahef_rook(3)
- hetrf_rook(3)
- hetrf(3)
- trsna(3)
- gebak(3)
- larnv(3)
- ptsv_comp(3)
- laswlq(3)
- lags2(3)
- laed8(3)
- laswp(3)
- hptrs(3)
- unglq(3)
- la_wwaddw(3)
- getrf(3)
- gees(3)
- gbtf2(3)
- hegvx(3)
- latrs3(3)
- roundup_lwork(3)
- unghr(3)
- iamax(3)
- larzt(3)
- pteqr(3)
- ilaver(3)
- trmv(3)
- la_gbrcond(3)
- blas0_like_grp(3)
- nrm2(3)
- heev_top(3)
- gtcon(3)
- heevr_2stage(3)
- pstrf(3)
- rot_comp(3)
- laqr5(3)
- heevd_2stage(3)
- getsls(3)
- hetrd_he2hb(3)
- heequb(3)
- laqp2(3)
- axpy(3)
- blast_aux(3)
- rotmg(3)
- pbsvx(3)
- ilauplo(3)
- herfsx(3)
- laqr2(3)
- blas1_like_grp(3)
- lassq(3)
- larrb(3)
- stev_driver(3)
- geevx(3)
- tpttf(3)
- scal(3)
- laneg(3)
- posv_driver_grp(3)
- lasq1(3)
- hetrs_3(3)
- geqrt2(3)
- gbbrd(3)
- ilalr(3)
- hetri_3(3)
apt-get install liblapack-doc
Manual
hgeqz
NAMESYNOPSIS
Functions
Detailed Description
Function Documentation
subroutine chgeqz (character job, character compq, character compz, integern, integer ilo, integer ihi, complex, dimension( ldh, * ) h, integerldh, complex, dimension( ldt, * ) t, integer ldt, complex, dimension( *) alpha, complex, dimension( * ) beta, complex, dimension( ldq, * ) q,integer ldq, complex, dimension( ldz, * ) z, integer ldz, complex,dimension( * ) work, integer lwork, real, dimension( * ) rwork, integerinfo)
subroutine dhgeqz (character job, character compq, character compz, integern, integer ilo, integer ihi, double precision, dimension( ldh, * ) h,integer ldh, double precision, dimension( ldt, * ) t, integer ldt,double precision, dimension( * ) alphar, double precision, dimension( *) alphai, double precision, dimension( * ) beta, double precision,dimension( ldq, * ) q, integer ldq, double precision, dimension( ldz, *) z, integer ldz, double precision, dimension( * ) work, integer lwork,integer info)
subroutine shgeqz (character job, character compq, character compz, integern, integer ilo, integer ihi, real, dimension( ldh, * ) h, integer ldh,real, dimension( ldt, * ) t, integer ldt, real, dimension( * ) alphar,real, dimension( * ) alphai, real, dimension( * ) beta, real,dimension( ldq, * ) q, integer ldq, real, dimension( ldz, * ) z,integer ldz, real, dimension( * ) work, integer lwork, integer info)
subroutine zhgeqz (character job, character compq, character compz, integern, integer ilo, integer ihi, complex*16, dimension( ldh, * ) h, integerldh, complex*16, dimension( ldt, * ) t, integer ldt, complex*16,dimension( * ) alpha, complex*16, dimension( * ) beta, complex*16,dimension( ldq, * ) q, integer ldq, complex*16, dimension( ldz, * ) z,integer ldz, complex*16, dimension( * ) work, integer lwork, doubleprecision, dimension( * ) rwork, integer info)
Author
NAME
hgeqz - hgeqz: generalized Hessenberg eig
SYNOPSIS
Functions
subroutine
chgeqz
(job, compq, compz, n, ilo, ihi, h, ldh, t,
ldt, alpha, beta, q, ldq, z, ldz, work, lwork, rwork, info)
CHGEQZ
subroutine
dhgeqz
(job, compq, compz, n, ilo, ihi, h,
ldh, t, ldt, alphar, alphai, beta, q, ldq, z, ldz, work,
lwork, info)
DHGEQZ
subroutine
shgeqz
(job, compq, compz, n, ilo, ihi, h,
ldh, t, ldt, alphar, alphai, beta, q, ldq, z, ldz, work,
lwork, info)
SHGEQZ
subroutine
zhgeqz
(job, compq, compz, n, ilo, ihi, h,
ldh, t, ldt, alpha, beta, q, ldq, z, ldz, work, lwork,
rwork, info)
ZHGEQZ
Detailed Description
Function Documentation
subroutine chgeqz (character job, character compq, character compz, integern, integer ilo, integer ihi, complex, dimension( ldh, * ) h, integerldh, complex, dimension( ldt, * ) t, integer ldt, complex, dimension( *) alpha, complex, dimension( * ) beta, complex, dimension( ldq, * ) q,integer ldq, complex, dimension( ldz, * ) z, integer ldz, complex,dimension( * ) work, integer lwork, real, dimension( * ) rwork, integerinfo)
CHGEQZ
Purpose:
CHGEQZ computes
the eigenvalues of a complex matrix pair (H,T),
where H is an upper Hessenberg matrix and T is upper
triangular,
using the single-shift QZ method.
Matrix pairs of this type are produced by the reduction to
generalized upper Hessenberg form of a complex matrix pair
(A,B):
A = Q1*H*Z1**H, B = Q1*T*Z1**H,
as computed by CGGHRD.
If
JOB=βSβ, then the Hessenberg-triangular pair
(H,T) is
also reduced to generalized Schur form,
H = Q*S*Z**H, T = Q*P*Z**H,
where Q and Z are unitary matrices and S and P are upper triangular.
Optionally, the
unitary matrix Q from the generalized Schur
factorization may be postmultiplied into an input matrix Q1,
and the
unitary matrix Z may be postmultiplied into an input matrix
Z1.
If Q1 and Z1 are the unitary matrices from CGGHRD that
reduced
the matrix pair (A,B) to generalized Hessenberg form, then
the output
matrices Q1*Q and Z1*Z are the unitary factors from the
generalized
Schur factorization of (A,B):
A = (Q1*Q)*S*(Z1*Z)**H, B = (Q1*Q)*P*(Z1*Z)**H.
To avoid
overflow, eigenvalues of the matrix pair (H,T)
(equivalently, of (A,B)) are computed as a pair of complex
values
(alpha,beta). If beta is nonzero, lambda = alpha / beta is
an
eigenvalue of the generalized nonsymmetric eigenvalue
problem (GNEP)
A*x = lambda*B*x
and if alpha is nonzero, mu = beta / alpha is an eigenvalue
of the
alternate form of the GNEP
mu*A*y = B*y.
The values of alpha and beta for the i-th eigenvalue can be
read
directly from the generalized Schur form: alpha = S(i,i),
beta = P(i,i).
Ref: C.B. Moler
& G.W. Stewart, βAn Algorithm for Generalized
Matrix
Eigenvalue Problemsβ, SIAM J. Numer. Anal., 10(1973),
pp. 241--256.
Parameters
JOB
JOB is
CHARACTER*1
= βEβ: Compute eigenvalues only;
= βSβ: Computer eigenvalues and the Schur
form.
COMPQ
COMPQ is
CHARACTER*1
= βNβ: Left Schur vectors (Q) are not computed;
= βIβ: Q is initialized to the unit matrix and
the matrix Q
of left Schur vectors of (H,T) is returned;
= βVβ: Q must contain a unitary matrix Q1 on
entry and
the product Q1*Q is returned.
COMPZ
COMPZ is
CHARACTER*1
= βNβ: Right Schur vectors (Z) are not computed;
= βIβ: Q is initialized to the unit matrix and
the matrix Z
of right Schur vectors of (H,T) is returned;
= βVβ: Z must contain a unitary matrix Z1 on
entry and
the product Z1*Z is returned.
N
N is INTEGER
The order of the matrices H, T, Q, and Z. N >= 0.
ILO
ILO is INTEGER
IHI
IHI is INTEGER
ILO and IHI mark the rows and columns of H which are in
Hessenberg form. It is assumed that A is already upper
triangular in rows and columns 1:ILO-1 and IHI+1:N.
If N > 0, 1 <= ILO <= IHI <= N; if N = 0, ILO=1
and IHI=0.
H
H is COMPLEX
array, dimension (LDH, N)
On entry, the N-by-N upper Hessenberg matrix H.
On exit, if JOB = βSβ, H contains the upper
triangular
matrix S from the generalized Schur factorization.
If JOB = βEβ, the diagonal of H matches that of
S, but
the rest of H is unspecified.
LDH
LDH is INTEGER
The leading dimension of the array H. LDH >= max( 1, N
).
T
T is COMPLEX
array, dimension (LDT, N)
On entry, the N-by-N upper triangular matrix T.
On exit, if JOB = βSβ, T contains the upper
triangular
matrix P from the generalized Schur factorization.
If JOB = βEβ, the diagonal of T matches that of
P, but
the rest of T is unspecified.
LDT
LDT is INTEGER
The leading dimension of the array T. LDT >= max( 1, N
).
ALPHA
ALPHA is
COMPLEX array, dimension (N)
The complex scalars alpha that define the eigenvalues of
GNEP. ALPHA(i) = S(i,i) in the generalized Schur
factorization.
BETA
BETA is COMPLEX
array, dimension (N)
The real non-negative scalars beta that define the
eigenvalues of GNEP. BETA(i) = P(i,i) in the generalized
Schur factorization.
Together, the
quantities alpha = ALPHA(j) and beta = BETA(j)
represent the j-th eigenvalue of the matrix pair (A,B), in
one of the forms lambda = alpha/beta or mu = beta/alpha.
Since either lambda or mu may overflow, they should not,
in general, be computed.
Q
Q is COMPLEX
array, dimension (LDQ, N)
On entry, if COMPQ = βVβ, the unitary matrix Q1
used in the
reduction of (A,B) to generalized Hessenberg form.
On exit, if COMPQ = βIβ, the unitary matrix of
left Schur
vectors of (H,T), and if COMPQ = βVβ, the
unitary matrix of
left Schur vectors of (A,B).
Not referenced if COMPQ = βNβ.
LDQ
LDQ is INTEGER
The leading dimension of the array Q. LDQ >= 1.
If COMPQ=βVβ or βIβ, then LDQ >=
N.
Z
Z is COMPLEX
array, dimension (LDZ, N)
On entry, if COMPZ = βVβ, the unitary matrix Z1
used in the
reduction of (A,B) to generalized Hessenberg form.
On exit, if COMPZ = βIβ, the unitary matrix of
right Schur
vectors of (H,T), and if COMPZ = βVβ, the
unitary matrix of
right Schur vectors of (A,B).
Not referenced if COMPZ = βNβ.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1.
If COMPZ=βVβ or βIβ, then LDZ >=
N.
WORK
WORK is COMPLEX
array, dimension (MAX(1,LWORK))
On exit, if INFO >= 0, WORK(1) returns the optimal
LWORK.
LWORK
LWORK is
INTEGER
The dimension of the array WORK. LWORK >= max(1,N).
If LWORK = -1,
then a workspace query is assumed; the routine
only calculates the optimal size of the WORK array, returns
this value as the first entry of the WORK array, and no
error
message related to LWORK is issued by XERBLA.
RWORK
RWORK is REAL array, dimension (N)
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
= 1,...,N: the QZ iteration did not converge. (H,T) is not
in Schur form, but ALPHA(i) and BETA(i),
i=INFO+1,...,N should be correct.
= N+1,...,2*N: the shift calculation failed. (H,T) is not
in Schur form, but ALPHA(i) and BETA(i),
i=INFO-N+1,...,N should be correct.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
We assume that
complex ABS works as long as its value is less than
overflow.
subroutine dhgeqz (character job, character compq, character compz, integern, integer ilo, integer ihi, double precision, dimension( ldh, * ) h,integer ldh, double precision, dimension( ldt, * ) t, integer ldt,double precision, dimension( * ) alphar, double precision, dimension( *) alphai, double precision, dimension( * ) beta, double precision,dimension( ldq, * ) q, integer ldq, double precision, dimension( ldz, *) z, integer ldz, double precision, dimension( * ) work, integer lwork,integer info)
DHGEQZ
Purpose:
DHGEQZ computes
the eigenvalues of a real matrix pair (H,T),
where H is an upper Hessenberg matrix and T is upper
triangular,
using the double-shift QZ method.
Matrix pairs of this type are produced by the reduction to
generalized upper Hessenberg form of a real matrix pair
(A,B):
A = Q1*H*Z1**T, B = Q1*T*Z1**T,
as computed by DGGHRD.
If
JOB=βSβ, then the Hessenberg-triangular pair
(H,T) is
also reduced to generalized Schur form,
H = Q*S*Z**T, T = Q*P*Z**T,
where Q and Z
are orthogonal matrices, P is an upper triangular
matrix, and S is a quasi-triangular matrix with 1-by-1 and
2-by-2
diagonal blocks.
The 1-by-1
blocks correspond to real eigenvalues of the matrix pair
(H,T) and the 2-by-2 blocks correspond to complex conjugate
pairs of
eigenvalues.
Additionally,
the 2-by-2 upper triangular diagonal blocks of P
corresponding to 2-by-2 blocks of S are reduced to positive
diagonal
form, i.e., if S(j+1,j) is non-zero, then P(j+1,j) =
P(j,j+1) = 0,
P(j,j) > 0, and P(j+1,j+1) > 0.
Optionally, the
orthogonal matrix Q from the generalized Schur
factorization may be postmultiplied into an input matrix Q1,
and the
orthogonal matrix Z may be postmultiplied into an input
matrix Z1.
If Q1 and Z1 are the orthogonal matrices from DGGHRD that
reduced
the matrix pair (A,B) to generalized upper Hessenberg form,
then the
output matrices Q1*Q and Z1*Z are the orthogonal factors
from the
generalized Schur factorization of (A,B):
A = (Q1*Q)*S*(Z1*Z)**T, B = (Q1*Q)*P*(Z1*Z)**T.
To avoid
overflow, eigenvalues of the matrix pair (H,T)
(equivalently,
of (A,B)) are computed as a pair of values (alpha,beta),
where alpha is
complex and beta real.
If beta is nonzero, lambda = alpha / beta is an eigenvalue
of the
generalized nonsymmetric eigenvalue problem (GNEP)
A*x = lambda*B*x
and if alpha is nonzero, mu = beta / alpha is an eigenvalue
of the
alternate form of the GNEP
mu*A*y = B*y.
Real eigenvalues can be read directly from the generalized
Schur
form:
alpha = S(i,i), beta = P(i,i).
Ref: C.B. Moler
& G.W. Stewart, βAn Algorithm for Generalized
Matrix
Eigenvalue Problemsβ, SIAM J. Numer. Anal., 10(1973),
pp. 241--256.
Parameters
JOB
JOB is
CHARACTER*1
= βEβ: Compute eigenvalues only;
= βSβ: Compute eigenvalues and the Schur
form.
COMPQ
COMPQ is
CHARACTER*1
= βNβ: Left Schur vectors (Q) are not computed;
= βIβ: Q is initialized to the unit matrix and
the matrix Q
of left Schur vectors of (H,T) is returned;
= βVβ: Q must contain an orthogonal matrix Q1 on
entry and
the product Q1*Q is returned.
COMPZ
COMPZ is
CHARACTER*1
= βNβ: Right Schur vectors (Z) are not computed;
= βIβ: Z is initialized to the unit matrix and
the matrix Z
of right Schur vectors of (H,T) is returned;
= βVβ: Z must contain an orthogonal matrix Z1 on
entry and
the product Z1*Z is returned.
N
N is INTEGER
The order of the matrices H, T, Q, and Z. N >= 0.
ILO
ILO is INTEGER
IHI
IHI is INTEGER
ILO and IHI mark the rows and columns of H which are in
Hessenberg form. It is assumed that A is already upper
triangular in rows and columns 1:ILO-1 and IHI+1:N.
If N > 0, 1 <= ILO <= IHI <= N; if N = 0, ILO=1
and IHI=0.
H
H is DOUBLE
PRECISION array, dimension (LDH, N)
On entry, the N-by-N upper Hessenberg matrix H.
On exit, if JOB = βSβ, H contains the upper
quasi-triangular
matrix S from the generalized Schur factorization.
If JOB = βEβ, the diagonal blocks of H match
those of S, but
the rest of H is unspecified.
LDH
LDH is INTEGER
The leading dimension of the array H. LDH >= max( 1, N
).
T
T is DOUBLE
PRECISION array, dimension (LDT, N)
On entry, the N-by-N upper triangular matrix T.
On exit, if JOB = βSβ, T contains the upper
triangular
matrix P from the generalized Schur factorization;
2-by-2 diagonal blocks of P corresponding to 2-by-2 blocks
of S
are reduced to positive diagonal form, i.e., if H(j+1,j) is
non-zero, then T(j+1,j) = T(j,j+1) = 0, T(j,j) > 0, and
T(j+1,j+1) > 0.
If JOB = βEβ, the diagonal blocks of T match
those of P, but
the rest of T is unspecified.
LDT
LDT is INTEGER
The leading dimension of the array T. LDT >= max( 1, N
).
ALPHAR
ALPHAR is
DOUBLE PRECISION array, dimension (N)
The real parts of each scalar alpha defining an eigenvalue
of GNEP.
ALPHAI
ALPHAI is
DOUBLE PRECISION array, dimension (N)
The imaginary parts of each scalar alpha defining an
eigenvalue of GNEP.
If ALPHAI(j) is zero, then the j-th eigenvalue is real; if
positive, then the j-th and (j+1)-st eigenvalues are a
complex conjugate pair, with ALPHAI(j+1) = -ALPHAI(j).
BETA
BETA is DOUBLE
PRECISION array, dimension (N)
The scalars beta that define the eigenvalues of GNEP.
Together, the quantities alpha = (ALPHAR(j),ALPHAI(j)) and
beta = BETA(j) represent the j-th eigenvalue of the matrix
pair (A,B), in one of the forms lambda = alpha/beta or
mu = beta/alpha. Since either lambda or mu may overflow,
they should not, in general, be computed.
Q
Q is DOUBLE
PRECISION array, dimension (LDQ, N)
On entry, if COMPQ = βVβ, the orthogonal matrix
Q1 used in
the reduction of (A,B) to generalized Hessenberg form.
On exit, if COMPQ = βIβ, the orthogonal matrix
of left Schur
vectors of (H,T), and if COMPQ = βVβ, the
orthogonal matrix
of left Schur vectors of (A,B).
Not referenced if COMPQ = βNβ.
LDQ
LDQ is INTEGER
The leading dimension of the array Q. LDQ >= 1.
If COMPQ=βVβ or βIβ, then LDQ >=
N.
Z
Z is DOUBLE
PRECISION array, dimension (LDZ, N)
On entry, if COMPZ = βVβ, the orthogonal matrix
Z1 used in
the reduction of (A,B) to generalized Hessenberg form.
On exit, if COMPZ = βIβ, the orthogonal matrix
of
right Schur vectors of (H,T), and if COMPZ =
βVβ, the
orthogonal matrix of right Schur vectors of (A,B).
Not referenced if COMPZ = βNβ.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1.
If COMPZ=βVβ or βIβ, then LDZ >=
N.
WORK
WORK is DOUBLE
PRECISION array, dimension (MAX(1,LWORK))
On exit, if INFO >= 0, WORK(1) returns the optimal
LWORK.
LWORK
LWORK is
INTEGER
The dimension of the array WORK. LWORK >= max(1,N).
If LWORK = -1,
then a workspace query is assumed; the routine
only calculates the optimal size of the WORK array, returns
this value as the first entry of the WORK array, and no
error
message related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
= 1,...,N: the QZ iteration did not converge. (H,T) is not
in Schur form, but ALPHAR(i), ALPHAI(i), and
BETA(i), i=INFO+1,...,N should be correct.
= N+1,...,2*N: the shift calculation failed. (H,T) is not
in Schur form, but ALPHAR(i), ALPHAI(i), and
BETA(i), i=INFO-N+1,...,N should be correct.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
Iteration counters:
JITER -- counts
iterations.
IITER -- counts iterations run since ILAST was last
changed. This is therefore reset only when a 1-by-1 or
2-by-2 block deflates off the bottom.
subroutine shgeqz (character job, character compq, character compz, integern, integer ilo, integer ihi, real, dimension( ldh, * ) h, integer ldh,real, dimension( ldt, * ) t, integer ldt, real, dimension( * ) alphar,real, dimension( * ) alphai, real, dimension( * ) beta, real,dimension( ldq, * ) q, integer ldq, real, dimension( ldz, * ) z,integer ldz, real, dimension( * ) work, integer lwork, integer info)
SHGEQZ
Purpose:
SHGEQZ computes
the eigenvalues of a real matrix pair (H,T),
where H is an upper Hessenberg matrix and T is upper
triangular,
using the double-shift QZ method.
Matrix pairs of this type are produced by the reduction to
generalized upper Hessenberg form of a real matrix pair
(A,B):
A = Q1*H*Z1**T, B = Q1*T*Z1**T,
as computed by SGGHRD.
If
JOB=βSβ, then the Hessenberg-triangular pair
(H,T) is
also reduced to generalized Schur form,
H = Q*S*Z**T, T = Q*P*Z**T,
where Q and Z
are orthogonal matrices, P is an upper triangular
matrix, and S is a quasi-triangular matrix with 1-by-1 and
2-by-2
diagonal blocks.
The 1-by-1
blocks correspond to real eigenvalues of the matrix pair
(H,T) and the 2-by-2 blocks correspond to complex conjugate
pairs of
eigenvalues.
Additionally,
the 2-by-2 upper triangular diagonal blocks of P
corresponding to 2-by-2 blocks of S are reduced to positive
diagonal
form, i.e., if S(j+1,j) is non-zero, then P(j+1,j) =
P(j,j+1) = 0,
P(j,j) > 0, and P(j+1,j+1) > 0.
Optionally, the
orthogonal matrix Q from the generalized Schur
factorization may be postmultiplied into an input matrix Q1,
and the
orthogonal matrix Z may be postmultiplied into an input
matrix Z1.
If Q1 and Z1 are the orthogonal matrices from SGGHRD that
reduced
the matrix pair (A,B) to generalized upper Hessenberg form,
then the
output matrices Q1*Q and Z1*Z are the orthogonal factors
from the
generalized Schur factorization of (A,B):
A = (Q1*Q)*S*(Z1*Z)**T, B = (Q1*Q)*P*(Z1*Z)**T.
To avoid
overflow, eigenvalues of the matrix pair (H,T)
(equivalently,
of (A,B)) are computed as a pair of values (alpha,beta),
where alpha is
complex and beta real.
If beta is nonzero, lambda = alpha / beta is an eigenvalue
of the
generalized nonsymmetric eigenvalue problem (GNEP)
A*x = lambda*B*x
and if alpha is nonzero, mu = beta / alpha is an eigenvalue
of the
alternate form of the GNEP
mu*A*y = B*y.
Real eigenvalues can be read directly from the generalized
Schur
form:
alpha = S(i,i), beta = P(i,i).
Ref: C.B. Moler
& G.W. Stewart, βAn Algorithm for Generalized
Matrix
Eigenvalue Problemsβ, SIAM J. Numer. Anal., 10(1973),
pp. 241--256.
Parameters
JOB
JOB is
CHARACTER*1
= βEβ: Compute eigenvalues only;
= βSβ: Compute eigenvalues and the Schur
form.
COMPQ
COMPQ is
CHARACTER*1
= βNβ: Left Schur vectors (Q) are not computed;
= βIβ: Q is initialized to the unit matrix and
the matrix Q
of left Schur vectors of (H,T) is returned;
= βVβ: Q must contain an orthogonal matrix Q1 on
entry and
the product Q1*Q is returned.
COMPZ
COMPZ is
CHARACTER*1
= βNβ: Right Schur vectors (Z) are not computed;
= βIβ: Z is initialized to the unit matrix and
the matrix Z
of right Schur vectors of (H,T) is returned;
= βVβ: Z must contain an orthogonal matrix Z1 on
entry and
the product Z1*Z is returned.
N
N is INTEGER
The order of the matrices H, T, Q, and Z. N >= 0.
ILO
ILO is INTEGER
IHI
IHI is INTEGER
ILO and IHI mark the rows and columns of H which are in
Hessenberg form. It is assumed that A is already upper
triangular in rows and columns 1:ILO-1 and IHI+1:N.
If N > 0, 1 <= ILO <= IHI <= N; if N = 0, ILO=1
and IHI=0.
H
H is REAL
array, dimension (LDH, N)
On entry, the N-by-N upper Hessenberg matrix H.
On exit, if JOB = βSβ, H contains the upper
quasi-triangular
matrix S from the generalized Schur factorization.
If JOB = βEβ, the diagonal blocks of H match
those of S, but
the rest of H is unspecified.
LDH
LDH is INTEGER
The leading dimension of the array H. LDH >= max( 1, N
).
T
T is REAL
array, dimension (LDT, N)
On entry, the N-by-N upper triangular matrix T.
On exit, if JOB = βSβ, T contains the upper
triangular
matrix P from the generalized Schur factorization;
2-by-2 diagonal blocks of P corresponding to 2-by-2 blocks
of S
are reduced to positive diagonal form, i.e., if H(j+1,j) is
non-zero, then T(j+1,j) = T(j,j+1) = 0, T(j,j) > 0, and
T(j+1,j+1) > 0.
If JOB = βEβ, the diagonal blocks of T match
those of P, but
the rest of T is unspecified.
LDT
LDT is INTEGER
The leading dimension of the array T. LDT >= max( 1, N
).
ALPHAR
ALPHAR is REAL
array, dimension (N)
The real parts of each scalar alpha defining an eigenvalue
of GNEP.
ALPHAI
ALPHAI is REAL
array, dimension (N)
The imaginary parts of each scalar alpha defining an
eigenvalue of GNEP.
If ALPHAI(j) is zero, then the j-th eigenvalue is real; if
positive, then the j-th and (j+1)-st eigenvalues are a
complex conjugate pair, with ALPHAI(j+1) = -ALPHAI(j).
BETA
BETA is REAL
array, dimension (N)
The scalars beta that define the eigenvalues of GNEP.
Together, the quantities alpha = (ALPHAR(j),ALPHAI(j)) and
beta = BETA(j) represent the j-th eigenvalue of the matrix
pair (A,B), in one of the forms lambda = alpha/beta or
mu = beta/alpha. Since either lambda or mu may overflow,
they should not, in general, be computed.
Q
Q is REAL
array, dimension (LDQ, N)
On entry, if COMPQ = βVβ, the orthogonal matrix
Q1 used in
the reduction of (A,B) to generalized Hessenberg form.
On exit, if COMPQ = βIβ, the orthogonal matrix
of left Schur
vectors of (H,T), and if COMPQ = βVβ, the
orthogonal matrix
of left Schur vectors of (A,B).
Not referenced if COMPQ = βNβ.
LDQ
LDQ is INTEGER
The leading dimension of the array Q. LDQ >= 1.
If COMPQ=βVβ or βIβ, then LDQ >=
N.
Z
Z is REAL
array, dimension (LDZ, N)
On entry, if COMPZ = βVβ, the orthogonal matrix
Z1 used in
the reduction of (A,B) to generalized Hessenberg form.
On exit, if COMPZ = βIβ, the orthogonal matrix
of
right Schur vectors of (H,T), and if COMPZ =
βVβ, the
orthogonal matrix of right Schur vectors of (A,B).
Not referenced if COMPZ = βNβ.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1.
If COMPZ=βVβ or βIβ, then LDZ >=
N.
WORK
WORK is REAL
array, dimension (MAX(1,LWORK))
On exit, if INFO >= 0, WORK(1) returns the optimal
LWORK.
LWORK
LWORK is
INTEGER
The dimension of the array WORK. LWORK >= max(1,N).
If LWORK = -1,
then a workspace query is assumed; the routine
only calculates the optimal size of the WORK array, returns
this value as the first entry of the WORK array, and no
error
message related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
= 1,...,N: the QZ iteration did not converge. (H,T) is not
in Schur form, but ALPHAR(i), ALPHAI(i), and
BETA(i), i=INFO+1,...,N should be correct.
= N+1,...,2*N: the shift calculation failed. (H,T) is not
in Schur form, but ALPHAR(i), ALPHAI(i), and
BETA(i), i=INFO-N+1,...,N should be correct.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
Iteration counters:
JITER -- counts
iterations.
IITER -- counts iterations run since ILAST was last
changed. This is therefore reset only when a 1-by-1 or
2-by-2 block deflates off the bottom.
subroutine zhgeqz (character job, character compq, character compz, integern, integer ilo, integer ihi, complex*16, dimension( ldh, * ) h, integerldh, complex*16, dimension( ldt, * ) t, integer ldt, complex*16,dimension( * ) alpha, complex*16, dimension( * ) beta, complex*16,dimension( ldq, * ) q, integer ldq, complex*16, dimension( ldz, * ) z,integer ldz, complex*16, dimension( * ) work, integer lwork, doubleprecision, dimension( * ) rwork, integer info)
ZHGEQZ
Purpose:
ZHGEQZ computes
the eigenvalues of a complex matrix pair (H,T),
where H is an upper Hessenberg matrix and T is upper
triangular,
using the single-shift QZ method.
Matrix pairs of this type are produced by the reduction to
generalized upper Hessenberg form of a complex matrix pair
(A,B):
A = Q1*H*Z1**H, B = Q1*T*Z1**H,
as computed by ZGGHRD.
If
JOB=βSβ, then the Hessenberg-triangular pair
(H,T) is
also reduced to generalized Schur form,
H = Q*S*Z**H, T = Q*P*Z**H,
where Q and Z are unitary matrices and S and P are upper triangular.
Optionally, the
unitary matrix Q from the generalized Schur
factorization may be postmultiplied into an input matrix Q1,
and the
unitary matrix Z may be postmultiplied into an input matrix
Z1.
If Q1 and Z1 are the unitary matrices from ZGGHRD that
reduced
the matrix pair (A,B) to generalized Hessenberg form, then
the output
matrices Q1*Q and Z1*Z are the unitary factors from the
generalized
Schur factorization of (A,B):
A = (Q1*Q)*S*(Z1*Z)**H, B = (Q1*Q)*P*(Z1*Z)**H.
To avoid
overflow, eigenvalues of the matrix pair (H,T)
(equivalently, of (A,B)) are computed as a pair of complex
values
(alpha,beta). If beta is nonzero, lambda = alpha / beta is
an
eigenvalue of the generalized nonsymmetric eigenvalue
problem (GNEP)
A*x = lambda*B*x
and if alpha is nonzero, mu = beta / alpha is an eigenvalue
of the
alternate form of the GNEP
mu*A*y = B*y.
The values of alpha and beta for the i-th eigenvalue can be
read
directly from the generalized Schur form: alpha = S(i,i),
beta = P(i,i).
Ref: C.B. Moler
& G.W. Stewart, βAn Algorithm for Generalized
Matrix
Eigenvalue Problemsβ, SIAM J. Numer. Anal., 10(1973),
pp. 241--256.
Parameters
JOB
JOB is
CHARACTER*1
= βEβ: Compute eigenvalues only;
= βSβ: Computer eigenvalues and the Schur
form.
COMPQ
COMPQ is
CHARACTER*1
= βNβ: Left Schur vectors (Q) are not computed;
= βIβ: Q is initialized to the unit matrix and
the matrix Q
of left Schur vectors of (H,T) is returned;
= βVβ: Q must contain a unitary matrix Q1 on
entry and
the product Q1*Q is returned.
COMPZ
COMPZ is
CHARACTER*1
= βNβ: Right Schur vectors (Z) are not computed;
= βIβ: Q is initialized to the unit matrix and
the matrix Z
of right Schur vectors of (H,T) is returned;
= βVβ: Z must contain a unitary matrix Z1 on
entry and
the product Z1*Z is returned.
N
N is INTEGER
The order of the matrices H, T, Q, and Z. N >= 0.
ILO
ILO is INTEGER
IHI
IHI is INTEGER
ILO and IHI mark the rows and columns of H which are in
Hessenberg form. It is assumed that A is already upper
triangular in rows and columns 1:ILO-1 and IHI+1:N.
If N > 0, 1 <= ILO <= IHI <= N; if N = 0, ILO=1
and IHI=0.
H
H is COMPLEX*16
array, dimension (LDH, N)
On entry, the N-by-N upper Hessenberg matrix H.
On exit, if JOB = βSβ, H contains the upper
triangular
matrix S from the generalized Schur factorization.
If JOB = βEβ, the diagonal of H matches that of
S, but
the rest of H is unspecified.
LDH
LDH is INTEGER
The leading dimension of the array H. LDH >= max( 1, N
).
T
T is COMPLEX*16
array, dimension (LDT, N)
On entry, the N-by-N upper triangular matrix T.
On exit, if JOB = βSβ, T contains the upper
triangular
matrix P from the generalized Schur factorization.
If JOB = βEβ, the diagonal of T matches that of
P, but
the rest of T is unspecified.
LDT
LDT is INTEGER
The leading dimension of the array T. LDT >= max( 1, N
).
ALPHA
ALPHA is
COMPLEX*16 array, dimension (N)
The complex scalars alpha that define the eigenvalues of
GNEP. ALPHA(i) = S(i,i) in the generalized Schur
factorization.
BETA
BETA is
COMPLEX*16 array, dimension (N)
The real non-negative scalars beta that define the
eigenvalues of GNEP. BETA(i) = P(i,i) in the generalized
Schur factorization.
Together, the
quantities alpha = ALPHA(j) and beta = BETA(j)
represent the j-th eigenvalue of the matrix pair (A,B), in
one of the forms lambda = alpha/beta or mu = beta/alpha.
Since either lambda or mu may overflow, they should not,
in general, be computed.
Q
Q is COMPLEX*16
array, dimension (LDQ, N)
On entry, if COMPQ = βVβ, the unitary matrix Q1
used in the
reduction of (A,B) to generalized Hessenberg form.
On exit, if COMPQ = βIβ, the unitary matrix of
left Schur
vectors of (H,T), and if COMPQ = βVβ, the
unitary matrix of
left Schur vectors of (A,B).
Not referenced if COMPQ = βNβ.
LDQ
LDQ is INTEGER
The leading dimension of the array Q. LDQ >= 1.
If COMPQ=βVβ or βIβ, then LDQ >=
N.
Z
Z is COMPLEX*16
array, dimension (LDZ, N)
On entry, if COMPZ = βVβ, the unitary matrix Z1
used in the
reduction of (A,B) to generalized Hessenberg form.
On exit, if COMPZ = βIβ, the unitary matrix of
right Schur
vectors of (H,T), and if COMPZ = βVβ, the
unitary matrix of
right Schur vectors of (A,B).
Not referenced if COMPZ = βNβ.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1.
If COMPZ=βVβ or βIβ, then LDZ >=
N.
WORK
WORK is
COMPLEX*16 array, dimension (MAX(1,LWORK))
On exit, if INFO >= 0, WORK(1) returns the optimal
LWORK.
LWORK
LWORK is
INTEGER
The dimension of the array WORK. LWORK >= max(1,N).
If LWORK = -1,
then a workspace query is assumed; the routine
only calculates the optimal size of the WORK array, returns
this value as the first entry of the WORK array, and no
error
message related to LWORK is issued by XERBLA.
RWORK
RWORK is DOUBLE PRECISION array, dimension (N)
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
= 1,...,N: the QZ iteration did not converge. (H,T) is not
in Schur form, but ALPHA(i) and BETA(i),
i=INFO+1,...,N should be correct.
= N+1,...,2*N: the shift calculation failed. (H,T) is not
in Schur form, but ALPHA(i) and BETA(i),
i=INFO-N+1,...,N should be correct.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
We assume that
complex ABS works as long as its value is less than
overflow.
Author
Generated automatically by Doxygen for LAPACK from the source code.