Man page - hbevx_2stage(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
hbevx_2stage
NAMESYNOPSIS
Functions
Detailed Description
Function Documentation
subroutine chbevx_2stage (character jobz, character range, character uplo,integer n, integer kd, complex, dimension( ldab, * ) ab, integer ldab,complex, dimension( ldq, * ) q, integer ldq, real vl, real vu, integeril, integer iu, real abstol, integer m, real, dimension( * ) w,complex, dimension( ldz, * ) z, integer ldz, complex, dimension( * )work, integer lwork, real, dimension( * ) rwork, integer, dimension( *) iwork, integer, dimension( * ) ifail, integer info)
subroutine dsbevx_2stage (character jobz, character range, character uplo,integer n, integer kd, double precision, dimension( ldab, * ) ab,integer ldab, double precision, dimension( ldq, * ) q, integer ldq,double precision vl, double precision vu, integer il, integer iu,double precision abstol, integer m, double precision, dimension( * ) w,double precision, dimension( ldz, * ) z, integer ldz, double precision,dimension( * ) work, integer lwork, integer, dimension( * ) iwork,integer, dimension( * ) ifail, integer info)
subroutine ssbevx_2stage (character jobz, character range, character uplo,integer n, integer kd, real, dimension( ldab, * ) ab, integer ldab,real, dimension( ldq, * ) q, integer ldq, real vl, real vu, integer il,integer iu, real abstol, integer m, real, dimension( * ) w, real,dimension( ldz, * ) z, integer ldz, real, dimension( * ) work, integerlwork, integer, dimension( * ) iwork, integer, dimension( * ) ifail,integer info)
subroutine zhbevx_2stage (character jobz, character range, character uplo,integer n, integer kd, complex*16, dimension( ldab, * ) ab, integerldab, complex*16, dimension( ldq, * ) q, integer ldq, double precisionvl, double precision vu, integer il, integer iu, double precisionabstol, integer m, double precision, dimension( * ) w, complex*16,dimension( ldz, * ) z, integer ldz, complex*16, dimension( * ) work,integer lwork, double precision, dimension( * ) rwork, integer,dimension( * ) iwork, integer, dimension( * ) ifail, integer info)
Author
NAME
hbevx_2stage - {hb,sb}evx_2stage: eig, bisection
SYNOPSIS
Functions
subroutine
chbevx_2stage
(jobz, range, uplo, n, kd, ab, ldab, q,
ldq, vl, vu, il, iu, abstol, m, w, z, ldz, work, lwork,
rwork, iwork, ifail, info)
CHBEVX_2STAGE computes the eigenvalues and, optionally, the
left and/or right eigenvectors for OTHER matrices
subroutine
dsbevx_2stage
(jobz, range, uplo, n, kd,
ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz,
work, lwork, iwork, ifail, info)
DSBEVX_2STAGE computes the eigenvalues and, optionally, the
left and/or right eigenvectors for OTHER matrices
subroutine
ssbevx_2stage
(jobz, range, uplo, n, kd,
ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz,
work, lwork, iwork, ifail, info)
SSBEVX_2STAGE computes the eigenvalues and, optionally, the
left and/or right eigenvectors for OTHER matrices
subroutine
zhbevx_2stage
(jobz, range, uplo, n, kd,
ab, ldab, q, ldq, vl, vu, il, iu, abstol, m, w, z, ldz,
work, lwork, rwork, iwork, ifail, info)
ZHBEVX_2STAGE computes the eigenvalues and, optionally, the
left and/or right eigenvectors for OTHER matrices
Detailed Description
Function Documentation
subroutine chbevx_2stage (character jobz, character range, character uplo,integer n, integer kd, complex, dimension( ldab, * ) ab, integer ldab,complex, dimension( ldq, * ) q, integer ldq, real vl, real vu, integeril, integer iu, real abstol, integer m, real, dimension( * ) w,complex, dimension( ldz, * ) z, integer ldz, complex, dimension( * )work, integer lwork, real, dimension( * ) rwork, integer, dimension( *) iwork, integer, dimension( * ) ifail, integer info)
CHBEVX_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
Purpose:
CHBEVX_2STAGE
computes selected eigenvalues and, optionally, eigenvectors
of a complex Hermitian band matrix A using the 2stage
technique for
the reduction to tridiagonal. Eigenvalues and eigenvectors
can be selected by specifying either a range of values or a
range of
indices for the desired eigenvalues.
Parameters
JOBZ
JOBZ is
CHARACTER*1
= βNβ: Compute eigenvalues only;
= βVβ: Compute eigenvalues and eigenvectors.
Not available in this release.
RANGE
RANGE is
CHARACTER*1
= βAβ: all eigenvalues will be found;
= βVβ: all eigenvalues in the half-open interval
(VL,VU]
will be found;
= βIβ: the IL-th through IU-th eigenvalues will
be found.
UPLO
UPLO is
CHARACTER*1
= βUβ: Upper triangle of A is stored;
= βLβ: Lower triangle of A is stored.
N
N is INTEGER
The order of the matrix A. N >= 0.
KD
KD is INTEGER
The number of superdiagonals of the matrix A if UPLO =
βUβ,
or the number of subdiagonals if UPLO = βLβ. KD
>= 0.
AB
AB is COMPLEX
array, dimension (LDAB, N)
On entry, the upper or lower triangle of the Hermitian band
matrix A, stored in the first KD+1 rows of the array. The
j-th column of A is stored in the j-th column of the array
AB
as follows:
if UPLO = βUβ, AB(kd+1+i-j,j) = A(i,j) for
max(1,j-kd)<=i<=j;
if UPLO = βLβ, AB(1+i-j,j) = A(i,j) for
j<=i<=min(n,j+kd).
On exit, AB is
overwritten by values generated during the
reduction to tridiagonal form.
LDAB
LDAB is INTEGER
The leading dimension of the array AB. LDAB >= KD +
1.
Q
Q is COMPLEX
array, dimension (LDQ, N)
If JOBZ = βVβ, the N-by-N unitary matrix used in
the
reduction to tridiagonal form.
If JOBZ = βNβ, the array Q is not
referenced.
LDQ
LDQ is INTEGER
The leading dimension of the array Q. If JOBZ =
βVβ, then
LDQ >= max(1,N).
VL
VL is REAL
If RANGE=βVβ, the lower bound of the interval to
be searched for eigenvalues. VL < VU.
Not referenced if RANGE = βAβ or
βIβ.
VU
VU is REAL
If RANGE=βVβ, the upper bound of the interval to
be searched for eigenvalues. VL < VU.
Not referenced if RANGE = βAβ or
βIβ.
IL
IL is INTEGER
If RANGE=βIβ, the index of the
smallest eigenvalue to be returned.
1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0
if N = 0.
Not referenced if RANGE = βAβ or
βVβ.
IU
IU is INTEGER
If RANGE=βIβ, the index of the
largest eigenvalue to be returned.
1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0
if N = 0.
Not referenced if RANGE = βAβ or
βVβ.
ABSTOL
ABSTOL is REAL
The absolute error tolerance for the eigenvalues.
An approximate eigenvalue is accepted as converged
when it is determined to lie in an interval [a,b]
of width less than or equal to
ABSTOL + EPS * max( |a|,|b| ) ,
where EPS is
the machine precision. If ABSTOL is less than
or equal to zero, then EPS*|T| will be used in its place,
where |T| is the 1-norm of the tridiagonal matrix obtained
by reducing AB to tridiagonal form.
Eigenvalues
will be computed most accurately when ABSTOL is
set to twice the underflow threshold
2*SLAMCH(βSβ), not zero.
If this routine returns with INFO>0, indicating that some
eigenvectors did not converge, try setting ABSTOL to
2*SLAMCH(βSβ).
See
βComputing Small Singular Values of Bidiagonal
Matrices
with Guaranteed High Relative Accuracy,β by Demmel and
Kahan, LAPACK Working Note #3.
M
M is INTEGER
The total number of eigenvalues found. 0 <= M <= N.
If RANGE = βAβ, M = N, and if RANGE =
βIβ, M = IU-IL+1.
W
W is REAL
array, dimension (N)
The first M elements contain the selected eigenvalues in
ascending order.
Z
Z is COMPLEX
array, dimension (LDZ, max(1,M))
If JOBZ = βVβ, then if INFO = 0, the first M
columns of Z
contain the orthonormal eigenvectors of the matrix A
corresponding to the selected eigenvalues, with the i-th
column of Z holding the eigenvector associated with W(i).
If an eigenvector fails to converge, then that column of Z
contains the latest approximation to the eigenvector, and
the
index of the eigenvector is returned in IFAIL.
If JOBZ = βNβ, then Z is not referenced.
Note: the user must ensure that at least max(1,M) columns
are
supplied in the array Z; if RANGE = βVβ, the
exact value of M
is not known in advance and an upper bound must be used.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1, and if
JOBZ = βVβ, LDZ >= max(1,N).
WORK
WORK is COMPLEX array, dimension (LWORK)
LWORK
LWORK is
INTEGER
The length of the array WORK. LWORK >= 1, when N <= 1;
otherwise
If JOBZ = βNβ and N > 1, LWORK must be
queried.
LWORK = MAX(1, dimension) where
dimension = (2KD+1)*N + KD*NTHREADS
where KD is the size of the band.
NTHREADS is the number of threads used when
openMP compilation is enabled, otherwise =1.
If JOBZ = βVβ and N > 1, LWORK must be
queried. Not yet available.
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 (7*N)
IWORK
IWORK is INTEGER array, dimension (5*N)
IFAIL
IFAIL is
INTEGER array, dimension (N)
If JOBZ = βVβ, then if INFO = 0, the first M
elements of
IFAIL are zero. If INFO > 0, then IFAIL contains the
indices of the eigenvectors that failed to converge.
If JOBZ = βNβ, then IFAIL is not referenced.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, then i eigenvectors failed to converge.
Their indices are stored in array IFAIL.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
All details about the 2stage techniques are available in:
Azzam Haidar,
Hatem Ltaief, and Jack Dongarra.
Parallel reduction to condensed forms for symmetric
eigenvalue problems
using aggregated fine-grained and memory-aware kernels. In
Proceedings
of 2011 International Conference for High Performance
Computing,
Networking, Storage and Analysis (SC β11), New York,
NY, USA,
Article 8 , 11 pages.
http://doi.acm.org/10.1145/2063384.2063394
A. Haidar, J.
Kurzak, P. Luszczek, 2013.
An improved parallel singular value algorithm and its
implementation
for multicore hardware, In Proceedings of 2013 International
Conference
for High Performance Computing, Networking, Storage and
Analysis (SC β13).
Denver, Colorado, USA, 2013.
Article 90, 12 pages.
http://doi.acm.org/10.1145/2503210.2503292
A. Haidar, R.
Solca, S. Tomov, T. Schulthess and J. Dongarra.
A novel hybrid CPU-GPU generalized eigensolver for
electronic structure
calculations based on fine-grained memory aware tasks.
International Journal of High Performance Computing
Applications.
Volume 28 Issue 2, Pages 196-209, May 2014.
http://hpc.sagepub.com/content/28/2/196
subroutine dsbevx_2stage (character jobz, character range, character uplo,integer n, integer kd, double precision, dimension( ldab, * ) ab,integer ldab, double precision, dimension( ldq, * ) q, integer ldq,double precision vl, double precision vu, integer il, integer iu,double precision abstol, integer m, double precision, dimension( * ) w,double precision, dimension( ldz, * ) z, integer ldz, double precision,dimension( * ) work, integer lwork, integer, dimension( * ) iwork,integer, dimension( * ) ifail, integer info)
DSBEVX_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
Purpose:
DSBEVX_2STAGE
computes selected eigenvalues and, optionally, eigenvectors
of a real symmetric band matrix A using the 2stage technique
for
the reduction to tridiagonal. Eigenvalues and eigenvectors
can
be selected by specifying either a range of values or a
range of
indices for the desired eigenvalues.
Parameters
JOBZ
JOBZ is
CHARACTER*1
= βNβ: Compute eigenvalues only;
= βVβ: Compute eigenvalues and eigenvectors.
Not available in this release.
RANGE
RANGE is
CHARACTER*1
= βAβ: all eigenvalues will be found;
= βVβ: all eigenvalues in the half-open interval
(VL,VU]
will be found;
= βIβ: the IL-th through IU-th eigenvalues will
be found.
UPLO
UPLO is
CHARACTER*1
= βUβ: Upper triangle of A is stored;
= βLβ: Lower triangle of A is stored.
N
N is INTEGER
The order of the matrix A. N >= 0.
KD
KD is INTEGER
The number of superdiagonals of the matrix A if UPLO =
βUβ,
or the number of subdiagonals if UPLO = βLβ. KD
>= 0.
AB
AB is DOUBLE
PRECISION array, dimension (LDAB, N)
On entry, the upper or lower triangle of the symmetric band
matrix A, stored in the first KD+1 rows of the array. The
j-th column of A is stored in the j-th column of the array
AB
as follows:
if UPLO = βUβ, AB(kd+1+i-j,j) = A(i,j) for
max(1,j-kd)<=i<=j;
if UPLO = βLβ, AB(1+i-j,j) = A(i,j) for
j<=i<=min(n,j+kd).
On exit, AB is
overwritten by values generated during the
reduction to tridiagonal form. If UPLO = βUβ,
the first
superdiagonal and the diagonal of the tridiagonal matrix T
are returned in rows KD and KD+1 of AB, and if UPLO =
βLβ,
the diagonal and first subdiagonal of T are returned in the
first two rows of AB.
LDAB
LDAB is INTEGER
The leading dimension of the array AB. LDAB >= KD +
1.
Q
Q is DOUBLE
PRECISION array, dimension (LDQ, N)
If JOBZ = βVβ, the N-by-N orthogonal matrix used
in the
reduction to tridiagonal form.
If JOBZ = βNβ, the array Q is not
referenced.
LDQ
LDQ is INTEGER
The leading dimension of the array Q. If JOBZ =
βVβ, then
LDQ >= max(1,N).
VL
VL is DOUBLE
PRECISION
If RANGE=βVβ, the lower bound of the interval to
be searched for eigenvalues. VL < VU.
Not referenced if RANGE = βAβ or
βIβ.
VU
VU is DOUBLE
PRECISION
If RANGE=βVβ, the upper bound of the interval to
be searched for eigenvalues. VL < VU.
Not referenced if RANGE = βAβ or
βIβ.
IL
IL is INTEGER
If RANGE=βIβ, the index of the
smallest eigenvalue to be returned.
1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0
if N = 0.
Not referenced if RANGE = βAβ or
βVβ.
IU
IU is INTEGER
If RANGE=βIβ, the index of the
largest eigenvalue to be returned.
1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0
if N = 0.
Not referenced if RANGE = βAβ or
βVβ.
ABSTOL
ABSTOL is
DOUBLE PRECISION
The absolute error tolerance for the eigenvalues.
An approximate eigenvalue is accepted as converged
when it is determined to lie in an interval [a,b]
of width less than or equal to
ABSTOL + EPS * max( |a|,|b| ) ,
where EPS is
the machine precision. If ABSTOL is less than
or equal to zero, then EPS*|T| will be used in its place,
where |T| is the 1-norm of the tridiagonal matrix obtained
by reducing AB to tridiagonal form.
Eigenvalues
will be computed most accurately when ABSTOL is
set to twice the underflow threshold
2*DLAMCH(βSβ), not zero.
If this routine returns with INFO>0, indicating that some
eigenvectors did not converge, try setting ABSTOL to
2*DLAMCH(βSβ).
See
βComputing Small Singular Values of Bidiagonal
Matrices
with Guaranteed High Relative Accuracy,β by Demmel and
Kahan, LAPACK Working Note #3.
M
M is INTEGER
The total number of eigenvalues found. 0 <= M <= N.
If RANGE = βAβ, M = N, and if RANGE =
βIβ, M = IU-IL+1.
W
W is DOUBLE
PRECISION array, dimension (N)
The first M elements contain the selected eigenvalues in
ascending order.
Z
Z is DOUBLE
PRECISION array, dimension (LDZ, max(1,M))
If JOBZ = βVβ, then if INFO = 0, the first M
columns of Z
contain the orthonormal eigenvectors of the matrix A
corresponding to the selected eigenvalues, with the i-th
column of Z holding the eigenvector associated with W(i).
If an eigenvector fails to converge, then that column of Z
contains the latest approximation to the eigenvector, and
the
index of the eigenvector is returned in IFAIL.
If JOBZ = βNβ, then Z is not referenced.
Note: the user must ensure that at least max(1,M) columns
are
supplied in the array Z; if RANGE = βVβ, the
exact value of M
is not known in advance and an upper bound must be used.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1, and if
JOBZ = βVβ, LDZ >= max(1,N).
WORK
WORK is DOUBLE PRECISION array, dimension (LWORK)
LWORK
LWORK is
INTEGER
The length of the array WORK. LWORK >= 1, when N <= 1;
otherwise
If JOBZ = βNβ and N > 1, LWORK must be
queried.
LWORK = MAX(1, 7*N, dimension) where
dimension = (2KD+1)*N + KD*NTHREADS + 2*N
where KD is the size of the band.
NTHREADS is the number of threads used when
openMP compilation is enabled, otherwise =1.
If JOBZ = βVβ and N > 1, LWORK must be
queried. Not yet available
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 (5*N)
IFAIL
IFAIL is
INTEGER array, dimension (N)
If JOBZ = βVβ, then if INFO = 0, the first M
elements of
IFAIL are zero. If INFO > 0, then IFAIL contains the
indices of the eigenvectors that failed to converge.
If JOBZ = βNβ, then IFAIL is not referenced.
INFO
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal
value.
> 0: if INFO = i, then i eigenvectors failed to converge.
Their indices are stored in array IFAIL.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
All details about the 2stage techniques are available in:
Azzam Haidar,
Hatem Ltaief, and Jack Dongarra.
Parallel reduction to condensed forms for symmetric
eigenvalue problems
using aggregated fine-grained and memory-aware kernels. In
Proceedings
of 2011 International Conference for High Performance
Computing,
Networking, Storage and Analysis (SC β11), New York,
NY, USA,
Article 8 , 11 pages.
http://doi.acm.org/10.1145/2063384.2063394
A. Haidar, J.
Kurzak, P. Luszczek, 2013.
An improved parallel singular value algorithm and its
implementation
for multicore hardware, In Proceedings of 2013 International
Conference
for High Performance Computing, Networking, Storage and
Analysis (SC β13).
Denver, Colorado, USA, 2013.
Article 90, 12 pages.
http://doi.acm.org/10.1145/2503210.2503292
A. Haidar, R.
Solca, S. Tomov, T. Schulthess and J. Dongarra.
A novel hybrid CPU-GPU generalized eigensolver for
electronic structure
calculations based on fine-grained memory aware tasks.
International Journal of High Performance Computing
Applications.
Volume 28 Issue 2, Pages 196-209, May 2014.
http://hpc.sagepub.com/content/28/2/196
subroutine ssbevx_2stage (character jobz, character range, character uplo,integer n, integer kd, real, dimension( ldab, * ) ab, integer ldab,real, dimension( ldq, * ) q, integer ldq, real vl, real vu, integer il,integer iu, real abstol, integer m, real, dimension( * ) w, real,dimension( ldz, * ) z, integer ldz, real, dimension( * ) work, integerlwork, integer, dimension( * ) iwork, integer, dimension( * ) ifail,integer info)
SSBEVX_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
Purpose:
SSBEVX_2STAGE
computes selected eigenvalues and, optionally, eigenvectors
of a real symmetric band matrix A using the 2stage technique
for
the reduction to tridiagonal. Eigenvalues and eigenvectors
can
be selected by specifying either a range of values or a
range of
indices for the desired eigenvalues.
Parameters
JOBZ
JOBZ is
CHARACTER*1
= βNβ: Compute eigenvalues only;
= βVβ: Compute eigenvalues and eigenvectors.
Not available in this release.
RANGE
RANGE is
CHARACTER*1
= βAβ: all eigenvalues will be found;
= βVβ: all eigenvalues in the half-open interval
(VL,VU]
will be found;
= βIβ: the IL-th through IU-th eigenvalues will
be found.
UPLO
UPLO is
CHARACTER*1
= βUβ: Upper triangle of A is stored;
= βLβ: Lower triangle of A is stored.
N
N is INTEGER
The order of the matrix A. N >= 0.
KD
KD is INTEGER
The number of superdiagonals of the matrix A if UPLO =
βUβ,
or the number of subdiagonals if UPLO = βLβ. KD
>= 0.
AB
AB is REAL
array, dimension (LDAB, N)
On entry, the upper or lower triangle of the symmetric band
matrix A, stored in the first KD+1 rows of the array. The
j-th column of A is stored in the j-th column of the array
AB
as follows:
if UPLO = βUβ, AB(kd+1+i-j,j) = A(i,j) for
max(1,j-kd)<=i<=j;
if UPLO = βLβ, AB(1+i-j,j) = A(i,j) for
j<=i<=min(n,j+kd).
On exit, AB is
overwritten by values generated during the
reduction to tridiagonal form. If UPLO = βUβ,
the first
superdiagonal and the diagonal of the tridiagonal matrix T
are returned in rows KD and KD+1 of AB, and if UPLO =
βLβ,
the diagonal and first subdiagonal of T are returned in the
first two rows of AB.
LDAB
LDAB is INTEGER
The leading dimension of the array AB. LDAB >= KD +
1.
Q
Q is REAL
array, dimension (LDQ, N)
If JOBZ = βVβ, the N-by-N orthogonal matrix used
in the
reduction to tridiagonal form.
If JOBZ = βNβ, the array Q is not
referenced.
LDQ
LDQ is INTEGER
The leading dimension of the array Q. If JOBZ =
βVβ, then
LDQ >= max(1,N).
VL
VL is REAL
If RANGE=βVβ, the lower bound of the interval to
be searched for eigenvalues. VL < VU.
Not referenced if RANGE = βAβ or
βIβ.
VU
VU is REAL
If RANGE=βVβ, the upper bound of the interval to
be searched for eigenvalues. VL < VU.
Not referenced if RANGE = βAβ or
βIβ.
IL
IL is INTEGER
If RANGE=βIβ, the index of the
smallest eigenvalue to be returned.
1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0
if N = 0.
Not referenced if RANGE = βAβ or
βVβ.
IU
IU is INTEGER
If RANGE=βIβ, the index of the
largest eigenvalue to be returned.
1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0
if N = 0.
Not referenced if RANGE = βAβ or
βVβ.
ABSTOL
ABSTOL is REAL
The absolute error tolerance for the eigenvalues.
An approximate eigenvalue is accepted as converged
when it is determined to lie in an interval [a,b]
of width less than or equal to
ABSTOL + EPS * max( |a|,|b| ) ,
where EPS is
the machine precision. If ABSTOL is less than
or equal to zero, then EPS*|T| will be used in its place,
where |T| is the 1-norm of the tridiagonal matrix obtained
by reducing AB to tridiagonal form.
Eigenvalues
will be computed most accurately when ABSTOL is
set to twice the underflow threshold
2*SLAMCH(βSβ), not zero.
If this routine returns with INFO>0, indicating that some
eigenvectors did not converge, try setting ABSTOL to
2*SLAMCH(βSβ).
See
βComputing Small Singular Values of Bidiagonal
Matrices
with Guaranteed High Relative Accuracy,β by Demmel and
Kahan, LAPACK Working Note #3.
M
M is INTEGER
The total number of eigenvalues found. 0 <= M <= N.
If RANGE = βAβ, M = N, and if RANGE =
βIβ, M = IU-IL+1.
W
W is REAL
array, dimension (N)
The first M elements contain the selected eigenvalues in
ascending order.
Z
Z is REAL
array, dimension (LDZ, max(1,M))
If JOBZ = βVβ, then if INFO = 0, the first M
columns of Z
contain the orthonormal eigenvectors of the matrix A
corresponding to the selected eigenvalues, with the i-th
column of Z holding the eigenvector associated with W(i).
If an eigenvector fails to converge, then that column of Z
contains the latest approximation to the eigenvector, and
the
index of the eigenvector is returned in IFAIL.
If JOBZ = βNβ, then Z is not referenced.
Note: the user must ensure that at least max(1,M) columns
are
supplied in the array Z; if RANGE = βVβ, the
exact value of M
is not known in advance and an upper bound must be used.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1, and if
JOBZ = βVβ, LDZ >= max(1,N).
WORK
WORK is REAL array, dimension (LWORK)
LWORK
LWORK is
INTEGER
The length of the array WORK. LWORK >= 1, when N <= 1;
otherwise
If JOBZ = βNβ and N > 1, LWORK must be
queried.
LWORK = MAX(1, 7*N, dimension) where
dimension = (2KD+1)*N + KD*NTHREADS + 2*N
where KD is the size of the band.
NTHREADS is the number of threads used when
openMP compilation is enabled, otherwise =1.
If JOBZ = βVβ and N > 1, LWORK must be
queried. Not yet available
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 (5*N)
IFAIL
IFAIL is
INTEGER array, dimension (N)
If JOBZ = βVβ, then if INFO = 0, the first M
elements of
IFAIL are zero. If INFO > 0, then IFAIL contains the
indices of the eigenvectors that failed to converge.
If JOBZ = βNβ, then IFAIL is not referenced.
INFO
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal
value.
> 0: if INFO = i, then i eigenvectors failed to converge.
Their indices are stored in array IFAIL.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
All details about the 2stage techniques are available in:
Azzam Haidar,
Hatem Ltaief, and Jack Dongarra.
Parallel reduction to condensed forms for symmetric
eigenvalue problems
using aggregated fine-grained and memory-aware kernels. In
Proceedings
of 2011 International Conference for High Performance
Computing,
Networking, Storage and Analysis (SC β11), New York,
NY, USA,
Article 8 , 11 pages.
http://doi.acm.org/10.1145/2063384.2063394
A. Haidar, J.
Kurzak, P. Luszczek, 2013.
An improved parallel singular value algorithm and its
implementation
for multicore hardware, In Proceedings of 2013 International
Conference
for High Performance Computing, Networking, Storage and
Analysis (SC β13).
Denver, Colorado, USA, 2013.
Article 90, 12 pages.
http://doi.acm.org/10.1145/2503210.2503292
A. Haidar, R.
Solca, S. Tomov, T. Schulthess and J. Dongarra.
A novel hybrid CPU-GPU generalized eigensolver for
electronic structure
calculations based on fine-grained memory aware tasks.
International Journal of High Performance Computing
Applications.
Volume 28 Issue 2, Pages 196-209, May 2014.
http://hpc.sagepub.com/content/28/2/196
subroutine zhbevx_2stage (character jobz, character range, character uplo,integer n, integer kd, complex*16, dimension( ldab, * ) ab, integerldab, complex*16, dimension( ldq, * ) q, integer ldq, double precisionvl, double precision vu, integer il, integer iu, double precisionabstol, integer m, double precision, dimension( * ) w, complex*16,dimension( ldz, * ) z, integer ldz, complex*16, dimension( * ) work,integer lwork, double precision, dimension( * ) rwork, integer,dimension( * ) iwork, integer, dimension( * ) ifail, integer info)
ZHBEVX_2STAGE computes the eigenvalues and, optionally, the left and/or right eigenvectors for OTHER matrices
Purpose:
ZHBEVX_2STAGE
computes selected eigenvalues and, optionally, eigenvectors
of a complex Hermitian band matrix A using the 2stage
technique for
the reduction to tridiagonal. Eigenvalues and eigenvectors
can be selected by specifying either a range of values or a
range of
indices for the desired eigenvalues.
Parameters
JOBZ
JOBZ is
CHARACTER*1
= βNβ: Compute eigenvalues only;
= βVβ: Compute eigenvalues and eigenvectors.
Not available in this release.
RANGE
RANGE is
CHARACTER*1
= βAβ: all eigenvalues will be found;
= βVβ: all eigenvalues in the half-open interval
(VL,VU]
will be found;
= βIβ: the IL-th through IU-th eigenvalues will
be found.
UPLO
UPLO is
CHARACTER*1
= βUβ: Upper triangle of A is stored;
= βLβ: Lower triangle of A is stored.
N
N is INTEGER
The order of the matrix A. N >= 0.
KD
KD is INTEGER
The number of superdiagonals of the matrix A if UPLO =
βUβ,
or the number of subdiagonals if UPLO = βLβ. KD
>= 0.
AB
AB is
COMPLEX*16 array, dimension (LDAB, N)
On entry, the upper or lower triangle of the Hermitian band
matrix A, stored in the first KD+1 rows of the array. The
j-th column of A is stored in the j-th column of the array
AB
as follows:
if UPLO = βUβ, AB(kd+1+i-j,j) = A(i,j) for
max(1,j-kd)<=i<=j;
if UPLO = βLβ, AB(1+i-j,j) = A(i,j) for
j<=i<=min(n,j+kd).
On exit, AB is
overwritten by values generated during the
reduction to tridiagonal form.
LDAB
LDAB is INTEGER
The leading dimension of the array AB. LDAB >= KD +
1.
Q
Q is COMPLEX*16
array, dimension (LDQ, N)
If JOBZ = βVβ, the N-by-N unitary matrix used in
the
reduction to tridiagonal form.
If JOBZ = βNβ, the array Q is not
referenced.
LDQ
LDQ is INTEGER
The leading dimension of the array Q. If JOBZ =
βVβ, then
LDQ >= max(1,N).
VL
VL is DOUBLE
PRECISION
If RANGE=βVβ, the lower bound of the interval to
be searched for eigenvalues. VL < VU.
Not referenced if RANGE = βAβ or
βIβ.
VU
VU is DOUBLE
PRECISION
If RANGE=βVβ, the upper bound of the interval to
be searched for eigenvalues. VL < VU.
Not referenced if RANGE = βAβ or
βIβ.
IL
IL is INTEGER
If RANGE=βIβ, the index of the
smallest eigenvalue to be returned.
1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0
if N = 0.
Not referenced if RANGE = βAβ or
βVβ.
IU
IU is INTEGER
If RANGE=βIβ, the index of the
largest eigenvalue to be returned.
1 <= IL <= IU <= N, if N > 0; IL = 1 and IU = 0
if N = 0.
Not referenced if RANGE = βAβ or
βVβ.
ABSTOL
ABSTOL is
DOUBLE PRECISION
The absolute error tolerance for the eigenvalues.
An approximate eigenvalue is accepted as converged
when it is determined to lie in an interval [a,b]
of width less than or equal to
ABSTOL + EPS * max( |a|,|b| ) ,
where EPS is
the machine precision. If ABSTOL is less than
or equal to zero, then EPS*|T| will be used in its place,
where |T| is the 1-norm of the tridiagonal matrix obtained
by reducing AB to tridiagonal form.
Eigenvalues
will be computed most accurately when ABSTOL is
set to twice the underflow threshold
2*DLAMCH(βSβ), not zero.
If this routine returns with INFO>0, indicating that some
eigenvectors did not converge, try setting ABSTOL to
2*DLAMCH(βSβ).
See
βComputing Small Singular Values of Bidiagonal
Matrices
with Guaranteed High Relative Accuracy,β by Demmel and
Kahan, LAPACK Working Note #3.
M
M is INTEGER
The total number of eigenvalues found. 0 <= M <= N.
If RANGE = βAβ, M = N, and if RANGE =
βIβ, M = IU-IL+1.
W
W is DOUBLE
PRECISION array, dimension (N)
The first M elements contain the selected eigenvalues in
ascending order.
Z
Z is COMPLEX*16
array, dimension (LDZ, max(1,M))
If JOBZ = βVβ, then if INFO = 0, the first M
columns of Z
contain the orthonormal eigenvectors of the matrix A
corresponding to the selected eigenvalues, with the i-th
column of Z holding the eigenvector associated with W(i).
If an eigenvector fails to converge, then that column of Z
contains the latest approximation to the eigenvector, and
the
index of the eigenvector is returned in IFAIL.
If JOBZ = βNβ, then Z is not referenced.
Note: the user must ensure that at least max(1,M) columns
are
supplied in the array Z; if RANGE = βVβ, the
exact value of M
is not known in advance and an upper bound must be used.
LDZ
LDZ is INTEGER
The leading dimension of the array Z. LDZ >= 1, and if
JOBZ = βVβ, LDZ >= max(1,N).
WORK
WORK is COMPLEX*16 array, dimension (LWORK)
LWORK
LWORK is
INTEGER
The length of the array WORK. LWORK >= 1, when N <= 1;
otherwise
If JOBZ = βNβ and N > 1, LWORK must be
queried.
LWORK = MAX(1, dimension) where
dimension = (2KD+1)*N + KD*NTHREADS
where KD is the size of the band.
NTHREADS is the number of threads used when
openMP compilation is enabled, otherwise =1.
If JOBZ = βVβ and N > 1, LWORK must be
queried. Not yet available.
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 (7*N)
IWORK
IWORK is INTEGER array, dimension (5*N)
IFAIL
IFAIL is
INTEGER array, dimension (N)
If JOBZ = βVβ, then if INFO = 0, the first M
elements of
IFAIL are zero. If INFO > 0, then IFAIL contains the
indices of the eigenvectors that failed to converge.
If JOBZ = βNβ, then IFAIL is not referenced.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, then i eigenvectors failed to converge.
Their indices are stored in array IFAIL.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
All details about the 2stage techniques are available in:
Azzam Haidar,
Hatem Ltaief, and Jack Dongarra.
Parallel reduction to condensed forms for symmetric
eigenvalue problems
using aggregated fine-grained and memory-aware kernels. In
Proceedings
of 2011 International Conference for High Performance
Computing,
Networking, Storage and Analysis (SC β11), New York,
NY, USA,
Article 8 , 11 pages.
http://doi.acm.org/10.1145/2063384.2063394
A. Haidar, J.
Kurzak, P. Luszczek, 2013.
An improved parallel singular value algorithm and its
implementation
for multicore hardware, In Proceedings of 2013 International
Conference
for High Performance Computing, Networking, Storage and
Analysis (SC β13).
Denver, Colorado, USA, 2013.
Article 90, 12 pages.
http://doi.acm.org/10.1145/2503210.2503292
A. Haidar, R.
Solca, S. Tomov, T. Schulthess and J. Dongarra.
A novel hybrid CPU-GPU generalized eigensolver for
electronic structure
calculations based on fine-grained memory aware tasks.
International Journal of High Performance Computing
Applications.
Volume 28 Issue 2, Pages 196-209, May 2014.
http://hpc.sagepub.com/content/28/2/196
Author
Generated automatically by Doxygen for LAPACK from the source code.