SRC/sorbdb5.f(3)

πŸ’… SRC/sorbdb5.f β€” like, the whole entire manual page bestie ✨

okay so real quick context: this is from SRC/sorbdb5.f, and it's in the Library Functions Manual. Buckle up, we're doing linear algebra and we're doing it fabulously πŸŽ€


✨ NAME ✨

SRC/sorbdb5.f β€” that's literally her. that's the file. periodt.


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

subroutine sorbdb5 (m1, m2, n, x1, incx1, x2, incx2, q1, ldq1, q2, ldq2,
    work, lwork, info)

SORBDB5 β€” iconic name, no notes πŸ’…


πŸ‘‘ Function/Subroutine Documentation πŸ‘‘

subroutine sorbdb5 (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)

SORBDB5 πŸ’–

🌸 Purpose 🌸

okay so here's the vibe:

!>
!> SORBDB5 orthogonalizes the column vector
!>      X = [ X1 ]
!>          [ X2 ]
!> with respect to the columns of
!>      Q = [ Q1 ] .
!>          [ Q2 ]
!> The columns of Q must be orthonormal.
!>
!> If the projection is zero according to Kahan's
!> criterion, then some other vector from the orthogonal complement
!> is returned. This vector is chosen in an arbitrary but deterministic
!> way.
!>
!>

so basically: she takes your column vector X (which is X1 stacked on top of X2, obsessed with the layout) and orthogonalizes it against the columns of Q (which is Q1 stacked on Q2 β€” matching energy ✨). the columns of Q must be orthonormal, that's not optional, that's the whole assignment bestie.

and if the projection comes out zero according to Kahan's criterion, she doesn't just leave you hanging β€” she hands back some other vector from the orthogonal complement. it's picked in an arbitrary but deterministic way. so like, random vibes but reproducible random vibes. slay πŸ”₯

πŸŽ€ Parameters πŸŽ€

  • M1 β€” INTEGER. the dimension of X1 and the number of rows in Q1. constraint: 0 <= M1.
  • M2 β€” INTEGER. the dimension of X2 and the number of rows in Q2. constraint: 0 <= M2.
  • N β€” INTEGER. the number of columns in Q1 and Q2. constraint: 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. she goes in one thing and comes out another, main character transformation πŸ’«
  • INCX1 β€” INTEGER. increment for entries of X1.
  • 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. same glow-up, bottom half edition 🫢
  • INCX2 β€” INTEGER. increment for entries of X2.
  • Q1 β€” REAL array, dimension (LDQ1, N). the top part of the orthonormal basis matrix.
  • LDQ1 β€” INTEGER. the leading dimension of Q1. constraint: LDQ1 >= M1.
  • Q2 β€” REAL array, dimension (LDQ2, N). the bottom part of the orthonormal basis matrix.
  • LDQ2 β€” INTEGER. the leading dimension of Q2. constraint: LDQ2 >= M2.
  • WORK β€” REAL array, dimension (LWORK). her little workspace, we respect her.
  • LWORK β€” INTEGER. the dimension of the array WORK. constraint: LWORK >= N.
  • INFO β€” INTEGER. the status report, and it's giving very concise:
    • = 0: successful exit. we love a happy ending πŸ’–
    • < 0: if INFO = -i, the i-th argument had an illegal value. 😭 not the illegal argument
ngl bestie, watch those dimension constraints β€” LDQ1 >= M1, LDQ2 >= M2, LWORK >= N. she will notice. and INFO will tell on you fr fr πŸ’€

⭐ Author ⭐

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

Definition at line 154 of file sorbdb5.f. πŸ’…


🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code. she was literally built by a machine and still ate πŸ“


and that's the whole page! stay orthonormal, bestie πŸ§šπŸ’œ

LAPACK β€” Version 3.12.0 β€” SRC/sorbdb5.f(3) ✨ that's the sign-off, mwah πŸ’‹

πŸ“¦ where this page comes from