lapacke_sgges3.c(3)

πŸ“¦ version 3.9.0, in centos-stream 9

πŸ’… lapacke_sgges3.c β€” bestie, let me tell you about this LAPACK icon ✨

Okay so this is a page from the LAPACK manual, and it's literally the glow-up era of that classic sgges energy β€” the 3 at the end means it's the upgraded, main-character version. No cap, this function is the one that does the generalized Schur factorization for real single-precision matrices. It's giving ✨ linear algebra couture ✨ and we're obsessed.


🌸 NAME 🌸

lapacke_sgges3.c β€” the source file that defines the LAPACKE wrapper for sgges3. It's literally the file name, bestie. That's the whole vibe. πŸŽ€


πŸ¦‹ SYNOPSIS πŸ¦‹

First things first, you gotta pull in the utils:

#include 'lapacke_utils.h'

Then here's the star of the show β€” the function itself:

lapack_int LAPACKE_sgges3 (int matrix_layout, char jobvsl, char jobvsr,
    char sort, LAPACK_S_SELECT3 selctg, lapack_int n, float *a,
    lapack_int lda, float *b, lapack_int ldb, lapack_int *sdim, float
    *alphar, float *alphai, float *beta, float *vsl, lapack_int ldvsl,
    float *vsr, lapack_int ldvsr)

That's a lotta arguments, I know 😭 but stay with me, we're gonna break it down.


πŸ‘‘ Function Documentation πŸ‘‘

🧚 lapack_int LAPACKE_sgges3 (...) 🧚

So this is the actual function definition. It's got so many parameters that I'm gonna list them out one by one so nothing slips through the cracks β€” because keeping every detail is the whole point, periodt.

lapack_int LAPACKE_sgges3 (int matrix_layout, char jobvsl, char jobvsr, char
    sort, LAPACK_S_SELECT3 selctg, lapack_int n, float * a, lapack_int lda,
    float * b, lapack_int ldb, lapack_int * sdim, float * alphar, float *
    alphai, float * beta, float * vsl, lapack_int ldvsl, float * vsr,
    lapack_int ldvsr)

Let's do the vibe check on every single one, no skips:

  • int matrix_layout β€” tells the routine how your matrices are laid out in memory (row-major or column-major, iykyk). Gotta respect the layout, bestie. 🫢
  • char jobvsl β€” a character flag controlling whether you want the left Schur vectors computed. Your choice, queen. πŸ’…
  • char jobvsr β€” same energy, but for the right Schur vectors.
  • char sort β€” tells it whether you wanna sort the eigenvalues. It's giving "pick a lane" energy.
  • LAPACK_S_SELECT3 selctg β€” the selection function pointer, used when you're sorting. This is the callback that decides which eigenvalues make the cut. Main character energy for real.
  • lapack_int n β€” the order of the matrices A and B. Standard. ✨
  • float *a β€” pointer to your first matrix, A. She's important. πŸ’–
  • lapack_int lda β€” leading dimension of A. Don't mess this up or it's giving undefined chaos.
  • float *b β€” pointer to your second matrix, B. The other half of the generalized problem. 🌸
  • lapack_int ldb β€” leading dimension of B. Respect the stride, bestie.
  • lapack_int *sdim β€” output pointer where the number of sorted eigenvalues gets stored. It's literally the count, and it slays. πŸ”₯
  • float *alphar β€” output array for the real parts of the alpha values of the generalized eigenvalues. Yes queen, real parts. πŸŽ€
  • float *alphai β€” output array for the imaginary parts of the alpha values. The dramatic half. πŸ’€
  • float *beta β€” output array for the beta values of the generalized eigenvalues. The finishing touch. 🌈
  • float *vsl β€” output array for the left Schur vectors. Iconic.
  • lapack_int ldvsl β€” leading dimension of vsl. Keep it consistent, fr fr.
  • float *vsr β€” output array for the right Schur vectors. Also iconic. ⭐
  • lapack_int ldvsr β€” leading dimension of vsr. The final boss of strides. πŸ‘‘
πŸ’‘ Head's up bestie: this function is defined at line 36 of file lapacke_sgges3.c. Not making that up, it's literally in the docs. Don't @ me. 😌

πŸ“ Author πŸ“

This page wasn't hand-written by a human with a cute notebook β€” nope, it was generated automatically by Doxygen for LAPACK from the source code. So Doxygen is the real MVP here, doing the documentation grunt work so we can all vibe. πŸ€–βœ¨


πŸ’œ Version πŸ’œ

Okay so that's the whole manual page, bestie β€” every argument, every pointer, every lapack_int, all accounted for. Nothing skipped, nothing invented, just the facts with a little extra sparkle. You're gonna do amazing things with LAPACKE_sgges3. Go off, queen. πŸ’…πŸ‘‘

🫢 Cute little sign-off: this page is from LAPACK Version 3.8.0, dated Tue Nov 14 2017, and honestly? It still eats. Periodt. πŸŒˆπŸ’–
πŸ“¦ where this page comes from