Man page - hptrf(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
hptrf
NAMESYNOPSIS
Functions
Detailed Description
Function Documentation
subroutine chptrf (character uplo, integer n, complex, dimension( * ) ap,integer, dimension( * ) ipiv, integer info)
subroutine csptrf (character uplo, integer n, complex, dimension( * ) ap,integer, dimension( * ) ipiv, integer info)
subroutine dsptrf (character uplo, integer n, double precision, dimension(* ) ap, integer, dimension( * ) ipiv, integer info)
subroutine ssptrf (character uplo, integer n, real, dimension( * ) ap,integer, dimension( * ) ipiv, integer info)
subroutine zhptrf (character uplo, integer n, complex*16, dimension( * )ap, integer, dimension( * ) ipiv, integer info)
subroutine zsptrf (character uplo, integer n, complex*16, dimension( * )ap, integer, dimension( * ) ipiv, integer info)
Author
NAME
hptrf - {hp,sp}trf: triangular factor
SYNOPSIS
Functions
subroutine
chptrf
(uplo, n, ap, ipiv, info)
CHPTRF
subroutine
csptrf
(uplo, n, ap, ipiv, info)
CSPTRF
subroutine
dsptrf
(uplo, n, ap, ipiv, info)
DSPTRF
subroutine
ssptrf
(uplo, n, ap, ipiv, info)
SSPTRF
subroutine
zhptrf
(uplo, n, ap, ipiv, info)
ZHPTRF
subroutine
zsptrf
(uplo, n, ap, ipiv, info)
ZSPTRF
Detailed Description
Function Documentation
subroutine chptrf (character uplo, integer n, complex, dimension( * ) ap,integer, dimension( * ) ipiv, integer info)
CHPTRF
Purpose:
CHPTRF computes
the factorization of a complex Hermitian packed
matrix A using the Bunch-Kaufman diagonal pivoting
method:
A = U*D*U**H or A = L*D*L**H
where U (or L)
is a product of permutation and unit upper (lower)
triangular matrices, and D is Hermitian and block diagonal
with
1-by-1 and 2-by-2 diagonal blocks.
Parameters
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.
AP
AP is COMPLEX
array, dimension (N*(N+1)/2)
On entry, the upper or lower triangle of the Hermitian
matrix
A, packed columnwise in a linear array. The j-th column of A
is stored in the array AP as follows:
if UPLO = āUā, AP(i + (j-1)*j/2) = A(i,j) for
1<=i<=j;
if UPLO = āLā, AP(i + (j-1)*(2n-j)/2) = A(i,j)
for j<=i<=n.
On exit, the
block diagonal matrix D and the multipliers used
to obtain the factor U or L, stored as a packed triangular
matrix overwriting A (see below for further details).
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D.
If IPIV(k) > 0, then rows and columns k and IPIV(k) were
interchanged and D(k,k) is a 1-by-1 diagonal block.
If UPLO = āUā and IPIV(k) = IPIV(k-1) < 0,
then rows and
columns k-1 and -IPIV(k) were interchanged and
D(k-1:k,k-1:k)
is a 2-by-2 diagonal block. If UPLO = āLā and
IPIV(k) =
IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k)
were
interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal
block.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, D(i,i) is exactly zero. 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.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
If UPLO =
āUā, then A = U*D*U**H, where
U = P(n)*U(n)* ... *P(k)U(k)* ...,
i.e., U is a product of terms P(k)*U(k), where k decreases
from n to
1 in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and U(k) is a unit upper triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I v 0 ) k-s
U(k) = ( 0 I 0 ) s
( 0 0 I ) n-k
k-s s n-k
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(1:k-1,k).
If s = 2, the upper triangle of D(k) overwrites A(k-1,k-1),
A(k-1,k),
and A(k,k), and v overwrites A(1:k-2,k-1:k).
If UPLO =
āLā, then A = L*D*L**H, where
L = P(1)*L(1)* ... *P(k)*L(k)* ...,
i.e., L is a product of terms P(k)*L(k), where k increases
from 1 to
n in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and L(k) is a unit lower triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I 0 0 ) k-1
L(k) = ( 0 I 0 ) s
( 0 v I ) n-k-s+1
k-1 s n-k-s+1
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(k+1:n,k).
If s = 2, the lower triangle of D(k) overwrites A(k,k),
A(k+1,k),
and A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).
Contributors:
J. Lewis, Boeing Computer Services Company
subroutine csptrf (character uplo, integer n, complex, dimension( * ) ap,integer, dimension( * ) ipiv, integer info)
CSPTRF
Purpose:
CSPTRF computes
the factorization of a complex symmetric matrix A
stored in packed format using the Bunch-Kaufman diagonal
pivoting
method:
A = U*D*U**T or A = L*D*L**T
where U (or L)
is a product of permutation and unit upper (lower)
triangular matrices, and D is symmetric and block diagonal
with
1-by-1 and 2-by-2 diagonal blocks.
Parameters
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.
AP
AP is COMPLEX
array, dimension (N*(N+1)/2)
On entry, the upper or lower triangle of the symmetric
matrix
A, packed columnwise in a linear array. The j-th column of A
is stored in the array AP as follows:
if UPLO = āUā, AP(i + (j-1)*j/2) = A(i,j) for
1<=i<=j;
if UPLO = āLā, AP(i + (j-1)*(2n-j)/2) = A(i,j)
for j<=i<=n.
On exit, the
block diagonal matrix D and the multipliers used
to obtain the factor U or L, stored as a packed triangular
matrix overwriting A (see below for further details).
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D.
If IPIV(k) > 0, then rows and columns k and IPIV(k) were
interchanged and D(k,k) is a 1-by-1 diagonal block.
If UPLO = āUā and IPIV(k) = IPIV(k-1) < 0,
then rows and
columns k-1 and -IPIV(k) were interchanged and
D(k-1:k,k-1:k)
is a 2-by-2 diagonal block. If UPLO = āLā and
IPIV(k) =
IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k)
were
interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal
block.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, D(i,i) is exactly zero. 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.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
5-96 - Based on
modifications by J. Lewis, Boeing Computer Services
Company
If UPLO =
āUā, then A = U*D*U**T, where
U = P(n)*U(n)* ... *P(k)U(k)* ...,
i.e., U is a product of terms P(k)*U(k), where k decreases
from n to
1 in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and U(k) is a unit upper triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I v 0 ) k-s
U(k) = ( 0 I 0 ) s
( 0 0 I ) n-k
k-s s n-k
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(1:k-1,k).
If s = 2, the upper triangle of D(k) overwrites A(k-1,k-1),
A(k-1,k),
and A(k,k), and v overwrites A(1:k-2,k-1:k).
If UPLO =
āLā, then A = L*D*L**T, where
L = P(1)*L(1)* ... *P(k)*L(k)* ...,
i.e., L is a product of terms P(k)*L(k), where k increases
from 1 to
n in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and L(k) is a unit lower triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I 0 0 ) k-1
L(k) = ( 0 I 0 ) s
( 0 v I ) n-k-s+1
k-1 s n-k-s+1
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(k+1:n,k).
If s = 2, the lower triangle of D(k) overwrites A(k,k),
A(k+1,k),
and A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).
subroutine dsptrf (character uplo, integer n, double precision, dimension(* ) ap, integer, dimension( * ) ipiv, integer info)
DSPTRF
Purpose:
DSPTRF computes
the factorization of a real symmetric matrix A stored
in packed format using the Bunch-Kaufman diagonal pivoting
method:
A = U*D*U**T or A = L*D*L**T
where U (or L)
is a product of permutation and unit upper (lower)
triangular matrices, and D is symmetric and block diagonal
with
1-by-1 and 2-by-2 diagonal blocks.
Parameters
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.
AP
AP is DOUBLE
PRECISION array, dimension (N*(N+1)/2)
On entry, the upper or lower triangle of the symmetric
matrix
A, packed columnwise in a linear array. The j-th column of A
is stored in the array AP as follows:
if UPLO = āUā, AP(i + (j-1)*j/2) = A(i,j) for
1<=i<=j;
if UPLO = āLā, AP(i + (j-1)*(2n-j)/2) = A(i,j)
for j<=i<=n.
On exit, the
block diagonal matrix D and the multipliers used
to obtain the factor U or L, stored as a packed triangular
matrix overwriting A (see below for further details).
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D.
If IPIV(k) > 0, then rows and columns k and IPIV(k) were
interchanged and D(k,k) is a 1-by-1 diagonal block.
If UPLO = āUā and IPIV(k) = IPIV(k-1) < 0,
then rows and
columns k-1 and -IPIV(k) were interchanged and
D(k-1:k,k-1:k)
is a 2-by-2 diagonal block. If UPLO = āLā and
IPIV(k) =
IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k)
were
interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal
block.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, D(i,i) is exactly zero. 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.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
If UPLO =
āUā, then A = U*D*U**T, where
U = P(n)*U(n)* ... *P(k)U(k)* ...,
i.e., U is a product of terms P(k)*U(k), where k decreases
from n to
1 in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and U(k) is a unit upper triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I v 0 ) k-s
U(k) = ( 0 I 0 ) s
( 0 0 I ) n-k
k-s s n-k
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(1:k-1,k).
If s = 2, the upper triangle of D(k) overwrites A(k-1,k-1),
A(k-1,k),
and A(k,k), and v overwrites A(1:k-2,k-1:k).
If UPLO =
āLā, then A = L*D*L**T, where
L = P(1)*L(1)* ... *P(k)*L(k)* ...,
i.e., L is a product of terms P(k)*L(k), where k increases
from 1 to
n in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and L(k) is a unit lower triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I 0 0 ) k-1
L(k) = ( 0 I 0 ) s
( 0 v I ) n-k-s+1
k-1 s n-k-s+1
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(k+1:n,k).
If s = 2, the lower triangle of D(k) overwrites A(k,k),
A(k+1,k),
and A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).
Contributors:
J. Lewis, Boeing Computer Services Company
subroutine ssptrf (character uplo, integer n, real, dimension( * ) ap,integer, dimension( * ) ipiv, integer info)
SSPTRF
Purpose:
SSPTRF computes
the factorization of a real symmetric matrix A stored
in packed format using the Bunch-Kaufman diagonal pivoting
method:
A = U*D*U**T or A = L*D*L**T
where U (or L)
is a product of permutation and unit upper (lower)
triangular matrices, and D is symmetric and block diagonal
with
1-by-1 and 2-by-2 diagonal blocks.
Parameters
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.
AP
AP is REAL
array, dimension (N*(N+1)/2)
On entry, the upper or lower triangle of the symmetric
matrix
A, packed columnwise in a linear array. The j-th column of A
is stored in the array AP as follows:
if UPLO = āUā, AP(i + (j-1)*j/2) = A(i,j) for
1<=i<=j;
if UPLO = āLā, AP(i + (j-1)*(2n-j)/2) = A(i,j)
for j<=i<=n.
On exit, the
block diagonal matrix D and the multipliers used
to obtain the factor U or L, stored as a packed triangular
matrix overwriting A (see below for further details).
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D.
If IPIV(k) > 0, then rows and columns k and IPIV(k) were
interchanged and D(k,k) is a 1-by-1 diagonal block.
If UPLO = āUā and IPIV(k) = IPIV(k-1) < 0,
then rows and
columns k-1 and -IPIV(k) were interchanged and
D(k-1:k,k-1:k)
is a 2-by-2 diagonal block. If UPLO = āLā and
IPIV(k) =
IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k)
were
interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal
block.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, D(i,i) is exactly zero. 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.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
5-96 - Based on
modifications by J. Lewis, Boeing Computer Services
Company
If UPLO =
āUā, then A = U*D*U**T, where
U = P(n)*U(n)* ... *P(k)U(k)* ...,
i.e., U is a product of terms P(k)*U(k), where k decreases
from n to
1 in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and U(k) is a unit upper triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I v 0 ) k-s
U(k) = ( 0 I 0 ) s
( 0 0 I ) n-k
k-s s n-k
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(1:k-1,k).
If s = 2, the upper triangle of D(k) overwrites A(k-1,k-1),
A(k-1,k),
and A(k,k), and v overwrites A(1:k-2,k-1:k).
If UPLO =
āLā, then A = L*D*L**T, where
L = P(1)*L(1)* ... *P(k)*L(k)* ...,
i.e., L is a product of terms P(k)*L(k), where k increases
from 1 to
n in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and L(k) is a unit lower triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I 0 0 ) k-1
L(k) = ( 0 I 0 ) s
( 0 v I ) n-k-s+1
k-1 s n-k-s+1
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(k+1:n,k).
If s = 2, the lower triangle of D(k) overwrites A(k,k),
A(k+1,k),
and A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).
subroutine zhptrf (character uplo, integer n, complex*16, dimension( * )ap, integer, dimension( * ) ipiv, integer info)
ZHPTRF
Purpose:
ZHPTRF computes
the factorization of a complex Hermitian packed
matrix A using the Bunch-Kaufman diagonal pivoting
method:
A = U*D*U**H or A = L*D*L**H
where U (or L)
is a product of permutation and unit upper (lower)
triangular matrices, and D is Hermitian and block diagonal
with
1-by-1 and 2-by-2 diagonal blocks.
Parameters
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.
AP
AP is
COMPLEX*16 array, dimension (N*(N+1)/2)
On entry, the upper or lower triangle of the Hermitian
matrix
A, packed columnwise in a linear array. The j-th column of A
is stored in the array AP as follows:
if UPLO = āUā, AP(i + (j-1)*j/2) = A(i,j) for
1<=i<=j;
if UPLO = āLā, AP(i + (j-1)*(2n-j)/2) = A(i,j)
for j<=i<=n.
On exit, the
block diagonal matrix D and the multipliers used
to obtain the factor U or L, stored as a packed triangular
matrix overwriting A (see below for further details).
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D.
If IPIV(k) > 0, then rows and columns k and IPIV(k) were
interchanged and D(k,k) is a 1-by-1 diagonal block.
If UPLO = āUā and IPIV(k) = IPIV(k-1) < 0,
then rows and
columns k-1 and -IPIV(k) were interchanged and
D(k-1:k,k-1:k)
is a 2-by-2 diagonal block. If UPLO = āLā and
IPIV(k) =
IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k)
were
interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal
block.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, D(i,i) is exactly zero. 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.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
If UPLO =
āUā, then A = U*D*U**H, where
U = P(n)*U(n)* ... *P(k)U(k)* ...,
i.e., U is a product of terms P(k)*U(k), where k decreases
from n to
1 in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and U(k) is a unit upper triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I v 0 ) k-s
U(k) = ( 0 I 0 ) s
( 0 0 I ) n-k
k-s s n-k
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(1:k-1,k).
If s = 2, the upper triangle of D(k) overwrites A(k-1,k-1),
A(k-1,k),
and A(k,k), and v overwrites A(1:k-2,k-1:k).
If UPLO =
āLā, then A = L*D*L**H, where
L = P(1)*L(1)* ... *P(k)*L(k)* ...,
i.e., L is a product of terms P(k)*L(k), where k increases
from 1 to
n in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and L(k) is a unit lower triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I 0 0 ) k-1
L(k) = ( 0 I 0 ) s
( 0 v I ) n-k-s+1
k-1 s n-k-s+1
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(k+1:n,k).
If s = 2, the lower triangle of D(k) overwrites A(k,k),
A(k+1,k),
and A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).
Contributors:
J. Lewis, Boeing Computer Services Company
subroutine zsptrf (character uplo, integer n, complex*16, dimension( * )ap, integer, dimension( * ) ipiv, integer info)
ZSPTRF
Purpose:
ZSPTRF computes
the factorization of a complex symmetric matrix A
stored in packed format using the Bunch-Kaufman diagonal
pivoting
method:
A = U*D*U**T or A = L*D*L**T
where U (or L)
is a product of permutation and unit upper (lower)
triangular matrices, and D is symmetric and block diagonal
with
1-by-1 and 2-by-2 diagonal blocks.
Parameters
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.
AP
AP is
COMPLEX*16 array, dimension (N*(N+1)/2)
On entry, the upper or lower triangle of the symmetric
matrix
A, packed columnwise in a linear array. The j-th column of A
is stored in the array AP as follows:
if UPLO = āUā, AP(i + (j-1)*j/2) = A(i,j) for
1<=i<=j;
if UPLO = āLā, AP(i + (j-1)*(2n-j)/2) = A(i,j)
for j<=i<=n.
On exit, the
block diagonal matrix D and the multipliers used
to obtain the factor U or L, stored as a packed triangular
matrix overwriting A (see below for further details).
IPIV
IPIV is INTEGER
array, dimension (N)
Details of the interchanges and the block structure of D.
If IPIV(k) > 0, then rows and columns k and IPIV(k) were
interchanged and D(k,k) is a 1-by-1 diagonal block.
If UPLO = āUā and IPIV(k) = IPIV(k-1) < 0,
then rows and
columns k-1 and -IPIV(k) were interchanged and
D(k-1:k,k-1:k)
is a 2-by-2 diagonal block. If UPLO = āLā and
IPIV(k) =
IPIV(k+1) < 0, then rows and columns k+1 and -IPIV(k)
were
interchanged and D(k:k+1,k:k+1) is a 2-by-2 diagonal
block.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, D(i,i) is exactly zero. 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.
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Further Details:
5-96 - Based on
modifications by J. Lewis, Boeing Computer Services
Company
If UPLO =
āUā, then A = U*D*U**T, where
U = P(n)*U(n)* ... *P(k)U(k)* ...,
i.e., U is a product of terms P(k)*U(k), where k decreases
from n to
1 in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and U(k) is a unit upper triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I v 0 ) k-s
U(k) = ( 0 I 0 ) s
( 0 0 I ) n-k
k-s s n-k
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(1:k-1,k).
If s = 2, the upper triangle of D(k) overwrites A(k-1,k-1),
A(k-1,k),
and A(k,k), and v overwrites A(1:k-2,k-1:k).
If UPLO =
āLā, then A = L*D*L**T, where
L = P(1)*L(1)* ... *P(k)*L(k)* ...,
i.e., L is a product of terms P(k)*L(k), where k increases
from 1 to
n in steps of 1 or 2, and D is a block diagonal matrix with
1-by-1
and 2-by-2 diagonal blocks D(k). P(k) is a permutation
matrix as
defined by IPIV(k), and L(k) is a unit lower triangular
matrix, such
that if the diagonal block D(k) is of order s (s = 1 or 2),
then
( I 0 0 ) k-1
L(k) = ( 0 I 0 ) s
( 0 v I ) n-k-s+1
k-1 s n-k-s+1
If s = 1, D(k)
overwrites A(k,k), and v overwrites A(k+1:n,k).
If s = 2, the lower triangle of D(k) overwrites A(k,k),
A(k+1,k),
and A(k+1,k+1), and v overwrites A(k+2:n,k:k+1).
Author
Generated automatically by Doxygen for LAPACK from the source code.