Man page - trevc(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
trevc
NAMESYNOPSIS
Functions
Detailed Description
Function Documentation
subroutine ctrevc (character side, character howmny, logical, dimension( *) select, integer n, complex, dimension( ldt, * ) t, integer ldt,complex, dimension( ldvl, * ) vl, integer ldvl, complex, dimension(ldvr, * ) vr, integer ldvr, integer mm, integer m, complex, dimension(* ) work, real, dimension( * ) rwork, integer info)
subroutine dtrevc (character side, character howmny, logical, dimension( *) select, integer n, double precision, dimension( ldt, * ) t, integerldt, double precision, dimension( ldvl, * ) vl, integer ldvl, doubleprecision, dimension( ldvr, * ) vr, integer ldvr, integer mm, integerm, double precision, dimension( * ) work, integer info)
subroutine strevc (character side, character howmny, logical, dimension( *) select, integer n, real, dimension( ldt, * ) t, integer ldt, real,dimension( ldvl, * ) vl, integer ldvl, real, dimension( ldvr, * ) vr,integer ldvr, integer mm, integer m, real, dimension( * ) work, integerinfo)
subroutine ztrevc (character side, character howmny, logical, dimension( *) select, integer n, complex*16, dimension( ldt, * ) t, integer ldt,complex*16, dimension( ldvl, * ) vl, integer ldvl, complex*16,dimension( ldvr, * ) vr, integer ldvr, integer mm, integer m,complex*16, dimension( * ) work, double precision, dimension( * )rwork, integer info)
Author
NAME
trevc - trevc: eigenvectors of triangular Schur form, old
SYNOPSIS
Functions
subroutine
ctrevc
(side, howmny, select, n, t, ldt, vl, ldvl,
vr, ldvr, mm, m, work, rwork, info)
CTREVC
subroutine
dtrevc
(side, howmny, select, n, t, ldt,
vl, ldvl, vr, ldvr, mm, m, work, info)
DTREVC
subroutine
strevc
(side, howmny, select, n, t, ldt,
vl, ldvl, vr, ldvr, mm, m, work, info)
STREVC
subroutine
ztrevc
(side, howmny, select, n, t, ldt,
vl, ldvl, vr, ldvr, mm, m, work, rwork, info)
ZTREVC
Detailed Description
Function Documentation
subroutine ctrevc (character side, character howmny, logical, dimension( *) select, integer n, complex, dimension( ldt, * ) t, integer ldt,complex, dimension( ldvl, * ) vl, integer ldvl, complex, dimension(ldvr, * ) vr, integer ldvr, integer mm, integer m, complex, dimension(* ) work, real, dimension( * ) rwork, integer info)
CTREVC
Purpose:
CTREVC computes
some or all of the right and/or left eigenvectors of
a complex upper triangular matrix T.
Matrices of this type are produced by the Schur
factorization of
a complex general matrix: A = Q*T*Q**H, as computed by
CHSEQR.
The right
eigenvector x and the left eigenvector y of T corresponding
to an eigenvalue w are defined by:
T*x = w*x, (y**H)*T = w*(y**H)
where y**H
denotes the conjugate transpose of the vector y.
The eigenvalues are not input to this routine, but are read
directly
from the diagonal of T.
This routine
returns the matrices X and/or Y of right and left
eigenvectors of T, or the products Q*X and/or Q*Y, where Q
is an
input matrix. If Q is the unitary factor that reduces a
matrix A to
Schur form T, then Q*X and Q*Y are the matrices of right and
left
eigenvectors of A.
Parameters
SIDE
SIDE is
CHARACTER*1
= ’R’: compute right eigenvectors only;
= ’L’: compute left eigenvectors only;
= ’B’: compute both right and left
eigenvectors.
HOWMNY
HOWMNY is
CHARACTER*1
= ’A’: compute all right and/or left
eigenvectors;
= ’B’: compute all right and/or left
eigenvectors,
backtransformed using the matrices supplied in
VR and/or VL;
= ’S’: compute selected right and/or left
eigenvectors,
as indicated by the logical array SELECT.
SELECT
SELECT is
LOGICAL array, dimension (N)
If HOWMNY = ’S’, SELECT specifies the
eigenvectors to be
computed.
The eigenvector corresponding to the j-th eigenvalue is
computed if SELECT(j) = .TRUE..
Not referenced if HOWMNY = ’A’ or
’B’.
N
N is INTEGER
The order of the matrix T. N >= 0.
T
T is COMPLEX
array, dimension (LDT,N)
The upper triangular matrix T. T is modified, but restored
on exit.
LDT
LDT is INTEGER
The leading dimension of the array T. LDT >=
max(1,N).
VL
VL is COMPLEX
array, dimension (LDVL,MM)
On entry, if SIDE = ’L’ or ’B’ and
HOWMNY = ’B’, VL must
contain an N-by-N matrix Q (usually the unitary matrix Q of
Schur vectors returned by CHSEQR).
On exit, if SIDE = ’L’ or ’B’, VL
contains:
if HOWMNY = ’A’, the matrix Y of left
eigenvectors of T;
if HOWMNY = ’B’, the matrix Q*Y;
if HOWMNY = ’S’, the left eigenvectors of T
specified by
SELECT, stored consecutively in the columns
of VL, in the same order as their
eigenvalues.
Not referenced if SIDE = ’R’.
LDVL
LDVL is INTEGER
The leading dimension of the array VL. LDVL >= 1, and if
SIDE = ’L’ or ’B’, LDVL >= N.
VR
VR is COMPLEX
array, dimension (LDVR,MM)
On entry, if SIDE = ’R’ or ’B’ and
HOWMNY = ’B’, VR must
contain an N-by-N matrix Q (usually the unitary matrix Q of
Schur vectors returned by CHSEQR).
On exit, if SIDE = ’R’ or ’B’, VR
contains:
if HOWMNY = ’A’, the matrix X of right
eigenvectors of T;
if HOWMNY = ’B’, the matrix Q*X;
if HOWMNY = ’S’, the right eigenvectors of T
specified by
SELECT, stored consecutively in the columns
of VR, in the same order as their
eigenvalues.
Not referenced if SIDE = ’L’.
LDVR
LDVR is INTEGER
The leading dimension of the array VR. LDVR >= 1, and if
SIDE = ’R’ or ’B’; LDVR >= N.
MM
MM is INTEGER
The number of columns in the arrays VL and/or VR. MM >=
M.
M
M is INTEGER
The number of columns in the arrays VL and/or VR actually
used to store the eigenvectors. If HOWMNY = ’A’
or ’B’, M
is set to N. Each selected eigenvector occupies one
column.
WORK
WORK is COMPLEX array, dimension (2*N)
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
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
The algorithm
used in this program is basically backward (forward)
substitution, with scaling to make the the code robust
against
possible overflow.
Each
eigenvector is normalized so that the element of largest
magnitude has magnitude 1; here the magnitude of a complex
number
(x,y) is taken to be |x| + |y|.
subroutine dtrevc (character side, character howmny, logical, dimension( *) select, integer n, double precision, dimension( ldt, * ) t, integerldt, double precision, dimension( ldvl, * ) vl, integer ldvl, doubleprecision, dimension( ldvr, * ) vr, integer ldvr, integer mm, integerm, double precision, dimension( * ) work, integer info)
DTREVC
Purpose:
DTREVC computes
some or all of the right and/or left eigenvectors of
a real upper quasi-triangular matrix T.
Matrices of this type are produced by the Schur
factorization of
a real general matrix: A = Q*T*Q**T, as computed by
DHSEQR.
The right
eigenvector x and the left eigenvector y of T corresponding
to an eigenvalue w are defined by:
T*x = w*x, (y**H)*T = w*(y**H)
where y**H
denotes the conjugate transpose of y.
The eigenvalues are not input to this routine, but are read
directly
from the diagonal blocks of T.
This routine
returns the matrices X and/or Y of right and left
eigenvectors of T, or the products Q*X and/or Q*Y, where Q
is an
input matrix. If Q is the orthogonal factor that reduces a
matrix
A to Schur form T, then Q*X and Q*Y are the matrices of
right and
left eigenvectors of A.
Parameters
SIDE
SIDE is
CHARACTER*1
= ’R’: compute right eigenvectors only;
= ’L’: compute left eigenvectors only;
= ’B’: compute both right and left
eigenvectors.
HOWMNY
HOWMNY is
CHARACTER*1
= ’A’: compute all right and/or left
eigenvectors;
= ’B’: compute all right and/or left
eigenvectors,
backtransformed by the matrices in VR and/or VL;
= ’S’: compute selected right and/or left
eigenvectors,
as indicated by the logical array SELECT.
SELECT
SELECT is
LOGICAL array, dimension (N)
If HOWMNY = ’S’, SELECT specifies the
eigenvectors to be
computed.
If w(j) is a real eigenvalue, the corresponding real
eigenvector is computed if SELECT(j) is .TRUE..
If w(j) and w(j+1) are the real and imaginary parts of a
complex eigenvalue, the corresponding complex eigenvector is
computed if either SELECT(j) or SELECT(j+1) is .TRUE., and
on exit SELECT(j) is set to .TRUE. and SELECT(j+1) is set to
.FALSE..
Not referenced if HOWMNY = ’A’ or
’B’.
N
N is INTEGER
The order of the matrix T. N >= 0.
T
T is DOUBLE
PRECISION array, dimension (LDT,N)
The upper quasi-triangular matrix T in Schur canonical
form.
LDT
LDT is INTEGER
The leading dimension of the array T. LDT >=
max(1,N).
VL
VL is DOUBLE
PRECISION array, dimension (LDVL,MM)
On entry, if SIDE = ’L’ or ’B’ and
HOWMNY = ’B’, VL must
contain an N-by-N matrix Q (usually the orthogonal matrix Q
of Schur vectors returned by DHSEQR).
On exit, if SIDE = ’L’ or ’B’, VL
contains:
if HOWMNY = ’A’, the matrix Y of left
eigenvectors of T;
if HOWMNY = ’B’, the matrix Q*Y;
if HOWMNY = ’S’, the left eigenvectors of T
specified by
SELECT, stored consecutively in the columns
of VL, in the same order as their
eigenvalues.
A complex eigenvector corresponding to a complex eigenvalue
is stored in two consecutive columns, the first holding the
real part, and the second the imaginary part.
Not referenced if SIDE = ’R’.
LDVL
LDVL is INTEGER
The leading dimension of the array VL. LDVL >= 1, and if
SIDE = ’L’ or ’B’, LDVL >= N.
VR
VR is DOUBLE
PRECISION array, dimension (LDVR,MM)
On entry, if SIDE = ’R’ or ’B’ and
HOWMNY = ’B’, VR must
contain an N-by-N matrix Q (usually the orthogonal matrix Q
of Schur vectors returned by DHSEQR).
On exit, if SIDE = ’R’ or ’B’, VR
contains:
if HOWMNY = ’A’, the matrix X of right
eigenvectors of T;
if HOWMNY = ’B’, the matrix Q*X;
if HOWMNY = ’S’, the right eigenvectors of T
specified by
SELECT, stored consecutively in the columns
of VR, in the same order as their
eigenvalues.
A complex eigenvector corresponding to a complex eigenvalue
is stored in two consecutive columns, the first holding the
real part and the second the imaginary part.
Not referenced if SIDE = ’L’.
LDVR
LDVR is INTEGER
The leading dimension of the array VR. LDVR >= 1, and if
SIDE = ’R’ or ’B’, LDVR >= N.
MM
MM is INTEGER
The number of columns in the arrays VL and/or VR. MM >=
M.
M
M is INTEGER
The number of columns in the arrays VL and/or VR actually
used to store the eigenvectors.
If HOWMNY = ’A’ or ’B’, M is set to
N.
Each selected real eigenvector occupies one column and each
selected complex eigenvector occupies two columns.
WORK
WORK is DOUBLE PRECISION array, dimension (3*N)
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal
value
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
The algorithm
used in this program is basically backward (forward)
substitution, with scaling to make the the code robust
against
possible overflow.
Each
eigenvector is normalized so that the element of largest
magnitude has magnitude 1; here the magnitude of a complex
number
(x,y) is taken to be |x| + |y|.
subroutine strevc (character side, character howmny, logical, dimension( *) select, integer n, real, dimension( ldt, * ) t, integer ldt, real,dimension( ldvl, * ) vl, integer ldvl, real, dimension( ldvr, * ) vr,integer ldvr, integer mm, integer m, real, dimension( * ) work, integerinfo)
STREVC
Purpose:
STREVC computes
some or all of the right and/or left eigenvectors of
a real upper quasi-triangular matrix T.
Matrices of this type are produced by the Schur
factorization of
a real general matrix: A = Q*T*Q**T, as computed by
SHSEQR.
The right
eigenvector x and the left eigenvector y of T corresponding
to an eigenvalue w are defined by:
T*x = w*x, (y**H)*T = w*(y**H)
where y**H
denotes the conjugate transpose of y.
The eigenvalues are not input to this routine, but are read
directly
from the diagonal blocks of T.
This routine
returns the matrices X and/or Y of right and left
eigenvectors of T, or the products Q*X and/or Q*Y, where Q
is an
input matrix. If Q is the orthogonal factor that reduces a
matrix
A to Schur form T, then Q*X and Q*Y are the matrices of
right and
left eigenvectors of A.
Parameters
SIDE
SIDE is
CHARACTER*1
= ’R’: compute right eigenvectors only;
= ’L’: compute left eigenvectors only;
= ’B’: compute both right and left
eigenvectors.
HOWMNY
HOWMNY is
CHARACTER*1
= ’A’: compute all right and/or left
eigenvectors;
= ’B’: compute all right and/or left
eigenvectors,
backtransformed by the matrices in VR and/or VL;
= ’S’: compute selected right and/or left
eigenvectors,
as indicated by the logical array SELECT.
SELECT
SELECT is
LOGICAL array, dimension (N)
If HOWMNY = ’S’, SELECT specifies the
eigenvectors to be
computed.
If w(j) is a real eigenvalue, the corresponding real
eigenvector is computed if SELECT(j) is .TRUE..
If w(j) and w(j+1) are the real and imaginary parts of a
complex eigenvalue, the corresponding complex eigenvector is
computed if either SELECT(j) or SELECT(j+1) is .TRUE., and
on exit SELECT(j) is set to .TRUE. and SELECT(j+1) is set to
.FALSE..
Not referenced if HOWMNY = ’A’ or
’B’.
N
N is INTEGER
The order of the matrix T. N >= 0.
T
T is REAL
array, dimension (LDT,N)
The upper quasi-triangular matrix T in Schur canonical
form.
LDT
LDT is INTEGER
The leading dimension of the array T. LDT >=
max(1,N).
VL
VL is REAL
array, dimension (LDVL,MM)
On entry, if SIDE = ’L’ or ’B’ and
HOWMNY = ’B’, VL must
contain an N-by-N matrix Q (usually the orthogonal matrix Q
of Schur vectors returned by SHSEQR).
On exit, if SIDE = ’L’ or ’B’, VL
contains:
if HOWMNY = ’A’, the matrix Y of left
eigenvectors of T;
if HOWMNY = ’B’, the matrix Q*Y;
if HOWMNY = ’S’, the left eigenvectors of T
specified by
SELECT, stored consecutively in the columns
of VL, in the same order as their
eigenvalues.
A complex eigenvector corresponding to a complex eigenvalue
is stored in two consecutive columns, the first holding the
real part, and the second the imaginary part.
Not referenced if SIDE = ’R’.
LDVL
LDVL is INTEGER
The leading dimension of the array VL. LDVL >= 1, and if
SIDE = ’L’ or ’B’, LDVL >= N.
VR
VR is REAL
array, dimension (LDVR,MM)
On entry, if SIDE = ’R’ or ’B’ and
HOWMNY = ’B’, VR must
contain an N-by-N matrix Q (usually the orthogonal matrix Q
of Schur vectors returned by SHSEQR).
On exit, if SIDE = ’R’ or ’B’, VR
contains:
if HOWMNY = ’A’, the matrix X of right
eigenvectors of T;
if HOWMNY = ’B’, the matrix Q*X;
if HOWMNY = ’S’, the right eigenvectors of T
specified by
SELECT, stored consecutively in the columns
of VR, in the same order as their
eigenvalues.
A complex eigenvector corresponding to a complex eigenvalue
is stored in two consecutive columns, the first holding the
real part and the second the imaginary part.
Not referenced if SIDE = ’L’.
LDVR
LDVR is INTEGER
The leading dimension of the array VR. LDVR >= 1, and if
SIDE = ’R’ or ’B’, LDVR >= N.
MM
MM is INTEGER
The number of columns in the arrays VL and/or VR. MM >=
M.
M
M is INTEGER
The number of columns in the arrays VL and/or VR actually
used to store the eigenvectors.
If HOWMNY = ’A’ or ’B’, M is set to
N.
Each selected real eigenvector occupies one column and each
selected complex eigenvector occupies two columns.
WORK
WORK is REAL array, dimension (3*N)
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal
value
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
The algorithm
used in this program is basically backward (forward)
substitution, with scaling to make the the code robust
against
possible overflow.
Each
eigenvector is normalized so that the element of largest
magnitude has magnitude 1; here the magnitude of a complex
number
(x,y) is taken to be |x| + |y|.
subroutine ztrevc (character side, character howmny, logical, dimension( *) select, integer n, complex*16, dimension( ldt, * ) t, integer ldt,complex*16, dimension( ldvl, * ) vl, integer ldvl, complex*16,dimension( ldvr, * ) vr, integer ldvr, integer mm, integer m,complex*16, dimension( * ) work, double precision, dimension( * )rwork, integer info)
ZTREVC
Purpose:
ZTREVC computes
some or all of the right and/or left eigenvectors of
a complex upper triangular matrix T.
Matrices of this type are produced by the Schur
factorization of
a complex general matrix: A = Q*T*Q**H, as computed by
ZHSEQR.
The right
eigenvector x and the left eigenvector y of T corresponding
to an eigenvalue w are defined by:
T*x = w*x, (y**H)*T = w*(y**H)
where y**H
denotes the conjugate transpose of the vector y.
The eigenvalues are not input to this routine, but are read
directly
from the diagonal of T.
This routine
returns the matrices X and/or Y of right and left
eigenvectors of T, or the products Q*X and/or Q*Y, where Q
is an
input matrix. If Q is the unitary factor that reduces a
matrix A to
Schur form T, then Q*X and Q*Y are the matrices of right and
left
eigenvectors of A.
Parameters
SIDE
SIDE is
CHARACTER*1
= ’R’: compute right eigenvectors only;
= ’L’: compute left eigenvectors only;
= ’B’: compute both right and left
eigenvectors.
HOWMNY
HOWMNY is
CHARACTER*1
= ’A’: compute all right and/or left
eigenvectors;
= ’B’: compute all right and/or left
eigenvectors,
backtransformed using the matrices supplied in
VR and/or VL;
= ’S’: compute selected right and/or left
eigenvectors,
as indicated by the logical array SELECT.
SELECT
SELECT is
LOGICAL array, dimension (N)
If HOWMNY = ’S’, SELECT specifies the
eigenvectors to be
computed.
The eigenvector corresponding to the j-th eigenvalue is
computed if SELECT(j) = .TRUE..
Not referenced if HOWMNY = ’A’ or
’B’.
N
N is INTEGER
The order of the matrix T. N >= 0.
T
T is COMPLEX*16
array, dimension (LDT,N)
The upper triangular matrix T. T is modified, but restored
on exit.
LDT
LDT is INTEGER
The leading dimension of the array T. LDT >=
max(1,N).
VL
VL is
COMPLEX*16 array, dimension (LDVL,MM)
On entry, if SIDE = ’L’ or ’B’ and
HOWMNY = ’B’, VL must
contain an N-by-N matrix Q (usually the unitary matrix Q of
Schur vectors returned by ZHSEQR).
On exit, if SIDE = ’L’ or ’B’, VL
contains:
if HOWMNY = ’A’, the matrix Y of left
eigenvectors of T;
if HOWMNY = ’B’, the matrix Q*Y;
if HOWMNY = ’S’, the left eigenvectors of T
specified by
SELECT, stored consecutively in the columns
of VL, in the same order as their
eigenvalues.
Not referenced if SIDE = ’R’.
LDVL
LDVL is INTEGER
The leading dimension of the array VL. LDVL >= 1, and if
SIDE = ’L’ or ’B’, LDVL >= N.
VR
VR is
COMPLEX*16 array, dimension (LDVR,MM)
On entry, if SIDE = ’R’ or ’B’ and
HOWMNY = ’B’, VR must
contain an N-by-N matrix Q (usually the unitary matrix Q of
Schur vectors returned by ZHSEQR).
On exit, if SIDE = ’R’ or ’B’, VR
contains:
if HOWMNY = ’A’, the matrix X of right
eigenvectors of T;
if HOWMNY = ’B’, the matrix Q*X;
if HOWMNY = ’S’, the right eigenvectors of T
specified by
SELECT, stored consecutively in the columns
of VR, in the same order as their
eigenvalues.
Not referenced if SIDE = ’L’.
LDVR
LDVR is INTEGER
The leading dimension of the array VR. LDVR >= 1, and if
SIDE = ’R’ or ’B’; LDVR >= N.
MM
MM is INTEGER
The number of columns in the arrays VL and/or VR. MM >=
M.
M
M is INTEGER
The number of columns in the arrays VL and/or VR actually
used to store the eigenvectors. If HOWMNY = ’A’
or ’B’, M
is set to N. Each selected eigenvector occupies one
column.
WORK
WORK is COMPLEX*16 array, dimension (2*N)
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
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
The algorithm
used in this program is basically backward (forward)
substitution, with scaling to make the the code robust
against
possible overflow.
Each
eigenvector is normalized so that the element of largest
magnitude has magnitude 1; here the magnitude of a complex
number
(x,y) is taken to be |x| + |y|.
Author
Generated automatically by Doxygen for LAPACK from the source code.