Man page - ungbr(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
ungbr
NAMESYNOPSIS
Functions
Detailed Description
Function Documentation
subroutine cungbr (character vect, integer m, integer n, integer k,complex, dimension( lda, * ) a, integer lda, complex, dimension( * )tau, complex, dimension( * ) work, integer lwork, integer info)
subroutine dorgbr (character vect, integer m, integer n, integer k, doubleprecision, dimension( lda, * ) a, integer lda, double precision,dimension( * ) tau, double precision, dimension( * ) work, integerlwork, integer info)
subroutine sorgbr (character vect, integer m, integer n, integer k, real,dimension( lda, * ) a, integer lda, real, dimension( * ) tau, real,dimension( * ) work, integer lwork, integer info)
subroutine zungbr (character vect, integer m, integer n, integer k,complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension(* ) tau, complex*16, dimension( * ) work, integer lwork, integer info)
Author
NAME
ungbr - {un,or}gbr: generate Q, P from gebrd
SYNOPSIS
Functions
subroutine
cungbr
(vect, m, n, k, a, lda, tau, work, lwork,
info)
CUNGBR
subroutine
dorgbr
(vect, m, n, k, a, lda, tau, work,
lwork, info)
DORGBR
subroutine
sorgbr
(vect, m, n, k, a, lda, tau, work,
lwork, info)
SORGBR
subroutine
zungbr
(vect, m, n, k, a, lda, tau, work,
lwork, info)
ZUNGBR
Detailed Description
Function Documentation
subroutine cungbr (character vect, integer m, integer n, integer k,complex, dimension( lda, * ) a, integer lda, complex, dimension( * )tau, complex, dimension( * ) work, integer lwork, integer info)
CUNGBR
Purpose:
CUNGBR
generates one of the complex unitary matrices Q or P**H
determined by CGEBRD when reducing a complex matrix A to
bidiagonal
form: A = Q * B * P**H. Q and P**H are defined as products
of
elementary reflectors H(i) or G(i) respectively.
If VECT =
āQā, A is assumed to have been an M-by-K matrix,
and Q
is of order M:
if m >= k, Q = H(1) H(2) . . . H(k) and CUNGBR returns
the first n
columns of Q, where m >= n >= k;
if m < k, Q = H(1) H(2) . . . H(m-1) and CUNGBR returns Q
as an
M-by-M matrix.
If VECT =
āPā, A is assumed to have been a K-by-N matrix,
and P**H
is of order N:
if k < n, P**H = G(k) . . . G(2) G(1) and CUNGBR returns
the first m
rows of P**H, where n >= m >= k;
if k >= n, P**H = G(n-1) . . . G(2) G(1) and CUNGBR
returns P**H as
an N-by-N matrix.
Parameters
VECT
VECT is
CHARACTER*1
Specifies whether the matrix Q or the matrix P**H is
required, as defined in the transformation applied by
CGEBRD:
= āQā: generate Q;
= āPā: generate P**H.
M
M is INTEGER
The number of rows of the matrix Q or P**H to be returned.
M >= 0.
N
N is INTEGER
The number of columns of the matrix Q or P**H to be
returned.
N >= 0.
If VECT = āQā, M >= N >= min(M,K);
if VECT = āPā, N >= M >= min(N,K).
K
K is INTEGER
If VECT = āQā, the number of columns in the
original M-by-K
matrix reduced by CGEBRD.
If VECT = āPā, the number of rows in the
original K-by-N
matrix reduced by CGEBRD.
K >= 0.
A
A is COMPLEX
array, dimension (LDA,N)
On entry, the vectors which define the elementary
reflectors,
as returned by CGEBRD.
On exit, the M-by-N matrix Q or P**H.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >= M.
TAU
TAU is COMPLEX
array, dimension
(min(M,K)) if VECT = āQā
(min(N,K)) if VECT = āPā
TAU(i) must contain the scalar factor of the elementary
reflector H(i) or G(i), which determines Q or P**H, as
returned by CGEBRD in its array argument TAUQ or TAUP.
WORK
WORK is COMPLEX
array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is
INTEGER
The dimension of the array WORK. LWORK >=
max(1,min(M,N)).
For optimum performance LWORK >= min(M,N)*NB, where NB
is the optimal blocksize.
If LWORK = -1,
then a workspace query is assumed; the routine
only calculates the optimal size of the WORK array, returns
this value as the first entry of the WORK array, and no
error
message related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal
value
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
subroutine dorgbr (character vect, integer m, integer n, integer k, doubleprecision, dimension( lda, * ) a, integer lda, double precision,dimension( * ) tau, double precision, dimension( * ) work, integerlwork, integer info)
DORGBR
Purpose:
DORGBR
generates one of the real orthogonal matrices Q or P**T
determined by DGEBRD when reducing a real matrix A to
bidiagonal
form: A = Q * B * P**T. Q and P**T are defined as products
of
elementary reflectors H(i) or G(i) respectively.
If VECT =
āQā, A is assumed to have been an M-by-K matrix,
and Q
is of order M:
if m >= k, Q = H(1) H(2) . . . H(k) and DORGBR returns
the first n
columns of Q, where m >= n >= k;
if m < k, Q = H(1) H(2) . . . H(m-1) and DORGBR returns Q
as an
M-by-M matrix.
If VECT =
āPā, A is assumed to have been a K-by-N matrix,
and P**T
is of order N:
if k < n, P**T = G(k) . . . G(2) G(1) and DORGBR returns
the first m
rows of P**T, where n >= m >= k;
if k >= n, P**T = G(n-1) . . . G(2) G(1) and DORGBR
returns P**T as
an N-by-N matrix.
Parameters
VECT
VECT is
CHARACTER*1
Specifies whether the matrix Q or the matrix P**T is
required, as defined in the transformation applied by
DGEBRD:
= āQā: generate Q;
= āPā: generate P**T.
M
M is INTEGER
The number of rows of the matrix Q or P**T to be returned.
M >= 0.
N
N is INTEGER
The number of columns of the matrix Q or P**T to be
returned.
N >= 0.
If VECT = āQā, M >= N >= min(M,K);
if VECT = āPā, N >= M >= min(N,K).
K
K is INTEGER
If VECT = āQā, the number of columns in the
original M-by-K
matrix reduced by DGEBRD.
If VECT = āPā, the number of rows in the
original K-by-N
matrix reduced by DGEBRD.
K >= 0.
A
A is DOUBLE
PRECISION array, dimension (LDA,N)
On entry, the vectors which define the elementary
reflectors,
as returned by DGEBRD.
On exit, the M-by-N matrix Q or P**T.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,M).
TAU
TAU is DOUBLE
PRECISION array, dimension
(min(M,K)) if VECT = āQā
(min(N,K)) if VECT = āPā
TAU(i) must contain the scalar factor of the elementary
reflector H(i) or G(i), which determines Q or P**T, as
returned by DGEBRD in its array argument TAUQ or TAUP.
WORK
WORK is DOUBLE
PRECISION array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is
INTEGER
The dimension of the array WORK. LWORK >=
max(1,min(M,N)).
For optimum performance LWORK >= min(M,N)*NB, where NB
is the optimal blocksize.
If LWORK = -1,
then a workspace query is assumed; the routine
only calculates the optimal size of the WORK array, returns
this value as the first entry of the WORK array, and no
error
message related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal
value
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
subroutine sorgbr (character vect, integer m, integer n, integer k, real,dimension( lda, * ) a, integer lda, real, dimension( * ) tau, real,dimension( * ) work, integer lwork, integer info)
SORGBR
Purpose:
SORGBR
generates one of the real orthogonal matrices Q or P**T
determined by SGEBRD when reducing a real matrix A to
bidiagonal
form: A = Q * B * P**T. Q and P**T are defined as products
of
elementary reflectors H(i) or G(i) respectively.
If VECT =
āQā, A is assumed to have been an M-by-K matrix,
and Q
is of order M:
if m >= k, Q = H(1) H(2) . . . H(k) and SORGBR returns
the first n
columns of Q, where m >= n >= k;
if m < k, Q = H(1) H(2) . . . H(m-1) and SORGBR returns Q
as an
M-by-M matrix.
If VECT =
āPā, A is assumed to have been a K-by-N matrix,
and P**T
is of order N:
if k < n, P**T = G(k) . . . G(2) G(1) and SORGBR returns
the first m
rows of P**T, where n >= m >= k;
if k >= n, P**T = G(n-1) . . . G(2) G(1) and SORGBR
returns P**T as
an N-by-N matrix.
Parameters
VECT
VECT is
CHARACTER*1
Specifies whether the matrix Q or the matrix P**T is
required, as defined in the transformation applied by
SGEBRD:
= āQā: generate Q;
= āPā: generate P**T.
M
M is INTEGER
The number of rows of the matrix Q or P**T to be returned.
M >= 0.
N
N is INTEGER
The number of columns of the matrix Q or P**T to be
returned.
N >= 0.
If VECT = āQā, M >= N >= min(M,K);
if VECT = āPā, N >= M >= min(N,K).
K
K is INTEGER
If VECT = āQā, the number of columns in the
original M-by-K
matrix reduced by SGEBRD.
If VECT = āPā, the number of rows in the
original K-by-N
matrix reduced by SGEBRD.
K >= 0.
A
A is REAL
array, dimension (LDA,N)
On entry, the vectors which define the elementary
reflectors,
as returned by SGEBRD.
On exit, the M-by-N matrix Q or P**T.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >=
max(1,M).
TAU
TAU is REAL
array, dimension
(min(M,K)) if VECT = āQā
(min(N,K)) if VECT = āPā
TAU(i) must contain the scalar factor of the elementary
reflector H(i) or G(i), which determines Q or P**T, as
returned by SGEBRD in its array argument TAUQ or TAUP.
WORK
WORK is REAL
array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is
INTEGER
The dimension of the array WORK. LWORK >=
max(1,min(M,N)).
For optimum performance LWORK >= min(M,N)*NB, where NB
is the optimal blocksize.
If LWORK = -1,
then a workspace query is assumed; the routine
only calculates the optimal size of the WORK array, returns
this value as the first entry of the WORK array, and no
error
message related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal
value
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
subroutine zungbr (character vect, integer m, integer n, integer k,complex*16, dimension( lda, * ) a, integer lda, complex*16, dimension(* ) tau, complex*16, dimension( * ) work, integer lwork, integer info)
ZUNGBR
Purpose:
ZUNGBR
generates one of the complex unitary matrices Q or P**H
determined by ZGEBRD when reducing a complex matrix A to
bidiagonal
form: A = Q * B * P**H. Q and P**H are defined as products
of
elementary reflectors H(i) or G(i) respectively.
If VECT =
āQā, A is assumed to have been an M-by-K matrix,
and Q
is of order M:
if m >= k, Q = H(1) H(2) . . . H(k) and ZUNGBR returns
the first n
columns of Q, where m >= n >= k;
if m < k, Q = H(1) H(2) . . . H(m-1) and ZUNGBR returns Q
as an
M-by-M matrix.
If VECT =
āPā, A is assumed to have been a K-by-N matrix,
and P**H
is of order N:
if k < n, P**H = G(k) . . . G(2) G(1) and ZUNGBR returns
the first m
rows of P**H, where n >= m >= k;
if k >= n, P**H = G(n-1) . . . G(2) G(1) and ZUNGBR
returns P**H as
an N-by-N matrix.
Parameters
VECT
VECT is
CHARACTER*1
Specifies whether the matrix Q or the matrix P**H is
required, as defined in the transformation applied by
ZGEBRD:
= āQā: generate Q;
= āPā: generate P**H.
M
M is INTEGER
The number of rows of the matrix Q or P**H to be returned.
M >= 0.
N
N is INTEGER
The number of columns of the matrix Q or P**H to be
returned.
N >= 0.
If VECT = āQā, M >= N >= min(M,K);
if VECT = āPā, N >= M >= min(N,K).
K
K is INTEGER
If VECT = āQā, the number of columns in the
original M-by-K
matrix reduced by ZGEBRD.
If VECT = āPā, the number of rows in the
original K-by-N
matrix reduced by ZGEBRD.
K >= 0.
A
A is COMPLEX*16
array, dimension (LDA,N)
On entry, the vectors which define the elementary
reflectors,
as returned by ZGEBRD.
On exit, the M-by-N matrix Q or P**H.
LDA
LDA is INTEGER
The leading dimension of the array A. LDA >= M.
TAU
TAU is
COMPLEX*16 array, dimension
(min(M,K)) if VECT = āQā
(min(N,K)) if VECT = āPā
TAU(i) must contain the scalar factor of the elementary
reflector H(i) or G(i), which determines Q or P**H, as
returned by ZGEBRD in its array argument TAUQ or TAUP.
WORK
WORK is
COMPLEX*16 array, dimension (MAX(1,LWORK))
On exit, if INFO = 0, WORK(1) returns the optimal LWORK.
LWORK
LWORK is
INTEGER
The dimension of the array WORK. LWORK >=
max(1,min(M,N)).
For optimum performance LWORK >= min(M,N)*NB, where NB
is the optimal blocksize.
If LWORK = -1,
then a workspace query is assumed; the routine
only calculates the optimal size of the WORK array, returns
this value as the first entry of the WORK array, and no
error
message related to LWORK is issued by XERBLA.
INFO
INFO is INTEGER
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal
value
Author
Univ. of Tennessee
Univ. of California Berkeley
Univ. of Colorado Denver
NAG Ltd.
Author
Generated automatically by Doxygen for LAPACK from the source code.