TESTING/LIN/sqrt03.f(3)

πŸ“¦
version 3.12.1 Β· 2 versions
, in arch rolling

πŸŽ€ TESTING/LIN/sqrt03.f πŸŽ€

okay bestie, welcome to the group chat of LAPACK test files β€” the manual name is TESTING/LIN/sqrt03.f and honestly it's giving "humble little Fortran file that does the most". let's get into it πŸ’…


✨ SYNOPSIS ✨

πŸ¦‹ Functions/Subroutines

  • subroutine sqrt03 (m, n, k, af, c, cc, q, lda, tau, work, lwork, rwork, result) β€” the one and only, SQRT03 itself 🫢

πŸ’– Function/Subroutine Documentation πŸ’–

🌸 the actual signature (no cap, type it right)

subroutine sqrt03 (integer m, integer n, integer k, real, dimension( lda, *
) af, real, dimension( lda, * ) c, real, dimension( lda, * ) cc, real,
dimension( lda, * ) q, integer lda, real, dimension( * ) tau, real,
dimension( lwork ) work, integer lwork, real, dimension( * ) rwork,
real, dimension( * ) result)

SQRT03 β€” that's the name, and yes she's iconic πŸ‘‘

⭐ Purpose ⭐

okay so SQRT03 tests SORMQR, which computes Q*C, Q'*C, C*Q or C*Q'. literally its whole job πŸ’€

and then β€” this is the best part β€” SQRT03 compares the results of a call to SORMQR with the results of forming Q explicitly by a call to SORGQR and then performing matrix multiplication by a call to SGEMM. two techniques, one vibe check, whoever disagrees loses 🫢

🌈 Parameters 🌈

  • M β€” M is INTEGER. the order of the orthogonal matrix Q. M >= 0. main character energy fr ✨
  • N β€” N is INTEGER. the number of rows or columns of the matrix C; C is m-by-n if Q is applied from the left, or n-by-m if Q is applied from the right. N >= 0. pick a side bestie πŸ’…
  • K β€” K is INTEGER. the number of elementary reflectors whose product defines the orthogonal matrix Q. M >= K >= 0. sandwiched, but like, respectfully πŸŽ€
  • AF β€” AF is REAL array, dimension (LDA,N). details of the QR factorization of an m-by-n matrix, as returned by SGEQRF. see SGEQRF for further details πŸ‘€
  • C β€” C is REAL array, dimension (LDA,N). that's it, that's the description, she said what she said πŸ™ˆ
  • CC β€” CC is REAL array, dimension (LDA,N). same energy, different name πŸ’€
  • Q β€” Q is REAL array, dimension (LDA,M). and here's Q living her best life, (LDA,M) πŸ¦‹
  • LDA β€” LDA is INTEGER. the leading dimension of the arrays AF, C, CC, and Q. all four. she's the group mom πŸ”₯
  • TAU β€” TAU is REAL array, dimension (min(M,N)). the scalar factors of the elementary reflectors corresponding to the QR factorization in AF. tiny but crucial 🌸
  • WORK β€” WORK is REAL array, dimension (LWORK). the workspace. the grind. the behind-the-scenes queen πŸ‘‘
  • LWORK β€” LWORK is INTEGER. the length of WORK. LWORK must be at least M, and should be M*NB, where NB is the blocksize for this environment. note the "should" bestie, don't come for me 😭
  • RWORK β€” RWORK is REAL array, dimension (M). no note, just vibes ✨
  • RESULT β€” RESULT is REAL array, dimension (4). the test ratios compare two techniques for multiplying a random matrix C by an m-by-m orthogonal matrix Q. and here's the receipts:
RESULT(1) = norm( Q*C - Q*C )  / ( M * norm(C) * EPS )
RESULT(2) = norm( C*Q - C*Q )  / ( M * norm(C) * EPS )
RESULT(3) = norm( Q'*C - Q'*C )/ ( M * norm(C) * EPS )
RESULT(4) = norm( C*Q' - C*Q' )/ ( M * norm(C) * EPS )

four ratios, four chances to slay πŸ’…βœ¨

🧚 Author 🧚

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

absolute legends, all of them 🫢

Definition at line 134 of file sqrt03.f. β€” yes, line one-three-four, go look, she's there πŸŽ€

πŸ’œ Author πŸ’œ

Generated automatically by Doxygen for LAPACK from the source code. not a human, just a very diligent little robot doing her thing πŸ€–βœ¨


and that's the whole page bestie!! LAPACK, Version 3.12.0 β€” mwah, drink some water, and remember: the vibe changes, the facts do not πŸ’–πŸŒΈπŸ¦‹πŸ‘‘

πŸ“¦ where this page comes from