SSYGST(3)

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

✨ SSYGST(3) β€” the glow-up ✨

okay bestie, so this is page 3 of the Library Functions Manual (the "functions" shelf, iykyk), and the star of the show is ssygst.f β€” LAPACK 3.12.0, no cap. Buckle up, we're doing linear algebra and it's gonna be iconic. πŸ’…


🌸 NAME 🌸

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/ssygst.f

like yes, the NAME is literally just the whole file path. that's the whole name. she's giving "I don't need a description, my location speaks for itself." πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

Functions/Subroutines

subroutine SSYGST (itype, uplo, n, a, lda, b, ldb, info)
    SSYGST

that's it. that's the tea. πŸ“


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

subroutine SSYGST (integer itype, character uplo, integer n, real,
    dimension( lda, * ) a, integer lda, real, dimension( ldb, * ) b, integer
    ldb, integer info)
    SSYGST

okay so look at that signature. seven little arguments and one big job. she said "I contain multitudes." 😭


πŸ’– Purpose πŸ’–

!> !> SSYGST reduces a real symmetric-definite generalized eigenproblem !> to standard form. !> !> If ITYPE = 1, the problem is A*x = lambda*B*x, !> and A is overwritten by inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T) !> !> If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or !> B*A*x = lambda*x, and A is overwritten by U*A*U**T or L**T*A*L. !> !> B must have been previously factorized as U**T*U or L*L**T by SPOTRF. !>

so basically she takes your messy generalized eigenproblem and serves it up in standard form. glow-up complete. ✨

quick vibe check on the three moods of ITYPE:

  1. ITYPE = 1 β†’ the problem is A*x = lambda*B*x, and A gets overwritten by inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T).
  2. ITYPE = 2 or 3 β†’ the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A gets overwritten by U*A*U**T or L**T*A*L.
⚠️ and this is the important one bestie: B must have already been factorized as U**T*U or L*L**T by SPOTRF. she does not do that part for you. no cap, if you skip it you're on your own. πŸ™ˆ

πŸ’œ Parameters πŸ’œ

🌈 ITYPE

!> ITYPE is INTEGER !> = 1: compute inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T); !> = 2 or 3: compute U*A*U**T or L**T*A*L. !>

the mode switch, the main character selector. pick your transformation, bestie. 🫢

🌈 UPLO

!> UPLO is CHARACTER*1 !> = 'U': Upper triangle of A is stored and B is factored as !> U**T*U; !> = 'L': Lower triangle of A is stored and B is factored as !> L*L**T. !>

CHARACTER*1, one single letter, and it decides the whole layout. lowercase 'u' and 'l'? not mentioned here β€” don't be clever, just use what she said. πŸ’€

🌈 N

!> N is INTEGER !> The order of the matrices A and B. N >= 0. !>

the order of A and B. and N >= 0, so zero is allowed, she's not gonna gatekeep an empty matrix. 😌

🌈 A

!> A is REAL array, dimension (LDA,N) !> On entry, the symmetric matrix A. If UPLO = 'U', the leading !> N-by-N upper triangular part of A contains the upper !> triangular part of the matrix A, and the strictly lower !> triangular part of A is not referenced. If UPLO = 'L', the !> leading N-by-N lower triangular part of A contains the lower !> triangular part of the matrix A, and the strictly upper !> triangular part of A is not referenced. !> !> On exit, if INFO = 0, the transformed matrix, stored in the !> same format as A. !>

REAL array, dimension (LDA,N). on entry she's your symmetric matrix A β€” only one triangle of her gets read, the other half is literally not referenced (she's ignoring it, respectfully). on exit, if INFO = 0, you get the transformed matrix back, stored in the same format as A. same fit, new energy. πŸ”₯

🌈 LDA

!> LDA is INTEGER !> The leading dimension of the array A. LDA >= max(1,N). !>

leading dimension of A, and LDA >= max(1,N). it's giving boundaries. πŸŽ€

🌈 B

!> B is REAL array, dimension (LDB,N) !> The triangular factor from the Cholesky factorization of B, !> as returned by SPOTRF. !>

REAL array, dimension (LDB,N). this is the triangular factor from the Cholesky factorization of B, exactly as handed back by SPOTRF. so like, she's not the original B, she's B's post-SPOTRF era. πŸ’…

🌈 LDB

!> LDB is INTEGER !> The leading dimension of the array B. LDB >= max(1,N). !>

leading dimension of B, and again: LDB >= max(1,N). she likes her dimensions leading. ⭐

🌈 INFO

!> INFO is INTEGER !> = 0: successful exit !> < 0: if INFO = -i, the i-th argument had an illegal value !>

the receipts! = 0 means successful exit (slay), and < 0 means if INFO = -i, the i-th argument had an illegal value. so INFO = -3 is her telling you argument three was a choice. 😭


🧚 Author 🧚

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

the whole squad collaborated. group project that actually ate. πŸ‘‘

Definition at line 126 of file ssygst.f.


🌟 Author 🌟

Generated automatically by Doxygen for LAPACK from the source code.

(so nobody hand-wrote this one, a robot did it, and honestly? she understood the assignment. πŸ¦‹)


k bye bestie, go transform something πŸ’– β€” this was page 3 of the Library Functions Manual, straight out of /home/abui...RC/ssygst.f(3), LAPACK Version 3.12.0, generated by Doxygen. mwah. πŸŒˆπŸŽ€βœ¨

πŸ“¦ where this page comes from