lapacke_sgges3.c(3)
π 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 matricesAandB. Standard. β¨float *aβ pointer to your first matrix,A. She's important. πlapack_int ldaβ leading dimension ofA. 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 ofB. 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 ofvsl. Keep it consistent, fr fr.float *vsrβ output array for the right Schur vectors. Also iconic. βlapack_int ldvsrβ leading dimension ofvsr. 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
- centos-stream 9: lapack 3.9.0-10.el9 Β· BSD
- centos-stream 9: lapack 3.9.0-10.el9 Β· BSD
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms