lapacke_dstevr_work.c(3)
π« 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β aninttelling us whether your matrices are row-major or column-major. lowkey important, don't skip this one. πjobzβ acharthat decides if we're just computing eigenvalues ('N') or also eigenvectors ('V'). choose wisely.rangeβ acharthat says whether you want all eigenvalues, a value range, or an index range. it's giving "pick your fighter." π₯nβ alapack_intfor the order of the matrix. like, how big is this thing.dβ adouble *pointing to the diagonal elements of your tridiagonal matrix. the main character energy of the matrix, honestly. πeβ adouble *pointing to the off-diagonal elements. the supporting cast. still important tho.vlβ adoublefor the lower bound of the eigenvalue range (only used ifrangesays so).vuβ adoublefor the upper bound of the eigenvalue range (same deal).ilβ alapack_intfor the lower index of the eigenvalue range (only whenrangeis index-based).iuβ alapack_intfor the upper index of the eigenvalue range (same).abstolβ adoublefor the absolute tolerance. it's the "how close is close enough" vibe check. βmβ alapack_int *where we'll write back the total number of eigenvalues found. output bestie!wβ adouble *array where the eigenvalues get stored. the moment of truth. πzβ adouble *array for the eigenvectors (if you asked for them). this is where the magic lives.ldzβ alapack_intfor the leading dimension ofz. don't mess this up or it's gonna be a whole thing. πisuppzβ alapack_int *array that tells you which support of the eigenvectors is nonzero. useful for sparse vibes.workβ adouble *array for scratch space. you gotta bring your own. no free rides. π«Άlworkβ alapack_intfor the length ofwork. if it's too small, the function will be like "nope" and return an error.iworkβ alapack_int *array for integer scratch space. same energy asworkbut with integers.liworkβ alapack_intfor the length ofiwork. yeah, you guessed it β gotta be big enough.
π warning bestie: if yourlworkorliworkis 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
- 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