upgtr(3)
β¨ upgtr β the upgtr(3) page, but make it make sense β¨
ok so bestie, you know how this whole family of routines is literally just "LAPACK, but make it packed"? yeah. this is the upgtr page from the LAPACK Library Functions Manual, and it's giving very specific. buckle up π
πΈ NAME πΈ
upgtr β {up,op}gtr: generate Q from hetrd
(no cap, that's the whole vibe. the {up,op} is doing a little costume change so it can be cupgtr, dopgtr, sopgtr, and zupgtr all at once π)
π¦ SYNOPSIS π¦
Functions
subroutine cupgtr (uplo, n, ap, tau, q, ldq, work, info)
CUPGTR
subroutine dopgtr (uplo, n, ap, tau, q, ldq, work, info)
DOPGTR
subroutine sopgtr (uplo, n, ap, tau, q, ldq, work, info)
SOPGTR
subroutine zupgtr (uplo, n, ap, tau, q, ldq, work, info)
ZUPGTR
four routines. same shape. different precision. the whole squad is here π«Ά
π Detailed Description π
Function Documentation
ok so here's the tea β each one of these bad boys takes the elementary reflectors that some other routine already made for you (a ?HPTRD / ?SPTRD situation) and stitches them back together into the full matrix Q. like un-squishing. the glow-up. β¨
π subroutine cupgtr
subroutine cupgtr (character uplo, integer n, complex, dimension( * ) ap,
complex, dimension( * ) tau, complex, dimension( ldq, * ) q, integer
ldq, complex, dimension( * ) work, integer info)
CUPGTR
π Purpose:
!>
!> CUPGTR generates a complex unitary matrix Q which is defined as the
!> product of n-1 elementary reflectors H(i) of order n, as returned by
!> CHPTRD using packed storage:
!>
!> if UPLO = 'U', Q = H(n-1) . . . H(2) H(1),
!>
!> if UPLO = 'L', Q = H(1) H(2) . . . H(n-1).
!>
π Parameters
UPLO
!> UPLO is CHARACTER*1
!> = 'U': Upper triangular packed storage used in previous
!> call to CHPTRD;
!> = 'L': Lower triangular packed storage used in previous
!> call to CHPTRD.
!>
N
!> N is INTEGER
!> The order of the matrix Q. N >= 0.
!>
AP
!> AP is COMPLEX array, dimension (N*(N+1)/2)
!> The vectors which define the elementary reflectors, as
!> returned by CHPTRD.
!>
TAU
!> TAU is COMPLEX array, dimension (N-1)
!> TAU(i) must contain the scalar factor of the elementary
!> reflector H(i), as returned by CHPTRD.
!>
Q
!> Q is COMPLEX array, dimension (LDQ,N)
!> The N-by-N unitary matrix Q.
!>
LDQ
!> LDQ is INTEGER
!> The leading dimension of the array Q. LDQ >= max(1,N).
!>
WORK
!> WORK is COMPLEX array, dimension (N-1)
!>
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.
Definition at line 113 of file cupgtr.f.
πΈ subroutine dopgtr
subroutine dopgtr (character uplo, integer n, double precision, dimension( *
) ap, double precision, dimension( * ) tau, double precision, dimension(
ldq, * ) q, integer ldq, double precision, dimension( * ) work, integer
info)
DOPGTR
π Purpose:
!>
!> DOPGTR generates a real orthogonal matrix Q which is defined as the
!> product of n-1 elementary reflectors H(i) of order n, as returned by
!> DSPTRD using packed storage:
!>
!> if UPLO = 'U', Q = H(n-1) . . . H(2) H(1),
!>
!> if UPLO = 'L', Q = H(1) H(2) . . . H(n-1).
!>
π Parameters
UPLO
!> UPLO is CHARACTER*1
!> = 'U': Upper triangular packed storage used in previous
!> call to DSPTRD;
!> = 'L': Lower triangular packed storage used in previous
!> call to DSPTRD.
!>
N
!> N is INTEGER
!> The order of the matrix Q. N >= 0.
!>
AP
!> AP is DOUBLE PRECISION array, dimension (N*(N+1)/2)
!> The vectors which define the elementary reflectors, as
!> returned by DSPTRD.
!>
TAU
!> TAU is DOUBLE PRECISION array, dimension (N-1)
!> TAU(i) must contain the scalar factor of the elementary
!> reflector H(i), as returned by DSPTRD.
!>
Q
!> Q is DOUBLE PRECISION array, dimension (LDQ,N)
!> The N-by-N orthogonal matrix Q.
!>
LDQ
!> LDQ is INTEGER
!> The leading dimension of the array Q. LDQ >= max(1,N).
!>
WORK
!> WORK is DOUBLE PRECISION array, dimension (N-1)
!>
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.
Definition at line 113 of file dopgtr.f.
πΌ subroutine sopgtr
subroutine sopgtr (character uplo, integer n, real, dimension( * ) ap, real,
dimension( * ) tau, real, dimension( ldq, * ) q, integer ldq, real,
dimension( * ) work, integer info)
SOPGTR
π Purpose:
!>
!> SOPGTR generates a real orthogonal matrix Q which is defined as the
!> product of n-1 elementary reflectors H(i) of order n, as returned by
!> SSPTRD using packed storage:
!>
!> if UPLO = 'U', Q = H(n-1) . . . H(2) H(1),
!>
!> if UPLO = 'L', Q = H(1) H(2) . . . H(n-1).
!>
π Parameters
UPLO
!> UPLO is CHARACTER*1
!> = 'U': Upper triangular packed storage used in previous
!> call to SSPTRD;
!> = 'L': Lower triangular packed storage used in previous
!> call to SSPTRD.
!>
N
!> N is INTEGER
!> The order of the matrix Q. N >= 0.
!>
AP
!> AP is REAL array, dimension (N*(N+1)/2)
!> The vectors which define the elementary reflectors, as
!> returned by SSPTRD.
!>
TAU
!> TAU is REAL array, dimension (N-1)
!> TAU(i) must contain the scalar factor of the elementary
!> reflector H(i), as returned by SSPTRD.
!>
Q
!> Q is REAL array, dimension (LDQ,N)
!> The N-by-N orthogonal matrix Q.
!>
LDQ
!> LDQ is INTEGER
!> The leading dimension of the array Q. LDQ >= max(1,N).
!>
WORK
!> WORK is REAL array, dimension (N-1)
!>
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.
Definition at line 113 of file sopgtr.f.
π subroutine zupgtr
subroutine zupgtr (character uplo, integer n, complex*16, dimension( * ) ap,
complex*16, dimension( * ) tau, complex*16, dimension( ldq, * ) q,
integer ldq, complex*16, dimension( * ) work, integer info)
ZUPGTR
π Purpose:
!>
!> ZUPGTR generates a complex unitary matrix Q which is defined as the
!> product of n-1 elementary reflectors H(i) of order n, as returned by
!> ZHPTRD using packed storage:
!>
!> if UPLO = 'U', Q = H(n-1) . . . H(2) H(1),
!>
!> if UPLO = 'L', Q = H(1) H(2) . . . H(n-1).
!>
π Parameters
UPLO
!> UPLO is CHARACTER*1
!> = 'U': Upper triangular packed storage used in previous
!> call to ZHPTRD;
!> = 'L': Lower triangular packed storage used in previous
!> call to ZHPTRD.
!>
N
!> N is INTEGER
!> The order of the matrix Q. N >= 0.
!>
AP
!> AP is COMPLEX*16 array, dimension (N*(N+1)/2)
!> The vectors which define the elementary reflectors, as
!> returned by ZHPTRD.
!>
TAU
!> TAU is COMPLEX*16 array, dimension (N-1)
!> TAU(i) must contain the scalar factor of the elementary
!> reflector H(i), as returned by ZHPTRD.
!>
Q
!> Q is COMPLEX*16 array, dimension (LDQ,N)
!> The N-by-N unitary matrix Q.
!>
LDQ
!> LDQ is INTEGER
!> The leading dimension of the array Q. LDQ >= max(1,N).
!>
WORK
!> WORK is COMPLEX*16 array, dimension (N-1)
!>
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.
Definition at line 113 of file zupgtr.f.
π Author π
Generated automatically by Doxygen for LAPACK from the source code.
(so no, a human didn't hand-write this β the robot did it and honestly it ate π )
heads up bestie:INFO < 0means an argument was illegal, andINFO = -itells you which argument (ith one). alsoLDQ >= max(1,N)andN >= 0are the hard rules β ignore them and it's not giving what you think it's giving π
π and that's the page! brought to you by LAPACK, Version 3.12.0 β the upgtr(3) manual entry itself, freshly re-girled for the group chat. go forth and generate your Q, queen πβ¨
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms