unbdb6(3)
π unbdb6(3) β {un,or}bdb6: step in uncsd2by1 β¨
okay so bestie, you've stumbled into the unbdb6 zone and honestly? it's giving supporting character with main character energy. this is the man page for unbdb6(3), and it's one little step inside uncsd2by1. that's the whole vibe. let's get into it π«Ά
πΈ NAME πΈ
unbdb6 β {un,or}bdb6: step in uncsd2by1
like, literally that's the name, no notes π
π SYNOPSIS π
β¨ Functions β¨
four routines, one job, and they're all ride-or-die identical except for the datatype bestie π
cunbdb6β the complex one π
subroutine cunbdb6 (m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2,
work, lwork, info)
CUNBDB6
dorbdb6β the double precision one π₯
subroutine dorbdb6 (m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2,
work, lwork, info)
DORBDB6
sorbdb6β the real (single precision) one β
subroutine sorbdb6 (m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2,
work, lwork, info)
SORBDB6
zunbdb6β thecomplex*16one π
subroutine zunbdb6 (m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2,
work, lwork, info)
ZUNBDB6
π¦ Detailed Description π¦
so the "detailed description" section up here is basically an empty group chat β the real tea lives down in the per-function docs below. keep scrolling, it's all there, i promise π§
π Function Documentation π
subroutine cunbdb6 π
subroutine cunbdb6 (integer m1, integer m2, integer n, complex, dimension(*)
x1, integer incx1, complex, dimension(*) x2, integer incx2, complex,
dimension(ldq1,*) q1, integer ldq1, complex, dimension(ldq2,*) q2,
integer ldq2, complex, dimension(*) work, integer lwork, integer info)
CUNBDB6 β she's the complex member of the squad π
β¨ Purpose β¨
okay so CUNBDB6 orthogonalizes the column vector
X = [ X1 ]
[ X2 ]
with respect to the columns of
Q = [ Q1 ] .
[ Q2 ]
the columns of Q must be orthonormal (non-negotiable bestie, that's the vibe check). the orthogonalized vector will be zero if and only if it lies entirely in the range of Q β like, it's fully absorbed, nothing left over, zero notes π«₯
the projection is computed with at most two iterations of the classical Gram-Schmidt algorithm, see
* L. Giraud, J. Langou, M. RozloΕΎnΓk. 2002. CERFACS Technical Report No. TR/PA/02/33. URL: https://www.cerfacs.fr/algor/reports/2002/TR_PA_02_33.pdf
that citation is copyrighted material, not me, i'm just the messenger π
πΈ Parameters πΈ
M1β INTEGER. the dimension ofX1and the number of rows inQ1.0 <= M1.M2β INTEGER. the dimension ofX2and the number of rows inQ2.0 <= M2.Nβ INTEGER. the number of columns inQ1andQ2.0 <= N.X1β COMPLEX array, dimension(M1). on entry, the top part of the vector to be orthogonalized. on exit, the top part of the projected vector. she goes in one girl and comes out another π«INCX1β INTEGER. increment for entries ofX1.X2β COMPLEX array, dimension(M2). on entry, the bottom part of the vector to be orthogonalized. on exit, the bottom part of the projected vector.INCX2β INTEGER. increment for entries ofX2.Q1β COMPLEX array, dimension(LDQ1, N). the top part of the orthonormal basis matrix.LDQ1β INTEGER. the leading dimension ofQ1.LDQ1 >= M1.Q2β COMPLEX array, dimension(LDQ2, N). the bottom part of the orthonormal basis matrix.LDQ2β INTEGER. the leading dimension ofQ2.LDQ2 >= M2.WORKβ COMPLEX array, dimension(LWORK).LWORKβ INTEGER. the dimension of the arrayWORK.LWORK >= N.INFOβ INTEGER.= 0: successful exit. slay π< 0: ifINFO = -i, the i-th argument had an illegal value. not slay π
π Author π
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
definition at line 157 of file cunbdb6.f.
subroutine dorbdb6 π₯
subroutine dorbdb6 (integer m1, integer m2, integer n, double precision,
dimension(*) x1, integer incx1, double precision, dimension(*) x2,
integer incx2, double precision, dimension(ldq1,*) q1, integer ldq1,
double precision, dimension(ldq2,*) q2, integer ldq2, double precision,
dimension(*) work, integer lwork, integer info)
DORBDB6 β same energy, but make it double precision π₯
β¨ Purpose β¨
DORBDB6 orthogonalizes the column vector
X = [ X1 ]
[ X2 ]
with respect to the columns of
Q = [ Q1 ] .
[ Q2 ]
columns of Q must be orthonormal, no cap. the orthogonalized vector will be zero if and only if it lies entirely in the range of Q. the projection is computed with at most two iterations of the classical Gram-Schmidt algorithm, and the receipt is:
* L. Giraud, J. Langou, M. RozloΕΎnΓk. 2002. CERFACS Technical Report No. TR/PA/02/33. URL: https://www.cerfacs.fr/algor/reports/2002/TR_PA_02_33.pdf
πΈ Parameters πΈ
M1β INTEGER. the dimension ofX1and the number of rows inQ1.0 <= M1.M2β INTEGER. the dimension ofX2and the number of rows inQ2.0 <= M2.Nβ INTEGER. the number of columns inQ1andQ2.0 <= N.X1β DOUBLE PRECISION array, dimension(M1). on entry, the top part of the vector to be orthogonalized. on exit, the top part of the projected vector.INCX1β INTEGER. increment for entries ofX1.X2β DOUBLE PRECISION array, dimension(M2). on entry, the bottom part of the vector to be orthogonalized. on exit, the bottom part of the projected vector.INCX2β INTEGER. increment for entries ofX2.Q1β DOUBLE PRECISION array, dimension(LDQ1, N). the top part of the orthonormal basis matrix.LDQ1β INTEGER. the leading dimension ofQ1.LDQ1 >= M1.Q2β DOUBLE PRECISION array, dimension(LDQ2, N). the bottom part of the orthonormal basis matrix.LDQ2β INTEGER. the leading dimension ofQ2.LDQ2 >= M2.WORKβ DOUBLE PRECISION array, dimension(LWORK).LWORKβ INTEGER. the dimension of the arrayWORK.LWORK >= N.INFOβ INTEGER.= 0: successful exit.< 0: ifINFO = -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 157 of file dorbdb6.f.
subroutine sorbdb6 π
subroutine sorbdb6 (integer m1, integer m2, integer n, real, dimension(*)
x1, integer incx1, real, dimension(*) x2, integer incx2, real,
dimension(ldq1,*) q1, integer ldq1, real, dimension(ldq2,*) q2, integer
ldq2, real, dimension(*) work, integer lwork, integer info)
SORBDB6 β the single-precision REAL one, she's lowkey the chillest of the group π
β¨ Purpose β¨
SORBDB6 orthogonalizes the column vector
X = [ X1 ]
[ X2 ]
with respect to the columns of
Q = [ Q1 ] .
[ Q2 ]
the columns of Q must be orthonormal (fr fr, do not skip this). the orthogonalized vector will be zero if and only if it lies entirely in the range of Q.
projection's computed with at most two iterations of the classical Gram-Schmidt algorithm, credit where credit's due:
* L. Giraud, J. Langou, M. RozloΕΎnΓk. 2002. CERFACS Technical Report No. TR/PA/02/33. URL: https://www.cerfacs.fr/algor/reports/2002/TR_PA_02_33.pdf
πΈ Parameters πΈ
M1β INTEGER. the dimension ofX1and the number of rows inQ1.0 <= M1.M2β INTEGER. the dimension ofX2and the number of rows inQ2.0 <= M2.Nβ INTEGER. the number of columns inQ1andQ2.0 <= N.X1β REAL array, dimension(M1). on entry, the top part of the vector to be orthogonalized. on exit, the top part of the projected vector. glow-up arc β¨INCX1β INTEGER. increment for entries ofX1.X2β REAL array, dimension(M2). on entry, the bottom part of the vector to be orthogonalized. on exit, the bottom part of the projected vector.INCX2β INTEGER. increment for entries ofX2.Q1β REAL array, dimension(LDQ1, N). the top part of the orthonormal basis matrix.LDQ1β INTEGER. the leading dimension ofQ1.LDQ1 >= M1.Q2β REAL array, dimension(LDQ2, N). the bottom part of the orthonormal basis matrix.LDQ2β INTEGER. the leading dimension ofQ2.LDQ2 >= M2.WORKβ REAL array, dimension(LWORK).LWORKβ INTEGER. the dimension of the arrayWORK.LWORK >= N.INFOβ INTEGER.= 0: successful exit. we love a clean exit π< 0: ifINFO = -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 157 of file sorbdb6.f.
π¦ to be continuedβ¦ π¦
okay bestie we're not done β zunbdb6, the complex*16 queen π, is up next with her own purpose section, full parameter rundown, authors and definition line. part 2 incoming π
β¨π«Ά
...and that's exactly the vibe of what ZUNBDB6 does to a vector, bestie. Let me spell it out: it orthogonalizes the column vector
X = [ X1 ]
[ X2 ]
with respect to the columns of
Q = [ Q1 ] .
[ Q2 ]
The columns of Q must be orthonormal β like, non-negotiable, that's the whole basis of the trick β¨. And the tea on the result? The orthogonalized vector will be zero if and only if it lies entirely in the range of Q. Not "sometimes", not "kinda" β exactly then and only then π
.
The projection gets computed with at most two iterations of the classical Gram-Schmidt algorithm. Two. That's it. Iconic efficiency, no cap. If you wanna read the receipts, see:
- L. Giraud, J. Langou, M. RozloΕΎnΓk. 2002. CERFACS Technical Report No. TR/PA/02/33. URL:
https://www.cerfacs.fr/algor/reports/2002/TR_PA_02_33.pdf
πΈ Parameters πΈ
Okay, deep breath, here's the whole cast of characters. Every single one, no skips π«Ά
M1βM1isINTEGER. The dimension ofX1and the number of rows inQ1. Constraint:0 <= M1.M2βM2isINTEGER. The dimension ofX2and the number of rows inQ2. Constraint:0 <= M2.NβNisINTEGER. The number of columns inQ1andQ2. Constraint:0 <= N.X1βX1isCOMPLEX*16array, dimension(M1).- On entry, the top part of the vector to be orthogonalized.
- On exit, the top part of the projected vector.
INCX1βINCX1isINTEGER. Increment for entries ofX1. (Yes, the strut-your-stuff spacing value, she gets a say too π)X2βX2isCOMPLEX*16array, dimension(M2).- On entry, the bottom part of the vector to be orthogonalized.
- On exit, the bottom part of the projected vector.
INCX2βINCX2isINTEGER. Increment for entries ofX2.Q1βQ1isCOMPLEX*16array, dimension(LDQ1, N). The top part of the orthonormal basis matrix. πLDQ1βLDQ1isINTEGER. The leading dimension ofQ1. Constraint:LDQ1 >= M1.Q2βQ2isCOMPLEX*16array, dimension(LDQ2, N). The bottom part of the orthonormal basis matrix.LDQ2βLDQ2isINTEGER. The leading dimension ofQ2. Constraint:LDQ2 >= M2.WORKβWORKisCOMPLEX*16array, dimension(LWORK). The scratch space, doing the invisible labor so you don't have to π§LWORKβLWORKisINTEGER. The dimension of the arrayWORK. Constraint:LWORK >= N. Don't skimp, she needs room to breathe.INFOβINFOisINTEGER. The vibe check at the end:= 0: successful exit. Slay π< 0: ifINFO = -i, the i-th argument had an illegal value. Oops, somebody passed something cursed, go fix argument number i π
Lowkey important, bestie: thoseLDQ1 >= M1andLDQ2 >= M2andLWORK >= Nlines aren't suggestions, they're the law. Break them andINFOwill snitch on you with a negative index. Periodt.
π Author π
Credit where credit is due, these legends wrote it:
- Univ. of Tennessee
- Univ. of California Berkeley
- Univ. of Colorado Denver
- NAG Ltd.
Definition at line 157 of file zunbdb6.f.
And that's the whole page, bestie β you ate that reading session fr fr π The version tag on this one is LAPACK Version 3.12.0, generated straight from the source code by Doxygen for LAPACK (page unbdb6(3)), so go forth and orthogonalize responsibly ππ¦πΈ
π¦ 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