lapacke_dstevr_work.c(3)

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

πŸ’« lapacke_dstevr_work.c β€” the tridiagonal eigen-solver bestie you didn't know you needed πŸ’«

okay so this is the manual page for lapacke_dstevr_work.c, a file from the LAPACK library (you know, the linear algebra icon). it's giving "I solve symmetric tridiagonal eigenvalue problems and I do it beautifully." this is the work-array version of LAPACKE_dstevr, meaning you have to pass in your own scratch space and we're all very honest about that. no cap. πŸŽ€


✨ SYNOPSIS ✨

#include 'lapacke_utils.h'

πŸ¦‹ Functions πŸ¦‹

lapack_int LAPACKE_dstevr_work (int matrix_layout, char jobz, char range,
    lapack_int n, double *d, double *e, double vl, double vu,
    lapack_int il, lapack_int iu, double abstol, lapack_int *m, double
    *w, double *z, lapack_int ldz, lapack_int *isuppz, double *work,
    lapack_int lwork, lapack_int *iwork, lapack_int liwork)

🌸 Function Documentation 🌸

πŸ’… lapack_int LAPACKE_dstevr_work (int matrix_layout, char jobz, char range, lapack_int n, double * d, double * e, double vl, double vu, lapack_int il, lapack_int iu, double abstol, lapack_int * m, double * w, double * z, lapack_int ldz, lapack_int * isuppz, double * work, lapack_int lwork, lapack_int * iwork, lapack_int liwork)

Definition at line 36 of file lapacke_dstevr_work.c.

okay bestie, let's break down these parameters like we're doing a group project and you actually want to pass:

  • matrix_layout β€” an int telling us whether your matrices are row-major or column-major. lowkey important, don't skip this one. πŸ™ˆ
  • jobz β€” a char that decides if we're just computing eigenvalues ('N') or also eigenvectors ('V'). choose wisely.
  • range β€” a char that says whether you want all eigenvalues, a value range, or an index range. it's giving "pick your fighter." πŸ”₯
  • n β€” a lapack_int for the order of the matrix. like, how big is this thing.
  • d β€” a double * pointing to the diagonal elements of your tridiagonal matrix. the main character energy of the matrix, honestly. πŸ‘‘
  • e β€” a double * pointing to the off-diagonal elements. the supporting cast. still important tho.
  • vl β€” a double for the lower bound of the eigenvalue range (only used if range says so).
  • vu β€” a double for the upper bound of the eigenvalue range (same deal).
  • il β€” a lapack_int for the lower index of the eigenvalue range (only when range is index-based).
  • iu β€” a lapack_int for the upper index of the eigenvalue range (same).
  • abstol β€” a double for the absolute tolerance. it's the "how close is close enough" vibe check. ⭐
  • m β€” a lapack_int * where we'll write back the total number of eigenvalues found. output bestie!
  • w β€” a double * array where the eigenvalues get stored. the moment of truth. πŸ’–
  • z β€” a double * array for the eigenvectors (if you asked for them). this is where the magic lives.
  • ldz β€” a lapack_int for the leading dimension of z. don't mess this up or it's gonna be a whole thing. 😭
  • isuppz β€” a lapack_int * array that tells you which support of the eigenvectors is nonzero. useful for sparse vibes.
  • work β€” a double * array for scratch space. you gotta bring your own. no free rides. 🫢
  • lwork β€” a lapack_int for the length of work. if it's too small, the function will be like "nope" and return an error.
  • iwork β€” a lapack_int * array for integer scratch space. same energy as work but with integers.
  • liwork β€” a lapack_int for the length of iwork. yeah, you guessed it β€” gotta be big enough.
πŸ’€ warning bestie: if your lwork or liwork is too small, you're gonna have a bad time. this function does NOT hold your hand about it. it just returns an error and moves on. periodt.

πŸ’œ Author πŸ’œ

Generated automatically by Doxygen for LAPACK from the source code. so like, not a human, but honestly the vibes are immaculate anyway.


🌈 Sign-off 🌈

this gem is from LAPACK Version 3.8.0, dated Tue Nov 14 2017. a classic. an icon. a legend. fr fr. πŸ¦‹βœ¨

now go solve those tridiagonal eigenproblems, bestie. you got this. πŸ’…πŸ“

πŸ“¦ where this page comes from