ZGET54(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

πŸ¦‹ ZGET54(3) β€” the LAPACK check-my-decomposition girlie πŸ¦‹

okay so this page lives in the Library Functions Manual for LAPACK (yes, the /home/abui...IG/zget54.f(3) one, mwah πŸ’…), and it's literally all about one lil Fortran subroutine that does a vibe check on your generalized decomposition. buckle up bestie, we're going in πŸŽ€


✨ NAME ✨

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/TESTING/EIG/zget54.f β€” that's the whole glowing file path, and honestly she's that file. πŸ‘‘


🌸 SYNOPSIS 🌸

Functions/Subroutines

  • subroutine ZGET54 (n, a, lda, b, ldb, s, lds, t, ldt, u, ldu, v, ldv, work, result) β€” the icon herself, ZGET54 πŸ’–
subroutine ZGET54 (n, a, lda, b, ldb, s, lds, t, ldt, u, ldu, v, ldv,
    work, result)
    ZGET54

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

subroutine ZGET54 (integer n, complex*16, dimension( lda, * ) a, integer
    lda, complex*16, dimension( ldb, * ) b, integer ldb, complex*16,
    dimension( lds, * ) s, integer lds, complex*16, dimension( ldt, * ) t,
    integer ldt, complex*16, dimension( ldu, * ) u, integer ldu, complex*16,
    dimension( ldv, * ) v, integer ldv, complex*16, dimension( * ) work,
    double precision result)
    ZGET54

she's giving main character energy, fr fr 🌟

🧚 Purpose

!> !> ZGET54 checks a generalized decomposition of the form !> !> A = U*S*V' and B = U*T* V' !> !> where ' means conjugate transpose and U and V are unitary. !> !> Specifically, !> !> RESULT = ||( A - U*S*V', B - U*T*V' )|| / (||( A, B )||*n*ulp ) !>

so basically: you hand her your A, your B, and the whole factored situation, and she tells you how far off your reconstruction is, scaled by (||( A, B )||*n*ulp ). the way that this is literally just a normalized error check 😭πŸ”₯


πŸ“ Parameters

  • N
!> N is INTEGER !> The size of the matrix. If it is zero, DGET54 does nothing. !> It must be at least zero. !>

(yes she says DGET54 in the source, and no we do not correct our queen's typo πŸ’€ β€” and also N has to be at least zero, okurr)

  • A
!> A is COMPLEX*16 array, dimension (LDA, N) !> The original (unfactored) matrix A. !>

the raw, un-factored, pre-glow-up A ✨

  • LDA
!> LDA is INTEGER !> The leading dimension of A. It must be at least 1 !> and at least N. !>

so it's gotta be at least 1 and at least N, no skipping πŸ‘

  • B
!> B is COMPLEX*16 array, dimension (LDB, N) !> The original (unfactored) matrix B. !>

the other original (unfactored) matrix, B 🫢

  • LDB
!> LDB is INTEGER !> The leading dimension of B. It must be at least 1 !> and at least N. !>

at least 1, at least N. periodt πŸ’…

  • S
!> S is COMPLEX*16 array, dimension (LDS, N) !> The factored matrix S. !>

the factored one, she's been through something 🌸

  • LDS
!> LDS is INTEGER !> The leading dimension of S. It must be at least 1 !> and at least N. !>
  • T
!> T is COMPLEX*16 array, dimension (LDT, N) !> The factored matrix T. !>
  • LDT
!> LDT is INTEGER !> The leading dimension of T. It must be at least 1 !> and at least N. !>
  • U
!> U is COMPLEX*16 array, dimension (LDU, N) !> The orthogonal matrix on the left-hand side in the !> decomposition. !>

left-hand side icon πŸŽ€

  • LDU
!> LDU is INTEGER !> The leading dimension of U. LDU must be at least N and !> at least 1. !>

(LDU must be at least N and at least 1 β€” same vibe, slightly different word order, and we respect it πŸ™ˆ)

  • V
!> V is COMPLEX*16 array, dimension (LDV, N) !> The orthogonal matrix on the left-hand side in the !> decomposition. !>

yes, the source literally also says "left-hand side" for V β€” not me, not my fault, I'm just the messenger 🧚

  • LDV
!> LDV is INTEGER !> The leading dimension of V. LDV must be at least N and !> at least 1. !>
  • WORK
!> WORK is COMPLEX*16 array, dimension (3*N**2) !>

she needs room to cook β€” (3*N**2) of it πŸ”₯

  • RESULT
!> RESULT is DOUBLE PRECISION !> The value RESULT, It is currently limited to 1/ulp, to !> avoid overflow. Errors are flagged by RESULT=10/ulp. !>
⚠️ heads up bestie: RESULT is capped at 1/ulp so nothing overflows, and if things go wrong you get RESULT=10/ulp thrown at you 😭 that's your error flag, iykyk

πŸ’œ Author

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

Definition at line 154 of file zget54.f. πŸ“


🌈 Author

Generated automatically by Doxygen for LAPACK from the source code. πŸ€– (the bot did her makeup and she ate, ngl)

and that's the whole page, bestie β€” no cap, every flag, every dimension, every !> line accounted for πŸ’–

LAPACK, Version 3.12.0 β€” and the source path on the footer is /home/abui...IG/zget54.f(3), so like… that's the whole sign-off, mwah πŸ«Άβœ¨πŸŽ€

πŸ“¦ where this page comes from