Man page - gsvj1(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
gsvj1
NAMESYNOPSIS
Functions
Detailed Description
Function Documentation
subroutine cgsvj1 (character*1 jobv, integer m, integer n, integer n1,complex, dimension( lda, * ) a, integer lda, complex, dimension( n ) d,real, dimension( n ) sva, integer mv, complex, dimension( ldv, * ) v,integer ldv, real eps, real sfmin, real tol, integer nsweep, complex,dimension( lwork ) work, integer lwork, integer info)
subroutine dgsvj1 (character*1 jobv, integer m, integer n, integer n1,double precision, dimension( lda, * ) a, integer lda, double precision,dimension( n ) d, double precision, dimension( n ) sva, integer mv,double precision, dimension( ldv, * ) v, integer ldv, double precisioneps, double precision sfmin, double precision tol, integer nsweep,double precision, dimension( lwork ) work, integer lwork, integer info)
subroutine sgsvj1 (character*1 jobv, integer m, integer n, integer n1,real, dimension( lda, * ) a, integer lda, real, dimension( n ) d, real,dimension( n ) sva, integer mv, real, dimension( ldv, * ) v, integerldv, real eps, real sfmin, real tol, integer nsweep, real, dimension(lwork ) work, integer lwork, integer info)
subroutine zgsvj1 (character*1 jobv, integer m, integer n, integer n1,complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension(n ) d, double precision, dimension( n ) sva, integer mv, complex*16,dimension( ldv, * ) v, integer ldv, double precision eps, doubleprecision sfmin, double precision tol, integer nsweep, complex*16,dimension( lwork ) work, integer lwork, integer info)
Author
NAME
gsvj1 - gsvj1: step in gesvj
SYNOPSIS
Functions
subroutine
cgsvj1
(jobv, m, n, n1, a, lda, d, sva, mv, v, ldv,
eps, sfmin, tol, nsweep, work, lwork, info)
CGSVJ1
pre-processor for the routine cgesvj, applies
Jacobi rotations targeting only particular pivots.
subroutine
dgsvj1
(jobv, m, n, n1, a, lda, d, sva,
mv, v, ldv, eps, sfmin, tol, nsweep, work, lwork, info)
DGSVJ1
pre-processor for the routine dgesvj, applies
Jacobi rotations targeting only particular pivots.
subroutine
sgsvj1
(jobv, m, n, n1, a, lda, d, sva,
mv, v, ldv, eps, sfmin, tol, nsweep, work, lwork, info)
SGSVJ1
pre-processor for the routine sgesvj, applies
Jacobi rotations targeting only particular pivots.
subroutine
zgsvj1
(jobv, m, n, n1, a, lda, d, sva,
mv, v, ldv, eps, sfmin, tol, nsweep, work, lwork, info)
ZGSVJ1
pre-processor for the routine zgesvj, applies
Jacobi rotations targeting only particular pivots.
Detailed Description
Function Documentation
subroutine cgsvj1 (character*1 jobv, integer m, integer n, integer n1,complex, dimension( lda, * ) a, integer lda, complex, dimension( n ) d,real, dimension( n ) sva, integer mv, complex, dimension( ldv, * ) v,integer ldv, real eps, real sfmin, real tol, integer nsweep, complex,dimension( lwork ) work, integer lwork, integer info)
CGSVJ1 pre-processor for the routine cgesvj, applies Jacobi rotations targeting only particular pivots.
Purpose:
CGSVJ1 is
called from CGESVJ as a pre-processor and that is its main
purpose. It applies Jacobi rotations in the same way as
CGESVJ does, but
it targets only particular pivots and it does not check
convergence
(stopping criterion). Few tuning parameters (marked by [TP])
are
available for the implementer.
Further Details
˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜
CGSVJ1 applies few sweeps of Jacobi rotations in the column
space of
the input M-by-N matrix A. The pivot pairs are taken from
the (1,2)
off-diagonal block in the corresponding N-by-N Gram matrix
AˆT * A. The
block-entries (tiles) of the (1,2) off-diagonal block are
marked by the
[x]’s in the following scheme:
| * * * [x] [x]
[x]|
| * * * [x] [x] [x]| Row-cycling in the nblr-by-nblc [x]
blocks.
| * * * [x] [x] [x]| Row-cyclic pivoting inside each [x]
block.
|[x] [x] [x] * * * |
|[x] [x] [x] * * * |
|[x] [x] [x] * * * |
In terms of the
columns of A, the first N1 columns are rotated
’against’
the remaining N-N1 columns, trying to increase the angle
between the
corresponding subspaces. The off-diagonal block is
N1-by(N-N1) and it is
tiled using quadratic tiles of side KBL. Here, KBL is a
tuning parameter.
The number of sweeps is given in NSWEEP and the
orthogonality threshold
is given in TOL.
Parameters
JOBV
JOBV is
CHARACTER*1
Specifies whether the output from this procedure is used
to compute the matrix V:
= ’V’: the product of the Jacobi rotations is
accumulated
by postmultiplying the N-by-N array V.
(See the description of V.)
= ’A’: the product of the Jacobi rotations is
accumulated
by postmultiplying the MV-by-N array V.
(See the descriptions of MV and V.)
= ’N’: the Jacobi rotations are not
accumulated.
M
M is INTEGER
The number of rows of the input matrix A. M >= 0.
N
N is INTEGER
The number of columns of the input matrix A.
M >= N >= 0.
N1
N1 is INTEGER
N1 specifies the 2 x 2 block partition, the first N1 columns
are
rotated ’against’ the remaining N-N1 columns of
A.
A
A is COMPLEX
array, dimension (LDA,N)
On entry, M-by-N matrix A, such that A*diag(D) represents
the input matrix.
On exit,
A_onexit * D_onexit represents the input matrix A*diag(D)
post-multiplied by a sequence of Jacobi rotations, where the
rotation threshold and the total number of sweeps are given
in
TOL and NSWEEP, respectively.
(See the descriptions of N1, D, TOL and NSWEEP.)
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,M).
D
D is COMPLEX
array, dimension (N)
The array D accumulates the scaling factors from the fast
scaled
Jacobi rotations.
On entry, A*diag(D) represents the input matrix.
On exit, A_onexit*diag(D_onexit) represents the input matrix
post-multiplied by a sequence of Jacobi rotations, where the
rotation threshold and the total number of sweeps are given
in
TOL and NSWEEP, respectively.
(See the descriptions of N1, A, TOL and NSWEEP.)
SVA
SVA is REAL
array, dimension (N)
On entry, SVA contains the Euclidean norms of the columns of
the matrix A*diag(D).
On exit, SVA contains the Euclidean norms of the columns of
the matrix onexit*diag(D_onexit).
MV
MV is INTEGER
If JOBV = ’A’, then MV rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’N’, then MV is not referenced.
V
V is COMPLEX
array, dimension (LDV,N)
If JOBV = ’V’ then N rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’A’ then MV rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’N’, then V is not referenced.
LDV
LDV is INTEGER
The leading dimension of the array V, LDV >= 1.
If JOBV = ’V’, LDV >= N.
If JOBV = ’A’, LDV >= MV.
EPS
EPS is REAL
EPS = SLAMCH(’Epsilon’)
SFMIN
SFMIN is REAL
SFMIN = SLAMCH(’Safe Minimum’)
TOL
TOL is REAL
TOL is the threshold for Jacobi rotations. For a pair
A(:,p), A(:,q) of pivot columns, the Jacobi rotation is
applied only if ABS(COS(angle(A(:,p),A(:,q)))) > TOL.
NSWEEP
NSWEEP is
INTEGER
NSWEEP is the number of sweeps of Jacobi rotations to be
performed.
WORK
WORK is COMPLEX array, dimension (LWORK)
LWORK
LWORK is
INTEGER
LWORK is the dimension of WORK. LWORK >= M.
INFO
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, then the i-th argument had an illegal
value
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributor:
Zlatko Drmac (Zagreb, Croatia)
subroutine dgsvj1 (character*1 jobv, integer m, integer n, integer n1,double precision, dimension( lda, * ) a, integer lda, double precision,dimension( n ) d, double precision, dimension( n ) sva, integer mv,double precision, dimension( ldv, * ) v, integer ldv, double precisioneps, double precision sfmin, double precision tol, integer nsweep,double precision, dimension( lwork ) work, integer lwork, integer info)
DGSVJ1 pre-processor for the routine dgesvj, applies Jacobi rotations targeting only particular pivots.
Purpose:
DGSVJ1 is
called from DGESVJ as a pre-processor and that is its main
purpose. It applies Jacobi rotations in the same way as
DGESVJ does, but
it targets only particular pivots and it does not check
convergence
(stopping criterion). Few tuning parameters (marked by [TP])
are
available for the implementer.
Further Details
˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜
DGSVJ1 applies few sweeps of Jacobi rotations in the column
space of
the input M-by-N matrix A. The pivot pairs are taken from
the (1,2)
off-diagonal block in the corresponding N-by-N Gram matrix
AˆT * A. The
block-entries (tiles) of the (1,2) off-diagonal block are
marked by the
[x]’s in the following scheme:
| * * * [x] [x]
[x]|
| * * * [x] [x] [x]| Row-cycling in the nblr-by-nblc [x]
blocks.
| * * * [x] [x] [x]| Row-cyclic pivoting inside each [x]
block.
|[x] [x] [x] * * * |
|[x] [x] [x] * * * |
|[x] [x] [x] * * * |
In terms of the
columns of A, the first N1 columns are rotated
’against’
the remaining N-N1 columns, trying to increase the angle
between the
corresponding subspaces. The off-diagonal block is
N1-by(N-N1) and it is
tiled using quadratic tiles of side KBL. Here, KBL is a
tuning parameter.
The number of sweeps is given in NSWEEP and the
orthogonality threshold
is given in TOL.
Parameters
JOBV
JOBV is
CHARACTER*1
Specifies whether the output from this procedure is used
to compute the matrix V:
= ’V’: the product of the Jacobi rotations is
accumulated
by postmultiplying the N-by-N array V.
(See the description of V.)
= ’A’: the product of the Jacobi rotations is
accumulated
by postmultiplying the MV-by-N array V.
(See the descriptions of MV and V.)
= ’N’: the Jacobi rotations are not
accumulated.
M
M is INTEGER
The number of rows of the input matrix A. M >= 0.
N
N is INTEGER
The number of columns of the input matrix A.
M >= N >= 0.
N1
N1 is INTEGER
N1 specifies the 2 x 2 block partition, the first N1 columns
are
rotated ’against’ the remaining N-N1 columns of
A.
A
A is DOUBLE
PRECISION array, dimension (LDA,N)
On entry, M-by-N matrix A, such that A*diag(D) represents
the input matrix.
On exit,
A_onexit * D_onexit represents the input matrix A*diag(D)
post-multiplied by a sequence of Jacobi rotations, where the
rotation threshold and the total number of sweeps are given
in
TOL and NSWEEP, respectively.
(See the descriptions of N1, D, TOL and NSWEEP.)
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,M).
D
D is DOUBLE
PRECISION array, dimension (N)
The array D accumulates the scaling factors from the fast
scaled
Jacobi rotations.
On entry, A*diag(D) represents the input matrix.
On exit, A_onexit*diag(D_onexit) represents the input matrix
post-multiplied by a sequence of Jacobi rotations, where the
rotation threshold and the total number of sweeps are given
in
TOL and NSWEEP, respectively.
(See the descriptions of N1, A, TOL and NSWEEP.)
SVA
SVA is DOUBLE
PRECISION array, dimension (N)
On entry, SVA contains the Euclidean norms of the columns of
the matrix A*diag(D).
On exit, SVA contains the Euclidean norms of the columns of
the matrix onexit*diag(D_onexit).
MV
MV is INTEGER
If JOBV = ’A’, then MV rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’N’, then MV is not referenced.
V
V is DOUBLE
PRECISION array, dimension (LDV,N)
If JOBV = ’V’, then N rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’A’, then MV rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’N’, then V is not referenced.
LDV
LDV is INTEGER
The leading dimension of the array V, LDV >= 1.
If JOBV = ’V’, LDV >= N.
If JOBV = ’A’, LDV >= MV.
EPS
EPS is DOUBLE
PRECISION
EPS = DLAMCH(’Epsilon’)
SFMIN
SFMIN is DOUBLE
PRECISION
SFMIN = DLAMCH(’Safe Minimum’)
TOL
TOL is DOUBLE
PRECISION
TOL is the threshold for Jacobi rotations. For a pair
A(:,p), A(:,q) of pivot columns, the Jacobi rotation is
applied only if DABS(COS(angle(A(:,p),A(:,q)))) >
TOL.
NSWEEP
NSWEEP is
INTEGER
NSWEEP is the number of sweeps of Jacobi rotations to be
performed.
WORK
WORK is DOUBLE PRECISION array, dimension (LWORK)
LWORK
LWORK is
INTEGER
LWORK is the dimension of WORK. LWORK >= M.
INFO
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, then the i-th argument had an illegal
value
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany)
subroutine sgsvj1 (character*1 jobv, integer m, integer n, integer n1,real, dimension( lda, * ) a, integer lda, real, dimension( n ) d, real,dimension( n ) sva, integer mv, real, dimension( ldv, * ) v, integerldv, real eps, real sfmin, real tol, integer nsweep, real, dimension(lwork ) work, integer lwork, integer info)
SGSVJ1 pre-processor for the routine sgesvj, applies Jacobi rotations targeting only particular pivots.
Purpose:
SGSVJ1 is
called from SGESVJ as a pre-processor and that is its main
purpose. It applies Jacobi rotations in the same way as
SGESVJ does, but
it targets only particular pivots and it does not check
convergence
(stopping criterion). Few tuning parameters (marked by [TP])
are
available for the implementer.
Further Details
˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜
SGSVJ1 applies few sweeps of Jacobi rotations in the column
space of
the input M-by-N matrix A. The pivot pairs are taken from
the (1,2)
off-diagonal block in the corresponding N-by-N Gram matrix
AˆT * A. The
block-entries (tiles) of the (1,2) off-diagonal block are
marked by the
[x]’s in the following scheme:
| * * * [x] [x]
[x]|
| * * * [x] [x] [x]| Row-cycling in the nblr-by-nblc [x]
blocks.
| * * * [x] [x] [x]| Row-cyclic pivoting inside each [x]
block.
|[x] [x] [x] * * * |
|[x] [x] [x] * * * |
|[x] [x] [x] * * * |
In terms of the
columns of A, the first N1 columns are rotated
’against’
the remaining N-N1 columns, trying to increase the angle
between the
corresponding subspaces. The off-diagonal block is
N1-by(N-N1) and it is
tiled using quadratic tiles of side KBL. Here, KBL is a
tuning parameter.
The number of sweeps is given in NSWEEP and the
orthogonality threshold
is given in TOL.
Parameters
JOBV
JOBV is
CHARACTER*1
Specifies whether the output from this procedure is used
to compute the matrix V:
= ’V’: the product of the Jacobi rotations is
accumulated
by postmultiplying the N-by-N array V.
(See the description of V.)
= ’A’: the product of the Jacobi rotations is
accumulated
by postmultiplying the MV-by-N array V.
(See the descriptions of MV and V.)
= ’N’: the Jacobi rotations are not
accumulated.
M
M is INTEGER
The number of rows of the input matrix A. M >= 0.
N
N is INTEGER
The number of columns of the input matrix A.
M >= N >= 0.
N1
N1 is INTEGER
N1 specifies the 2 x 2 block partition, the first N1 columns
are
rotated ’against’ the remaining N-N1 columns of
A.
A
A is REAL
array, dimension (LDA,N)
On entry, M-by-N matrix A, such that A*diag(D) represents
the input matrix.
On exit,
A_onexit * D_onexit represents the input matrix A*diag(D)
post-multiplied by a sequence of Jacobi rotations, where the
rotation threshold and the total number of sweeps are given
in
TOL and NSWEEP, respectively.
(See the descriptions of N1, D, TOL and NSWEEP.)
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,M).
D
D is REAL
array, dimension (N)
The array D accumulates the scaling factors from the fast
scaled
Jacobi rotations.
On entry, A*diag(D) represents the input matrix.
On exit, A_onexit*diag(D_onexit) represents the input matrix
post-multiplied by a sequence of Jacobi rotations, where the
rotation threshold and the total number of sweeps are given
in
TOL and NSWEEP, respectively.
(See the descriptions of N1, A, TOL and NSWEEP.)
SVA
SVA is REAL
array, dimension (N)
On entry, SVA contains the Euclidean norms of the columns of
the matrix A*diag(D).
On exit, SVA contains the Euclidean norms of the columns of
the matrix onexit*diag(D_onexit).
MV
MV is INTEGER
If JOBV = ’A’, then MV rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’N’, then MV is not referenced.
V
V is REAL
array, dimension (LDV,N)
If JOBV = ’V’ then N rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’A’ then MV rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’N’, then V is not referenced.
LDV
LDV is INTEGER
The leading dimension of the array V, LDV >= 1.
If JOBV = ’V’, LDV >= N.
If JOBV = ’A’, LDV >= MV.
EPS
EPS is REAL
EPS = SLAMCH(’Epsilon’)
SFMIN
SFMIN is REAL
SFMIN = SLAMCH(’Safe Minimum’)
TOL
TOL is REAL
TOL is the threshold for Jacobi rotations. For a pair
A(:,p), A(:,q) of pivot columns, the Jacobi rotation is
applied only if ABS(COS(angle(A(:,p),A(:,q)))) > TOL.
NSWEEP
NSWEEP is
INTEGER
NSWEEP is the number of sweeps of Jacobi rotations to be
performed.
WORK
WORK is REAL array, dimension (LWORK)
LWORK
LWORK is
INTEGER
LWORK is the dimension of WORK. LWORK >= M.
INFO
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, then the i-th argument had an illegal
value
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributors:
Zlatko Drmac (Zagreb, Croatia) and Kresimir Veselic (Hagen, Germany)
subroutine zgsvj1 (character*1 jobv, integer m, integer n, integer n1,complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension(n ) d, double precision, dimension( n ) sva, integer mv, complex*16,dimension( ldv, * ) v, integer ldv, double precision eps, doubleprecision sfmin, double precision tol, integer nsweep, complex*16,dimension( lwork ) work, integer lwork, integer info)
ZGSVJ1 pre-processor for the routine zgesvj, applies Jacobi rotations targeting only particular pivots.
Purpose:
ZGSVJ1 is
called from ZGESVJ as a pre-processor and that is its main
purpose. It applies Jacobi rotations in the same way as
ZGESVJ does, but
it targets only particular pivots and it does not check
convergence
(stopping criterion). Few tuning parameters (marked by [TP])
are
available for the implementer.
Further Details
˜˜˜˜˜˜˜˜˜˜˜˜˜˜˜
ZGSVJ1 applies few sweeps of Jacobi rotations in the column
space of
the input M-by-N matrix A. The pivot pairs are taken from
the (1,2)
off-diagonal block in the corresponding N-by-N Gram matrix
AˆT * A. The
block-entries (tiles) of the (1,2) off-diagonal block are
marked by the
[x]’s in the following scheme:
| * * * [x] [x]
[x]|
| * * * [x] [x] [x]| Row-cycling in the nblr-by-nblc [x]
blocks.
| * * * [x] [x] [x]| Row-cyclic pivoting inside each [x]
block.
|[x] [x] [x] * * * |
|[x] [x] [x] * * * |
|[x] [x] [x] * * * |
In terms of the
columns of A, the first N1 columns are rotated
’against’
the remaining N-N1 columns, trying to increase the angle
between the
corresponding subspaces. The off-diagonal block is
N1-by(N-N1) and it is
tiled using quadratic tiles of side KBL. Here, KBL is a
tuning parameter.
The number of sweeps is given in NSWEEP and the
orthogonality threshold
is given in TOL.
Parameters
JOBV
JOBV is
CHARACTER*1
Specifies whether the output from this procedure is used
to compute the matrix V:
= ’V’: the product of the Jacobi rotations is
accumulated
by postmultiplying the N-by-N array V.
(See the description of V.)
= ’A’: the product of the Jacobi rotations is
accumulated
by postmultiplying the MV-by-N array V.
(See the descriptions of MV and V.)
= ’N’: the Jacobi rotations are not
accumulated.
M
M is INTEGER
The number of rows of the input matrix A. M >= 0.
N
N is INTEGER
The number of columns of the input matrix A.
M >= N >= 0.
N1
N1 is INTEGER
N1 specifies the 2 x 2 block partition, the first N1 columns
are
rotated ’against’ the remaining N-N1 columns of
A.
A
A is COMPLEX*16
array, dimension (LDA,N)
On entry, M-by-N matrix A, such that A*diag(D) represents
the input matrix.
On exit,
A_onexit * D_onexit represents the input matrix A*diag(D)
post-multiplied by a sequence of Jacobi rotations, where the
rotation threshold and the total number of sweeps are given
in
TOL and NSWEEP, respectively.
(See the descriptions of N1, D, TOL and NSWEEP.)
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,M).
D
D is COMPLEX*16
array, dimension (N)
The array D accumulates the scaling factors from the fast
scaled
Jacobi rotations.
On entry, A*diag(D) represents the input matrix.
On exit, A_onexit*diag(D_onexit) represents the input matrix
post-multiplied by a sequence of Jacobi rotations, where the
rotation threshold and the total number of sweeps are given
in
TOL and NSWEEP, respectively.
(See the descriptions of N1, A, TOL and NSWEEP.)
SVA
SVA is DOUBLE
PRECISION array, dimension (N)
On entry, SVA contains the Euclidean norms of the columns of
the matrix A*diag(D).
On exit, SVA contains the Euclidean norms of the columns of
the matrix onexit*diag(D_onexit).
MV
MV is INTEGER
If JOBV = ’A’, then MV rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’N’, then MV is not referenced.
V
V is COMPLEX*16
array, dimension (LDV,N)
If JOBV = ’V’ then N rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’A’ then MV rows of V are
post-multiplied by a
sequence of Jacobi rotations.
If JOBV = ’N’, then V is not referenced.
LDV
LDV is INTEGER
The leading dimension of the array V, LDV >= 1.
If JOBV = ’V’, LDV >= N.
If JOBV = ’A’, LDV >= MV.
EPS
EPS is DOUBLE
PRECISION
EPS = DLAMCH(’Epsilon’)
SFMIN
SFMIN is DOUBLE
PRECISION
SFMIN = DLAMCH(’Safe Minimum’)
TOL
TOL is DOUBLE
PRECISION
TOL is the threshold for Jacobi rotations. For a pair
A(:,p), A(:,q) of pivot columns, the Jacobi rotation is
applied only if ABS(COS(angle(A(:,p),A(:,q)))) > TOL.
NSWEEP
NSWEEP is
INTEGER
NSWEEP is the number of sweeps of Jacobi rotations to be
performed.
WORK
WORK is COMPLEX*16 array, dimension (LWORK)
LWORK
LWORK is
INTEGER
LWORK is the dimension of WORK. LWORK >= M.
INFO
INFO is INTEGER
= 0: successful exit.
< 0: if INFO = -i, then the i-th argument had an illegal
value
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Contributor:
Zlatko Drmac (Zagreb, Croatia)
Author
Generated automatically by Doxygen for LAPACK from the source code.