lapacke_utils.h(3)
๐ lapacke_utils.h(3) โ the LAPACK one, bestie
okay so this is lapacke_utils.h, straight out of the LAPACK manual, section 3. it's a header full of tiny helper macros that the LAPACKE world leans on, and honestly? it's giving "small but iconic." ๐
โจ NAME โจ
lapacke_utils.h โ that's it, that's the name, no cap. it's a header file, and this page is its whole personality. ๐ฆ
๐ธ SYNOPSIS ๐ธ
you pull it in like this, literally just this one line:
#include 'lapacke.h'
(yeah, the include line is spelled exactly like that on this page โ keep it as-is, bestie, i don't make the rules ๐ )
๐ Macros ๐
okay so here's the whole squad of macros. every single one, in order, exactly how they're written. these are the little one-liners doing the actual work ๐ซถ
#define ABS(x) (((x) < 0) ? -(x) : (x))โ absolute value, but make it a macro. ifxis less than zero it flips the sign, otherwise it leavesxalone. classic. โญ#define MAX(x, y) (((x) > (y)) ? (x) : (y))โ the bigger one of the two.xwins if it beatsy, otherwiseytakes it. ๐#define MIN(x, y) (((x) < (y)) ? (x) : (y))โ the smaller one. same energy, opposite direction. ๐ฆ#define MAX3(x, y, z) (((x) > MAX(y,z)) ? (x) : MAX(y,z))โ three-way max, built on top ofMAX. so ifxbeats the winner ofyvsz,xslays; otherwise theMAX(y,z)champ takes it. ๐ฅ#define MIN3(x, y, z) (((x) < MIN(y,z)) ? (x) : MIN(y,z))โ three-way min, same deal but withMIN. ๐ธ#define IS_S_NONZERO(x) ( (x) < 0 || (x) > 0 )โ single-precision "is this thing not zero?" check. true ifxis below zero or above zero. ๐ง#define IS_D_NONZERO(x) ( (x) < 0 || (x) > 0 )โ double-precision version of the exact same check. same body, different letter. ๐#define IS_C_NONZERO(x)โ the single-complex "is it nonzero?" check. heads up: this page doesn't show a body for it, so that's all we're getting here ๐#define IS_Z_NONZERO(x)โ the double-complex "is it nonzero?" check, and same situation: no body listed on this page. ๐#define LAPACK_SISNAN(x) ( x != x )โ single-precision NaN detector, and the trick is genuinely iconic: NaN is the one thing that isn't equal to itself, sox != xcatches it. ๐ญ#define LAPACK_DISNAN(x) ( x != x )โ double-precision NaN detector, same trick, samex != x. โจ#define LAPACK_CISNAN(x)โ single-complex NaN check, and once again this page doesn't spell out the body, so no invented details from me ๐#define LAPACK_ZISNAN(x)โ double-complex NaN check, body not shown here either. ๐ฆ
lowkey important:ABS,MAX,MIN,MAX3,MIN3and theIS_*/LAPACK_*ISNANfriends are all macros, so they're pasted in as text, not called like functions โ that's just what a#defineis, no extra lore needed ๐
more parts are coming, so don't go anywhere bestie ๐ซถ
โจ Functions โจ
Okay bestie, this is the part where the header blesses you with actual callable functions โ and there are so many of them. Like, seventy-something. I'm not exaggerating, I counted. They mostly come in four flavours (c, d, s, z) and they're all void except the two that actually tell you something. Let's go ๐ซถ
๐ the little helpers
LAPACKE_xerblaโ the error-reporting bestie. You hand it a routinenameand aninfocode, that's it, that's the whole vibe.
void LAPACKE_xerbla (const char *name, lapack_int info)
LAPACKE_lsameโ compares two charscaandcband hands you back alapack_logical. Thelis doing a LOT of work in that name, iykyk.
lapack_logical LAPACKE_lsame (char ca, char cb)
๐ single precision complex โ the cโฆ squad
LAPACKE_cgb_transโ the general band one:m,n,kl,ku, reads frominwithldin, writes tooutwithldout.
void LAPACKE_cgb_trans (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
LAPACKE_cge_transโ general matrix energy.m,n,in/ldinin,out/ldoutout โจ
void LAPACKE_cge_trans (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
LAPACKE_cgg_transโ theggvariant, samem/n/ldin/ldoutsituation.
void LAPACKE_cgg_trans (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
LAPACKE_chb_transโ takes auplo, ann, and a bandwidthkd.
void LAPACKE_chb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
LAPACKE_che_transโuplo+n, nokdhere, she's simpler than her banded sister ๐
void LAPACKE_che_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
LAPACKE_chp_transโ packed, so noldin/ldoutat all. Justinandout, living their best lives.
void LAPACKE_chp_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_float *in, lapack_complex_float *out)
LAPACKE_chs_transโmatrix_layout,n,in/ldin,out/ldout. Nouplo, no notes.
void LAPACKE_chs_trans (int matrix_layout, lapack_int n, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
LAPACKE_cpb_transโ positive-definite and banded, so she getsuploANDkd. Main character.
void LAPACKE_cpb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
LAPACKE_cpf_transโ packed and rectangular-ish, so you gettransranduplo, and no leading dimensions. Iconic.
void LAPACKE_cpf_trans (int matrix_layout, char transr, char uplo, lapack_int n, const lapack_complex_float *in, lapack_complex_float *out)
LAPACKE_cpo_transโuplo,n,in/ldin,out/ldout.
void LAPACKE_cpo_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
LAPACKE_cpp_transโ packed,uplo,n,in,out. Clean, minimal, obsessed.
void LAPACKE_cpp_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_float *in, lapack_complex_float *out)
LAPACKE_csp_transโ same packeduplo/n/in/outshape as above, differentspenergy.
void LAPACKE_csp_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_float *in, lapack_complex_float *out)
LAPACKE_csy_transโuplo,n, and both leading dimensions because she is not packed, bestie.
void LAPACKE_csy_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
LAPACKE_ctb_transโ triangular banded:uplo,diag,n,kd. Four arguments of pure chaos ๐ฆ
void LAPACKE_ctb_trans (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
LAPACKE_ctf_transโ packed triangular, sotransr,uplo,diag,n, and just the two pointers.
void LAPACKE_ctf_trans (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const lapack_complex_float *in, lapack_complex_float *out)
LAPACKE_ctp_transโ packed triangular, notransr, no leading dimensions.
void LAPACKE_ctp_trans (int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_float *in, lapack_complex_float *out)
LAPACKE_ctr_transโ the full triangular treatment:uplo,diag,n,in/ldin,out/ldout. Slay.
void LAPACKE_ctr_trans (int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_float *in, lapack_int ldin, lapack_complex_float *out, lapack_int ldout)
๐ธ double precision โ the dโฆ squad
LAPACKE_dgb_transโ general band, double.m,n,kl,ku,in/ldin,out/ldoutโ the full set, no cap.
void LAPACKE_dgb_trans (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const double *in, lapack_int ldin, double *out, lapack_int ldout)
LAPACKE_dge_transโ the classic.m,n,doublepointers, done.
void LAPACKE_dge_trans (int matrix_layout, lapack_int m, lapack_int n, const double *in, lapack_int ldin, double *out, lapack_int ldout)
LAPACKE_dgg_transโ same shape asdge,ggbranding.
void LAPACKE_dgg_trans (int matrix_layout, lapack_int m, lapack_int n, const double *in, lapack_int ldin, double *out, lapack_int ldout)
LAPACKE_dhs_transโ justmatrix_layout,n, and the four array-ish things. Short and sweet ๐
void LAPACKE_dhs_trans (int matrix_layout, lapack_int n, const double *in, lapack_int ldin, double *out, lapack_int ldout)
LAPACKE_dpb_transโ banded +uplo+kd+ both leading dims.
void LAPACKE_dpb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const double *in, lapack_int ldin, double *out, lapack_int ldout)
LAPACKE_dpf_transโ packed,transr,uplo,n, and no leading dimensions at all.
void LAPACKE_dpf_trans (int matrix_layout, char transr, char uplo, lapack_int n, const double *in, double *out)
LAPACKE_dpo_transโuplo,n,in/ldin,out/ldout.
void LAPACKE_dpo_trans (int matrix_layout, char uplo, lapack_int n, const double *in, lapack_int ldin, double *out, lapack_int ldout)
LAPACKE_dpp_transโ packeduplo/n/in/out, four arguments and a dream.
void LAPACKE_dpp_trans (int matrix_layout, char uplo, lapack_int n, const double *in, double *out)
LAPACKE_dsb_transโ symmetric banded:uplo,n,kd, both leading dimensions.
void LAPACKE_dsb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const double *in, lapack_int ldin, double *out, lapack_int ldout)
LAPACKE_dsp_transโ symmetric packed,uplo,n,in,out.
void LAPACKE_dsp_trans (int matrix_layout, char uplo, lapack_int n, const double *in, double *out)
LAPACKE_dsy_transโ symmetric, unpacked, leading dimensions included โจ
void LAPACKE_dsy_trans (int matrix_layout, char uplo, lapack_int n, const double *in, lapack_int ldin, double *out, lapack_int ldout)
LAPACKE_dtb_transโ triangular banded:uplo,diag,n,kd, dims, dims.
void LAPACKE_dtb_trans (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const double *in, lapack_int ldin, double *out, lapack_int ldout)
LAPACKE_dtf_transโ packed triangular withtransrANDuploANDdiag. She's booked and busy ๐
void LAPACKE_dtf_trans (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const double *in, double *out)
LAPACKE_dtp_transโ packed triangular,uplo,diag,n,in,out.
void LAPACKE_dtp_trans (int matrix_layout, char uplo, char diag, lapack_int n, const double *in, double *out)
LAPACKE_dtr_transโ triangular, unpacked,uplo,diag,n,in/ldin,out/ldout.
void LAPACKE_dtr_trans (int matrix_layout, char uplo, char diag, lapack_int n, const double *in, lapack_int ldin, double *out, lapack_int ldout)
๐ฆ single precision โ the sโฆ squad
LAPACKE_sgb_transโ general band,floatedition.m,n,kl,ku, both dims ๐
void LAPACKE_sgb_trans (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const float *in, lapack_int ldin, float *out, lapack_int ldout)
LAPACKE_sge_transโ thefloatgeneral matrix one. You know her, you love her.
void LAPACKE_sge_trans (int matrix_layout, lapack_int m, lapack_int n, const float *in, lapack_int ldin, float *out, lapack_int ldout)
LAPACKE_sgg_transโggbutfloat, samem/n/ldin/ldoutdeal.
void LAPACKE_sgg_trans (int matrix_layout, lapack_int m, lapack_int n, const float *in, lapack_int ldin, float *out, lapack_int ldout)
LAPACKE_shs_transโnand the four array params. Nouploin sight, that's her vibe.
void LAPACKE_shs_trans (int matrix_layout, lapack_int n, const float *in, lapack_int ldin, float *out, lapack_int ldout)
LAPACKE_spb_transโ banded,uplo,kd, both leading dimensions. Full house.
void LAPACKE_spb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const float *in, lapack_int ldin, float *out, lapack_int ldout)
LAPACKE_spf_transโ packed,transr,uplo,n,in,out. Periodt.
void LAPACKE_spf_trans (int matrix_layout, char transr, char uplo, lapack_int n, const float *in, float *out)
LAPACKE_spo_transโuplo,n,in/ldin,out/ldout.
void LAPACKE_spo_trans (int matrix_layout, char uplo, lapack_int n, const float *in, lapack_int ldin, float *out, lapack_int ldout)
LAPACKE_spp_transโ packed,uplo,n,in,out. Zero leading dimensions, zero problems.
void LAPACKE_spp_trans (int matrix_layout, char uplo, lapack_int n, const float *in, float *out)
LAPACKE_ssb_transโ symmetric banded,uplo,n,kd, plus both dims.
void LAPACKE_ssb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const float *in, lapack_int ldin, float *out, lapack_int ldout)
LAPACKE_ssp_transโ symmetric packed,uplo,n,in,out.
void LAPACKE_ssp_trans (int matrix_layout, char uplo, lapack_int n, const float *in, float *out)
LAPACKE_ssy_transโ symmetric and unpacked, so the leading dimensions are back ๐
void LAPACKE_ssy_trans (int matrix_layout, char uplo, lapack_int n, const float *in, lapack_int ldin, float *out, lapack_int ldout)
LAPACKE_stb_transโ triangular banded:uplo,diag,n,kd, dims, dims.
void LAPACKE_stb_trans (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const float *in, lapack_int ldin, float *out, lapack_int ldout)
LAPACKE_stf_transโ packed triangular with all three char flags:transr,uplo,diag. She has range ๐
void LAPACKE_stf_trans (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const float *in, float *out)
LAPACKE_stp_transโ packed triangular,uplo,diag,n,in,out.
void LAPACKE_stp_trans (int matrix_layout, char uplo, char diag, lapack_int n, const float *in, float *out)
LAPACKE_str_transโ triangular, unpacked,uplo,diag,n,in/ldin,out/ldout. Gorgeous.
void LAPACKE_str_trans (int matrix_layout, char uplo, char diag, lapack_int n, const float *in, lapack_int ldin, float *out, lapack_int ldout)
๐ double precision complex โ the zโฆ squad
LAPACKE_zgb_transโ general band,lapack_complex_doubleedition.m,n,kl,ku, both dims.
void LAPACKE_zgb_trans (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
LAPACKE_zge_transโ the big one. General, double complex,mรn, both leading dims ๐
void LAPACKE_zge_trans (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
LAPACKE_zgg_transโgg, double complex, same shape aszge.
void LAPACKE_zgg_trans (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
LAPACKE_zhb_transโ banded,uplo,n,kd, plus the two leading dimensions.
void LAPACKE_zhb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
LAPACKE_zhe_transโuplo,n, nokd, both dims.
void LAPACKE_zhe_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
LAPACKE_zhp_transโ packed, so justuplo,n,in,out. Minimalist queen.
void LAPACKE_zhp_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double *in, lapack_complex_double *out)
LAPACKE_zhs_transโmatrix_layout,n, and the four array params, nouplo.
void LAPACKE_zhs_trans (int matrix_layout, lapack_int n, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
LAPACKE_zpb_transโ banded +uplo+kd+ both dims. The full entourage.
void LAPACKE_zpb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
LAPACKE_zpf_transโ packed,transr,uplo,n,in,out. Two chars and a dream ๐
void LAPACKE_zpf_trans (int matrix_layout, char transr, char uplo, lapack_int n, const lapack_complex_double *in, lapack_complex_double *out)
LAPACKE_zpo_transโuplo,n,in/ldin,out/ldout.
void LAPACKE_zpo_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
LAPACKE_zpp_transโ packeduplo/n/in/out, enjoy โจ
void LAPACKE_zpp_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double *in, lapack_complex_double *out)
LAPACKE_zsp_transโ symmetric packed, same four-argument shape.
void LAPACKE_zsp_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double *in, lapack_complex_double *out)
LAPACKE_zsy_transโ symmetric unpacked, so the leading dimensions make their comeback ๐
void LAPACKE_zsy_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
LAPACKE_ztb_transโ triangular banded:uplo,diag,n,kd, dims, dims.
void LAPACKE_ztb_trans (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
LAPACKE_ztf_transโ packed triangular, all three char params:transr,uplo,diag.
void LAPACKE_ztf_trans (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const lapack_complex_double *in, lapack_complex_double *out)
LAPACKE_ztp_transโ packed triangular,uplo,diag,n,in,out.
void LAPACKE_ztp_trans (int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_double *in, lapack_complex_double *out)
LAPACKE_ztr_transโ triangular, unpacked, full param list. Final boss of the translators ๐ฅ
void LAPACKE_ztr_trans (int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_double *in, lapack_int ldin, lapack_complex_double *out, lapack_int ldout)
๐ง the nancheck crew
These ones actually return something โ a lapack_logical โ so they're the ones with opinions. First the flat vector ones, n elements, stride incx:
LAPACKE_c_nancheckโ complex float vector,nelements, strideincx.
lapack_logical LAPACKE_c_nancheck (lapack_int n, const lapack_complex_float *x, lapack_int incx)
LAPACKE_d_nancheckโ double vector,n,x,incx.
lapack_logical LAPACKE_d_nancheck (lapack_int n, const double *x, lapack_int incx)
LAPACKE_s_nancheckโ float vector,n,x,incx.
lapack_logical LAPACKE_s_nancheck (lapack_int n, const float *x, lapack_int incx)
LAPACKE_z_nancheckโ complex double vector,n,x,incx.
lapack_logical LAPACKE_z_nancheck (lapack_int n, const lapack_complex_double *x, lapack_int incx)
And then the matrix-flavoured checks, which take a matrix_layout and a leading dimension like the fancy translators do:
LAPACKE_cgb_nancheckโ band storage check:matrix_layout,m,n,kl,ku,ab,ldab.
lapack_logical LAPACKE_cgb_nancheck (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const lapack_complex_float *ab, lapack_int ldab)
LAPACKE_cge_nancheckโ general matrix check:matrix_layout,m,n,a,lda.
lapack_logical LAPACKE_cge_nancheck (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_float *a, lapack_int lda)
LAPACKE_cgg_nancheckโggversion, samematrix_layout,m,n,a,ldasituation.
lapack_logical LAPACKE_cgg_nancheck (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_float *a, lapack_int lda)
okay that's the function list, bestie โ but we are not done, there's more page coming, don't close the tab ๐
okay so this is the rest of the function lineup โ and I mean all of them, bestie, we are not skipping a single one ๐
. Every single one of these hands back a lapack_logical, so it's a straight yes-or-no vibe.
First up, the c crew โ lapack_complex_float everything, complex-float energy only ๐:
lapack_logical LAPACKE_cgt_nancheck (lapack_int n, const lapack_complex_float *dl, const lapack_complex_float *d, const lapack_complex_float *du)โ thegtone takesnplus the three diagonalsdl,d,du, and nomatrix_layoutbecause tridiagonal said "I'm built different" ๐ฆlapack_logical LAPACKE_chb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_float *ab, lapack_int ldab)โ bandedhbbehavior:matrix_layout,uplo,n,kd, the band storageab, andldab๐lapack_logical LAPACKE_che_nancheck (int matrix_layout, char uplo, lapack_int n, const lapack_complex_float *a, lapack_int lda)โhein full storage, so it's the classicuplo/n/a/ldaquartet โจlapack_logical LAPACKE_chp_nancheck (lapack_int n, const lapack_complex_float *ap)โ packedhp, justnandap, noldainvited to the party ๐ธlapack_logical LAPACKE_chs_nancheck (int matrix_layout, lapack_int n, const lapack_complex_float *a, lapack_int lda)โ thehscutie, rolling withmatrix_layout,n,a,lda๐lapack_logical LAPACKE_cpb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_float *ab, lapack_int ldab)โ bandedpb, same guest list ashb: layout,uplo,n,kd,ab,ldab๐ซถlapack_logical LAPACKE_cpf_nancheck (lapack_int n, const lapack_complex_float *a)โpfkeeps it light:nplusa, that's literally it ๐lapack_logical LAPACKE_cpo_nancheck (int matrix_layout, char uplo, lapack_int n, const lapack_complex_float *a, lapack_int lda)โpoin full storage, doing theuplo/n/a/ldathing ๐ฅlapack_logical LAPACKE_cpp_nancheck (lapack_int n, const lapack_complex_float *ap)โ packedpp, sonandapand nothing else ๐lapack_logical LAPACKE_cpt_nancheck (lapack_int n, const float *d, const lapack_complex_float *e)โ okay look closely atpt๐,dis a plainfloatbuteislapack_complex_float, do not mix them up ๐ญlapack_logical LAPACKE_csp_nancheck (lapack_int n, const lapack_complex_float *ap)โ packedsp,n+ap, short and sweet ๐lapack_logical LAPACKE_cst_nancheck (lapack_int n, const lapack_complex_float *d, const lapack_complex_float *e)โstwith bothdandefully complex this time ๐lapack_logical LAPACKE_csy_nancheck (int matrix_layout, char uplo, lapack_int n, const lapack_complex_float *a, lapack_int lda)โsy, full storage,uplo/n/a/lda๐งlapack_logical LAPACKE_ctb_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const lapack_complex_float *ab, lapack_int ldab)โ triangular bandedtb, and yes there's an extradiagin the mix ๐ฅlapack_logical LAPACKE_ctf_nancheck (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const lapack_complex_float *a)โtfis the one withtransranduploanddiag, plusnanda, and ngl noldain sight ๐lapack_logical LAPACKE_ctp_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_float *ap)โ packed triangulartp: layout,uplo,diag,n,ap๐ฆlapack_logical LAPACKE_ctr_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_float *a, lapack_int lda)โ triangulartrin full storage,uplo/diag/n/a/lda, iconic honestly ๐
Next, the d girlies โ pure double precision, no drama โญ:
lapack_logical LAPACKE_dgb_nancheck (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const double *ab, lapack_int ldab)โ general bandgb, so you're feeding itm,n,kl,ku,ab,ldab๐ฅlapack_logical LAPACKE_dge_nancheck (int matrix_layout, lapack_int m, lapack_int n, const double *a, lapack_int lda)โ general matrixge, the main character:m,n,a,lda๐lapack_logical LAPACKE_dgg_nancheck (int matrix_layout, lapack_int m, lapack_int n, const double *a, lapack_int lda)โggtakes the exact samem/n/a/ldashape, it's giving sibling energy ๐ซถlapack_logical LAPACKE_dgt_nancheck (lapack_int n, const double *dl, const double *d, const double *du)โ tridiagonalgt, sonand thedl/d/dutrio ๐ธlapack_logical LAPACKE_dhs_nancheck (int matrix_layout, lapack_int n, const double *a, lapack_int lda)โ thehsone,matrix_layout,n,a,lda๐lapack_logical LAPACKE_dpb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const double *ab, lapack_int ldab)โ bandedpb, all the usual:uplo,n,kd,ab,ldab๐lapack_logical LAPACKE_dpf_nancheck (lapack_int n, const double *a)โpf, two args,nanda, minimalist queen โจlapack_logical LAPACKE_dpo_nancheck (int matrix_layout, char uplo, lapack_int n, const double *a, lapack_int lda)โpofull storage,uplo/n/a/lda๐lapack_logical LAPACKE_dpp_nancheck (lapack_int n, const double *ap)โ packedpp,nplusap, done ๐lapack_logical LAPACKE_dpt_nancheck (lapack_int n, const double *d, const double *e)โptwith plaindoubledand plaindoublee๐lapack_logical LAPACKE_dsb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const double *ab, lapack_int ldab)โ symmetric bandsb: layout,uplo,n,kd,ab,ldab๐ฆlapack_logical LAPACKE_dsp_nancheck (lapack_int n, const double *ap)โ packedsp, short king,n+ap๐งlapack_logical LAPACKE_dst_nancheck (lapack_int n, const double *d, const double *e)โst,dande, both doubles, no notes ๐lapack_logical LAPACKE_dsy_nancheck (int matrix_layout, char uplo, lapack_int n, const double *a, lapack_int lda)โsyin full storage,uplo/n/a/lda๐ฅlapack_logical LAPACKE_dtb_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const double *ab, lapack_int ldab)โ triangular bandedtb, with that extradiagargument ๐lapack_logical LAPACKE_dtf_nancheck (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const double *a)โtfbringstransralong withuploanddiag, plusnanda๐lapack_logical LAPACKE_dtp_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const double *ap)โ packed triangulartp: layout,uplo,diag,n,ap๐lapack_logical LAPACKE_dtr_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const double *a, lapack_int lda)โ triangulartrfull storage,uplo/diag/n/a/ldaโญ
Now the s squad โ same shapes as the d crew but in float, so it's the lowkey budget-friendly precision ๐ธ:
lapack_logical LAPACKE_sgb_nancheck (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const float *ab, lapack_int ldab)โ general bandgb:m,n,kl,ku,ab,ldab๐ธlapack_logical LAPACKE_sge_nancheck (int matrix_layout, lapack_int m, lapack_int n, const float *a, lapack_int lda)โ general matrixge,m/n/a/lda, the blueprint ๐lapack_logical LAPACKE_sgg_nancheck (int matrix_layout, lapack_int m, lapack_int n, const float *a, lapack_int lda)โgg, identical argument list toge, do not let anyone tell you otherwise ๐ซถlapack_logical LAPACKE_sgt_nancheck (lapack_int n, const float *dl, const float *d, const float *du)โ tridiagonalgt,nand thedl/d/dutrio โจlapack_logical LAPACKE_shs_nancheck (int matrix_layout, lapack_int n, const float *a, lapack_int lda)โhs, layout/n/a/lda, she's consistent ๐lapack_logical LAPACKE_spb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const float *ab, lapack_int ldab)โ bandedpb:uplo,n,kd,ab,ldab๐ฅlapack_logical LAPACKE_spf_nancheck (lapack_int n, const float *a)โpf,n+a, that's the whole story ๐lapack_logical LAPACKE_spo_nancheck (int matrix_layout, char uplo, lapack_int n, const float *a, lapack_int lda)โpofull storage,uplo/n/a/lda๐lapack_logical LAPACKE_spp_nancheck (lapack_int n, const float *ap)โ packedpp,nandap, periodt ๐lapack_logical LAPACKE_spt_nancheck (lapack_int n, const float *d, const float *e)โpt,dandeboth plainfloat๐ฆlapack_logical LAPACKE_ssb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const float *ab, lapack_int ldab)โ symmetric bandsb, full guest list ๐งlapack_logical LAPACKE_ssp_nancheck (lapack_int n, const float *ap)โ packedsp,n+ap๐lapack_logical LAPACKE_sst_nancheck (lapack_int n, const float *d, const float *e)โst,dande, no layout, nolda, no stress ๐lapack_logical LAPACKE_ssy_nancheck (int matrix_layout, char uplo, lapack_int n, const float *a, lapack_int lda)โsyfull storage,uplo/n/a/ldaโญlapack_logical LAPACKE_stb_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const float *ab, lapack_int ldab)โ triangular bandedtb,diagincluded, don't forget it ๐ญlapack_logical LAPACKE_stf_nancheck (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const float *a)โtfwithtransr,uplo,diag,n,a๐lapack_logical LAPACKE_stp_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const float *ap)โ packed triangulartp, layout/uplo/diag/n/ap๐ธlapack_logical LAPACKE_str_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const float *a, lapack_int lda)โ triangulartr,uplo/diag/n/a/lda, slay ๐
And finally the z girlies โ lapack_complex_double, the double-complex main characters, and there are twenty of them, so buckle up ๐:
lapack_logical LAPACKE_zgb_nancheck (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const lapack_complex_double *ab, lapack_int ldab)โ general bandgb:m,n,kl,ku,ab,ldab๐ฅlapack_logical LAPACKE_zge_nancheck (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_double *a, lapack_int lda)โ general matrixge,m/n/a/lda, the icon ๐lapack_logical LAPACKE_zgg_nancheck (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_double *a, lapack_int lda)โgg, samem/n/a/ldasituation, different name โจlapack_logical LAPACKE_zgt_nancheck (lapack_int n, const lapack_complex_double *dl, const lapack_complex_double *d, const lapack_complex_double *du)โ tridiagonalgt,nplusdl/d/du, all complex-double ๐ฆlapack_logical LAPACKE_zhb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_double *ab, lapack_int ldab)โ bandedhb,uplo/n/kd/ab/ldab๐lapack_logical LAPACKE_zhe_nancheck (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double *a, lapack_int lda)โhefull storage,uplo/n/a/lda๐lapack_logical LAPACKE_zhp_nancheck (lapack_int n, const lapack_complex_double *ap)โ packedhp,nmain +ap, noldaneeded ๐ธlapack_logical LAPACKE_zhs_nancheck (int matrix_layout, lapack_int n, const lapack_complex_double *a, lapack_int lda)โhs, layout/n/a/lda๐ซถlapack_logical LAPACKE_zpb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_double *ab, lapack_int ldab)โ bandedpb, the whole band-storage ensemble ๐lapack_logical LAPACKE_zpf_nancheck (lapack_int n, const lapack_complex_double *a)โpf,nanda, that's the entire function, obsessed ๐lapack_logical LAPACKE_zpo_nancheck (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double *a, lapack_int lda)โpofull storage,uplo/n/a/lda๐ฅlapack_logical LAPACKE_zpp_nancheck (lapack_int n, const lapack_complex_double *ap)โ packedpp,n+ap, cute and done ๐lapack_logical LAPACKE_zpt_nancheck (lapack_int n, const double *d, const lapack_complex_double *e)โ heads up onpt๐:dis a plaindouble,eislapack_complex_double, keep them straightlapack_logical LAPACKE_zsp_nancheck (lapack_int n, const lapack_complex_double *ap)โ packedsp,nandap๐งlapack_logical LAPACKE_zst_nancheck (lapack_int n, const lapack_complex_double *d, const lapack_complex_double *e)โst,dandeboth complex-double ๐lapack_logical LAPACKE_zsy_nancheck (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double *a, lapack_int lda)โsyfull storage,uplo/n/a/ldaโญlapack_logical LAPACKE_ztb_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const lapack_complex_double *ab, lapack_int ldab)โ triangular bandedtb,diagincluded, don't sleep on it ๐lapack_logical LAPACKE_ztf_nancheck (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const lapack_complex_double *a)โtfwithtransr/uplo/diag/n/a, and again, nolda๐lapack_logical LAPACKE_ztp_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_double *ap)โ packed triangulartp, layout/uplo/diag/n/ap๐lapack_logical LAPACKE_ztr_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_double *a, lapack_int lda)โ triangulartrfull storage,uplo/diag/n/a/lda, final boss energy ๐ฅ
๐ Macro Definition Documentation ๐
Okay bestie, now the macros โ these are the little one-liners that hold the whole header together, and every single one has a line number you can go look up yourself, iykyk ๐ฆ
ABS(x)โ#define ABS(x) (((x) < 0) ? -(x) : (x))โ the absolute-value baddie, defined at line 44 of filelapacke_utils.h. ๐
IS_C_NONZERO(x) โ complex-float nonzero check, and it just peeks at both float halves of x. Value:
( IS_S_NONZERO(*((float*)&x)) || IS_S_NONZERO(*(((float*)&x)+1)) )
Definition at line 61 of file lapacke_utils.h. ๐
IS_D_NONZERO(x)โ#define IS_D_NONZERO(x) ( (x) < 0 || (x) > 0 )โ defined at line 60 of filelapacke_utils.h. โจIS_S_NONZERO(x)โ#define IS_S_NONZERO(x) ( (x) < 0 || (x) > 0 )โ defined at line 59 of filelapacke_utils.h. ๐ธ
IS_Z_NONZERO(x) โ the double-complex version, checking both double halves of x. Value:
( IS_D_NONZERO(*((double*)&x)) || IS_D_NONZERO(*(((double*)&x)+1)) )
Definition at line 63 of file lapacke_utils.h. ๐ฆ
LAPACK_CISNAN(x) โ complex-float NaN check that leans on LAPACK_SISNAN for each half. Value:
( LAPACK_SISNAN(*((float*) &x)) || LAPACK_SISNAN(*(((float*) &x)+1)) )
Definition at line 288 of file lapacke_utils.h. ๐ญ
LAPACK_DISNAN(x)โ#define LAPACK_DISNAN(x) ( x != x )โ the classic self-inequality NaN test, defined at line 287 of filelapacke_utils.h. ๐ฅLAPACK_SISNAN(x)โ#define LAPACK_SISNAN(x) ( x != x )โ same trick,floatedition, defined at line 286 of filelapacke_utils.h. ๐
LAPACK_ZISNAN(x) โ complex-double NaN check, LAPACK_DISNAN on both halves. Value:
( LAPACK_DISNAN(*((double*)&x)) || LAPACK_DISNAN(*(((double*)&x)+1)) )
Definition at line 290 of file lapacke_utils.h. ๐
MAX(x, y)โ#define MAX(x, y) (((x) > (y)) ? (x) : (y))โ defined at line 47 of filelapacke_utils.h. โญMAX3(x, y, z)โ#define MAX3(x, y, z) (((x) > MAX(y,z)) ? (x) : MAX(y,z))โ defined at line 53 of filelapacke_utils.h. ๐ซถMIN(x, y)โ#define MIN(x, y) (((x) < (y)) ? (x) : (y))โ defined at line 50 of filelapacke_utils.h. ๐MIN3(x, y, z)โ#define MIN3(x, y, z) (((x) < MIN(y,z)) ? (x) : MIN(y,z))โ defined at line 56 of filelapacke_utils.h. ๐ง
๐ง Function Documentation ๐ง
One documented function down here, and she's the blueprint for the whole x_nancheck family, so show some respect ๐
lapack_logical LAPACKE_c_nancheck (lapack_int n, const lapack_complex_float *x, lapack_int incx)
lapack_logical LAPACKE_c_nancheck (lapack_int n, const lapack_complex_float
* x, lapack_int incx)
Note that this one takes an incx stride, which the matrix-flavored checks above don't โ so yeah, she's special ๐
Definition at line 37 of file lapacke_c_nancheck.c. ๐ฆ
Okay so the function parade continues, bestie โ grab your iced coffee, we're going through the whole lapacke_utils.h roster alphabetically and yes it is a lot ๐
LAPACKE_cgb_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_cgb_nancheck (int matrix_layout, lapack_int m,
lapack_int n, lapack_int kl, lapack_int ku, const lapack_complex_float *
ab, lapack_int ldab)
Definition at line 37 of file lapacke_cgb_nancheck.c.
The NaN-hunting one for complex single-precision general band stuff โ it's giving "who let the NaNs into the band storage" energy, and it takes kl, ku and ldab along for the ride.
LAPACKE_cgb_trans ๐
void LAPACKE_cgb_trans (int matrix_layout, lapack_int m, lapack_int n,
lapack_int kl, lapack_int ku, const lapack_complex_float * in,
lapack_int ldin, lapack_complex_float * out, lapack_int ldout)
Definition at line 40 of file lapacke_cgb_trans.c.
The matching _trans bestie for complex general band โ in goes in, out comes out, with ldin/ldout doing their leading-dimension thing. Slay.
LAPACKE_cge_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_cge_nancheck (int matrix_layout, lapack_int m,
lapack_int n, const lapack_complex_float * a, lapack_int lda)
Definition at line 37 of file lapacke_cge_nancheck.c.
Same detective vibe, but for the plain old complex single-precision general (ge) case โ m, n, a, lda, done.
LAPACKE_cge_trans ๐
void LAPACKE_cge_trans (int matrix_layout, lapack_int m, lapack_int n, const
lapack_complex_float * in, lapack_int ldin, lapack_complex_float * out,
lapack_int ldout)
Definition at line 40 of file lapacke_cge_trans.c.
General complex single-precision transpose business. in โ out, ldin โ ldout, lowkey iconic.
LAPACKE_cgg_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_cgg_nancheck (int matrix_layout, lapack_int m,
lapack_int n, const lapack_complex_float * a, lapack_int lda)
Definition at line 37 of file lapacke_cgg_nancheck.c.
The gg flavour โ same signature shape as its ge cousin, still checking for NaNs and still not judging you for how you filled that matrix.
LAPACKE_cgg_trans ๐
void LAPACKE_cgg_trans (int matrix_layout, lapack_int m, lapack_int n, const
lapack_complex_float * in, lapack_int ldin, lapack_complex_float * out,
lapack_int ldout)
Definition at line 40 of file lapacke_cgg_trans.c.
And the transpose counterpart, identical-looking args because that's just how the gg girlies roll. Periodt.
LAPACKE_cgt_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_cgt_nancheck (lapack_int n, const
lapack_complex_float * dl, const lapack_complex_float * d, const
lapack_complex_float * du)
Definition at line 37 of file lapacke_cgt_nancheck.c.
Tridiagonal check, no matrix_layout in sight โ just n and the three diagonals dl, d, du. Cute and compact fr fr.
Notice how the tridiagonal ones don't take a matrix_layout? Yeah. That's the whole list, not a typo, don't come for me ๐
LAPACKE_chb_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_chb_nancheck (int matrix_layout, char uplo,
lapack_int n, lapack_int kd, const lapack_complex_float * ab, lapack_int
ldab)
Definition at line 37 of file lapacke_chb_nancheck.c.
Hermitian band NaN check โ uplo tells it which triangle, kd is the bandwidth, ab/ldab hold the goods.
LAPACKE_chb_trans ๐
void LAPACKE_chb_trans (int matrix_layout, char uplo, lapack_int n,
lapack_int kd, const lapack_complex_float * in, lapack_int ldin,
lapack_complex_float * out, lapack_int ldout)
Definition at line 40 of file lapacke_chb_trans.c.
Same Hermitian band situation, but now we're moving data instead of sniffing for NaNs. uplo, kd, both leading dimensions โ the full set, bestie.
LAPACKE_che_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_che_nancheck (int matrix_layout, char uplo,
lapack_int n, const lapack_complex_float * a, lapack_int lda)
Definition at line 37 of file lapacke_che_nancheck.c.
Hermitian (he), full-storage edition. uplo + n + a + lda, and it'll tell you if something's NaN-ing in there.
LAPACKE_che_trans ๐
void LAPACKE_che_trans (int matrix_layout, char uplo, lapack_int n, const
lapack_complex_float * in, lapack_int ldin, lapack_complex_float * out,
lapack_int ldout)
Definition at line 40 of file lapacke_che_trans.c.
Transpose time for Hermitian complex single precision. The way it just takes uplo and gets on with it โ main character energy honestly.
LAPACKE_chp_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_chp_nancheck (lapack_int n, const
lapack_complex_float * ap)
Definition at line 40 of file lapacke_chp_nancheck.c.
Packed Hermitian, so no lda, no matrix_layout โ just n and ap. Minimalist queen โจ
LAPACKE_chp_trans ๐
void LAPACKE_chp_trans (int matrix_layout, char uplo, lapack_int n, const
lapack_complex_float * in, lapack_complex_float * out)
Definition at line 40 of file lapacke_chp_trans.c.
Packed means no leading dimensions needed for in/out โ the packed format already knows what's up. Obsessed with the efficiency.
LAPACKE_chs_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_chs_nancheck (int matrix_layout, lapack_int n, const
lapack_complex_float * a, lapack_int lda)
Definition at line 37 of file lapacke_chs_nancheck.c.
hs flavour NaN check โ note there's no uplo here, just matrix_layout, n, a, lda. Read the signature, don't assume ๐
LAPACKE_chs_trans ๐
void LAPACKE_chs_trans (int matrix_layout, lapack_int n, const
lapack_complex_float * in, lapack_int ldin, lapack_complex_float * out,
lapack_int ldout)
Definition at line 40 of file lapacke_chs_trans.c.
And the matching hs transpose, also uplo-free. Consistent, we love to see it.
LAPACKE_cpb_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_cpb_nancheck (int matrix_layout, char uplo,
lapack_int n, lapack_int kd, const lapack_complex_float * ab, lapack_int
ldab)
Definition at line 37 of file lapacke_cpb_nancheck.c.
Positive-definite band, complex single precision โ uplo, n, kd, ab, ldab. The NaN check that keeps your decomposition honest ๐ซถ
LAPACKE_cpb_trans ๐
void LAPACKE_cpb_trans (int matrix_layout, char uplo, lapack_int n,
lapack_int kd, const lapack_complex_float * in, lapack_int ldin,
lapack_complex_float * out, lapack_int ldout)
Definition at line 40 of file lapacke_cpb_trans.c.
Transposing the banded positive-definite situation. kd says how wide, ldin/ldout say how tall-ish. It's giving organized.
LAPACKE_cpf_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_cpf_nancheck (lapack_int n, const
lapack_complex_float * a)
Definition at line 41 of file lapacke_cpf_nancheck.c.
Tiny signature, big job โ n and a, and that's the whole mood. (Line 41 this time, not 37, so don't @ me.)
LAPACKE_cpf_trans ๐
void LAPACKE_cpf_trans (int matrix_layout, char transr, char uplo,
lapack_int n, const lapack_complex_float * in, lapack_complex_float *
out)
Definition at line 40 of file lapacke_cpf_trans.c.
Ooh, this one's got a transr up in there alongside uplo โ the pf transposer does not take leading dimensions for in/out. Not me noticing the details ๐
LAPACKE_cpo_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_cpo_nancheck (int matrix_layout, char uplo,
lapack_int n, const lapack_complex_float * a, lapack_int lda)
Definition at line 37 of file lapacke_cpo_nancheck.c.
Complex single-precision positive definite, full storage. uplo, n, a, lda โ the classic quartet, bestie.
LAPACKE_cpo_trans ๐
void LAPACKE_cpo_trans (int matrix_layout, char uplo, lapack_int n, const
lapack_complex_float * in, lapack_int ldin, lapack_complex_float * out,
lapack_int ldout)
Definition at line 40 of file lapacke_cpo_trans.c.
And its translater twin. Same shape, different verb. Ate. ๐
LAPACKE_cpp_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_cpp_nancheck (lapack_int n, const
lapack_complex_float * ap)
Definition at line 40 of file lapacke_cpp_nancheck.c.
Packed positive definite โ packed means no leading dimension, so it's just n and ap. Short, sweet, slaying.
LAPACKE_cpp_trans ๐
void LAPACKE_cpp_trans (int matrix_layout, char uplo, lapack_int n, const
lapack_complex_float * in, lapack_complex_float * out)
Definition at line 40 of file lapacke_cpp_trans.c.
Packed in, packed out, uplo and n steering the ship. No ldin in sight and honestly? Good for her.
LAPACKE_cpt_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_cpt_nancheck (lapack_int n, const float * d, const
lapack_complex_float * e)
Definition at line 37 of file lapacke_cpt_nancheck.c.
Okay so heads up: here d is a real float pointer and e is lapack_complex_float โ the tridiagonal pt one mixes types and that's just the assignment. Read it twice, it's real.
LAPACKE_csp_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_csp_nancheck (lapack_int n, const
lapack_complex_float * ap)
Definition at line 40 of file lapacke_csp_nancheck.c.
Symmetric packed, complex single precision. n + ap, minimal, chic, no notes.
LAPACKE_csp_trans ๐
void LAPACKE_csp_trans (int matrix_layout, char uplo, lapack_int n, const
lapack_complex_float * in, lapack_complex_float * out)
Definition at line 40 of file lapacke_csp_trans.c.
Same packed deal, now moving them. matrix_layout, uplo, n, in, out โ that's the whole squad.
LAPACKE_cst_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_cst_nancheck (lapack_int n, const
lapack_complex_float * d, const lapack_complex_float * e)
Definition at line 37 of file lapacke_cst_nancheck.c.
Symmetric tridiagonal โ and unlike cpt, both d and e are lapack_complex_float here. Yes I noticed. Yes I'm telling you. ๐
LAPACKE_csy_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_csy_nancheck (int matrix_layout, char uplo,
lapack_int n, const lapack_complex_float * a, lapack_int lda)
Definition at line 37 of file lapacke_csy_nancheck.c.
Symmetric (sy), complex single precision, full storage โ uplo, n, a, lda. Nothing mysterious, just vibes.
LAPACKE_csy_trans ๐
void LAPACKE_csy_trans (int matrix_layout, char uplo, lapack_int n, const
lapack_complex_float * in, lapack_int ldin, lapack_complex_float * out,
lapack_int ldout)
Definition at line 40 of file lapacke_csy_trans.c.
Transposing symmetric complex single precision. LOWKEY the same signature as all its friends but it's different, okay, it's sy.
LAPACKE_ctb_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_ctb_nancheck (int matrix_layout, char uplo, char
diag, lapack_int n, lapack_int kd, const lapack_complex_float * ab,
lapack_int ldab)
Definition at line 37 of file lapacke_ctb_nancheck.c.
Triangular band, so it's got a diag char in the mix (unit vs non-unit, you know the drill) plus uplo, kd and ldab. Busy girl, but she handles it.
LAPACKE_ctb_trans ๐
void LAPACKE_ctb_trans (int matrix_layout, char uplo, char diag, lapack_int
n, lapack_int kd, const lapack_complex_float * in, lapack_int ldin,
lapack_complex_float * out, lapack_int ldout)
Definition at line 40 of file lapacke_ctb_trans.c.
The triangular band transposer โ uplo, diag, kd, both lds. Honestly the fullest roster of args so far and she wears it well.
LAPACKE_ctf_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_ctf_nancheck (int matrix_layout, char transr, char
uplo, char diag, lapack_int n, const lapack_complex_float * a)
Definition at line 37 of file lapacke_ctf_nancheck.c.
Triangular RFP: transr AND uplo AND diag, three whole chars before you even get to n. No lda though โ it's giving "I know where my data lives". ๐
LAPACKE_ctf_trans ๐
void LAPACKE_ctf_trans (int matrix_layout, char transr, char uplo, char
diag, lapack_int n, const lapack_complex_float * in,
lapack_complex_float * out)
Definition at line 41 of file lapacke_ctf_trans.c.
Same trio of chars, and again no leading dimensions for in/out. Line 41, because of course. ๐
LAPACKE_ctp_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_ctp_nancheck (int matrix_layout, char uplo, char
diag, lapack_int n, const lapack_complex_float * ap)
Definition at line 40 of file lapacke_ctp_nancheck.c.
Triangular packed โ diag's here, ap's here, no lda because packed said "not today". We respect it.
LAPACKE_ctp_trans ๐
void LAPACKE_ctp_trans (int matrix_layout, char uplo, char diag, lapack_int
n, const lapack_complex_float * in, lapack_complex_float * out)
Definition at line 40 of file lapacke_ctp_trans.c.
Packed triangular, transposed. Same short-and-sweet arg list, same energy, still slaying.
LAPACKE_ctr_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_ctr_nancheck (int matrix_layout, char uplo, char
diag, lapack_int n, const lapack_complex_float * a, lapack_int lda)
Definition at line 37 of file lapacke_ctr_nancheck.c.
Triangular, full storage โ so lda comes back to the party alongside uplo and diag. Welcome back, king.
LAPACKE_ctr_trans ๐
void LAPACKE_ctr_trans (int matrix_layout, char uplo, char diag, lapack_int
n, const lapack_complex_float * in, lapack_int ldin,
lapack_complex_float * out, lapack_int ldout)
Definition at line 40 of file lapacke_ctr_trans.c.
Last complex-single-precision one in this batch, and it's a full-storage triangular transposer. uplo, diag, ldin, ldout โ full house bestie ๐
LAPACKE_d_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_d_nancheck (lapack_int n, const double * x,
lapack_int incx)
Definition at line 37 of file lapacke_d_nancheck.c.
And we're into double precision, starting with the plain vector โ n, x, and an incx stride, because sometimes your data isn't all cozy and contiguous. Respect the stride fr fr.
LAPACKE_dgb_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dgb_nancheck (int matrix_layout, lapack_int m,
lapack_int n, lapack_int kl, lapack_int ku, const double * ab,
lapack_int ldab)
Definition at line 37 of file lapacke_dgb_nancheck.c.
Real double, general band, NaN check. kl and ku are the sub/super diagonal counts, everything else is exactly what you'd expect. No surprises, slay.
LAPACKE_dgb_trans ๐
void LAPACKE_dgb_trans (int matrix_layout, lapack_int m, lapack_int n,
lapack_int kl, lapack_int ku, const double * in, lapack_int ldin, double
* out, lapack_int ldout)
Definition at line 40 of file lapacke_dgb_trans.c.
Double general band, transposed. Same kl/ku pair, double * in โ double * out. Clean.
LAPACKE_dge_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dge_nancheck (int matrix_layout, lapack_int m,
lapack_int n, const double * a, lapack_int lda)
Definition at line 37 of file lapacke_dge_nancheck.c.
Classic general double matrix NaN check. m, n, a, lda. The beige cardigan of signatures and honestly we stan reliability.
LAPACKE_dge_trans ๐
void LAPACKE_dge_trans (int matrix_layout, lapack_int m, lapack_int n, const
double * in, lapack_int ldin, double * out, lapack_int ldout)
Definition at line 40 of file lapacke_dge_trans.c.
General double transpose. In, out, two leading dimensions, no drama. Iconic.
LAPACKE_dgg_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dgg_nancheck (int matrix_layout, lapack_int m,
lapack_int n, const double * a, lapack_int lda)
Definition at line 37 of file lapacke_dgg_nancheck.c.
gg but for double. Same arg shape, still checking, still unbothered.
LAPACKE_dgg_trans ๐
void LAPACKE_dgg_trans (int matrix_layout, lapack_int m, lapack_int n, const
double * in, lapack_int ldin, double * out, lapack_int ldout)
Definition at line 40 of file lapacke_dgg_trans.c.
And the gg transposer in double. Matching set, matching vibes ๐
LAPACKE_dgt_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dgt_nancheck (lapack_int n, const double * dl, const
double * d, const double * du)
Definition at line 37 of file lapacke_dgt_nancheck.c.
Double tridiagonal, so it's n plus dl, d, du and no layout argument. Three diagonals, three pointers, zero matrix_layout. Easy.
LAPACKE_dhs_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dhs_nancheck (int matrix_layout, lapack_int n, const
double * a, lapack_int lda)
Definition at line 37 of file lapacke_dhs_nancheck.c.
hs in double precision โ note the absence of an uplo char in this signature. Just matrix_layout, n, a, lda. Copy it exactly, bestie.
LAPACKE_dhs_trans ๐
void LAPACKE_dhs_trans (int matrix_layout, lapack_int n, const double * in,
lapack_int ldin, double * out, lapack_int ldout)
Definition at line 40 of file lapacke_dhs_trans.c.
Same story โ no uplo anywhere. in, out, both lds. Consistent queen.
LAPACKE_dpb_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dpb_nancheck (int matrix_layout, char uplo,
lapack_int n, lapack_int kd, const double * ab, lapack_int ldab)
Definition at line 37 of file lapacke_dpb_nancheck.c.
Double positive-definite band. uplo's back, kd's back, ab/ldab holding it down.
LAPACKE_dpb_trans ๐
void LAPACKE_dpb_trans (int matrix_layout, char uplo, lapack_int n,
lapack_int kd, const double * in, lapack_int ldin, double * out,
lapack_int ldout)
Definition at line 40 of file lapacke_dpb_trans.c.
Transposing the double banded positive-definite situation. kd knows the bandwidth, the lds know the rest.
LAPACKE_dpf_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dpf_nancheck (lapack_int n, const double * a)
Definition at line 41 of file lapacke_dpf_nancheck.c.
Two args. Two. n and a. The RFP life means you don't need a leading dimension and she is thriving on that. Line 41 again, keep up ๐
LAPACKE_dpf_trans ๐
void LAPACKE_dpf_trans (int matrix_layout, char transr, char uplo,
lapack_int n, const double * in, double * out)
Definition at line 40 of file lapacke_dpf_trans.c.
transr + uplo + n + in + out. No lds, no notes, we move.
LAPACKE_dpo_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dpo_nancheck (int matrix_layout, char uplo,
lapack_int n, const double * a, lapack_int lda)
Definition at line 37 of file lapacke_dpo_nancheck.c.
Double positive definite, full storage. uplo, n, a, lda โ four besties, one job.
LAPACKE_dpo_trans ๐
void LAPACKE_dpo_trans (int matrix_layout, char uplo, lapack_int n, const
double * in, lapack_int ldin, double * out, lapack_int ldout)
Definition at line 40 of file lapacke_dpo_trans.c.
Transposing double positive definite. Same uplo, same everything, different function. Love a consistent family ๐ธ
LAPACKE_dpp_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dpp_nancheck (lapack_int n, const double * ap)
Definition at line 40 of file lapacke_dpp_nancheck.c.
Packed double positive definite โ n and ap, packed means no lda. Short king.
LAPACKE_dpp_trans ๐
void LAPACKE_dpp_trans (int matrix_layout, char uplo, lapack_int n, const
double * in, double * out)
Definition at line 40 of file lapacke_dpp_trans.c.
Packed in, packed out, uplo steering. No leading dimensions needed and she's not sorry.
LAPACKE_dpt_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dpt_nancheck (lapack_int n, const double * d, const
double * e)
Definition at line 37 of file lapacke_dpt_nancheck.c.
Double positive-definite tridiagonal โ both d and e are plain double here (in the complex version they were not, so yes, the types differ across precisions โ read carefully bestie).
LAPACKE_dsb_nancheck ๐ต๏ธโโ๏ธ
lapack_logical LAPACKE_dsb_nancheck (int matrix_layout, char uplo,
lapack_int n, lapack_int kd, const double * ab, lapack_int ldab)
Definition at line 37 of file lapacke_dsb_nancheck.c.
Symmetric band, double precision. uplo, n, kd, ab, ldab. The band girlies stay winning.
LAPACKE_dsb_trans ๐
void LAPACKE_dsb_trans (int matrix_layout, char uplo, lapack_int n,
lapack_int kd, const double * in, lapack_int ldin, double * out,
lapack_int ldout)
Definition at line 40 of file lapacke_dsb_trans.c.
And the symmetric-band double transposer to round out this chunk โ kd, both leading dimensions, the whole ensemble. Gorgeous, no cap ๐ฅ
LAPACKE_dsp_nancheck ๐
lapack_logical LAPACKE_dsp_nancheck (lapack_int n, const double * ap)
okay so bestie, this is the NaN detector for packed symmetric double data โ you hand it n and your packed array ap, and it tells you (with a lapack_logical) whether anybody snuck a Not-A-Number in there. packed means no wasted zeros, very efficient, we love her.
Definition at line 40 of file lapacke_dsp_nancheck.c.
LAPACKE_dsp_trans ๐ฆ
void LAPACKE_dsp_trans (int matrix_layout, char uplo, lapack_int n, const double * in, double * out)
the trans fam โจ converts packed symmetric double between layouts โ you tell it matrix_layout, uplo, n, and it reads in, writes out. packed in, packed out, no ldin/ldout drama because packed arrays don't need leading dimensions. iconic behavior honestly.
Definition at line 40 of file lapacke_dsp_trans.c.
LAPACKE_dst_nancheck ๐
lapack_logical LAPACKE_dst_nancheck (lapack_int n, const double * d, const double * e)
tridiagonal NaN check, double edition. give it the diagonal d and the off-diagonal e plus n and it'll tell you if anything's cursed. no cap, always run this before you trust a factorization.
Definition at line 37 of file lapacke_dst_nancheck.c.
LAPACKE_dsy_nancheck ๐
lapack_logical LAPACKE_dsy_nancheck (int matrix_layout, char uplo, lapack_int n, const double * a, lapack_int lda)
full-storage symmetric double NaN scan. matrix_layout, uplo, n, the array a, and its leading dimension lda โ that's the whole guest list. returns a lapack_logical, periodt.
Definition at line 37 of file lapacke_dsy_nancheck.c.
LAPACKE_dsy_trans ๐ธ
void LAPACKE_dsy_trans (int matrix_layout, char uplo, lapack_int n, const double * in, lapack_int ldin, double * out, lapack_int ldout)
symmetric double layout translator. note she DOES take ldin and ldout because full storage means leading dimensions matter again. reads in, writes out, slays.
Definition at line 40 of file lapacke_dsy_trans.c.
LAPACKE_dtb_nancheck ๐ง
lapack_logical LAPACKE_dtb_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const double * ab, lapack_int ldab)
triangular band matrix, double, NaN check. you bring matrix_layout, uplo, diag, n, kd, the band array ab and ldab. yes there are a lot of params, that's band storage for you, she's high maintenance but worth it ๐
Definition at line 37 of file lapacke_dtb_nancheck.c.
LAPACKE_dtb_trans โญ
void LAPACKE_dtb_trans (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const double * in, lapack_int ldin, double * out, lapack_int ldout)
band triangular translator, double flavor. same parameter parade, plus ldin/ldout for the storage handoff. giving very much "yes i know all my arguments" energy.
Definition at line 40 of file lapacke_dtb_trans.c.
LAPACKE_dtf_nancheck ๐ฅ
lapack_logical LAPACKE_dtf_nancheck (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const double * a)
trapezoidal / RFP format NaN check for double. she takes transr (the RFP flag, not the usual trans), uplo, diag, n, and the array a. note: no lda here โ RFP storage doesn't play that game. read the signature carefully bestie.
Definition at line 37 of file lapacke_dtf_nancheck.c.
LAPACKE_dtf_trans ๐
void LAPACKE_dtf_trans (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const double * in, double * out)
RFP translator for double triangular-ish data. transr, uplo, diag, n, in, out โ no leading dimensions anywhere, because RFP said "not today". ๐
Definition at line 41 of file lapacke_dtf_trans.c. (yes, 41, not 40 โ little detail, don't come for me)
LAPACKE_dtp_nancheck ๐ซถ
lapack_logical LAPACKE_dtp_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const double * ap)
packed triangular double NaN check. matrix_layout, uplo, diag, n, packed array ap. packed = no leading dimension = one less thing to get wrong, we stan.
Definition at line 40 of file lapacke_dtp_nancheck.c.
LAPACKE_dtp_trans ๐
void LAPACKE_dtp_trans (int matrix_layout, char uplo, char diag, lapack_int n, const double * in, double * out)
packed triangular layout translator, double. give it the vibes (matrix_layout, uplo, diag, n) plus in and out, get back the same numbers in the other layout. no cap.
Definition at line 40 of file lapacke_dtp_trans.c.
LAPACKE_dtr_nancheck ๐
lapack_logical LAPACKE_dtr_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const double * a, lapack_int lda)
full-storage triangular double NaN scan. a and lda are back in the group chat. checks for NaNs and returns lapack_logical so you can gatekeep your downstream math. main character energy.
Definition at line 37 of file lapacke_dtr_nancheck.c.
LAPACKE_dtr_trans ๐
void LAPACKE_dtr_trans (int matrix_layout, char uplo, char diag, lapack_int n, const double * in, lapack_int ldin, double * out, lapack_int ldout)
triangular double translator with full storage. ldin and ldout present and accounted for. reads in, writes out, absolutely ate that.
Definition at line 40 of file lapacke_dtr_trans.c.
LAPACKE_lsame โจ
lapack_logical LAPACKE_lsame (char ca, char cb)
the tiny legend herself ๐ two chars in, one lapack_logical out โ she tells you if ca and cb are the same letter in the case-insensitive sense LAPACKE cares about. that's the whole job. two arguments. iconic. iykyk.
Definition at line 36 of file lapacke_lsame.c.
the s fam arrives and she is ALL about float ๐ฉท same cast of characters as the d crew, just floatier. let's go:
LAPACKE_s_nancheck ๐ธ
lapack_logical LAPACKE_s_nancheck (lapack_int n, const float * x, lapack_int incx)
strided vector NaN check. n elements, starting at x, stepping by incx. note the stride, bestie โ incx is right there in the signature, do not skip it.
Definition at line 37 of file lapacke_s_nancheck.c.
LAPACKE_sgb_nancheck ๐ฆ
lapack_logical LAPACKE_sgb_nancheck (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const float * ab, lapack_int ldab)
general band, float. m, n, kl, ku, ab, ldab โ the full band-storage starter pack. her job: are there NaNs in there or not. that's it. that's the tweet.
Definition at line 37 of file lapacke_sgb_nancheck.c.
LAPACKE_sgb_trans ๐
void LAPACKE_sgb_trans (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const float * in, lapack_int ldin, float * out, lapack_int ldout)
general band float translator. m, n, kl, ku, in, ldin, out, ldout. yes it's long. no we're not skipping any of them. ๐
Definition at line 40 of file lapacke_sgb_trans.c.
LAPACKE_sge_nancheck ๐
lapack_logical LAPACKE_sge_nancheck (int matrix_layout, lapack_int m, lapack_int n, const float * a, lapack_int lda)
the classic!! general float matrix NaN check, m by n, array a, leading dimension lda. if you only remember one nancheck, it's this one. she's the blueprint fr fr.
Definition at line 37 of file lapacke_sge_nancheck.c.
LAPACKE_sge_trans ๐
void LAPACKE_sge_trans (int matrix_layout, lapack_int m, lapack_int n, const float * in, lapack_int ldin, float * out, lapack_int ldout)
general float matrix layout translator. row-major in, column-major out, or whatever combo you feed her via matrix_layout โ she handles m, n, in, ldin, out, ldout and does not complain. queen behavior.
Definition at line 40 of file lapacke_sge_trans.c.
LAPACKE_sgg_nancheck ๐ซ
lapack_logical LAPACKE_sgg_nancheck (int matrix_layout, lapack_int m, lapack_int n, const float * a, lapack_int lda)
the gg NaN check for float โ same m, n, a, lda lineup as sge_nancheck. yes they look alike, no they are not the same function, keep them straight bestie ๐
Definition at line 37 of file lapacke_sgg_nancheck.c.
LAPACKE_sgg_trans ๐
void LAPACKE_sgg_trans (int matrix_layout, lapack_int m, lapack_int n, const float * in, lapack_int ldin, float * out, lapack_int ldout)
gg variant of the float layout translator. m, n, in, ldin, out, ldout, done. slay.
Definition at line 40 of file lapacke_sgg_trans.c.
LAPACKE_sgt_nancheck ๐ฅ
lapack_logical LAPACKE_sgt_nancheck (lapack_int n, const float * dl, const float * d, const float * du)
tridiagonal float NaN check: subdiagonal dl, diagonal d, superdiagonal du, size n. three arrays, one vibe check. obsessed.
Definition at line 37 of file lapacke_sgt_nancheck.c.
LAPACKE_shs_nancheck ๐บ
lapack_logical LAPACKE_shs_nancheck (int matrix_layout, lapack_int n, const float * a, lapack_int lda)
symmetric/Hermitian-ish float NaN scan โ no uplo in the signature, just matrix_layout, n, a, lda. read it twice, she's the exception to the pattern.
Definition at line 37 of file lapacke_shs_nancheck.c.
LAPACKE_shs_trans ๐ฆ
void LAPACKE_shs_trans (int matrix_layout, lapack_int n, const float * in, lapack_int ldin, float * out, lapack_int ldout)
same deal, translator edition. matrix_layout, n, in, ldin, out, ldout โ and again, no uplo. lowkey refreshing honestly.
Definition at line 40 of file lapacke_shs_trans.c.
LAPACKE_spb_nancheck ๐ฌ
lapack_logical LAPACKE_spb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const float * ab, lapack_int ldab)
positive-definite band, float, NaN check. matrix_layout, uplo, n, kd, ab, ldab. she's checking a banded symmetric positive-definite situation for NaNs and returning lapack_logical. periodt.
Definition at line 37 of file lapacke_spb_nancheck.c.
LAPACKE_spb_trans ๐
void LAPACKE_spb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const float * in, lapack_int ldin, float * out, lapack_int ldout)
banded PD float layout translator. same params, plus the ldin/ldout duo. she ate, no crumbs.
Definition at line 40 of file lapacke_spb_trans.c.
LAPACKE_spf_nancheck ๐
lapack_logical LAPACKE_spf_nancheck (lapack_int n, const float * a)
packed RFP float NaN check. honestly the shortest guest list ever: n and a. no matrix_layout, no uplo, no diag, no leading dimension. she's minimalism. she's elegance. Definition at line 41 of file lapacke_spf_nancheck.c (41 again, noticed ๐).
LAPACKE_spf_trans ๐ง
void LAPACKE_spf_trans (int matrix_layout, char transr, char uplo, lapack_int n, const float * in, float * out)
packed RFP float translator. here matrix_layout, transr, uplo and n ARE back, plus in/out โ but still zero leading dimensions because RFP said so. the inconsistency is the personality ๐
Definition at line 40 of file lapacke_spf_trans.c.
LAPACKE_spo_nancheck ๐ธ
lapack_logical LAPACKE_spo_nancheck (int matrix_layout, char uplo, lapack_int n, const float * a, lapack_int lda)
positive-definite float matrix NaN check. matrix_layout, uplo, n, a, lda โ full storage, leading dimension included, no shortcuts.
Definition at line 37 of file lapacke_spo_nancheck.c.
LAPACKE_spo_trans ๐
void LAPACKE_spo_trans (int matrix_layout, char uplo, lapack_int n, const float * in, lapack_int ldin, float * out, lapack_int ldout)
PD float translator, full storage. reads in at ldin, writes out at ldout. flawless execution tbh.
Definition at line 40 of file lapacke_spo_trans.c.
LAPACKE_spp_nancheck ๐ซง
lapack_logical LAPACKE_spp_nancheck (lapack_int n, const float * ap)
packed PD float, NaN check, and look at that tiny signature โ just n and ap. packed storage really said "i'll handle the layout, you handle the NaNs". queen.
Definition at line 40 of file lapacke_spp_nancheck.c.
LAPACKE_spp_trans ๐ฆ
void LAPACKE_spp_trans (int matrix_layout, char uplo, lapack_int n, const float * in, float * out)
packed PD float translator. matrix_layout, uplo, n, in, out. no leading dimensions. that's the whole menu. โจ
Definition at line 40 of file lapacke_spp_trans.c.
LAPACKE_spt_nancheck ๐
lapack_logical LAPACKE_spt_nancheck (lapack_int n, const float * d, const float * e)
packed tridiagonal float NaN check. n, diagonal d, off-diagonal e. note it's _spt_ not _sst_ โ they're different, don't mix them up bestie ๐ญ
Definition at line 37 of file lapacke_spt_nancheck.c.
LAPACKE_ssb_nancheck ๐
lapack_logical LAPACKE_ssb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const float * ab, lapack_int ldab)
symmetric band float NaN check. matrix_layout, uplo, n, kd, ab, ldab. she's giving "i check band storage and i do it well".
Definition at line 37 of file lapacke_ssb_nancheck.c.
LAPACKE_ssb_trans ๐ซ
void LAPACKE_ssb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const float * in, lapack_int ldin, float * out, lapack_int ldout)
symmetric band layout translator, float. all six of her structural params plus in/ldin/out/ldout. she has a lot going on but she never drops a stitch.
Definition at line 40 of file lapacke_ssb_trans.c.
LAPACKE_ssp_nancheck ๐
lapack_logical LAPACKE_ssp_nancheck (lapack_int n, const float * ap)
packed symmetric float NaN scan. n + packed ap = that's it. returns lapack_logical. she's lowkey the easiest function on this whole page and i love her for it.
Definition at line 40 of file lapacke_ssp_nancheck.c.
LAPACKE_ssp_trans ๐ธ
void LAPACKE_ssp_trans (int matrix_layout, char uplo, lapack_int n, const float * in, float * out)
packed symmetric float translator. matrix_layout, uplo, n, in, out. same vibes as spp_trans, different name. keep your ps and your ss straight. ๐
Definition at line 40 of file lapacke_ssp_trans.c.
LAPACKE_sst_nancheck ๐ฌ
lapack_logical LAPACKE_sst_nancheck (lapack_int n, const float * d, const float * e)
tridiagonal float NaN check โ n, d, e. yes, structurally identical to spt_nancheck's signature. no, they are not the same function. LAPACKE said "similar names, deal with it" ๐
Definition at line 37 of file lapacke_sst_nancheck.c.
LAPACKE_ssy_nancheck ๐
lapack_logical LAPACKE_ssy_nancheck (int matrix_layout, char uplo, lapack_int n, const float * a, lapack_int lda)
full-storage symmetric float NaN check. matrix_layout, uplo, n, a, lda. classic lineup, classic result, lapack_logical.
Definition at line 37 of file lapacke_ssy_nancheck.c.
LAPACKE_ssy_trans ๐
void LAPACKE_ssy_trans (int matrix_layout, char uplo, lapack_int n, const float * in, lapack_int ldin, float * out, lapack_int ldout)
symmetric float translator, full storage, leading dimensions present and correct. she's the ssy counterpart to dsy_trans and she does NOT need an introduction.
Definition at line 40 of file lapacke_ssy_trans.c.
LAPACKE_stb_nancheck ๐ง
lapack_logical LAPACKE_stb_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const float * ab, lapack_int ldab)
triangular band float NaN check, ldab and all. yes, diag is here too. yes, it matters. always read the params bestie ๐ซถ
Definition at line 37 of file lapacke_stb_nancheck.c.
LAPACKE_stb_trans โญ
void LAPACKE_stb_trans (int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const float * in, lapack_int ldin, float * out, lapack_int ldout)
triangular band float translator. eight params. eight reasons to double-check your call site. she's worth it though ๐
Definition at line 40 of file lapacke_stb_trans.c.
LAPACKE_stf_nancheck ๐ฅ
lapack_logical LAPACKE_stf_nancheck (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const float * a)
RFP float NaN check. transr, uplo, diag, n, a โ and once again, no leading dimension because RFP doesn't use them. she's consistent about being inconsistent.
Definition at line 37 of file lapacke_stf_nancheck.c.
LAPACKE_stf_trans ๐
void LAPACKE_stf_trans (int matrix_layout, char transr, char uplo, char diag, lapack_int n, const float * in, float * out)
RFP float translator โ same transr/uplo/diag/n setup, then in straight into out. no leading dimensions, no problem. Definition at line 41 of file lapacke_stf_trans.c (third forty-one of the page, we're keeping score ๐).
LAPACKE_stp_nancheck ๐
lapack_logical LAPACKE_stp_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const float * ap)
packed triangular float NaN check. matrix_layout, uplo, diag, n, packed ap. short, sweet, returns lapack_logical. perfection.
Definition at line 40 of file lapacke_stp_nancheck.c.
LAPACKE_stp_trans ๐ซถ
void LAPACKE_stp_trans (int matrix_layout, char uplo, char diag, lapack_int n, const float * in, float * out)
packed triangular float layout translator. same five setup params, then in and out. packed in, packed out, no ld anywhere. slay.
Definition at line 40 of file lapacke_stp_trans.c.
LAPACKE_str_nancheck ๐บ
lapack_logical LAPACKE_str_nancheck (int matrix_layout, char uplo, char diag, lapack_int n, const float * a, lapack_int lda)
full-storage triangular float NaN check. diag and lda both present, as they should be. she's thorough.
Definition at line 37 of file lapacke_str_nancheck.c.
LAPACKE_str_trans ๐ฆ
void LAPACKE_str_trans (int matrix_layout, char uplo, char diag, lapack_int n, const float * in, lapack_int ldin, float * out, lapack_int ldout)
triangular float translator, full storage, both leading dimensions. that closes out the s fam and honestly? she carried. ๐ฉท
Definition at line 40 of file lapacke_str_trans.c.
LAPACKE_xerbla ๐ญ
void LAPACKE_xerbla (const char * name, lapack_int info)
okay so this one is THE moment. name a function (name) and an error code (info) and LAPACKE_xerbla does the error-reporting thing. it's a void โ nothing comes back to you. you call her when something's wrong, she handles the announcement, you move on. every LAPACKE bad-time story goes through here, ngl.
bestie note:xerblais what fires when an argument check fails. if you're staring at output you didn't write, this is your girl. the signature isnameandinfo, both required, don't skipinfo.
Definition at line 37 of file lapacke_xerbla.c.
and now the z fam ๐ โ lapack_complex_double everywhere, double-precision complex, the glamorous one. let's get into it:
LAPACKE_z_nancheck ๐ฎ
lapack_logical LAPACKE_z_nancheck (lapack_int n, const lapack_complex_double * x, lapack_int incx)
strided complex-double vector NaN check. n, start at x, step by incx. she checks complex values for NaNs and returns lapack_logical. note the incx โ she's a strided queen, respect it.
Definition at line 37 of file lapacke_z_nancheck.c.
LAPACKE_zgb_nancheck ๐ซ
lapack_logical LAPACKE_zgb_nancheck (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const lapack_complex_double * ab, lapack_int ldab)
complex general band, NaN check. m, n, kl, ku, ab, ldab. yes, all of them. band storage never lets you off easy. ๐
Definition at line 37 of file lapacke_zgb_nancheck.c.
LAPACKE_zgb_trans โจ
void LAPACKE_zgb_trans (int matrix_layout, lapack_int m, lapack_int n, lapack_int kl, lapack_int ku, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)
complex band layout translator. m, n, kl, ku, in, ldin, out, ldout โ she takes the whole squad and delivers. that's main character energy.
Definition at line 40 of file lapacke_zgb_trans.c.
LAPACKE_zge_nancheck ๐
lapack_logical LAPACKE_zge_nancheck (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_double * a, lapack_int lda)
the general complex m-by-n NaN check. a at leading dimension lda, returns lapack_logical. she is the blueprint, the moment, the whole brand. ๐ฅ
Definition at line 37 of file lapacke_zge_nancheck.c.
LAPACKE_zge_trans ๐
void LAPACKE_zge_trans (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)
general complex layout translator. row-major โ column-major, whatever matrix_layout says. m, n, in, ldin, out, ldout. flawless, no notes.
Definition at line 40 of file lapacke_zge_trans.c.
LAPACKE_zgg_nancheck ๐
lapack_logical LAPACKE_zgg_nancheck (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_double * a, lapack_int lda)
gg complex NaN check. same m, n, a, lda shape as zge_nancheck โ and yes, that resemblance is a trap for the copy-paste girlies. check your names, bestie.
Definition at line 37 of file lapacke_zgg_nancheck.c.
LAPACKE_zgg_trans ๐ฆ
void LAPACKE_zgg_trans (int matrix_layout, lapack_int m, lapack_int n, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)
the gg complex translator. m, n, in, ldin, out, ldout. she does exactly what you'd expect and she does it gorgeously.
Definition at line 40 of file lapacke_zgg_trans.c.
LAPACKE_zgt_nancheck ๐ธ
lapack_logical LAPACKE_zgt_nancheck (lapack_int n, const lapack_complex_double * dl, const lapack_complex_double * d, const lapack_complex_double * du)
complex tridiagonal NaN check: n, subdiagonal dl, diagonal d, superdiagonal du. three complex arrays, one lapack_logical verdict. she's the whole package.
Definition at line 37 of file lapacke_zgt_nancheck.c.
LAPACKE_zhb_nancheck ๐ซง
lapack_logical LAPACKE_zhb_nancheck (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_double * ab, lapack_int ldab)
complex banded NaN check. matrix_layout, uplo, n, kd, ab, ldab. she's checking a banded complex situation and she's not missing a single NaN. ๐
Definition at line 37 of file lapacke_zhb_nancheck.c.
LAPACKE_zhb_trans ๐
void LAPACKE_zhb_trans (int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)
complex banded translator. uplo, n, kd, in, ldin, out, ldout. she's the hb counterpart and she absolutely understood the assignment.
Definition at line 40 of file lapacke_zhb_trans.c.
LAPACKE_zhe_nancheck ๐
lapack_logical LAPACKE_zhe_nancheck (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double * a, lapack_int lda)
Hermitian complex n-by-n NaN scan. matrix_layout, uplo, n, a, lda, returns lapack_logical. she is the Hermitian icon and we respect her.
Definition at line 37 of file lapacke_zhe_nancheck.c.
LAPACKE_zhe_trans โญ
void LAPACKE_zhe_trans (int matrix_layout, char uplo, lapack_int n, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)
Hermitian complex layout translator, full storage, ldin and ldout both accounted for. reads in, writes out, closes out this stretch of the z fam with zero crumbs left behind. ๐ซถ
Definition at line 40 of file lapacke_zhe_trans.c.
lapack_logical LAPACKE_zhp_nancheck(lapack_int n, const lapack_complex_double * ap)โ the hermitian-packed NaN-sniffing bestie ๐ Definition at line 40 of filelapacke_zhp_nancheck.c.void LAPACKE_zhp_trans(int matrix_layout, char uplo, lapack_int n, const lapack_complex_double * in, lapack_complex_double * out)โ hermitian-packed trans handler, in goes one side, out comes the other ๐ฆ Definition at line 40 of filelapacke_zhp_trans.c.lapack_logical LAPACKE_zhs_nancheck(int matrix_layout, lapack_int n, const lapack_complex_double * a, lapack_int lda)โ full-storage hermitian NaN check,ldaand all, no notes skipped โจ Definition at line 37 of filelapacke_zhs_nancheck.c.void LAPACKE_zhs_trans(int matrix_layout, lapack_int n, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)โ hermitian full-storage trans, withldinandldoutdoing their little leading-dimension dance ๐ Definition at line 40 of filelapacke_zhs_trans.c.lapack_logical LAPACKE_zpb_nancheck(int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_double * ab, lapack_int ldab)โ positive-definite banded NaN check,kdandldabincluded because we don't cut corners, periodt ๐ฅ Definition at line 37 of filelapacke_zpb_nancheck.c.void LAPACKE_zpb_trans(int matrix_layout, char uplo, lapack_int n, lapack_int kd, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)โ banded positive-definite trans, eight arguments long and thriving ๐ Definition at line 40 of filelapacke_zpb_trans.c.lapack_logical LAPACKE_zpf_nancheck(lapack_int n, const lapack_complex_double * a)โ positive-definite rectangular-full NaN check. nomatrix_layout, nolda, just vibes andn๐ง Definition at line 41 of filelapacke_zpf_nancheck.c. (yes, line 41, not 37, she's built different ๐)void LAPACKE_zpf_trans(int matrix_layout, char transr, char uplo, lapack_int n, const lapack_complex_double * in, lapack_complex_double * out)โ the rectangular-full trans, and she takes atransrand anuplo, because range is a lifestyle ๐ Definition at line 40 of filelapacke_zpf_trans.c.lapack_logical LAPACKE_zpo_nancheck(int matrix_layout, char uplo, lapack_int n, const lapack_complex_double * a, lapack_int lda)โ positive-definite full-storage NaN check, iconic, no notes ๐ Definition at line 37 of filelapacke_zpo_nancheck.c.void LAPACKE_zpo_trans(int matrix_layout, char uplo, lapack_int n, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)โ positive-definite full-storage trans, leading dimensions politely accounted for ๐ซถ Definition at line 40 of filelapacke_zpo_trans.c.lapack_logical LAPACKE_zpp_nancheck(lapack_int n, const lapack_complex_double * ap)โ positive-definite packed NaN check, compact and unbothered ๐ Definition at line 40 of filelapacke_zpp_nancheck.c.void LAPACKE_zpp_trans(int matrix_layout, char uplo, lapack_int n, const lapack_complex_double * in, lapack_complex_double * out)โ positive-definite packed trans, no leading dims in sight, clean girl aesthetic โจ Definition at line 40 of filelapacke_zpp_trans.c.lapack_logical LAPACKE_zpt_nancheck(lapack_int n, const double * d, const lapack_complex_double * e)โ positive-definite tridiagonal NaN check. notice the split:dis realdouble,eislapack_complex_double, she contains multitudes ๐ Definition at line 37 of filelapacke_zpt_nancheck.c.lapack_logical LAPACKE_zsp_nancheck(lapack_int n, const lapack_complex_double * ap)โ symmetric packed NaN check, cutely compact ๐ธ Definition at line 40 of filelapacke_zsp_nancheck.c.void LAPACKE_zsp_trans(int matrix_layout, char uplo, lapack_int n, const lapack_complex_double * in, lapack_complex_double * out)โ symmetric packed trans, straightforward and slaying ๐ Definition at line 40 of filelapacke_zsp_trans.c.lapack_logical LAPACKE_zst_nancheck(lapack_int n, const lapack_complex_double * d, const lapack_complex_double * e)โ symmetric tridiagonal NaN check. bothdandearelapack_complex_doublethis time, do not mix her up withzpt๐ญ Definition at line 37 of filelapacke_zst_nancheck.c.lapack_logical LAPACKE_zsy_nancheck(int matrix_layout, char uplo, lapack_int n, const lapack_complex_double * a, lapack_int lda)โ symmetric full-storage NaN check,uplo+ldaduo doing their thing ๐ฅ Definition at line 37 of filelapacke_zsy_nancheck.c.void LAPACKE_zsy_trans(int matrix_layout, char uplo, lapack_int n, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)โ symmetric full-storage trans, in/out with separate leading dims, we love a tidy transfer ๐ฆ Definition at line 40 of filelapacke_zsy_trans.c.
okay the triangular girlies, they're a whole squad and they all want a diag char too ๐
lapack_logical LAPACKE_ztb_nancheck(int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const lapack_complex_double * ab, lapack_int ldab)โ triangular banded NaN check,uplo,diag,kd,ldab, the full lineup โญ Definition at line 37 of filelapacke_ztb_nancheck.c.void LAPACKE_ztb_trans(int matrix_layout, char uplo, char diag, lapack_int n, lapack_int kd, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)โ triangular banded trans, nine arguments, main character energy fr fr ๐ Definition at line 40 of filelapacke_ztb_trans.c.lapack_logical LAPACKE_ztf_nancheck(int matrix_layout, char transr, char uplo, char diag, lapack_int n, const lapack_complex_double * a)โ triangular rectangular-full NaN check withtransrANDuploANDdiag. she's highkey doing the most and we respect it ๐ Definition at line 37 of filelapacke_ztf_nancheck.c.void LAPACKE_ztf_trans(int matrix_layout, char transr, char uplo, char diag, lapack_int n, const lapack_complex_double * in, lapack_complex_double * out)โ triangular rectangular-full trans. same trio of chars, and ngl the definition lives at line 41, not 40 ๐ญ Definition at line 41 of filelapacke_ztf_trans.c.lapack_logical LAPACKE_ztp_nancheck(int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_double * ap)โ triangular packed NaN check, compact storage, maximumdiagattitude โจ Definition at line 40 of filelapacke_ztp_nancheck.c.void LAPACKE_ztp_trans(int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_double * in, lapack_complex_double * out)โ triangular packed trans, no leading dims, just vibes ๐ Definition at line 40 of filelapacke_ztp_trans.c.lapack_logical LAPACKE_ztr_nancheck(int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_double * a, lapack_int lda)โ triangular full-storage NaN check, the classic, the blueprint, the moment ๐ Definition at line 37 of filelapacke_ztr_nancheck.c.void LAPACKE_ztr_trans(int matrix_layout, char uplo, char diag, lapack_int n, const lapack_complex_double * in, lapack_int ldin, lapack_complex_double * out, lapack_int ldout)โ triangular full-storage trans, last one in the list and she ate, truly ๐ซถ Definition at line 40 of filelapacke_ztr_trans.c.
โญ Author โญ
Generated automatically by Doxygen for LAPACK from the source code. (yes bestie, a robot wrote her, and she still ate ๐ )
okay that's the whole page, go forth and NaN-check responsibly ๐ฆ this cutie is lapacke_utils.h(3), Version 3.8.0, dated Tue Nov 14 2017 โ she's vintage, she's iconic, she's giving 2017 in the best way fr ๐
๐ฆ 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