Man page - stedc(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
stedc
NAMESYNOPSIS
Functions
Detailed Description
Function Documentation
subroutine cstedc (character compz, integer n, real, dimension( * ) d,real, dimension( * ) e, complex, dimension( ldz, * ) z, integer ldz,complex, dimension( * ) work, integer lwork, real, dimension( * )rwork, integer lrwork, integer, dimension( * ) iwork, integer liwork,integer info)
subroutine dstedc (character compz, integer n, double precision, dimension(* ) d, double precision, dimension( * ) e, double precision, dimension(ldz, * ) z, integer ldz, double precision, dimension( * ) work, integerlwork, integer, dimension( * ) iwork, integer liwork, integer info)
subroutine sstedc (character compz, integer n, real, dimension( * ) d,real, dimension( * ) e, real, dimension( ldz, * ) z, integer ldz, real,dimension( * ) work, integer lwork, integer, dimension( * ) iwork,integer liwork, integer info)
subroutine zstedc (character compz, integer n, double precision, dimension(* ) d, double precision, dimension( * ) e, complex*16, dimension( ldz,* ) z, integer ldz, complex*16, dimension( * ) work, integer lwork,double precision, dimension( * ) rwork, integer lrwork, integer,dimension( * ) iwork, integer liwork, integer info)
Author
NAME
stedc - stedc: eig, divide and conquer
SYNOPSIS
Functions
subroutine
cstedc
(compz, n, d, e, z, ldz, work, lwork, rwork,
lrwork, iwork, liwork, info)
CSTEDC
subroutine
dstedc
(compz, n, d, e, z, ldz, work,
lwork, iwork, liwork, info)
DSTEDC
subroutine
sstedc
(compz, n, d, e, z, ldz, work,
lwork, iwork, liwork, info)
SSTEDC
subroutine
zstedc
(compz, n, d, e, z, ldz, work,
lwork, rwork, lrwork, iwork, liwork, info)
ZSTEDC
Detailed Description
Function Documentation
subroutine cstedc (character compz, integer n, real, dimension( * ) d,real, dimension( * ) e, complex, dimension( ldz, * ) z, integer ldz,complex, dimension( * ) work, integer lwork, real, dimension( * )rwork, integer lrwork, integer, dimension( * ) iwork, integer liwork,integer info)
CSTEDC
Purpose:
CSTEDC computes
all eigenvalues and, optionally, eigenvectors of a
symmetric tridiagonal matrix using the divide and conquer
method.
The eigenvectors of a full or band complex Hermitian matrix
can also
be found if CHETRD or CHPTRD or CHBTRD has been used to
reduce this
matrix to tridiagonal form.
Parameters
COMPZ
COMPZ is
CHARACTER*1
= āNā: Compute eigenvalues only.
= āIā: Compute eigenvectors of tridiagonal
matrix also.
= āVā: Compute eigenvectors of original
Hermitian matrix
also. On entry, Z contains the unitary matrix used
to reduce the original matrix to tridiagonal form.
N
N is INTEGER
The dimension of the symmetric tridiagonal matrix. N >=
0.
D
D is REAL
array, dimension (N)
On entry, the diagonal elements of the tridiagonal matrix.
On exit, if INFO = 0, the eigenvalues in ascending
order.
E
E is REAL
array, dimension (N-1)
On entry, the subdiagonal elements of the tridiagonal
matrix.
On exit, E has been destroyed.
Z
Z is COMPLEX
array, dimension (LDZ,N)
On entry, if COMPZ = āVā, then Z contains the
unitary
matrix used in the reduction to tridiagonal form.
On exit, if INFO = 0, then if COMPZ = āVā, Z
contains the
orthonormal eigenvectors of the original Hermitian matrix,
and if COMPZ = āIā, Z contains the orthonormal
eigenvectors
of the symmetric tridiagonal matrix.
If COMPZ = āNā, then Z is not referenced.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1.
If eigenvectors are desired, then LDZ >= max(1,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.
If COMPZ = āNā or āIā, or N <= 1,
LWORK must be at least 1.
If COMPZ = āVā and N > 1, LWORK must be at
least N*N.
Note that for COMPZ = āVā, then if N is less
than or
equal to the minimum divide size, usually 25, then LWORK
need
only be 1.
If LWORK = -1,
then a workspace query is assumed; the routine
only calculates the optimal sizes of the WORK, RWORK and
IWORK arrays, returns these values as the first entries of
the WORK, RWORK and IWORK arrays, and no error message
related to LWORK or LRWORK or LIWORK is issued by
XERBLA.
RWORK
RWORK is REAL
array, dimension (MAX(1,LRWORK))
On exit, if INFO = 0, RWORK(1) returns the optimal
LRWORK.
LRWORK
LRWORK is
INTEGER
The dimension of the array RWORK.
If COMPZ = āNā or N <= 1, LRWORK must be at
least 1.
If COMPZ = āVā and N > 1, LRWORK must be at
least
1 + 3*N + 2*N*lg N + 4*N**2 ,
where lg( N ) = smallest integer k such
that 2**k >= N.
If COMPZ = āIā and N > 1, LRWORK must be at
least
1 + 4*N + 2*N**2 .
Note that for COMPZ = āIā or āVā,
then if N is less than or
equal to the minimum divide size, usually 25, then LRWORK
need only be max(1,2*(N-1)).
If LRWORK = -1,
then a workspace query is assumed; the
routine only calculates the optimal sizes of the WORK, RWORK
and IWORK arrays, returns these values as the first entries
of the WORK, RWORK and IWORK arrays, and no error message
related to LWORK or LRWORK or LIWORK is issued by
XERBLA.
IWORK
IWORK is
INTEGER array, dimension (MAX(1,LIWORK))
On exit, if INFO = 0, IWORK(1) returns the optimal
LIWORK.
LIWORK
LIWORK is
INTEGER
The dimension of the array IWORK.
If COMPZ = āNā or N <= 1, LIWORK must be at
least 1.
If COMPZ = āVā or N > 1, LIWORK must be at
least
6 + 6*N + 5*N*lg N.
If COMPZ = āIā or N > 1, LIWORK must be at
least
3 + 5*N .
Note that for COMPZ = āIā or āVā,
then if N is less than or
equal to the minimum divide size, usually 25, then LIWORK
need only be 1.
If LIWORK = -1,
then a workspace query is assumed; the
routine only calculates the optimal sizes of the WORK, RWORK
and IWORK arrays, returns these values as the first entries
of the WORK, RWORK and IWORK arrays, and no error message
related to LWORK or LRWORK or LIWORK is issued by
XERBLA.
INFO
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal
value.
> 0: The algorithm failed to compute an eigenvalue while
working on the submatrix lying in rows and columns
INFO/(N+1) through mod(INFO,N+1).
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
Jeff Rutter, Computer Science Division, University of California at Berkeley, USA
subroutine dstedc (character compz, integer n, double precision, dimension(* ) d, double precision, dimension( * ) e, double precision, dimension(ldz, * ) z, integer ldz, double precision, dimension( * ) work, integerlwork, integer, dimension( * ) iwork, integer liwork, integer info)
DSTEDC
Purpose:
DSTEDC computes
all eigenvalues and, optionally, eigenvectors of a
symmetric tridiagonal matrix using the divide and conquer
method.
The eigenvectors of a full or band real symmetric matrix can
also be
found if DSYTRD or DSPTRD or DSBTRD has been used to reduce
this
matrix to tridiagonal form.
Parameters
COMPZ
COMPZ is
CHARACTER*1
= āNā: Compute eigenvalues only.
= āIā: Compute eigenvectors of tridiagonal
matrix also.
= āVā: Compute eigenvectors of original dense
symmetric
matrix also. On entry, Z contains the orthogonal
matrix used to reduce the original matrix to
tridiagonal form.
N
N is INTEGER
The dimension of the symmetric tridiagonal matrix. N >=
0.
D
D is DOUBLE
PRECISION array, dimension (N)
On entry, the diagonal elements of the tridiagonal matrix.
On exit, if INFO = 0, the eigenvalues in ascending
order.
E
E is DOUBLE
PRECISION array, dimension (N-1)
On entry, the subdiagonal elements of the tridiagonal
matrix.
On exit, E has been destroyed.
Z
Z is DOUBLE
PRECISION array, dimension (LDZ,N)
On entry, if COMPZ = āVā, then Z contains the
orthogonal
matrix used in the reduction to tridiagonal form.
On exit, if INFO = 0, then if COMPZ = āVā, Z
contains the
orthonormal eigenvectors of the original symmetric matrix,
and if COMPZ = āIā, Z contains the orthonormal
eigenvectors
of the symmetric tridiagonal matrix.
If COMPZ = āNā, then Z is not referenced.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1.
If eigenvectors are desired, then LDZ >= max(1,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.
If COMPZ = āNā or N <= 1 then LWORK must be
at least 1.
If COMPZ = āVā and N > 1 then LWORK must be
at least
( 1 + 3*N + 2*N*lg N + 4*N**2 ),
where lg( N ) = smallest integer k such
that 2**k >= N.
If COMPZ = āIā and N > 1 then LWORK must be
at least
( 1 + 4*N + N**2 ).
Note that for COMPZ = āIā or āVā,
then if N is less than or
equal to the minimum divide size, usually 25, then LWORK
need
only be max(1,2*(N-1)).
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.
IWORK
IWORK is
INTEGER array, dimension (MAX(1,LIWORK))
On exit, if INFO = 0, IWORK(1) returns the optimal
LIWORK.
LIWORK
LIWORK is
INTEGER
The dimension of the array IWORK.
If COMPZ = āNā or N <= 1 then LIWORK must be
at least 1.
If COMPZ = āVā and N > 1 then LIWORK must be
at least
( 6 + 6*N + 5*N*lg N ).
If COMPZ = āIā and N > 1 then LIWORK must be
at least
( 3 + 5*N ).
Note that for COMPZ = āIā or āVā,
then if N is less than or
equal to the minimum divide size, usually 25, then LIWORK
need only be 1.
If LIWORK = -1,
then a workspace query is assumed; the
routine only calculates the optimal size of the IWORK array,
returns this value as the first entry of the IWORK array,
and
no error message related to LIWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal
value.
> 0: The algorithm failed to compute an eigenvalue while
working on the submatrix lying in rows and columns
INFO/(N+1) through mod(INFO,N+1).
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
Jeff Rutter, Computer Science
Division, University of California at Berkeley, USA
Modified by Francoise Tisseur, University of Tennessee
subroutine sstedc (character compz, integer n, real, dimension( * ) d,real, dimension( * ) e, real, dimension( ldz, * ) z, integer ldz, real,dimension( * ) work, integer lwork, integer, dimension( * ) iwork,integer liwork, integer info)
SSTEDC
Purpose:
SSTEDC computes
all eigenvalues and, optionally, eigenvectors of a
symmetric tridiagonal matrix using the divide and conquer
method.
The eigenvectors of a full or band real symmetric matrix can
also be
found if SSYTRD or SSPTRD or SSBTRD has been used to reduce
this
matrix to tridiagonal form.
Parameters
COMPZ
COMPZ is
CHARACTER*1
= āNā: Compute eigenvalues only.
= āIā: Compute eigenvectors of tridiagonal
matrix also.
= āVā: Compute eigenvectors of original dense
symmetric
matrix also. On entry, Z contains the orthogonal
matrix used to reduce the original matrix to
tridiagonal form.
N
N is INTEGER
The dimension of the symmetric tridiagonal matrix. N >=
0.
D
D is REAL
array, dimension (N)
On entry, the diagonal elements of the tridiagonal matrix.
On exit, if INFO = 0, the eigenvalues in ascending
order.
E
E is REAL
array, dimension (N-1)
On entry, the subdiagonal elements of the tridiagonal
matrix.
On exit, E has been destroyed.
Z
Z is REAL
array, dimension (LDZ,N)
On entry, if COMPZ = āVā, then Z contains the
orthogonal
matrix used in the reduction to tridiagonal form.
On exit, if INFO = 0, then if COMPZ = āVā, Z
contains the
orthonormal eigenvectors of the original symmetric matrix,
and if COMPZ = āIā, Z contains the orthonormal
eigenvectors
of the symmetric tridiagonal matrix.
If COMPZ = āNā, then Z is not referenced.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1.
If eigenvectors are desired, then LDZ >= max(1,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.
If COMPZ = āNā or N <= 1 then LWORK must be
at least 1.
If COMPZ = āVā and N > 1 then LWORK must be
at least
( 1 + 3*N + 2*N*lg N + 4*N**2 ),
where lg( N ) = smallest integer k such
that 2**k >= N.
If COMPZ = āIā and N > 1 then LWORK must be
at least
( 1 + 4*N + N**2 ).
Note that for COMPZ = āIā or āVā,
then if N is less than or
equal to the minimum divide size, usually 25, then LWORK
need
only be max(1,2*(N-1)).
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.
IWORK
IWORK is
INTEGER array, dimension (MAX(1,LIWORK))
On exit, if INFO = 0, IWORK(1) returns the optimal
LIWORK.
LIWORK
LIWORK is
INTEGER
The dimension of the array IWORK.
If COMPZ = āNā or N <= 1 then LIWORK must be
at least 1.
If COMPZ = āVā and N > 1 then LIWORK must be
at least
( 6 + 6*N + 5*N*lg N ).
If COMPZ = āIā and N > 1 then LIWORK must be
at least
( 3 + 5*N ).
Note that for COMPZ = āIā or āVā,
then if N is less than or
equal to the minimum divide size, usually 25, then LIWORK
need only be 1.
If LIWORK = -1,
then a workspace query is assumed; the
routine only calculates the optimal size of the IWORK array,
returns this value as the first entry of the IWORK array,
and
no error message related to LIWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal
value.
> 0: The algorithm failed to compute an eigenvalue while
working on the submatrix lying in rows and columns
INFO/(N+1) through mod(INFO,N+1).
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
Jeff Rutter, Computer Science
Division, University of California at Berkeley, USA
Modified by Francoise Tisseur, University of Tennessee
subroutine zstedc (character compz, integer n, double precision, dimension(* ) d, double precision, dimension( * ) e, complex*16, dimension( ldz,* ) z, integer ldz, complex*16, dimension( * ) work, integer lwork,double precision, dimension( * ) rwork, integer lrwork, integer,dimension( * ) iwork, integer liwork, integer info)
ZSTEDC
Purpose:
ZSTEDC computes
all eigenvalues and, optionally, eigenvectors of a
symmetric tridiagonal matrix using the divide and conquer
method.
The eigenvectors of a full or band complex Hermitian matrix
can also
be found if ZHETRD or ZHPTRD or ZHBTRD has been used to
reduce this
matrix to tridiagonal form.
Parameters
COMPZ
COMPZ is
CHARACTER*1
= āNā: Compute eigenvalues only.
= āIā: Compute eigenvectors of tridiagonal
matrix also.
= āVā: Compute eigenvectors of original
Hermitian matrix
also. On entry, Z contains the unitary matrix used
to reduce the original matrix to tridiagonal form.
N
N is INTEGER
The dimension of the symmetric tridiagonal matrix. N >=
0.
D
D is DOUBLE
PRECISION array, dimension (N)
On entry, the diagonal elements of the tridiagonal matrix.
On exit, if INFO = 0, the eigenvalues in ascending
order.
E
E is DOUBLE
PRECISION array, dimension (N-1)
On entry, the subdiagonal elements of the tridiagonal
matrix.
On exit, E has been destroyed.
Z
Z is COMPLEX*16
array, dimension (LDZ,N)
On entry, if COMPZ = āVā, then Z contains the
unitary
matrix used in the reduction to tridiagonal form.
On exit, if INFO = 0, then if COMPZ = āVā, Z
contains the
orthonormal eigenvectors of the original Hermitian matrix,
and if COMPZ = āIā, Z contains the orthonormal
eigenvectors
of the symmetric tridiagonal matrix.
If COMPZ = āNā, then Z is not referenced.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1.
If eigenvectors are desired, then LDZ >= max(1,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.
If COMPZ = āNā or āIā, or N <= 1,
LWORK must be at least 1.
If COMPZ = āVā and N > 1, LWORK must be at
least N*N.
Note that for COMPZ = āVā, then if N is less
than or
equal to the minimum divide size, usually 25, then LWORK
need
only be 1.
If LWORK = -1,
then a workspace query is assumed; the routine
only calculates the optimal sizes of the WORK, RWORK and
IWORK arrays, returns these values as the first entries of
the WORK, RWORK and IWORK arrays, and no error message
related to LWORK or LRWORK or LIWORK is issued by
XERBLA.
RWORK
RWORK is DOUBLE
PRECISION array, dimension (MAX(1,LRWORK))
On exit, if INFO = 0, RWORK(1) returns the optimal
LRWORK.
LRWORK
LRWORK is
INTEGER
The dimension of the array RWORK.
If COMPZ = āNā or N <= 1, LRWORK must be at
least 1.
If COMPZ = āVā and N > 1, LRWORK must be at
least
1 + 3*N + 2*N*lg N + 4*N**2 ,
where lg( N ) = smallest integer k such
that 2**k >= N.
If COMPZ = āIā and N > 1, LRWORK must be at
least
1 + 4*N + 2*N**2 .
Note that for COMPZ = āIā or āVā,
then if N is less than or
equal to the minimum divide size, usually 25, then LRWORK
need only be max(1,2*(N-1)).
If LRWORK = -1,
then a workspace query is assumed; the
routine only calculates the optimal sizes of the WORK, RWORK
and IWORK arrays, returns these values as the first entries
of the WORK, RWORK and IWORK arrays, and no error message
related to LWORK or LRWORK or LIWORK is issued by
XERBLA.
IWORK
IWORK is
INTEGER array, dimension (MAX(1,LIWORK))
On exit, if INFO = 0, IWORK(1) returns the optimal
LIWORK.
LIWORK
LIWORK is
INTEGER
The dimension of the array IWORK.
If COMPZ = āNā or N <= 1, LIWORK must be at
least 1.
If COMPZ = āVā or N > 1, LIWORK must be at
least
6 + 6*N + 5*N*lg N.
If COMPZ = āIā or N > 1, LIWORK must be at
least
3 + 5*N .
Note that for COMPZ = āIā or āVā,
then if N is less than or
equal to the minimum divide size, usually 25, then LIWORK
need only be 1.
If LIWORK = -1,
then a workspace query is assumed; the
routine only calculates the optimal sizes of the WORK, RWORK
and IWORK arrays, returns these values as the first entries
of the WORK, RWORK and IWORK arrays, and no error message
related to LWORK or LRWORK or LIWORK is issued by
XERBLA.
INFO
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal
value.
> 0: The algorithm failed to compute an eigenvalue while
working on the submatrix lying in rows and columns
INFO/(N+1) through mod(INFO,N+1).
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
Jeff Rutter, Computer Science Division, University of California at Berkeley, USA
Author
Generated automatically by Doxygen for LAPACK from the source code.