Man page - hesv_rk(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
hesv_rk
NAMESYNOPSIS
Functions
Detailed Description
Function Documentation
subroutine chesv_rk (character uplo, integer n, integer nrhs, complex,dimension( lda, * ) a, integer lda, complex, dimension( * ) e, integer,dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb,complex, dimension( * ) work, integer lwork, integer info)
subroutine csysv_rk (character uplo, integer n, integer nrhs, complex,dimension( lda, * ) a, integer lda, complex, dimension( * ) e, integer,dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb,complex, dimension( * ) work, integer lwork, integer info)
subroutine dsysv_rk (character uplo, integer n, integer nrhs, doubleprecision, dimension( lda, * ) a, integer lda, double precision,dimension( * ) e, integer, dimension( * ) ipiv, double precision,dimension( ldb, * ) b, integer ldb, double precision, dimension( * )work, integer lwork, integer info)
subroutine ssysv_rk (character uplo, integer n, integer nrhs, real,dimension( lda, * ) a, integer lda, real, dimension( * ) e, integer,dimension( * ) ipiv, real, dimension( ldb, * ) b, integer ldb, real,dimension( * ) work, integer lwork, integer info)
subroutine zhesv_rk (character uplo, integer n, integer nrhs, complex*16,dimension( lda, * ) a, integer lda, complex*16, dimension( * ) e,integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b,integer ldb, complex*16, dimension( * ) work, integer lwork, integerinfo)
subroutine zsysv_rk (character uplo, integer n, integer nrhs, complex*16,dimension( lda, * ) a, integer lda, complex*16, dimension( * ) e,integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b,integer ldb, complex*16, dimension( * ) work, integer lwork, integerinfo)
Author
NAME
hesv_rk - {he,sy}sv_rk: rook (v3)
SYNOPSIS
Functions
subroutine
chesv_rk
(uplo, n, nrhs, a, lda, e, ipiv, b, ldb,
work, lwork, info)
CHESV_RK computes the solution to system of linear equations
A * X = B for SY matrices
subroutine
csysv_rk
(uplo, n, nrhs, a, lda, e, ipiv,
b, ldb, work, lwork, info)
CSYSV_RK computes the solution to system of linear equations
A * X = B for SY matrices
subroutine
dsysv_rk
(uplo, n, nrhs, a, lda, e, ipiv,
b, ldb, work, lwork, info)
DSYSV_RK computes the solution to system of linear equations
A * X = B for SY matrices
subroutine
ssysv_rk
(uplo, n, nrhs, a, lda, e, ipiv,
b, ldb, work, lwork, info)
SSYSV_RK computes the solution to system of linear equations
A * X = B for SY matrices
subroutine
zhesv_rk
(uplo, n, nrhs, a, lda, e, ipiv,
b, ldb, work, lwork, info)
ZHESV_RK computes the solution to system of linear equations
A * X = B for SY matrices
subroutine
zsysv_rk
(uplo, n, nrhs, a, lda, e, ipiv,
b, ldb, work, lwork, info)
ZSYSV_RK computes the solution to system of linear equations
A * X = B for SY matrices
Detailed Description
Function Documentation
subroutine chesv_rk (character uplo, integer n, integer nrhs, complex,dimension( lda, * ) a, integer lda, complex, dimension( * ) e, integer,dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb,complex, dimension( * ) work, integer lwork, integer info)
CHESV_RK computes the solution to system of linear equations A * X = B for SY matrices
Purpose:
CHESV_RK
computes the solution to a complex system of linear
equations A * X = B, where A is an N-by-N Hermitian matrix
and X and B are N-by-NRHS matrices.
The bounded
Bunch-Kaufman (rook) diagonal pivoting method is used
to factor A as
A = P*U*D*(U**H)*(P**T), if UPLO = āUā, or
A = P*L*D*(L**H)*(P**T), if UPLO = āLā,
where U (or L) is unit upper (or lower) triangular matrix,
U**H (or L**H) is the conjugate of U (or L), P is a
permutation
matrix, P**T is the transpose of P, and D is Hermitian and
block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.
CHETRF_RK is
called to compute the factorization of a complex
Hermitian matrix. The factored form of A is then used to
solve
the system of equations A * X = B by calling BLAS3 routine
CHETRS_3.
Parameters
UPLO
UPLO is
CHARACTER*1
Specifies whether the upper or lower triangular part of the
Hermitian matrix A is stored:
= āUā: Upper triangle of A is stored;
= āLā: Lower triangle of A is stored.
N
N is INTEGER
The number of linear equations, i.e., the order of the
matrix A. N >= 0.
NRHS
NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B. NRHS >= 0.
A
A is COMPLEX
array, dimension (LDA,N)
On entry, the Hermitian matrix A.
If UPLO = āUā: the leading N-by-N upper
triangular part
of A contains the upper triangular part of the matrix A,
and the strictly lower triangular part of A is not
referenced.
If UPLO =
āLā: the leading N-by-N lower triangular part
of A contains the lower triangular part of the matrix A,
and the strictly upper triangular part of A is not
referenced.
On exit, if
INFO = 0, diagonal of the block diagonal
matrix D and factors U or L as computed by CHETRF_RK:
a) ONLY diagonal elements of the Hermitian block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
are stored on exit in array E), and
b) If UPLO = āUā: factor U in the superdiagonal
part of A.
If UPLO = āLā: factor L in the subdiagonal part
of A.
For more info see the description of CHETRF_RK routine.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,N).
E
E is COMPLEX
array, dimension (N)
On exit, contains the output computed by the factorization
routine CHETRF_RK, i.e. the superdiagonal (or subdiagonal)
elements of the Hermitian block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = āUā: E(i) = D(i-1,i), i=2:N, E(1) is
set to 0;
If UPLO = āLā: E(i) = D(i+1,i), i=1:N-1, E(N) is
set to 0.
NOTE: For
1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is set to 0 in both
UPLO = āUā or UPLO = āLā cases.
For more info see the description of CHETRF_RK routine.
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D,
as determined by CHETRF_RK.
For more info see the description of CHETRF_RK routine.
B
B is COMPLEX
array, dimension (LDB,NRHS)
On entry, the N-by-NRHS right hand side matrix B.
On exit, if INFO = 0, the N-by-NRHS solution matrix X.
LDB
LDB is INTEGER
The leading dimension of the array B. LDB >=
max(1,N).
WORK
WORK is COMPLEX
array, dimension ( MAX(1,LWORK) ).
Work array used in the factorization stage.
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is
INTEGER
The length of WORK. LWORK >= 1. For best performance
of factorization stage LWORK >= max(1,N*NB), where NB is
the optimal blocksize for CHETRF_RK.
If LWORK = -1,
then a workspace query is assumed;
the routine only calculates the optimal size of the WORK
array for factorization stage, returns this value as
the first entry of the WORK array, and no error message
related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: If INFO = -k, the k-th argument had an illegal value
> 0: If INFO
= k, the matrix A is singular, because:
If UPLO = āUā: column k in the upper
triangular part of A contains all zeros.
If UPLO = āLā: column k in the lower
triangular part of A contains all zeros.
Therefore
D(k,k) is exactly zero, and superdiagonal
elements of column k of U (or subdiagonal elements of
column k of L ) are all zeros. The factorization has
been completed, but the block diagonal matrix D is
exactly singular, and division by zero will occur if
it is used to solve a system of equations.
NOTE: INFO only
stores the first occurrence of
a singularity, any subsequent occurrence of singularity
is not stored in INFO even though the factorization
always completes.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
December 2016,
Igor Kozachenko,
Computer Science Division,
University of California, Berkeley
September 2007,
Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester
subroutine csysv_rk (character uplo, integer n, integer nrhs, complex,dimension( lda, * ) a, integer lda, complex, dimension( * ) e, integer,dimension( * ) ipiv, complex, dimension( ldb, * ) b, integer ldb,complex, dimension( * ) work, integer lwork, integer info)
CSYSV_RK computes the solution to system of linear equations A * X = B for SY matrices
Purpose:
CSYSV_RK
computes the solution to a complex system of linear
equations A * X = B, where A is an N-by-N symmetric matrix
and X and B are N-by-NRHS matrices.
The bounded
Bunch-Kaufman (rook) diagonal pivoting method is used
to factor A as
A = P*U*D*(U**T)*(P**T), if UPLO = āUā, or
A = P*L*D*(L**T)*(P**T), if UPLO = āLā,
where U (or L) is unit upper (or lower) triangular matrix,
U**T (or L**T) is the transpose of U (or L), P is a
permutation
matrix, P**T is the transpose of P, and D is symmetric and
block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.
CSYTRF_RK is
called to compute the factorization of a complex
symmetric matrix. The factored form of A is then used to
solve
the system of equations A * X = B by calling BLAS3 routine
CSYTRS_3.
Parameters
UPLO
UPLO is
CHARACTER*1
Specifies whether the upper or lower triangular part of the
symmetric matrix A is stored:
= āUā: Upper triangle of A is stored;
= āLā: Lower triangle of A is stored.
N
N is INTEGER
The number of linear equations, i.e., the order of the
matrix A. N >= 0.
NRHS
NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B. NRHS >= 0.
A
A is COMPLEX
array, dimension (LDA,N)
On entry, the symmetric matrix A.
If UPLO = āUā: the leading N-by-N upper
triangular part
of A contains the upper triangular part of the matrix A,
and the strictly lower triangular part of A is not
referenced.
If UPLO =
āLā: the leading N-by-N lower triangular part
of A contains the lower triangular part of the matrix A,
and the strictly upper triangular part of A is not
referenced.
On exit, if
INFO = 0, diagonal of the block diagonal
matrix D and factors U or L as computed by CSYTRF_RK:
a) ONLY diagonal elements of the symmetric block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
are stored on exit in array E), and
b) If UPLO = āUā: factor U in the superdiagonal
part of A.
If UPLO = āLā: factor L in the subdiagonal part
of A.
For more info see the description of CSYTRF_RK routine.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,N).
E
E is COMPLEX
array, dimension (N)
On exit, contains the output computed by the factorization
routine CSYTRF_RK, i.e. the superdiagonal (or subdiagonal)
elements of the symmetric block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = āUā: E(i) = D(i-1,i), i=2:N, E(1) is
set to 0;
If UPLO = āLā: E(i) = D(i+1,i), i=1:N-1, E(N) is
set to 0.
NOTE: For
1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is set to 0 in both
UPLO = āUā or UPLO = āLā cases.
For more info see the description of CSYTRF_RK routine.
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D,
as determined by CSYTRF_RK.
For more info see the description of CSYTRF_RK routine.
B
B is COMPLEX
array, dimension (LDB,NRHS)
On entry, the N-by-NRHS right hand side matrix B.
On exit, if INFO = 0, the N-by-NRHS solution matrix X.
LDB
LDB is INTEGER
The leading dimension of the array B. LDB >=
max(1,N).
WORK
WORK is COMPLEX
array, dimension ( MAX(1,LWORK) ).
Work array used in the factorization stage.
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is
INTEGER
The length of WORK. LWORK >= 1. For best performance
of factorization stage LWORK >= max(1,N*NB), where NB is
the optimal blocksize for CSYTRF_RK.
If LWORK = -1,
then a workspace query is assumed;
the routine only calculates the optimal size of the WORK
array for factorization stage, returns this value as
the first entry of the WORK array, and no error message
related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: If INFO = -k, the k-th argument had an illegal value
> 0: If INFO
= k, the matrix A is singular, because:
If UPLO = āUā: column k in the upper
triangular part of A contains all zeros.
If UPLO = āLā: column k in the lower
triangular part of A contains all zeros.
Therefore
D(k,k) is exactly zero, and superdiagonal
elements of column k of U (or subdiagonal elements of
column k of L ) are all zeros. The factorization has
been completed, but the block diagonal matrix D is
exactly singular, and division by zero will occur if
it is used to solve a system of equations.
NOTE: INFO only
stores the first occurrence of
a singularity, any subsequent occurrence of singularity
is not stored in INFO even though the factorization
always completes.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
December 2016,
Igor Kozachenko,
Computer Science Division,
University of California, Berkeley
September 2007,
Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester
subroutine dsysv_rk (character uplo, integer n, integer nrhs, doubleprecision, dimension( lda, * ) a, integer lda, double precision,dimension( * ) e, integer, dimension( * ) ipiv, double precision,dimension( ldb, * ) b, integer ldb, double precision, dimension( * )work, integer lwork, integer info)
DSYSV_RK computes the solution to system of linear equations A * X = B for SY matrices
Purpose:
DSYSV_RK
computes the solution to a real system of linear
equations A * X = B, where A is an N-by-N symmetric matrix
and X and B are N-by-NRHS matrices.
The bounded
Bunch-Kaufman (rook) diagonal pivoting method is used
to factor A as
A = P*U*D*(U**T)*(P**T), if UPLO = āUā, or
A = P*L*D*(L**T)*(P**T), if UPLO = āLā,
where U (or L) is unit upper (or lower) triangular matrix,
U**T (or L**T) is the transpose of U (or L), P is a
permutation
matrix, P**T is the transpose of P, and D is symmetric and
block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.
DSYTRF_RK is
called to compute the factorization of a real
symmetric matrix. The factored form of A is then used to
solve
the system of equations A * X = B by calling BLAS3 routine
DSYTRS_3.
Parameters
UPLO
UPLO is
CHARACTER*1
Specifies whether the upper or lower triangular part of the
symmetric matrix A is stored:
= āUā: Upper triangle of A is stored;
= āLā: Lower triangle of A is stored.
N
N is INTEGER
The number of linear equations, i.e., the order of the
matrix A. N >= 0.
NRHS
NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B. NRHS >= 0.
A
A is DOUBLE
PRECISION array, dimension (LDA,N)
On entry, the symmetric matrix A.
If UPLO = āUā: the leading N-by-N upper
triangular part
of A contains the upper triangular part of the matrix A,
and the strictly lower triangular part of A is not
referenced.
If UPLO =
āLā: the leading N-by-N lower triangular part
of A contains the lower triangular part of the matrix A,
and the strictly upper triangular part of A is not
referenced.
On exit, if
INFO = 0, diagonal of the block diagonal
matrix D and factors U or L as computed by DSYTRF_RK:
a) ONLY diagonal elements of the symmetric block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
are stored on exit in array E), and
b) If UPLO = āUā: factor U in the superdiagonal
part of A.
If UPLO = āLā: factor L in the subdiagonal part
of A.
For more info see the description of DSYTRF_RK routine.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,N).
E
E is DOUBLE
PRECISION array, dimension (N)
On exit, contains the output computed by the factorization
routine DSYTRF_RK, i.e. the superdiagonal (or subdiagonal)
elements of the symmetric block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = āUā: E(i) = D(i-1,i), i=2:N, E(1) is
set to 0;
If UPLO = āLā: E(i) = D(i+1,i), i=1:N-1, E(N) is
set to 0.
NOTE: For
1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is set to 0 in both
UPLO = āUā or UPLO = āLā cases.
For more info see the description of DSYTRF_RK routine.
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D,
as determined by DSYTRF_RK.
For more info see the description of DSYTRF_RK routine.
B
B is DOUBLE
PRECISION array, dimension (LDB,NRHS)
On entry, the N-by-NRHS right hand side matrix B.
On exit, if INFO = 0, the N-by-NRHS solution matrix X.
LDB
LDB is INTEGER
The leading dimension of the array B. LDB >=
max(1,N).
WORK
WORK is DOUBLE
PRECISION array, dimension ( MAX(1,LWORK) ).
Work array used in the factorization stage.
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is
INTEGER
The length of WORK. LWORK >= 1. For best performance
of factorization stage LWORK >= max(1,N*NB), where NB is
the optimal blocksize for DSYTRF_RK.
If LWORK = -1,
then a workspace query is assumed;
the routine only calculates the optimal size of the WORK
array for factorization stage, returns this value as
the first entry of the WORK array, and no error message
related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: If INFO = -k, the k-th argument had an illegal value
> 0: If INFO
= k, the matrix A is singular, because:
If UPLO = āUā: column k in the upper
triangular part of A contains all zeros.
If UPLO = āLā: column k in the lower
triangular part of A contains all zeros.
Therefore
D(k,k) is exactly zero, and superdiagonal
elements of column k of U (or subdiagonal elements of
column k of L ) are all zeros. The factorization has
been completed, but the block diagonal matrix D is
exactly singular, and division by zero will occur if
it is used to solve a system of equations.
NOTE: INFO only
stores the first occurrence of
a singularity, any subsequent occurrence of singularity
is not stored in INFO even though the factorization
always completes.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
December 2016,
Igor Kozachenko,
Computer Science Division,
University of California, Berkeley
September 2007,
Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester
subroutine ssysv_rk (character uplo, integer n, integer nrhs, real,dimension( lda, * ) a, integer lda, real, dimension( * ) e, integer,dimension( * ) ipiv, real, dimension( ldb, * ) b, integer ldb, real,dimension( * ) work, integer lwork, integer info)
SSYSV_RK computes the solution to system of linear equations A * X = B for SY matrices
Purpose:
SSYSV_RK
computes the solution to a real system of linear
equations A * X = B, where A is an N-by-N symmetric matrix
and X and B are N-by-NRHS matrices.
The bounded
Bunch-Kaufman (rook) diagonal pivoting method is used
to factor A as
A = P*U*D*(U**T)*(P**T), if UPLO = āUā, or
A = P*L*D*(L**T)*(P**T), if UPLO = āLā,
where U (or L) is unit upper (or lower) triangular matrix,
U**T (or L**T) is the transpose of U (or L), P is a
permutation
matrix, P**T is the transpose of P, and D is symmetric and
block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.
SSYTRF_RK is
called to compute the factorization of a real
symmetric matrix. The factored form of A is then used to
solve
the system of equations A * X = B by calling BLAS3 routine
SSYTRS_3.
Parameters
UPLO
UPLO is
CHARACTER*1
Specifies whether the upper or lower triangular part of the
symmetric matrix A is stored:
= āUā: Upper triangle of A is stored;
= āLā: Lower triangle of A is stored.
N
N is INTEGER
The number of linear equations, i.e., the order of the
matrix A. N >= 0.
NRHS
NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B. NRHS >= 0.
A
A is REAL
array, dimension (LDA,N)
On entry, the symmetric matrix A.
If UPLO = āUā: the leading N-by-N upper
triangular part
of A contains the upper triangular part of the matrix A,
and the strictly lower triangular part of A is not
referenced.
If UPLO =
āLā: the leading N-by-N lower triangular part
of A contains the lower triangular part of the matrix A,
and the strictly upper triangular part of A is not
referenced.
On exit, if
INFO = 0, diagonal of the block diagonal
matrix D and factors U or L as computed by SSYTRF_RK:
a) ONLY diagonal elements of the symmetric block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
are stored on exit in array E), and
b) If UPLO = āUā: factor U in the superdiagonal
part of A.
If UPLO = āLā: factor L in the subdiagonal part
of A.
For more info see the description of DSYTRF_RK routine.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,N).
E
E is REAL
array, dimension (N)
On exit, contains the output computed by the factorization
routine DSYTRF_RK, i.e. the superdiagonal (or subdiagonal)
elements of the symmetric block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = āUā: E(i) = D(i-1,i), i=2:N, E(1) is
set to 0;
If UPLO = āLā: E(i) = D(i+1,i), i=1:N-1, E(N) is
set to 0.
NOTE: For
1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is set to 0 in both
UPLO = āUā or UPLO = āLā cases.
For more info see the description of DSYTRF_RK routine.
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D,
as determined by SSYTRF_RK.
For more info see the description of DSYTRF_RK routine.
B
B is REAL
array, dimension (LDB,NRHS)
On entry, the N-by-NRHS right hand side matrix B.
On exit, if INFO = 0, the N-by-NRHS solution matrix X.
LDB
LDB is INTEGER
The leading dimension of the array B. LDB >=
max(1,N).
WORK
WORK is REAL
array, dimension ( MAX(1,LWORK) ).
Work array used in the factorization stage.
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is
INTEGER
The length of WORK. LWORK >= 1. For best performance
of factorization stage LWORK >= max(1,N*NB), where NB is
the optimal blocksize for DSYTRF_RK.
If LWORK = -1,
then a workspace query is assumed;
the routine only calculates the optimal size of the WORK
array for factorization stage, returns this value as
the first entry of the WORK array, and no error message
related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: If INFO = -k, the k-th argument had an illegal value
> 0: If INFO
= k, the matrix A is singular, because:
If UPLO = āUā: column k in the upper
triangular part of A contains all zeros.
If UPLO = āLā: column k in the lower
triangular part of A contains all zeros.
Therefore
D(k,k) is exactly zero, and superdiagonal
elements of column k of U (or subdiagonal elements of
column k of L ) are all zeros. The factorization has
been completed, but the block diagonal matrix D is
exactly singular, and division by zero will occur if
it is used to solve a system of equations.
NOTE: INFO only
stores the first occurrence of
a singularity, any subsequent occurrence of singularity
is not stored in INFO even though the factorization
always completes.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
December 2016,
Igor Kozachenko,
Computer Science Division,
University of California, Berkeley
September 2007,
Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester
subroutine zhesv_rk (character uplo, integer n, integer nrhs, complex*16,dimension( lda, * ) a, integer lda, complex*16, dimension( * ) e,integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b,integer ldb, complex*16, dimension( * ) work, integer lwork, integerinfo)
ZHESV_RK computes the solution to system of linear equations A * X = B for SY matrices
Purpose:
ZHESV_RK
computes the solution to a complex system of linear
equations A * X = B, where A is an N-by-N Hermitian matrix
and X and B are N-by-NRHS matrices.
The bounded
Bunch-Kaufman (rook) diagonal pivoting method is used
to factor A as
A = P*U*D*(U**H)*(P**T), if UPLO = āUā, or
A = P*L*D*(L**H)*(P**T), if UPLO = āLā,
where U (or L) is unit upper (or lower) triangular matrix,
U**H (or L**H) is the conjugate of U (or L), P is a
permutation
matrix, P**T is the transpose of P, and D is Hermitian and
block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.
ZHETRF_RK is
called to compute the factorization of a complex
Hermitian matrix. The factored form of A is then used to
solve
the system of equations A * X = B by calling BLAS3 routine
ZHETRS_3.
Parameters
UPLO
UPLO is
CHARACTER*1
Specifies whether the upper or lower triangular part of the
Hermitian matrix A is stored:
= āUā: Upper triangle of A is stored;
= āLā: Lower triangle of A is stored.
N
N is INTEGER
The number of linear equations, i.e., the order of the
matrix A. N >= 0.
NRHS
NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B. NRHS >= 0.
A
A is COMPLEX*16
array, dimension (LDA,N)
On entry, the Hermitian matrix A.
If UPLO = āUā: the leading N-by-N upper
triangular part
of A contains the upper triangular part of the matrix A,
and the strictly lower triangular part of A is not
referenced.
If UPLO =
āLā: the leading N-by-N lower triangular part
of A contains the lower triangular part of the matrix A,
and the strictly upper triangular part of A is not
referenced.
On exit, if
INFO = 0, diagonal of the block diagonal
matrix D and factors U or L as computed by ZHETRF_RK:
a) ONLY diagonal elements of the Hermitian block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
are stored on exit in array E), and
b) If UPLO = āUā: factor U in the superdiagonal
part of A.
If UPLO = āLā: factor L in the subdiagonal part
of A.
For more info see the description of ZHETRF_RK routine.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,N).
E
E is COMPLEX*16
array, dimension (N)
On exit, contains the output computed by the factorization
routine ZHETRF_RK, i.e. the superdiagonal (or subdiagonal)
elements of the Hermitian block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = āUā: E(i) = D(i-1,i), i=2:N, E(1) is
set to 0;
If UPLO = āLā: E(i) = D(i+1,i), i=1:N-1, E(N) is
set to 0.
NOTE: For
1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is set to 0 in both
UPLO = āUā or UPLO = āLā cases.
For more info see the description of ZHETRF_RK routine.
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D,
as determined by ZHETRF_RK.
For more info see the description of ZHETRF_RK routine.
B
B is COMPLEX*16
array, dimension (LDB,NRHS)
On entry, the N-by-NRHS right hand side matrix B.
On exit, if INFO = 0, the N-by-NRHS solution matrix X.
LDB
LDB is INTEGER
The leading dimension of the array B. LDB >=
max(1,N).
WORK
WORK is
COMPLEX*16 array, dimension ( MAX(1,LWORK) ).
Work array used in the factorization stage.
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is
INTEGER
The length of WORK. LWORK >= 1. For best performance
of factorization stage LWORK >= max(1,N*NB), where NB is
the optimal blocksize for ZHETRF_RK.
If LWORK = -1,
then a workspace query is assumed;
the routine only calculates the optimal size of the WORK
array for factorization stage, returns this value as
the first entry of the WORK array, and no error message
related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: If INFO = -k, the k-th argument had an illegal value
> 0: If INFO
= k, the matrix A is singular, because:
If UPLO = āUā: column k in the upper
triangular part of A contains all zeros.
If UPLO = āLā: column k in the lower
triangular part of A contains all zeros.
Therefore
D(k,k) is exactly zero, and superdiagonal
elements of column k of U (or subdiagonal elements of
column k of L ) are all zeros. The factorization has
been completed, but the block diagonal matrix D is
exactly singular, and division by zero will occur if
it is used to solve a system of equations.
NOTE: INFO only
stores the first occurrence of
a singularity, any subsequent occurrence of singularity
is not stored in INFO even though the factorization
always completes.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
December 2016,
Igor Kozachenko,
Computer Science Division,
University of California, Berkeley
September 2007,
Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester
subroutine zsysv_rk (character uplo, integer n, integer nrhs, complex*16,dimension( lda, * ) a, integer lda, complex*16, dimension( * ) e,integer, dimension( * ) ipiv, complex*16, dimension( ldb, * ) b,integer ldb, complex*16, dimension( * ) work, integer lwork, integerinfo)
ZSYSV_RK computes the solution to system of linear equations A * X = B for SY matrices
Purpose:
ZSYSV_RK
computes the solution to a complex system of linear
equations A * X = B, where A is an N-by-N symmetric matrix
and X and B are N-by-NRHS matrices.
The bounded
Bunch-Kaufman (rook) diagonal pivoting method is used
to factor A as
A = P*U*D*(U**T)*(P**T), if UPLO = āUā, or
A = P*L*D*(L**T)*(P**T), if UPLO = āLā,
where U (or L) is unit upper (or lower) triangular matrix,
U**T (or L**T) is the transpose of U (or L), P is a
permutation
matrix, P**T is the transpose of P, and D is symmetric and
block
diagonal with 1-by-1 and 2-by-2 diagonal blocks.
ZSYTRF_RK is
called to compute the factorization of a complex
symmetric matrix. The factored form of A is then used to
solve
the system of equations A * X = B by calling BLAS3 routine
ZSYTRS_3.
Parameters
UPLO
UPLO is
CHARACTER*1
Specifies whether the upper or lower triangular part of the
symmetric matrix A is stored:
= āUā: Upper triangle of A is stored;
= āLā: Lower triangle of A is stored.
N
N is INTEGER
The number of linear equations, i.e., the order of the
matrix A. N >= 0.
NRHS
NRHS is INTEGER
The number of right hand sides, i.e., the number of columns
of the matrix B. NRHS >= 0.
A
A is COMPLEX*16
array, dimension (LDA,N)
On entry, the symmetric matrix A.
If UPLO = āUā: the leading N-by-N upper
triangular part
of A contains the upper triangular part of the matrix A,
and the strictly lower triangular part of A is not
referenced.
If UPLO =
āLā: the leading N-by-N lower triangular part
of A contains the lower triangular part of the matrix A,
and the strictly upper triangular part of A is not
referenced.
On exit, if
INFO = 0, diagonal of the block diagonal
matrix D and factors U or L as computed by ZSYTRF_RK:
a) ONLY diagonal elements of the symmetric block diagonal
matrix D on the diagonal of A, i.e. D(k,k) = A(k,k);
(superdiagonal (or subdiagonal) elements of D
are stored on exit in array E), and
b) If UPLO = āUā: factor U in the superdiagonal
part of A.
If UPLO = āLā: factor L in the subdiagonal part
of A.
For more info see the description of ZSYTRF_RK routine.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,N).
E
E is COMPLEX*16
array, dimension (N)
On exit, contains the output computed by the factorization
routine ZSYTRF_RK, i.e. the superdiagonal (or subdiagonal)
elements of the symmetric block diagonal matrix D
with 1-by-1 or 2-by-2 diagonal blocks, where
If UPLO = āUā: E(i) = D(i-1,i), i=2:N, E(1) is
set to 0;
If UPLO = āLā: E(i) = D(i+1,i), i=1:N-1, E(N) is
set to 0.
NOTE: For
1-by-1 diagonal block D(k), where
1 <= k <= N, the element E(k) is set to 0 in both
UPLO = āUā or UPLO = āLā cases.
For more info see the description of ZSYTRF_RK routine.
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D,
as determined by ZSYTRF_RK.
For more info see the description of ZSYTRF_RK routine.
B
B is COMPLEX*16
array, dimension (LDB,NRHS)
On entry, the N-by-NRHS right hand side matrix B.
On exit, if INFO = 0, the N-by-NRHS solution matrix X.
LDB
LDB is INTEGER
The leading dimension of the array B. LDB >=
max(1,N).
WORK
WORK is
COMPLEX*16 array, dimension ( MAX(1,LWORK) ).
Work array used in the factorization stage.
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is
INTEGER
The length of WORK. LWORK >= 1. For best performance
of factorization stage LWORK >= max(1,N*NB), where NB is
the optimal blocksize for ZSYTRF_RK.
If LWORK = -1,
then a workspace query is assumed;
the routine only calculates the optimal size of the WORK
array for factorization stage, returns this value as
the first entry of the WORK array, and no error message
related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: If INFO = -k, the k-th argument had an illegal value
> 0: If INFO
= k, the matrix A is singular, because:
If UPLO = āUā: column k in the upper
triangular part of A contains all zeros.
If UPLO = āLā: column k in the lower
triangular part of A contains all zeros.
Therefore
D(k,k) is exactly zero, and superdiagonal
elements of column k of U (or subdiagonal elements of
column k of L ) are all zeros. The factorization has
been completed, but the block diagonal matrix D is
exactly singular, and division by zero will occur if
it is used to solve a system of equations.
NOTE: INFO only
stores the first occurrence of
a singularity, any subsequent occurrence of singularity
is not stored in INFO even though the factorization
always completes.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
December 2016,
Igor Kozachenko,
Computer Science Division,
University of California, Berkeley
September 2007,
Sven Hammarling, Nicholas J. Higham, Craig Lucas,
School of Mathematics,
University of Manchester
Author
Generated automatically by Doxygen for LAPACK from the source code.