F77_CAXPY(3)
π CBLAS/include/cblas_f77.h(3) π
okay so this page lives in the Library Functions Manual section of the Unix man pages, and bestie, it is short β like, suspiciously short. we're talking the header of a C header, and honestly? it's giving "the file exists and that's the whole personality." let's get into it π
β¨ NAME β¨
CBLAS/include/cblas_f77.h β that's it. that's the name. literally just the path to the header file, no fancy description, no subtitle, no nothing. it's the main character and it knows it π
ngl this is the whole NAME section. some man pages hand you a whole paragraph here; this one hands you a path and walks away. iconic behaviour, no notes πΈ
π¦ SYNOPSIS π¦
here's the part where you actually use the thing. you gotta pull in these two headers, fr fr:
#include <stdarg.h>
#include <stdint.h>
that's the full synopsis, bestie β two #include lines and we're done. stdarg.h and stdint.h, in that order, exactly like that. don't get creative with it π«Ά
lowkey important: this is a header file, so the whole game plan is #include-ing it into your own code. the SYNOPSIS is just showing you what it drags in with it β¨
bestie we are just getting started β there's more of this page coming, so don't go anywhere π
β¨ Macros β¨
okay bestie, brace yourself because this section is a lot β it's the whole macro situation from cblas_f77.h, and it is giving "someone generated this at 3am and honestly? iconic". π
We're not skipping any of it, so grab a snack. π
First up, the little foundational ones β these set the vibe for everything else:
BLAS_FORTRAN_STRLEN_ENDβ the star of the show, defined with no value at all (it's just there, existing, main character energy).FORTRAN_STRLENβ defined assize_t. The length type. Slay.F77_INTβ defined asint32_t.FCHARβ defined aschar *.FINTβ defined asconst F77_INT *(note theconst, she's protected π).FINT2β defined asF77_INT *(noconst, she's editable).API_SUFFIX(a)β a function-like macro takinga, expands to nothing visible here.F77_GLOBAL_SUFFIX(a, b)β function-like macro, two args. Yes there are two spaces after that comma, that's literally how it's written, don't come for me π.F77_GLOBAL_SUFFIX_(a, b)β same but with a trailing underscore in the name (the sneaky twin).
πΈ the _base macros
Every single one of these pairs a lowercase F77_*_base name with a F77_GLOBAL_SUFFIX(...) call. There are so many. Let's go group by group, no cap. π«Ά
er, xerbla + the rotation girlies
#define F77_xerbla_base F77_GLOBAL_SUFFIX(xerbla,XERBLA)
#define F77_srotg_base F77_GLOBAL_SUFFIX(srotg,SROTG)
#define F77_srotmg_base F77_GLOBAL_SUFFIX(srotmg,SROTMG)
#define F77_srot_base F77_GLOBAL_SUFFIX(srot,SROT)
#define F77_srotm_base F77_GLOBAL_SUFFIX(srotm,SROTM)
#define F77_drotg_base F77_GLOBAL_SUFFIX(drotg,DROTG)
#define F77_drotmg_base F77_GLOBAL_SUFFIX(drotmg,DROTMG)
#define F77_drot_base F77_GLOBAL_SUFFIX(drot,DROT)
#define F77_drotm_base F77_GLOBAL_SUFFIX(drotm,DROTM)
swap / copy / axpy / i?amax β the level-1 legends π
#define F77_sswap_base F77_GLOBAL_SUFFIX(sswap,SSWAP)
#define F77_scopy_base F77_GLOBAL_SUFFIX(scopy,SCOPY)
#define F77_saxpy_base F77_GLOBAL_SUFFIX(saxpy,SAXPY)
#define F77_isamax_sub_base F77_GLOBAL_SUFFIX(isamaxsub,ISAMAXSUB)
#define F77_dswap_base F77_GLOBAL_SUFFIX(dswap,DSWAP)
#define F77_dcopy_base F77_GLOBAL_SUFFIX(dcopy,DCOPY)
#define F77_daxpy_base F77_GLOBAL_SUFFIX(daxpy,DAXPY)
#define F77_idamax_sub_base F77_GLOBAL_SUFFIX(idamaxsub,IDAMAXSUB)
#define F77_cswap_base F77_GLOBAL_SUFFIX(cswap,CSWAP)
#define F77_ccopy_base F77_GLOBAL_SUFFIX(ccopy,CCOPY)
#define F77_caxpy_base F77_GLOBAL_SUFFIX(caxpy,CAXPY)
#define F77_icamax_sub_base F77_GLOBAL_SUFFIX(icamaxsub,ICAMAXSUB)
#define F77_zswap_base F77_GLOBAL_SUFFIX(zswap,ZSWAP)
#define F77_zcopy_base F77_GLOBAL_SUFFIX(zcopy,ZCOPY)
#define F77_zaxpy_base F77_GLOBAL_SUFFIX(zaxpy,ZAXPY)
#define F77_izamax_sub_base F77_GLOBAL_SUFFIX(izamaxsub,IZAMAXSUB)
dot products π
#define F77_sdot_sub_base F77_GLOBAL_SUFFIX(sdotsub,SDOTSUB)
#define F77_ddot_sub_base F77_GLOBAL_SUFFIX(ddotsub,DDOTSUB)
#define F77_dsdot_sub_base F77_GLOBAL_SUFFIX(dsdotsub,DSDOTSUB)
scal (the scaling squad) β
#define F77_sscal_base F77_GLOBAL_SUFFIX(sscal,SSCAL)
#define F77_dscal_base F77_GLOBAL_SUFFIX(dscal,DSCAL)
#define F77_cscal_base F77_GLOBAL_SUFFIX(cscal,CSCAL)
#define F77_zscal_base F77_GLOBAL_SUFFIX(zscal,ZSCAL)
#define F77_csscal_base F77_GLOBAL_SUFFIX(csscal,CSSCAL)
#define F77_zdscal_base F77_GLOBAL_SUFFIX(zdscal,ZDSCAL)
complex dot products, both flavours (u and c, we don't play favourites) π¦
#define F77_cdotu_sub_base F77_GLOBAL_SUFFIX(cdotusub,CDOTUSUB)
#define F77_cdotc_sub_base F77_GLOBAL_SUFFIX(cdotcsub,CDOTCSUB)
#define F77_zdotu_sub_base F77_GLOBAL_SUFFIX(zdotusub,ZDOTUSUB)
#define F77_zdotc_sub_base F77_GLOBAL_SUFFIX(zdotcsub,ZDOTCSUB)
nrm2 + asum + the extra double-precision sdsdot one π
#define F77_snrm2_sub_base F77_GLOBAL_SUFFIX(snrm2sub,SNRM2SUB)
#define F77_sasum_sub_base F77_GLOBAL_SUFFIX(sasumsub,SASUMSUB)
#define F77_dnrm2_sub_base F77_GLOBAL_SUFFIX(dnrm2sub,DNRM2SUB)
#define F77_dasum_sub_base F77_GLOBAL_SUFFIX(dasumsub,DASUMSUB)
#define F77_scnrm2_sub_base F77_GLOBAL_SUFFIX(scnrm2sub,SCNRM2SUB)
#define F77_scasum_sub_base F77_GLOBAL_SUFFIX(scasumsub,SCASUMSUB)
#define F77_dznrm2_sub_base F77_GLOBAL_SUFFIX(dznrm2sub,DZNRM2SUB)
#define F77_dzasum_sub_base F77_GLOBAL_SUFFIX(dzasumsub,DZASUMSUB)
#define F77_sdsdot_sub_base F77_GLOBAL_SUFFIX(sdsdotsub,SDSDOTSUB)
complex rotations + the cabs1 girlies β look closely, these have a SPACE after the comma π
#define F77_crotg_base F77_GLOBAL_SUFFIX(crotg, CROTG)
#define F77_csrot_base F77_GLOBAL_SUFFIX(csrot, CSROT)
#define F77_zrotg_base F77_GLOBAL_SUFFIX(zrotg, ZROTG)
#define F77_zdrot_base F77_GLOBAL_SUFFIX(zdrot, ZDROT)
#define F77_scabs1_sub_base F77_GLOBAL_SUFFIX(scabs1sub, SCABS1SUB)
#define F77_dcabs1_sub_base F77_GLOBAL_SUFFIX(dcabs1sub, DCABS1SUB)
symmetric / hermitian matrix-vector, plus rank updates π
#define F77_ssymv_base F77_GLOBAL_SUFFIX(ssymv,SSYMV)
#define F77_ssbmv_base F77_GLOBAL_SUFFIX(ssbmv,SSBMV)
#define F77_sspmv_base F77_GLOBAL_SUFFIX(sspmv,SSPMV)
#define F77_sger_base F77_GLOBAL_SUFFIX(sger,SGER)
#define F77_ssyr_base F77_GLOBAL_SUFFIX(ssyr,SSYR)
#define F77_sspr_base F77_GLOBAL_SUFFIX(sspr,SSPR)
#define F77_ssyr2_base F77_GLOBAL_SUFFIX(ssyr2,SSYR2)
#define F77_sspr2_base F77_GLOBAL_SUFFIX(sspr2,SSPR2)
#define F77_dsymv_base F77_GLOBAL_SUFFIX(dsymv,DSYMV)
#define F77_dsbmv_base F77_GLOBAL_SUFFIX(dsbmv,DSBMV)
#define F77_dspmv_base F77_GLOBAL_SUFFIX(dspmv,DSPMV)
#define F77_dger_base F77_GLOBAL_SUFFIX(dger,DGER)
#define F77_dsyr_base F77_GLOBAL_SUFFIX(dsyr,DSYR)
#define F77_dspr_base F77_GLOBAL_SUFFIX(dspr,DSPR)
#define F77_dsyr2_base F77_GLOBAL_SUFFIX(dsyr2,DSYR2)
#define F77_dspr2_base F77_GLOBAL_SUFFIX(dspr2,DSPR2)
#define F77_chemv_base F77_GLOBAL_SUFFIX(chemv,CHEMV)
#define F77_chbmv_base F77_GLOBAL_SUFFIX(chbmv,CHBMV)
#define F77_chpmv_base F77_GLOBAL_SUFFIX(chpmv,CHPMV)
#define F77_cgeru_base F77_GLOBAL_SUFFIX(cgeru,CGERU)
#define F77_cgerc_base F77_GLOBAL_SUFFIX(cgerc,CGERC)
#define F77_cher_base F77_GLOBAL_SUFFIX(cher,CHER)
#define F77_chpr_base F77_GLOBAL_SUFFIX(chpr,CHPR)
#define F77_cher2_base F77_GLOBAL_SUFFIX(cher2,CHER2)
#define F77_chpr2_base F77_GLOBAL_SUFFIX(chpr2,CHPR2)
#define F77_zhemv_base F77_GLOBAL_SUFFIX(zhemv,ZHEMV)
#define F77_zhbmv_base F77_GLOBAL_SUFFIX(zhbmv,ZHBMV)
#define F77_zhpmv_base F77_GLOBAL_SUFFIX(zhpmv,ZHPMV)
#define F77_zgeru_base F77_GLOBAL_SUFFIX(zgeru,ZGERU)
#define F77_zgerc_base F77_GLOBAL_SUFFIX(zgerc,ZGERC)
#define F77_zher_base F77_GLOBAL_SUFFIX(zher,ZHER)
#define F77_zhpr_base F77_GLOBAL_SUFFIX(zhpr,ZHPR)
#define F77_zher2_base F77_GLOBAL_SUFFIX(zher2,ZHER2)
#define F77_zhpr2_base F77_GLOBAL_SUFFIX(zhpr2,ZHPR2)
triangular matrix-vector / solve, the whole alphabet of them π₯
#define F77_sgemv_base F77_GLOBAL_SUFFIX(sgemv,SGEMV)
#define F77_sgbmv_base F77_GLOBAL_SUFFIX(sgbmv,SGBMV)
#define F77_strmv_base F77_GLOBAL_SUFFIX(strmv,STRMV)
#define F77_stbmv_base F77_GLOBAL_SUFFIX(stbmv,STBMV)
#define F77_stpmv_base F77_GLOBAL_SUFFIX(stpmv,STPMV)
#define F77_strsv_base F77_GLOBAL_SUFFIX(strsv,STRSV)
#define F77_stbsv_base F77_GLOBAL_SUFFIX(stbsv,STBSV)
#define F77_stpsv_base F77_GLOBAL_SUFFIX(stpsv,STPSV)
#define F77_dgemv_base F77_GLOBAL_SUFFIX(dgemv,DGEMV)
#define F77_dgbmv_base F77_GLOBAL_SUFFIX(dgbmv,DGBMV)
#define F77_dtrmv_base F77_GLOBAL_SUFFIX(dtrmv,DTRMV)
#define F77_dtbmv_base F77_GLOBAL_SUFFIX(dtbmv,DTBMV)
#define F77_dtpmv_base F77_GLOBAL_SUFFIX(dtpmv,DTPMV)
#define F77_dtrsv_base F77_GLOBAL_SUFFIX(dtrsv,DTRSV)
#define F77_dtbsv_base F77_GLOBAL_SUFFIX(dtbsv,DTBSV)
#define F77_dtpsv_base F77_GLOBAL_SUFFIX(dtpsv,DTPSV)
#define F77_cgemv_base F77_GLOBAL_SUFFIX(cgemv,CGEMV)
#define F77_cgbmv_base F77_GLOBAL_SUFFIX(cgbmv,CGBMV)
#define F77_ctrmv_base F77_GLOBAL_SUFFIX(ctrmv,CTRMV)
#define F77_ctbmv_base F77_GLOBAL_SUFFIX(ctbmv,CTBMV)
#define F77_ctpmv_base F77_GLOBAL_SUFFIX(ctpmv,CTPMV)
#define F77_ctrsv_base F77_GLOBAL_SUFFIX(ctrsv,CTRSV)
#define F77_ctbsv_base F77_GLOBAL_SUFFIX(ctbsv,CTBSV)
#define F77_ctpsv_base F77_GLOBAL_SUFFIX(ctpsv,CTPSV)
#define F77_zgemv_base F77_GLOBAL_SUFFIX(zgemv,ZGEMV)
#define F77_zgbmv_base F77_GLOBAL_SUFFIX(zgbmv,ZGBMV)
#define F77_ztrmv_base F77_GLOBAL_SUFFIX(ztrmv,ZTRMV)
#define F77_ztbmv_base F77_GLOBAL_SUFFIX(ztbmv,ZTBMV)
#define F77_ztpmv_base F77_GLOBAL_SUFFIX(ztpmv,ZTPMV)
#define F77_ztrsv_base F77_GLOBAL_SUFFIX(ztrsv,ZTRSV)
#define F77_ztbsv_base F77_GLOBAL_SUFFIX(ztbsv,ZTBSV)
#define F77_ztpsv_base F77_GLOBAL_SUFFIX(ztpsv,ZTPSV)
level 3 hermitian stuff + the gemm/trmm/trsm heavy hitters π
#define F77_chemm_base F77_GLOBAL_SUFFIX(chemm,CHEMM)
#define F77_cherk_base F77_GLOBAL_SUFFIX(cherk,CHERK)
#define F77_cher2k_base F77_GLOBAL_SUFFIX(cher2k,CHER2K)
#define F77_zhemm_base F77_GLOBAL_SUFFIX(zhemm,ZHEMM)
#define F77_zherk_base F77_GLOBAL_SUFFIX(zherk,ZHERK)
#define F77_zher2k_base F77_GLOBAL_SUFFIX(zher2k,ZHER2K)
#define F77_sgemm_base F77_GLOBAL_SUFFIX(sgemm,SGEMM)
#define F77_sgemmtr_base F77_GLOBAL_SUFFIX(sgemmtr,SGEMMTR)
#define F77_ssymm_base F77_GLOBAL_SUFFIX(ssymm,SSYMM)
#define F77_ssyrk_base F77_GLOBAL_SUFFIX(ssyrk,SSYRK)
#define F77_ssyr2k_base F77_GLOBAL_SUFFIX(ssyr2k,SSYR2K)
#define F77_strmm_base F77_GLOBAL_SUFFIX(strmm,STRMM)
#define F77_strsm_base F77_GLOBAL_SUFFIX(strsm,STRSM)
#define F77_dgemm_base F77_GLOBAL_SUFFIX(dgemm,DGEMM)
#define F77_dgemmtr_base F77_GLOBAL_SUFFIX(dgemmtr,DGEMMTR)
#define F77_dsymm_base F77_GLOBAL_SUFFIX(dsymm,DSYMM)
#define F77_dsyrk_base F77_GLOBAL_SUFFIX(dsyrk,DSYRK)
#define F77_dsyr2k_base F77_GLOBAL_SUFFIX(dsyr2k,DSYR2K)
#define F77_dtrmm_base F77_GLOBAL_SUFFIX(dtrmm,DTRMM)
#define F77_dtrsm_base F77_GLOBAL_SUFFIX(dtrsm,DTRSM)
#define F77_cgemm_base F77_GLOBAL_SUFFIX(cgemm,CGEMM)
#define F77_cgemmtr_base F77_GLOBAL_SUFFIX(cgemmtr,CGEMMTR)
#define F77_csymm_base F77_GLOBAL_SUFFIX(csymm,CSYMM)
#define F77_csyrk_base F77_GLOBAL_SUFFIX(csyrk,CSYRK)
#define F77_csyr2k_base F77_GLOBAL_SUFFIX(csyr2k,CSYR2K)
#define F77_ctrmm_base F77_GLOBAL_SUFFIX(ctrmm,CTRMM)
#define F77_ctrsm_base F77_GLOBAL_SUFFIX(ctrsm,CTRSM)
#define F77_zgemm_base F77_GLOBAL_SUFFIX(zgemm,ZGEMM)
#define F77_zgemmtr_base F77_GLOBAL_SUFFIX(zgemmtr,ZGEMMTR)
#define F77_zsymm_base F77_GLOBAL_SUFFIX(zsymm,ZSYMM)
#define F77_zsyrk_base F77_GLOBAL_SUFFIX(zsyrk,ZSYRK)
#define F77_zsyr2k_base F77_GLOBAL_SUFFIX(zsyr2k,ZSYR2K)
#define F77_ztrmm_base F77_GLOBAL_SUFFIX(ztrmm,ZTRMM)
#define F77_ztrsm_base F77_GLOBAL_SUFFIX(ztrsm,ZTRSM)
π§ and now the (...) macros
These are the function-like ones β each one is a macro that takes ... (variadic, she takes anything). Listing them exactly as written, in exactly this order, duplicates and all β because yes, F77_dswap(...), F77_cswap(...) and F77_zswap(...) each appear twice in there, and that is literally what's in the file. Not me. The file. π
#define F77_srot(...)
#define F77_srotg(...)
#define F77_srotm(...)
#define F77_srotmg(...)
#define F77_sswap(...)
#define F77_scopy(...)
#define F77_saxpy(...)
#define F77_sdot_sub(...)
#define F77_sdsdot_sub(...)
#define F77_sscal(...)
#define F77_snrm2_sub(...)
#define F77_sasum_sub(...)
#define F77_isamax_sub(...)
#define F77_scabs1_sub(...)
#define F77_drot(...)
#define F77_drotg(...)
#define F77_drotm(...)
#define F77_drotmg(...)
#define F77_dswap(...)
#define F77_dcopy(...)
#define F77_daxpy(...)
#define F77_dswap(...)
#define F77_dsdot_sub(...)
#define F77_ddot_sub(...)
#define F77_dscal(...)
#define F77_dnrm2_sub(...)
#define F77_dasum_sub(...)
#define F77_idamax_sub(...)
#define F77_dcabs1_sub(...)
#define F77_crotg(...)
#define F77_csrot(...)
#define F77_cswap(...)
#define F77_ccopy(...)
#define F77_caxpy(...)
#define F77_cswap(...)
#define F77_cdotc_sub(...)
#define F77_cdotu_sub(...)
#define F77_cscal(...)
#define F77_icamax_sub(...)
#define F77_csscal(...)
#define F77_scnrm2_sub(...)
#define F77_scasum_sub(...)
#define F77_zrotg(...)
#define F77_zdrot(...)
#define F77_zswap(...)
#define F77_zcopy(...)
#define F77_zaxpy(...)
#define F77_zswap(...)
#define F77_zdotc_sub(...)
#define F77_zdotu_sub(...)
#define F77_zdscal(...)
#define F77_zscal(...)
#define F77_dznrm2_sub(...)
#define F77_dzasum_sub(...)
#define F77_izamax_sub(...)
That's the whole macro menu, bestie. Every last one. Obsessed with your commitment to reading all of it π«Άβ¨
ok so the macro wall continues and honestly? it's giving extensive. every single one of these is written as #define with (...) for the arguments, and bestie I am NOT skipping a single one, so buckle up π
First up: the rank-update girlies. a whole little fleet of them, one per type and per conjugation:
#define F77_sger(...)
#define F77_dger(...)
#define F77_cgerc(...)
#define F77_cgeru(...)
#define F77_zgerc(...)
#define F77_zgeru(...)
see how the complex ones come in pairs? cgerc and cgeru, zgerc and zgeru β that's conjugate vs unconjugate, the iconic duo of complex BLAS β¨
π the level-2 single-precision block
real s-prefixed, matrix-vector everything:
#define F77_sgemv(...)
#define F77_sgbmv(...)
#define F77_ssymv(...)
#define F77_ssbmv(...)
#define F77_sspmv(...)
#define F77_strmv(...)
#define F77_stbmv(...)
#define F77_strsv(...)
#define F77_stbsv(...)
#define F77_stpmv(...)
#define F77_stpsv(...)
#define F77_ssyr(...)
#define F77_sspr(...)
#define F77_sspr2(...)
#define F77_ssyr2(...)
not the mv / bmv / symv / sbmv / spmv pattern β general, banded, symmetric, symmetric-banded, symmetric-packed, and then the triangular crowd trmv tbmv trsv tbsv tpmv tpsv, plus the rank updates syr spr spr2 syr2. fifteen of them. she ate π
π and the double-precision twin
same energy, d instead of s, block for block:
#define F77_dgemv(...)
#define F77_dgbmv(...)
#define F77_dsymv(...)
#define F77_dsbmv(...)
#define F77_dspmv(...)
#define F77_dtrmv(...)
#define F77_dtbmv(...)
#define F77_dtrsv(...)
#define F77_dtbsv(...)
#define F77_dtpmv(...)
#define F77_dtpsv(...)
#define F77_dsyr(...)
#define F77_dspr(...)
#define F77_dspr2(...)
#define F77_dsyr2(...)
lowkey the symmetry of this list is so satisfying, like yes ma'am give us consistency π¦
π¦ complex single precision, level 2
now we're in c territory and the names get spicy β hemv hbmv hpmv (hermitian bestie), trmv tbmv tpmv trsv tbsv tpsv (triangular), and the hermitian rank updates cher cher2 chpr chpr2:
#define F77_cgemv(...)
#define F77_cgbmv(...)
#define F77_chemv(...)
#define F77_chbmv(...)
#define F77_chpmv(...)
#define F77_ctrmv(...)
#define F77_ctbmv(...)
#define F77_ctpmv(...)
#define F77_ctrsv(...)
#define F77_ctbsv(...)
#define F77_ctpsv(...)
#define F77_cher(...)
#define F77_cher2(...)
#define F77_chpr(...)
#define F77_chpr2(...)
note the h where the real ones had s β hermitian vs symmetric, that's the whole vibe check right there π
π¦ complex double precision, level 2
and the z mirror of it, every last one:
#define F77_zgemv(...)
#define F77_zgbmv(...)
#define F77_zhemv(...)
#define F77_zhbmv(...)
#define F77_zhpmv(...)
#define F77_ztrmv(...)
#define F77_ztbmv(...)
#define F77_ztpmv(...)
#define F77_ztrsv(...)
#define F77_ztbsv(...)
#define F77_ztpsv(...)
#define F77_zher(...)
#define F77_zher2(...)
#define F77_zhpr(...)
#define F77_zhpr2(...)
fourteen, matching c line for line, just with a z glow-up π
now the level-3 girls, aka the matrix-matrix ones, and this is where gemmtr β¨appearsβ¨ which is not something you see in every BLAS list, so clock it:
#define F77_sgemm(...)
#define F77_sgemmtr(...)
#define F77_ssymm(...)
#define F77_ssyrk(...)
#define F77_ssyr2k(...)
#define F77_strmm(...)
#define F77_strsm(...)
gemm, gemmtr, symm, syrk, syr2k, trmm, trsm β seven for single real, and the double crew is identical:
#define F77_dgemm(...)
#define F77_dgemmtr(...)
#define F77_dsymm(...)
#define F77_dsyrk(...)
#define F77_dsyr2k(...)
#define F77_dtrmm(...)
#define F77_dtrsm(...)
πΈ complex level 3 β where it gets rich
ok this block is the main character. you get symm AND hemm, syrk AND herk, syr2k AND her2k β both flavours, no picking favourites:
#define F77_cgemm(...)
#define F77_cgemmtr(...)
#define F77_csymm(...)
#define F77_chemm(...)
#define F77_csyrk(...)
#define F77_cherk(...)
#define F77_csyr2k(...)
#define F77_cher2k(...)
#define F77_ctrmm(...)
#define F77_ctrsm(...)
ten of them. ten!! and the z version is the exact same ten with a z:
#define F77_zgemm(...)
#define F77_zgemmtr(...)
#define F77_zsymm(...)
#define F77_zhemm(...)
#define F77_zsyrk(...)
#define F77_zherk(...)
#define F77_zsyr2k(...)
#define F77_zher2k(...)
#define F77_ztrmm(...)
#define F77_ztrsm(...)
and then, last but absolutely not least, the error-handling queen herself:
#define F77_xerbla(...)
xerbla β the one that shows up when something goes wrong, no type prefix, just pure accountability π
bestie note: that's the whole macro list, every single #define, nothing dropped, nothing merged. if you were worried I'd skip one β ma'am, I would never π
π Functions π
okay bestie, this is the big one β the whole roster of _base wrappers, every single signature, exactly as written, no cap. it's a long list so hydrate π§ and pace yourself. also quick heads-up that a bunch of these are carrying a trailing FORTRAN_STRLEN like it's a designer bag π β that's the whole point of the page, iykyk.
void F77_xerbla_base (FCHAR, void *, FORTRAN_STRLEN)void F77_srot_base (FINT, float *, FINT, float *, FINT, const float *, const float *)void F77_srotg_base (float *, float *, float *, float *)void F77_srotm_base (FINT, float *, FINT, float *, FINT, const float *)void F77_srotmg_base (float *, float *, float *, const float *, float *)void F77_sswap_base (FINT, float *, FINT, float *, FINT)void F77_scopy_base (FINT, const float *, FINT, float *, FINT)void F77_saxpy_base (FINT, const float *, const float *, FINT, float *, FINT)void F77_sdot_sub_base (FINT, const float *, FINT, const float *, FINT, float *)void F77_sdsdot_sub_base (FINT, const float *, const float *, FINT, const float *, FINT, float *)void F77_sscal_base (FINT, const float *, float *, FINT)void F77_snrm2_sub_base (FINT, const float *, FINT, float *)void F77_sasum_sub_base (FINT, const float *, FINT, float *)void F77_isamax_sub_base (FINT, const float *, FINT, FINT2)
likeβ¦ the float * energy is immaculate πΈ and FINT2 is literally right there in the last one, we love a sequel type π
void F77_drot_base (FINT, double *, FINT, double *, FINT, const double *, const double *)void F77_drotg_base (double *, double *, double *, double *)void F77_drotm_base (FINT, double *, FINT, double *, FINT, const double *)void F77_drotmg_base (double *, double *, double *, const double *, double *)void F77_dswap_base (FINT, double *, FINT, double *, FINT)void F77_dcopy_base (FINT, const double *, FINT, double *, FINT)void F77_daxpy_base (FINT, const double *, const double *, FINT, double *, FINT)void F77_dsdot_sub_base (FINT, const float *, FINT, const float *, FINT, double *)void F77_ddot_sub_base (FINT, const double *, FINT, const double *, FINT, double *)void F77_dscal_base (FINT, const double *, double *, FINT)void F77_dnrm2_sub_base (FINT, const double *, FINT, double *)void F77_dasum_sub_base (FINT, const double *, FINT, double *)void F77_idamax_sub_base (FINT, const double *, FINT, FINT2)
the way dsdot is out here with float pointers but a double * at the end β not me noticing, not me saying anything π
void F77_crotg_base (void *, void *, float *, void *)void F77_csrot_base (FINT, void *X, FINT, void *, FINT, const float *, const float *)void F77_cswap_base (FINT, void *, FINT, void *, FINT)void F77_ccopy_base (FINT, const void *, FINT, void *, FINT)void F77_caxpy_base (FINT, const void *, const void *, FINT, void *, FINT)void F77_cdotc_sub_base (FINT, const void *, FINT, const void *, FINT, void *)void F77_cdotu_sub_base (FINT, const void *, FINT, const void *, FINT, void *)void F77_cscal_base (FINT, const void *, void *, FINT)void F77_icamax_sub_base (FINT, const void *, FINT, FINT2)void F77_csscal_base (FINT, const float *, void *, FINT)void F77_scnrm2_sub_base (FINT, const void *, FINT, float *)void F77_scasum_sub_base (FINT, const void *, FINT, float *)void F77_scabs1_sub_base (const void *, float *)
void * everywhere bestie β it's giving "we don't talk about the type" π and F77_csrot_base is out here naming its pointer X like a main character. iconic.
void F77_zrotg_base (void *, void *, double *, void *)void F77_zdrot_base (FINT, void *X, FINT, void *, FINT, const double *, const double *)void F77_zswap_base (FINT, void *, FINT, void *, FINT)void F77_zcopy_base (FINT, const void *, FINT, void *, FINT)void F77_zaxpy_base (FINT, const void *, const void *, FINT, void *, FINT)void F77_zdotc_sub_base (FINT, const void *, FINT, const void *, FINT, void *)void F77_zdotu_sub_base (FINT, const void *, FINT, const void *, FINT, void *)void F77_zdscal_base (FINT, const double *, void *, FINT)void F77_zscal_base (FINT, const void *, void *, FINT)void F77_dznrm2_sub_base (FINT, const void *, FINT, double *)void F77_dzasum_sub_base (FINT, const void *, FINT, double *)void F77_izamax_sub_base (FINT, const void *, FINT, FINT2)void F77_dcabs1_sub_base (const void *, double *)
z girlies said "void * in, double * out" and honestly? consistent. slay π
okay and now we get into the ones with FCHAR up front and FORTRAN_STRLEN at the back β the level-2 era π these are the ones where the string-length thing actually shows up in a big way, so pay attention bestie π
void F77_sgemv_base (FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT, FORTRAN_STRLEN)void F77_sgbmv_base (FCHAR, FINT, FINT, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT, FORTRAN_STRLEN)void F77_ssymv_base (FCHAR, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT, FORTRAN_STRLEN)void F77_ssbmv_base (FCHAR, FINT, FINT, const float *, const float *, FINT, const float *, FINT, const float *, float *, FINT, FORTRAN_STRLEN)void F77_sspmv_base (FCHAR, FINT, const float *, const float *, const float *, FINT, const float *, float *, FINT, FORTRAN_STRLEN)void F77_strmv_base (FCHAR, FCHAR, FCHAR, FINT, const float *, FINT, float *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_stbmv_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, FINT, float *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_strsv_base (FCHAR, FCHAR, FCHAR, FINT, const float *, FINT, float *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_stbsv_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const float *, FINT, float *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_stpmv_base (FCHAR, FCHAR, FCHAR, FINT, const float *, float *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_stpsv_base (FCHAR, FCHAR, FCHAR, FINT, const float *, float *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_sger_base (FINT, FINT, const float *, const float *, FINT, const float *, FINT, float *, FINT)void F77_ssyr_base (FCHAR, FINT, const float *, const float *, FINT, float *, FINT, FORTRAN_STRLEN)void F77_sspr_base (FCHAR, FINT, const float *, const float *, FINT, float *, FORTRAN_STRLEN)void F77_sspr2_base (FCHAR, FINT, const float *, const float *, FINT, const float *, FINT, float *, FORTRAN_STRLEN)void F77_ssyr2_base (FCHAR, FINT, const float *, const float *, FINT, const float *, FINT, float *, FINT, FORTRAN_STRLEN)
three FCHARs AND three FORTRAN_STRLENs in the trmv/tbmv/trsv/tbsv/tpmv/tpsv lineup?? it's giving matching set π obsessed.
void F77_dgemv_base (FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT, FORTRAN_STRLEN)void F77_dgbmv_base (FCHAR, FINT, FINT, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT, FORTRAN_STRLEN)void F77_dsymv_base (FCHAR, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT, FORTRAN_STRLEN)void F77_dsbmv_base (FCHAR, FINT, FINT, const double *, const double *, FINT, const double *, FINT, const double *, double *, FINT, FORTRAN_STRLEN)void F77_dspmv_base (FCHAR, FINT, const double *, const double *, const double *, FINT, const double *, double *, FINT, FORTRAN_STRLEN)void F77_dtrmv_base (FCHAR, FCHAR, FCHAR, FINT, const double *, FINT, double *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_dtbmv_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, FINT, double *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_dtrsv_base (FCHAR, FCHAR, FCHAR, FINT, const double *, FINT, double *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_dtbsv_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const double *, FINT, double *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_dtpmv_base (FCHAR, FCHAR, FCHAR, FINT, const double *, double *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_dtpsv_base (FCHAR, FCHAR, FCHAR, FINT, const double *, double *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_dger_base (FINT, FINT, const double *, const double *, FINT, const double *, FINT, double *, FINT)void F77_dsyr_base (FCHAR, FINT, const double *, const double *, FINT, double *, FINT, FORTRAN_STRLEN)void F77_dspr_base (FCHAR, FINT, const double *, const double *, FINT, double *, FORTRAN_STRLEN)void F77_dspr2_base (FCHAR, FINT, const double *, const double *, FINT, const double *, FINT, double *, FORTRAN_STRLEN)void F77_dsyr2_base (FCHAR, FINT, const double *, const double *, FINT, const double *, FINT, double *, FINT, FORTRAN_STRLEN)
double-precision remix of the exact same energy, we love a franchise π
void F77_cgemv_base (FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT, FORTRAN_STRLEN)void F77_cgbmv_base (FCHAR, FINT, FINT, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT, FORTRAN_STRLEN)void F77_chemv_base (FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT, FORTRAN_STRLEN)void F77_chbmv_base (FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT, FORTRAN_STRLEN)void F77_chpmv_base (FCHAR, FINT, const void *, const void *, const void *, FINT, const void *, void *, FINT, FORTRAN_STRLEN)void F77_ctrmv_base (FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_ctbmv_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const void *, FINT, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_ctpmv_base (FCHAR, FCHAR, FCHAR, FINT, const void *, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_ctrsv_base (FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_ctbsv_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const void *, FINT, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_ctpsv_base (FCHAR, FCHAR, FCHAR, FINT, const void *, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)void F77_cgerc_base (FINT, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT)void F77_cgeru_base (FINT, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT)void F77_cher_base (FCHAR, FINT, const float *, const void *, FINT, void *, FINT, FORTRAN_STRLEN)void F77_cher2_base (FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, void *, FINT, FORTRAN_STRLEN)void F77_chpr_base (FCHAR, FINT, const float *, const void *, FINT, void *, FORTRAN_STRLEN)void F77_chpr2_base (FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, void *, FORTRAN_STRLEN)
shoutout to cher, cher2, chpr and chpr2 for sneaking a const float * in among all the void * β keeping us on our toes fr fr π
void F77_zgemv_base (FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT, FORTRAN_STRLEN)void F77_zgbmv_base (FCHAR, FINT, FINT, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT, FORTRAN_STRLEN)void F77_zhemv_base (FCHAR, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT, FORTRAN_STRLEN)void F77_zhbmv_base (FCHAR, FINT, FINT, const void *, const void *, FINT, const void *, FINT, const void *, void *, FINT,
and the list keeps goingβ¦ π
okay the prototype parade keeps marching, no breaks, no mercy π pick right back up where we left off:
void F77_zhpmv_base (FCHAR, FINT, const void *, const void *, const void
*, FINT, const void *, void *, FINT, FORTRAN_STRLEN)
void F77_ztrmv_base (FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void
*, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_ztbmv_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const void *,
FINT, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_ztpmv_base (FCHAR, FCHAR, FCHAR, FINT, const void *, void *,
FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_ztrsv_base (FCHAR, FCHAR, FCHAR, FINT, const void *, FINT, void
*, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_ztbsv_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const void *,
FINT, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_ztpsv_base (FCHAR, FCHAR, FCHAR, FINT, const void *, void *,
FINT, FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_zgerc_base (FINT, FINT, const void *, const void *, FINT, const
void *, FINT, void *, FINT)
void F77_zgeru_base (FINT, FINT, const void *, const void *, FINT, const
void *, FINT, void *, FINT)
void F77_zher_base (FCHAR, FINT, const double *, const void *, FINT,
void *, FINT, FORTRAN_STRLEN)
void F77_zher2_base (FCHAR, FINT, const void *, const void *, FINT,
const void *, FINT, void *, FINT, FORTRAN_STRLEN)
void F77_zhpr_base (FCHAR, FINT, const double *, const void *, FINT,
void *, FORTRAN_STRLEN)
void F77_zhpr2_base (FCHAR, FINT, const void *, const void *, FINT,
const void *, FINT, void *, FORTRAN_STRLEN)
void F77_sgemm_base (FCHAR, FCHAR, FINT, FINT, FINT, const float *,
const float *, FINT, const float *, FINT, const float *, float *,
FINT, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_sgemmtr_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const float *,
const float *, FINT, const float *, FINT, const float *, float *,
FINT, size_t, size_t, size_t)
void F77_ssymm_base (FCHAR, FCHAR, FINT, FINT, const float *, const
float *, FINT, const float *, FINT, const float *, float *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_ssyrk_base (FCHAR, FCHAR, FINT, FINT, const float *, const
float *, FINT, const float *, float *, FINT, FORTRAN_STRLEN,
FORTRAN_STRLEN)
void F77_ssyr2k_base (FCHAR, FCHAR, FINT, FINT, const float *, const
float *, FINT, const float *, FINT, const float *, float *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_strmm_base (FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const float
*, const float *, FINT, float *, FINT, FORTRAN_STRLEN,
FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_strsm_base (FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const float
*, const float *, FINT, float *, FINT, FORTRAN_STRLEN,
FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_dgemm_base (FCHAR, FCHAR, FINT, FINT, FINT, const double *,
const double *, FINT, const double *, FINT, const double *, double
*, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_dgemmtr_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const double *,
const double *, FINT, const double *, FINT, const double *, double
*, FINT, size_t, size_t, size_t)
void F77_dsymm_base (FCHAR, FCHAR, FINT, FINT, const double *, const
double *, FINT, const double *, FINT, const double *, double *,
FINT, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_dsyrk_base (FCHAR, FCHAR, FINT, FINT, const double *, const
double *, FINT, const double *, double *, FINT, FORTRAN_STRLEN,
FORTRAN_STRLEN)
void F77_dsyr2k_base (FCHAR, FCHAR, FINT, FINT, const double *, const
double *, FINT, const double *, FINT, const double *, double *,
FINT, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_dtrmm_base (FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const
double *, const double *, FINT, double *, FINT, FORTRAN_STRLEN,
FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_dtrsm_base (FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const
double *, const double *, FINT, double *, FINT, FORTRAN_STRLEN,
FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_cgemm_base (FCHAR, FCHAR, FINT, FINT, FINT, const void *, const
void *, FINT, const void *, FINT, const void *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_cgemmtr_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const void *,
const void *, FINT, const void *, FINT, const void *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_csymm_base (FCHAR, FCHAR, FINT, FINT, const void *, const void
*, FINT, const void *, FINT, const void *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_chemm_base (FCHAR, FCHAR, FINT, FINT, const void *, const void
*, FINT, const void *, FINT, const void *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_csyrk_base (FCHAR, FCHAR, FINT, FINT, const void *, const void
*, FINT, const void *, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_cherk_base (FCHAR, FCHAR, FINT, FINT, const float *, const void
*, FINT, const float *, void *, FINT, FORTRAN_STRLEN,
FORTRAN_STRLEN)
void F77_csyr2k_base (FCHAR, FCHAR, FINT, FINT, const void *, const void
*, FINT, const void *, FINT, const void *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_cher2k_base (FCHAR, FCHAR, FINT, FINT, const void *, const void
*, FINT, const void *, FINT, const float *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_ctrmm_base (FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const void
*, const void *, FINT, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_ctrsm_base (FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const void
*, const void *, FINT, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_zgemm_base (FCHAR, FCHAR, FINT, FINT, FINT, const void *, const
void *, FINT, const void *, FINT, const void *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_zgemmtr_base (FCHAR, FCHAR, FCHAR, FINT, FINT, const void *,
const void *, FINT, const void *, FINT, const void *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_zsymm_base (FCHAR, FCHAR, FINT, FINT, const void *, const void
*, FINT, const void *, FINT, const void *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_zhemm_base (FCHAR, FCHAR, FINT, FINT, const void *, const void
*, FINT, const void *, FINT, const void *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_zsyrk_base (FCHAR, FCHAR, FINT, FINT, const void *, const void
*, FINT, const void *, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_zherk_base (FCHAR, FCHAR, FINT, FINT, const double *, const
void *, FINT, const double *, void *, FINT, FORTRAN_STRLEN,
FORTRAN_STRLEN)
void F77_zsyr2k_base (FCHAR, FCHAR, FINT, FINT, const void *, const void
*, FINT, const void *, FINT, const void *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_zher2k_base (FCHAR, FCHAR, FINT, FINT, const void *, const void
*, FINT, const void *, FINT, const double *, void *, FINT,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_ztrmm_base (FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const void
*, const void *, FINT, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN,
FORTRAN_STRLEN, FORTRAN_STRLEN)
void F77_ztrsm_base (FCHAR, FCHAR, FCHAR, FCHAR, FINT, FINT, const void
*, const void *, FINT, void *, FINT, FORTRAN_STRLEN, FORTRAN_STRLEN,
FORTRAN_STRLEN, FORTRAN_STRLEN)
likeβ¦ that's the whole roster, bestie. s, d, c, z β every precision showed up and every single one of them is a _base with its FORTRAN_STRLEN trailing args doing their little thing β¨
π Macro Definition Documentation π
okay this is the part where the header file goes absolutely feral with #defines and honestly? iconic behavior. every one of these lives in cblas_f77.h, and the line numbers are right there so you can go look at them with your own two eyes π
π #define API_SUFFIX( a)
Value:
a
Definition at line 56 of file cblas_f77.h. it literally just hands you back a, no notes, no drama, a whole macro that does vibes only π«Ά
πΈ #define BLAS_FORTRAN_STRLEN_END
Definition at line 18 of file cblas_f77.h. no value shown, it's a mystery, it's a mood, it's the macro this whole page is named after π
π¦ #define F77_caxpy( ...)
Value:
F77_caxpy_base(__VA_ARGS__)
Definition at line 274 of file cblas_f77.h.
π¦ #define F77_caxpy_base
#define F77_caxpy_base F77_GLOBAL_SUFFIX(caxpy,CAXPY)
Definition at line 86 of file cblas_f77.h.
π #define F77_ccopy( ...)
Value:
F77_ccopy_base(__VA_ARGS__)
Definition at line 273 of file cblas_f77.h.
π #define F77_ccopy_base
#define F77_ccopy_base F77_GLOBAL_SUFFIX(ccopy,CCOPY)
Definition at line 85 of file cblas_f77.h.
π #define F77_cdotc_sub( ...)
Value:
F77_cdotc_sub_base(__VA_ARGS__)
Definition at line 276 of file cblas_f77.h.
π #define F77_cdotc_sub_base
#define F77_cdotc_sub_base F77_GLOBAL_SUFFIX(cdotcsub,CDOTCSUB)
Definition at line 102 of file cblas_f77.h.
π #define F77_cdotu_sub( ...)
Value:
F77_cdotu_sub_base(__VA_ARGS__)
Definition at line 277 of file cblas_f77.h.
π #define F77_cdotu_sub_base
#define F77_cdotu_sub_base F77_GLOBAL_SUFFIX(cdotusub,CDOTUSUB)
Definition at line 101 of file cblas_f77.h.
π #define F77_cgbmv( ...)
Value:
F77_cgbmv_base(__VA_ARGS__, 1)
Definition at line 356 of file cblas_f77.h.
π #define F77_cgbmv_base
#define F77_cgbmv_base F77_GLOBAL_SUFFIX(cgbmv,CGBMV)
Definition at line 175 of file cblas_f77.h.
see that lil 1 getting tacked on the end? bestie that is the whole bit, and it's giving "I have notes" energy. all the string-taking ones do it π
π₯ #define F77_cgemm( ...)
Value:
F77_cgemm_base(__VA_ARGS__, 1, 1)
Definition at line 415 of file cblas_f77.h.
π₯ #define F77_cgemm_base
#define F77_cgemm_base F77_GLOBAL_SUFFIX(cgemm,CGEMM)
Definition at line 213 of file cblas_f77.h.
π₯ #define F77_cgemmtr( ...)
Value:
F77_cgemmtr_base(__VA_ARGS__, 1, 1, 1)
Definition at line 416 of file cblas_f77.h.
π₯ #define F77_cgemmtr_base
#define F77_cgemmtr_base F77_GLOBAL_SUFFIX(cgemmtr,CGEMMTR)
Definition at line 214 of file cblas_f77.h.
β #define F77_cgemv( ...)
Value:
F77_cgemv_base(__VA_ARGS__, 1)
Definition at line 355 of file cblas_f77.h.
β #define F77_cgemv_base
#define F77_cgemv_base F77_GLOBAL_SUFFIX(cgemv,CGEMV)
Definition at line 174 of file cblas_f77.h.
π #define F77_cgerc( ...)
Value:
F77_cgerc_base(__VA_ARGS__)
Definition at line 306 of file cblas_f77.h.
π #define F77_cgerc_base
#define F77_cgerc_base F77_GLOBAL_SUFFIX(cgerc,CGERC)
Definition at line 144 of file cblas_f77.h.
π #define F77_cgeru( ...)
Value:
F77_cgeru_base(__VA_ARGS__)
Definition at line 307 of file cblas_f77.h.
π #define F77_cgeru_base
#define F77_cgeru_base F77_GLOBAL_SUFFIX(cgeru,CGERU)
Definition at line 143 of file cblas_f77.h.
π #define F77_chbmv( ...)
Value:
F77_chbmv_base(__VA_ARGS__, 1)
Definition at line 358 of file cblas_f77.h.
π #define F77_chbmv_base
#define F77_chbmv_base F77_GLOBAL_SUFFIX(chbmv,CHBMV)
Definition at line 141 of file cblas_f77.h.
π #define F77_chemm( ...)
Value:
F77_chemm_base(__VA_ARGS__, 1, 1)
Definition at line 418 of file cblas_f77.h.
π #define F77_chemm_base
#define F77_chemm_base F77_GLOBAL_SUFFIX(chemm,CHEMM)
Definition at line 193 of file cblas_f77.h.
π§ #define F77_chemv( ...)
Value:
F77_chemv_base(__VA_ARGS__, 1)
Definition at line 357 of file cblas_f77.h.
π§ #define F77_chemv_base
#define F77_chemv_base F77_GLOBAL_SUFFIX(chemv,CHEMV)
Definition at line 140 of file cblas_f77.h.
π #define F77_cher( ...)
Value:
F77_cher_base(__VA_ARGS__, 1)
Definition at line 366 of file cblas_f77.h.
and we're cutting it there β the #define list keeps going, so don't you dare close the tab π€
#define F77_cher2( ...)β value isF77_cher2_base(__VA_ARGS__, 1), defined at line 367 ofcblas_f77.hπΈ#define F77_cher2_baseβ value isF77_GLOBAL_SUFFIX(cher2,CHER2), defined at line 147 ofcblas_f77.hβ¨#define F77_cher2k( ...)β value isF77_cher2k_base(__VA_ARGS__, 1, 1), defined at line 422 ofcblas_f77.hπ¦#define F77_cher2k_baseβ value isF77_GLOBAL_SUFFIX(cher2k,CHER2K), defined at line 195 ofcblas_f77.hπ#define F77_cher_baseβ value isF77_GLOBAL_SUFFIX(cher,CHER), defined at line 145 ofcblas_f77.hπ#define F77_cherk( ...)β value isF77_cherk_base(__VA_ARGS__, 1, 1), defined at line 420 ofcblas_f77.hπ#define F77_cherk_baseβ value isF77_GLOBAL_SUFFIX(cherk,CHERK), defined at line 194 ofcblas_f77.hβ#define F77_chpmv( ...)β value isF77_chpmv_base(__VA_ARGS__, 1), defined at line 359 ofcblas_f77.hπ#define F77_chpmv_baseβ value isF77_GLOBAL_SUFFIX(chpmv,CHPMV), defined at line 142 ofcblas_f77.hπ«Ά#define F77_chpr( ...)β value isF77_chpr_base(__VA_ARGS__, 1), defined at line 368 ofcblas_f77.hπ#define F77_chpr2( ...)β value isF77_chpr2_base(__VA_ARGS__, 1), defined at line 369 ofcblas_f77.hπ§#define F77_chpr2_baseβ value isF77_GLOBAL_SUFFIX(chpr2,CHPR2), defined at line 148 ofcblas_f77.hπ₯#define F77_chpr_baseβ value isF77_GLOBAL_SUFFIX(chpr,CHPR), defined at line 146 ofcblas_f77.hπ#define F77_crotg( ...)β value isF77_crotg_base(__VA_ARGS__), defined at line 270 ofcblas_f77.hβ¨
bestie notice: this one has no trailing 1 at all β just the plain pass-through, ok? don't go adding args that aren't there π
#define F77_crotg_baseβ value isF77_GLOBAL_SUFFIX(crotg, CROTG), defined at line 114 ofcblas_f77.hπ#define F77_cscal( ...)β value isF77_cscal_base(__VA_ARGS__), defined at line 278 ofcblas_f77.hπΈ#define F77_cscal_baseβ value isF77_GLOBAL_SUFFIX(cscal,CSCAL), defined at line 97 ofcblas_f77.hπ¦#define F77_csrot( ...)β value isF77_csrot_base(__VA_ARGS__), defined at line 271 ofcblas_f77.hπ#define F77_csrot_baseβ value isF77_GLOBAL_SUFFIX(csrot, CSROT), defined at line 115 ofcblas_f77.hπ#define F77_csscal( ...)β value isF77_csscal_base(__VA_ARGS__), defined at line 280 ofcblas_f77.hβ#define F77_csscal_baseβ value isF77_GLOBAL_SUFFIX(csscal,CSSCAL), defined at line 99 ofcblas_f77.hπ#define F77_cswap( ...)β value isF77_cswap_base(__VA_ARGS__), defined at line 272 ofcblas_f77.hπ«Ά#define F77_cswap( ...)β value isF77_cswap_base(__VA_ARGS__), defined at line 272 ofcblas_f77.hπ«Ά
no fr, that's listed twice in the source β same macro, same value, same line 272. not a glitch on my end, i'm just not about to delete it π
#define F77_cswap_baseβ value isF77_GLOBAL_SUFFIX(cswap,CSWAP), defined at line 84 ofcblas_f77.hπ#define F77_csymm( ...)β value isF77_csymm_base(__VA_ARGS__, 1, 1), defined at line 417 ofcblas_f77.hπ§#define F77_csymm_baseβ value isF77_GLOBAL_SUFFIX(csymm,CSYMM), defined at line 215 ofcblas_f77.hπ₯#define F77_csyr2k( ...)β value isF77_csyr2k_base(__VA_ARGS__, 1, 1), defined at line 421 ofcblas_f77.hπ#define F77_csyr2k_baseβ value isF77_GLOBAL_SUFFIX(csyr2k,CSYR2K), defined at line 217 ofcblas_f77.hβ¨#define F77_csyrk( ...)β value isF77_csyrk_base(__VA_ARGS__, 1, 1), defined at line 419 ofcblas_f77.hπ#define F77_csyrk_baseβ value isF77_GLOBAL_SUFFIX(csyrk,CSYRK), defined at line 216 ofcblas_f77.hπΈ#define F77_ctbmv( ...)β value isF77_ctbmv_base(__VA_ARGS__, 1, 1, 1), defined at line 361 ofcblas_f77.hπ¦#define F77_ctbmv_baseβ value isF77_GLOBAL_SUFFIX(ctbmv,CTBMV), defined at line 177 ofcblas_f77.hπ#define F77_ctbsv( ...)β value isF77_ctbsv_base(__VA_ARGS__, 1, 1, 1), defined at line 364 ofcblas_f77.hπ#define F77_ctbsv_baseβ value isF77_GLOBAL_SUFFIX(ctbsv,CTBSV), defined at line 180 ofcblas_f77.hβ#define F77_ctpmv( ...)β value isF77_ctpmv_base(__VA_ARGS__, 1, 1, 1), defined at line 362 ofcblas_f77.hπ#define F77_ctpmv_baseβ value isF77_GLOBAL_SUFFIX(ctpmv,CTPMV), defined at line 178 ofcblas_f77.hπ«Ά#define F77_ctpsv( ...)β value isF77_ctpsv_base(__VA_ARGS__, 1, 1, 1), defined at line 365 ofcblas_f77.hπ#define F77_ctpsv_baseβ value isF77_GLOBAL_SUFFIX(ctpsv,CTPSV), defined at line 181 ofcblas_f77.hπ§#define F77_ctrmm( ...)β value isF77_ctrmm_base(__VA_ARGS__, 1, 1, 1, 1), defined at line 423 ofcblas_f77.hπ₯#define F77_ctrmm_baseβ value isF77_GLOBAL_SUFFIX(ctrmm,CTRMM), defined at line 218 ofcblas_f77.hπ#define F77_ctrmv( ...)β value isF77_ctrmv_base(__VA_ARGS__, 1, 1, 1), defined at line 360 ofcblas_f77.hβ¨#define F77_ctrmv_baseβ value isF77_GLOBAL_SUFFIX(ctrmv,CTRMV), defined at line 176 ofcblas_f77.hπ#define F77_ctrsm( ...)β value isF77_ctrsm_base(__VA_ARGS__, 1, 1, 1, 1), defined at line 424 ofcblas_f77.hπΈ#define F77_ctrsm_baseβ value isF77_GLOBAL_SUFFIX(ctrsm,CTRSM), defined at line 219 ofcblas_f77.hπ¦#define F77_ctrsv( ...)β value isF77_ctrsv_base(__VA_ARGS__, 1, 1, 1), defined at line 363 ofcblas_f77.hπ#define F77_ctrsv_baseβ value isF77_GLOBAL_SUFFIX(ctrsv,CTRSV), defined at line 179 ofcblas_f77.hπ
ok and now we slide into the d block, aka the double-precision era of the alphabet, and the vibe check basically stays identical π
#define F77_dasum_sub( ...)β value isF77_dasum_sub_base(__VA_ARGS__), defined at line 264 ofcblas_f77.hβ#define F77_dasum_sub_baseβ value isF77_GLOBAL_SUFFIX(dasumsub,DASUMSUB), defined at line 108 ofcblas_f77.hπ#define F77_daxpy( ...)β value isF77_daxpy_base(__VA_ARGS__), defined at line 258 ofcblas_f77.hπ«Ά#define F77_daxpy_baseβ value isF77_GLOBAL_SUFFIX(daxpy,DAXPY), defined at line 82 ofcblas_f77.hπ#define F77_dcabs1_sub( ...)β value isF77_dcabs1_sub_base(__VA_ARGS__), defined at line 266 ofcblas_f77.hπ§#define F77_dcabs1_sub_baseβ value isF77_GLOBAL_SUFFIX(dcabs1sub, DCABS1SUB), defined at line 119 ofcblas_f77.hπ₯
careful with this one β the second arg in the suffix call is DCABS1SUB with a lil leading space, exactly like the source. copy it as-is, bestie π
#define F77_dcopy( ...)β value isF77_dcopy_base(__VA_ARGS__), defined at line 257 ofcblas_f77.hπ#define F77_dcopy_baseβ value isF77_GLOBAL_SUFFIX(dcopy,DCOPY), defined at line 81 ofcblas_f77.hβ¨#define F77_ddot_sub( ...)β value isF77_ddot_sub_base(__VA_ARGS__), defined at line 261 ofcblas_f77.hπ#define F77_ddot_sub_baseβ value isF77_GLOBAL_SUFFIX(ddotsub,DDOTSUB), defined at line 93 ofcblas_f77.hπΈ#define F77_dgbmv( ...)β value isF77_dgbmv_base(__VA_ARGS__, 1), defined at line 338 ofcblas_f77.hπ¦#define F77_dgbmv_baseβ value isF77_GLOBAL_SUFFIX(dgbmv,DGBMV), defined at line 167 ofcblas_f77.hπ#define F77_dgemm( ...)β value isF77_dgemm_base(__VA_ARGS__, 1, 1), defined at line 405 ofcblas_f77.hπ#define F77_dgemm_baseβ value isF77_GLOBAL_SUFFIX(dgemm,DGEMM), defined at line 206 ofcblas_f77.hβ#define F77_dgemmtr( ...)β value isF77_dgemmtr_base(__VA_ARGS__, 1, 1, 1), defined at line 406 ofcblas_f77.hπ#define F77_dgemmtr_baseβ value isF77_GLOBAL_SUFFIX(dgemmtr,DGEMMTR), defined at line 207 ofcblas_f77.hπ«Ά#define F77_dgemv( ...)β value isF77_dgemv_base(__VA_ARGS__, 1), defined at line 337 ofcblas_f77.hπ#define F77_dgemv_baseβ value isF77_GLOBAL_SUFFIX(dgemv,DGEMV), defined at line 166 ofcblas_f77.hπ§#define F77_dger( ...)β value isF77_dger_base(__VA_ARGS__), defined at line 305 ofcblas_f77.hπ₯#define F77_dger_baseβ value isF77_GLOBAL_SUFFIX(dger,DGER), defined at line 135 ofcblas_f77.hπ#define F77_dnrm2_sub( ...)β value isF77_dnrm2_sub_base(__VA_ARGS__), defined at line 263 ofcblas_f77.hβ¨#define F77_dnrm2_sub_baseβ value isF77_GLOBAL_SUFFIX(dnrm2sub,DNRM2SUB), defined at line 107 ofcblas_f77.hπ#define F77_drot( ...)β value isF77_drot_base(__VA_ARGS__), defined at line 252 ofcblas_f77.hπΈ#define F77_drot_baseβ value isF77_GLOBAL_SUFFIX(drot,DROT), defined at line 74 ofcblas_f77.hπ¦#define F77_drotg( ...)β value isF77_drotg_base(__VA_ARGS__), defined at line 253 ofcblas_f77.hπ#define F77_drotg_baseβ value isF77_GLOBAL_SUFFIX(drotg,DROTG), defined at line 72 ofcblas_f77.hπ#define F77_drotm( ...)β value isF77_drotm_base(__VA_ARGS__), defined at line 254 ofcblas_f77.hβ#define F77_drotm_baseβ value isF77_GLOBAL_SUFFIX(drotm,DROTM), defined at line 75 ofcblas_f77.hπ#define F77_drotmg( ...)β value isF77_drotmg_base(__VA_ARGS__), defined at line 255 ofcblas_f77.hπ«Ά#define F77_drotmg_baseβ value isF77_GLOBAL_SUFFIX(drotmg,DROTMG), defined at line 73 ofcblas_f77.hπ#define F77_dsbmv( ...)β value isF77_dsbmv_base(__VA_ARGS__, 1), defined at line 340 ofcblas_f77.hπ§#define F77_dsbmv_baseβ value isF77_GLOBAL_SUFFIX(dsbmv,DSBMV), defined at line 133 ofcblas_f77.hπ₯#define F77_dscal( ...)β value isF77_dscal_base(__VA_ARGS__), defined at line 262 ofcblas_f77.hπ#define F77_dscal_baseβ value isF77_GLOBAL_SUFFIX(dscal,DSCAL), defined at line 96 ofcblas_f77.hβ¨#define F77_dsdot_sub( ...)β value isF77_dsdot_sub_base(__VA_ARGS__), defined at line 260 ofcblas_f77.hπ#define F77_dsdot_sub_baseβ value isF77_GLOBAL_SUFFIX(dsdotsub,DSDOTSUB), defined at line 94 ofcblas_f77.hπΈ#define F77_dspmv( ...)β value isF77_dspmv_base(__VA_ARGS__, 1), defined at line 341 ofcblas_f77.hπ¦#define F77_dspmv_baseβ value isF77_GLOBAL_SUFFIX(dspmv,DSPMV), defined at line 134 ofcblas_f77.hπ#define F77_dspr( ...)β value isF77_dspr_base(__VA_ARGS__, 1), defined at line 349 ofcblas_f77.hπ#define F77_dspr2( ...)β value isF77_dspr2_base(__VA_ARGS__, 1), defined at line 350 ofcblas_f77.hβ#define F77_dspr2_baseβ value isF77_GLOBAL_SUFFIX(dspr2,DSPR2), defined at line 139 ofcblas_f77.hπ#define F77_dspr_baseβ value isF77_GLOBAL_SUFFIX(dspr,DSPR), defined at line 137 ofcblas_f77.hπ«Ά#define F77_dswap( ...)β value isF77_dswap_base(__VA_ARGS__), defined at line 256 ofcblas_f77.hπ#define F77_dswap( ...)β value isF77_dswap_base(__VA_ARGS__), defined at line 256 ofcblas_f77.hπ
and yup, F77_dswap is doubled up too β identical entry, line 256 twice. iconic copy-paste moment in the header, honestly π
#define F77_dswap_baseβ value isF77_GLOBAL_SUFFIX(dswap,DSWAP), defined at line 80 ofcblas_f77.hπ§#define F77_dsymm( ...)β value isF77_dsymm_base(__VA_ARGS__, 1, 1), defined at line 407 ofcblas_f77.hπ₯#define F77_dsymm_baseβ value isF77_GLOBAL_SUFFIX(dsymm,DSYMM), defined at line 208 ofcblas_f77.hπ#define F77_dsymv( ...)β value isF77_dsymv_base(__VA_ARGS__, 1), defined at line 339 ofcblas_f77.hβ¨#define F77_dsymv_baseβ value isF77_GLOBAL_SUFFIX(dsymv,DSYMV), defined at line 132 ofcblas_f77.hπ#define F77_dsyr( ...)β value isF77_dsyr_base(__VA_ARGS__, 1), defined at line 348 ofcblas_f77.hπΈ#define F77_dsyr2( ...)β value isF77_dsyr2_base(__VA_ARGS__, 1), defined at line 351 ofcblas_f77.hπ¦
okay we're still deep in the macro mines, bestie β same header file, same alphabetical flow, keep scrolling and don't lose momentum π
F77_dsyr2_base
The de-suffixed base name for dsyr2. It just fuses the lowercase Fortran name with the uppercase API name via F77_GLOBAL_SUFFIX, so both worlds stay in sync.
#define F77_dsyr2_base F77_GLOBAL_SUFFIX(dsyr2,DSYR2)
Line 138 of cblas_f77.h.
F77_dsyr2k
Passes everything straight through and pads two trailing 1s onto the call.
#define F77_dsyr2k( ...)
F77_dsyr2k_base(__VA_ARGS__, 1, 1)
Line 409 of cblas_f77.h.
F77_dsyr2k_base
The suffix-glued base for dsyr2k.
#define F77_dsyr2k_base F77_GLOBAL_SUFFIX(dsyr2k,DSYR2K)
Line 210 of cblas_f77.h.
F77_dsyr_base
Base name for dsyr, suffixed the same way.
#define F77_dsyr_base F77_GLOBAL_SUFFIX(dsyr,DSYR)
Line 136 of cblas_f77.h.
F77_dsyrk
Straight pass-through plus two 1s at the end.
#define F77_dsyrk( ...)
F77_dsyrk_base(__VA_ARGS__, 1, 1)
Line 408 of cblas_f77.h.
F77_dsyrk_base
Suffix-aware base for dsyrk.
#define F77_dsyrk_base F77_GLOBAL_SUFFIX(dsyrk,DSYRK)
Line 209 of cblas_f77.h.
F77_dtbmv
Passes the args through, then tacks on three 1s. Yes, three. Count them, bestie π
#define F77_dtbmv( ...)
F77_dtbmv_base(__VA_ARGS__, 1, 1, 1)
Line 343 of cblas_f77.h.
F77_dtbmv_base
Base for dtbmv.
#define F77_dtbmv_base F77_GLOBAL_SUFFIX(dtbmv,DTBMV)
Line 169 of cblas_f77.h.
F77_dtbsv
Same energy as its sibling β pass-through plus three 1s.
#define F77_dtbsv( ...)
F77_dtbsv_base(__VA_ARGS__, 1, 1, 1)
Line 345 of cblas_f77.h.
F77_dtbsv_base
Base for dtbsv.
#define F77_dtbsv_base F77_GLOBAL_SUFFIX(dtbsv,DTBSV)
Line 172 of cblas_f77.h.
F77_dtpmv
Three trailing 1s again. The dt* crew keeps the same dress code π
#define F77_dtpmv( ...)
F77_dtpmv_base(__VA_ARGS__, 1, 1, 1)
Line 346 of cblas_f77.h.
F77_dtpmv_base
Base for dtpmv.
#define F77_dtpmv_base F77_GLOBAL_SUFFIX(dtpmv,DTPMV)
Line 170 of cblas_f77.h.
F77_dtpsv
Pass-through plus three 1s.
#define F77_dtpsv( ...)
F77_dtpsv_base(__VA_ARGS__, 1, 1, 1)
Line 347 of cblas_f77.h.
F77_dtpsv_base
Base for dtpsv.
#define F77_dtpsv_base F77_GLOBAL_SUFFIX(dtpsv,DTPSV)
Line 173 of cblas_f77.h.
F77_dtrmm
Now we're at four trailing 1s. Glow up β¨
#define F77_dtrmm( ...)
F77_dtrmm_base(__VA_ARGS__, 1, 1, 1, 1)
Line 410 of cblas_f77.h.
F77_dtrmm_base
Base for dtrmm.
#define F77_dtrmm_base F77_GLOBAL_SUFFIX(dtrmm,DTRMM)
Line 211 of cblas_f77.h.
F77_dtrmv
Back down to three 1s β triangle business.
#define F77_dtrmv( ...)
F77_dtrmv_base(__VA_ARGS__, 1, 1, 1)
Line 342 of cblas_f77.h.
F77_dtrmv_base
Base for dtrmv.
#define F77_dtrmv_base F77_GLOBAL_SUFFIX(dtrmv,DTRMV)
Line 168 of cblas_f77.h.
F77_dtrsm
Four 1s, same as dtrmm β they're twins fr fr.
#define F77_dtrsm( ...)
F77_dtrsm_base(__VA_ARGS__, 1, 1, 1, 1)
Line 411 of cblas_f77.h.
F77_dtrsm_base
Base for dtrsm.
#define F77_dtrsm_base F77_GLOBAL_SUFFIX(dtrsm,DTRSM)
Line 212 of cblas_f77.h.
F77_dtrsv
Three 1s and vibe check passed β
#define F77_dtrsv( ...)
F77_dtrsv_base(__VA_ARGS__, 1, 1, 1)
Line 344 of cblas_f77.h.
F77_dtrsv_base
Base for dtrsv.
#define F77_dtrsv_base F77_GLOBAL_SUFFIX(dtrsv,DTRSV)
Line 171 of cblas_f77.h.
F77_dzasum_sub
Pure pass-through, zero padding. Note the _sub β this one's from the sub-family.
#define F77_dzasum_sub( ...)
F77_dzasum_sub_base(__VA_ARGS__)
Line 297 of cblas_f77.h.
F77_dzasum_sub_base
Here's the interesting bit β the suffix pair drops the underscore: dzasumsub and DZASUMSUB. Iconic lowercase-to-uppercase gymnastics π€Έ
#define F77_dzasum_sub_base F77_GLOBAL_SUFFIX(dzasumsub,DZASUMSUB)
Line 112 of cblas_f77.h.
F77_dznrm2_sub
Pass-through, no extra args.
#define F77_dznrm2_sub( ...)
F77_dznrm2_sub_base(__VA_ARGS__)
Line 296 of cblas_f77.h.
F77_dznrm2_sub_base
Suffix pair is dznrm2sub / DZNRM2SUB.
#define F77_dznrm2_sub_base F77_GLOBAL_SUFFIX(dznrm2sub,DZNRM2SUB)
Line 111 of cblas_f77.h.
F77_GLOBAL_SUFFIX( a, b)
The main-character macro of this whole file π€ It wraps both arguments in API_SUFFIX and hands them to F77_GLOBAL_SUFFIX_. Spacing in the parameter list is exactly as written β two spaces before b, no cap.
#define F77_GLOBAL_SUFFIX( a, b)
F77_GLOBAL_SUFFIX_(API_SUFFIX(a),API_SUFFIX(b))
Line 60 of cblas_f77.h.
F77_GLOBAL_SUFFIX_( a, b)
The second half of the relay β just forwards to F77_GLOBAL.
#define F77_GLOBAL_SUFFIX_( a, b)
F77_GLOBAL(a,b)
Line 61 of cblas_f77.h.
F77_icamax_sub
Pass-through with no padding.
#define F77_icamax_sub( ...)
F77_icamax_sub_base(__VA_ARGS__)
Line 279 of cblas_f77.h.
F77_icamax_sub_base
Suffix pair: icamaxsub / ICAMAXSUB.
#define F77_icamax_sub_base F77_GLOBAL_SUFFIX(icamaxsub,ICAMAXSUB)
Line 87 of cblas_f77.h.
F77_idamax_sub
Pass-through, no padding.
#define F77_idamax_sub( ...)
F77_idamax_sub_base(__VA_ARGS__)
Line 265 of cblas_f77.h.
F77_idamax_sub_base
Suffix pair: idamaxsub / IDAMAXSUB.
#define F77_idamax_sub_base F77_GLOBAL_SUFFIX(idamaxsub,IDAMAXSUB)
Line 83 of cblas_f77.h.
F77_INT
Not a function thing at all β it's literally just an alias for int32_t. That's the whole macro. Slay, minimalism π
#define F77_INT int32_t
Line 36 of cblas_f77.h.
F77_isamax_sub
Pass-through, no padding.
#define F77_isamax_sub( ...)
F77_isamax_sub_base(__VA_ARGS__)
Line 247 of cblas_f77.h.
F77_isamax_sub_base
Suffix pair: isamaxsub / ISAMAXSUB.
#define F77_isamax_sub_base F77_GLOBAL_SUFFIX(isamaxsub,ISAMAXSUB)
Line 79 of cblas_f77.h.
F77_izamax_sub
Pass-through, no padding.
#define F77_izamax_sub( ...)
F77_izamax_sub_base(__VA_ARGS__)
Line 298 of cblas_f77.h.
F77_izamax_sub_base
Suffix pair: izamaxsub / IZAMAXSUB.
#define F77_izamax_sub_base F77_GLOBAL_SUFFIX(izamaxsub,IZAMAXSUB)
Line 91 of cblas_f77.h.
F77_sasum_sub
Pass-through, no padding. (Spot the _sub pattern yet? it's giving very consistent π)
#define F77_sasum_sub( ...)
F77_sasum_sub_base(__VA_ARGS__)
Line 246 of cblas_f77.h.
F77_sasum_sub_base
Suffix pair: sasumsub / SASUMSUB.
#define F77_sasum_sub_base F77_GLOBAL_SUFFIX(sasumsub,SASUMSUB)
Line 106 of cblas_f77.h.
F77_saxpy
Pass-through, no padding.
#define F77_saxpy( ...)
F77_saxpy_base(__VA_ARGS__)
Line 241 of cblas_f77.h.
F77_saxpy_base
Suffix pair: saxpy / SAXPY.
#define F77_saxpy_base F77_GLOBAL_SUFFIX(saxpy,SAXPY)
Line 78 of cblas_f77.h.
F77_scabs1_sub
Pass-through, no padding.
#define F77_scabs1_sub( ...)
F77_scabs1_sub_base(__VA_ARGS__)
Line 248 of cblas_f77.h.
F77_scabs1_sub_base
Heads up: this one has a space after the comma β scabs1sub, SCABS1SUB. Keep it, it's part of the look π
#define F77_scabs1_sub_base F77_GLOBAL_SUFFIX(scabs1sub, SCABS1SUB)
Line 118 of cblas_f77.h.
F77_scasum_sub
Pass-through, no padding.
#define F77_scasum_sub( ...)
F77_scasum_sub_base(__VA_ARGS__)
Line 282 of cblas_f77.h.
F77_scasum_sub_base
Suffix pair: scasumsub / SCASUMSUB.
#define F77_scasum_sub_base F77_GLOBAL_SUFFIX(scasumsub,SCASUMSUB)
Line 110 of cblas_f77.h.
F77_scnrm2_sub
Pass-through, no padding.
#define F77_scnrm2_sub( ...)
F77_scnrm2_sub_base(__VA_ARGS__)
Line 281 of cblas_f77.h.
F77_scnrm2_sub_base
Suffix pair: scnrm2sub / SCNRM2SUB.
#define F77_scnrm2_sub_base F77_GLOBAL_SUFFIX(scnrm2sub,SCNRM2SUB)
Line 109 of cblas_f77.h.
F77_scopy
Pass-through, no padding.
#define F77_scopy( ...)
F77_scopy_base(__VA_ARGS__)
Line 240 of cblas_f77.h.
F77_scopy_base
Suffix pair: scopy / SCOPY.
#define F77_scopy_base F77_GLOBAL_SUFFIX(scopy,SCOPY)
Line 77 of cblas_f77.h.
F77_sdot_sub
Pass-through, no padding.
#define F77_sdot_sub( ...)
F77_sdot_sub_base(__VA_ARGS__)
Line 242 of cblas_f77.h.
F77_sdot_sub_base
Suffix pair: sdotsub / SDOTSUB.
#define F77_sdot_sub_base F77_GLOBAL_SUFFIX(sdotsub,SDOTSUB)
Line 92 of cblas_f77.h.
F77_sdsdot_sub
Pass-through, no padding.
#define F77_sdsdot_sub( ...)
F77_sdsdot_sub_base(__VA_ARGS__)
Line 243 of cblas_f77.h.
F77_sdsdot_sub_base
Suffix pair: sdsdotsub / SDSDOTSUB.
#define F77_sdsdot_sub_base F77_GLOBAL_SUFFIX(sdsdotsub,SDSDOTSUB)
Line 113 of cblas_f77.h.
F77_sgbmv
One trailing 1. Single-file line of padding, no drama.
#define F77_sgbmv( ...)
F77_sgbmv_base(__VA_ARGS__, 1)
Line 320 of cblas_f77.h.
F77_sgbmv_base
Suffix pair: sgbmv / SGBMV.
#define F77_sgbmv_base F77_GLOBAL_SUFFIX(sgbmv,SGBMV)
Line 159 of cblas_f77.h.
F77_sgemm
Two trailing 1s on this one.
#define F77_sgemm( ...)
F77_sgemm_base(__VA_ARGS__, 1, 1)
Line 395 of cblas_f77.h.
F77_sgemm_base
Suffix pair: sgemm / SGEMM.
#define F77_sgemm_base F77_GLOBAL_SUFFIX(sgemm,SGEMM)
Line 199 of cblas_f77.h.
F77_sgemmtr
Three trailing 1s β yes, sgemmtr is not sgemm, bestie, don't mix them up π
#define F77_sgemmtr( ...)
F77_sgemmtr_base(__VA_ARGS__, 1, 1, 1)
Line 396 of cblas_f77.h.
F77_sgemmtr_base
Suffix pair: sgemmtr / SGEMMTR.
#define F77_sgemmtr_base F77_GLOBAL_SUFFIX(sgemmtr,SGEMMTR)
Line 200 of cblas_f77.h.
F77_sgemv
One trailing 1.
#define F77_sgemv( ...)
F77_sgemv_base(__VA_ARGS__, 1)
Line 319 of cblas_f77.h.
F77_sgemv_base
Suffix pair: sgemv / SGEMV.
#define F77_sgemv_base F77_GLOBAL_SUFFIX(sgemv,SGEMV)
Line 158 of cblas_f77.h.
F77_sger
Pass-through, no padding at all.
#define F77_sger( ...)
F77_sger_base(__VA_ARGS__)
Line 304 of cblas_f77.h.
F77_sger_base
Suffix pair: sger / SGER.
#define F77_sger_base F77_GLOBAL_SUFFIX(sger,SGER)
Line 127 of cblas_f77.h.
F77_snrm2_sub
Pass-through, no padding.
#define F77_snrm2_sub( ...)
F77_snrm2_sub_base(__VA_ARGS__)
Line 245 of cblas_f77.h.
F77_snrm2_sub_base
Suffix pair: snrm2sub / SNRM2SUB.
#define F77_snrm2_sub_base F77_GLOBAL_SUFFIX(snrm2sub,SNRM2SUB)
Line 105 of cblas_f77.h.
F77_srot
Pass-through, no padding.
#define F77_srot( ...)
F77_srot_base(__VA_ARGS__)
Line 235 of cblas_f77.h.
F77_srot_base
Suffix pair: srot / SROT.
#define F77_srot_base F77_GLOBAL_SUFFIX(srot,SROT)
Line 70 of cblas_f77.h.
F77_srotg
Pass-through, no padding.
#define F77_srotg( ...)
F77_srotg_base(__VA_ARGS__)
Line 236 of cblas_f77.h.
F77_srotg_base
Suffix pair: srotg / SROTG.
#define F77_srotg_base F77_GLOBAL_SUFFIX(srotg,SROTG)
Line 68 of cblas_f77.h.
F77_srotm
Pass-through, no padding.
#define F77_srotm( ...)
F77_srotm_base(__VA_ARGS__)
Line 237 of cblas_f77.h.
F77_srotm_base
Suffix pair: srotm / SROTM.
#define F77_srotm_base F77_GLOBAL_SUFFIX(srotm,SROTM)
Line 71 of cblas_f77.h.
F77_srotmg
Pass-through, no padding.
#define F77_srotmg( ...)
F77_srotmg_base(__VA_ARGS__)
Line 238 of cblas_f77.h.
F77_srotmg_base
Suffix pair: srotmg / SROTMG.
#define F77_srotmg_base F77_GLOBAL_SUFFIX(srotmg,SROTMG)
Line 69 of cblas_f77.h.
F77_ssbmv
One trailing 1.
#define F77_ssbmv( ...)
F77_ssbmv_base(__VA_ARGS__, 1)
Line 322 of cblas_f77.h.
F77_ssbmv_base
Suffix pair: ssbmv / SSBMV.
#define F77_ssbmv_base F77_GLOBAL_SUFFIX(ssbmv,SSBMV)
Line 125 of cblas_f77.h.
F77_sscal
Pass-through, no padding.
#define F77_sscal( ...)
F77_sscal_base(__VA_ARGS__)
Line 244 of cblas_f77.h.
F77_sscal_base
Suffix pair: sscal / SSCAL.
#define F77_sscal_base F77_GLOBAL_SUFFIX(sscal,SSCAL)
Line 95 of cblas_f77.h.
F77_sspmv
One trailing 1.
#define F77_sspmv( ...)
F77_sspmv_base(__VA_ARGS__, 1)
Line 323 of cblas_f77.h.
F77_sspmv_base
Suffix pair: sspmv / SSPMV.
#define F77_sspmv_base F77_GLOBAL_SUFFIX(sspmv,SSPMV)
Line 126 of cblas_f77.h.
F77_sspr
One trailing 1.
#define F77_sspr( ...)
F77_sspr_base(__VA_ARGS__, 1)
Line 331 of cblas_f77.h.
F77_sspr2
One trailing 1. (Notice: F77_sspr2 comes before F77_sspr2_base and before F77_sspr_base in this listing β alphabetical quirks, we don't question the collation β¨)
#define F77_sspr2( ...)
F77_sspr2_base(__VA_ARGS__, 1)
Line 332 of cblas_f77.h.
F77_sspr2_base
Suffix pair: sspr2 / SSPR2.
#define F77_sspr2_base F77_GLOBAL_SUFFIX(sspr2,SSPR2)
Line 131 of cblas_f77.h.
F77_sspr_base
Suffix pair: sspr / SSPR.
#define F77_sspr_base F77_GLOBAL_SUFFIX(sspr,SSPR)
Line 129 of cblas_f77.h.
F77_sswap
Pass-through, no padding.
#define F77_sswap( ...)
F77_sswap_base(__VA_ARGS__)
Line 239 of cblas_f77.h.
F77_sswap_base
Suffix pair: sswap / SSWAP.
#define F77_sswap_base F77_GLOBAL_SUFFIX(sswap,SSWAP)
Line 76 of cblas_f77.h.
F77_ssymm
Two trailing 1s.
#define F77_ssymm( ...)
F77_ssymm_base(__VA_ARGS__, 1, 1)
Line 397 of cblas_f77.h.
F77_ssymm_base
Suffix pair: ssymm / SSYMM.
#define F77_ssymm_base F77_GLOBAL_SUFFIX(ssymm,SSYMM)
Line 201 of cblas_f77.h.
F77_ssymv
One trailing 1.
#define F77_ssymv( ...)
F77_ssymv_base(__VA_ARGS__, 1)
Line 321 of cblas_f77.h.
F77_ssymv_base
Suffix pair: ssymv / SSYMV.
#define F77_ssymv_base F77_GLOBAL_SUFFIX(ssymv,SSYMV)
Line 124 of cblas_f77.h.
F77_ssyr
One trailing 1.
#define F77_ssyr( ...)
F77_ssyr_base(__VA_ARGS__, 1)
Line 330 of cblas_f77.h.
F77_ssyr2
One trailing 1.
#define F77_ssyr2( ...)
F77_ssyr2_base(__VA_ARGS__, 1)
Line 333 of cblas_f77.h.
F77_ssyr2_base
Suffix pair: ssyr2 / SSYR2.
#define F77_ssyr2_base F77_GLOBAL_SUFFIX(ssyr2,SSYR2)
Line 130 of cblas_f77.h.
F77_ssyr2k
Two trailing 1s.
#define F77_ssyr2k( ...)
F77_ssyr2k_base(__VA_ARGS__, 1, 1)
Line 399 of cblas_f77.h.
F77_ssyr2k_base
Suffix pair: ssyr2k / SSYR2K.
#define F77_ssyr2k_base F77_GLOBAL_SUFFIX(ssyr2k,SSYR2K)
Line 203 of cblas_f77.h.
F77_ssyr_base
Suffix pair: ssyr / SSYR.
#define F77_ssyr_base F77_GLOBAL_SUFFIX(ssyr,SSYR)
Line 128 of cblas_f77.h.
F77_ssyrk
Two trailing 1s β and that's where this batch runs outβ¦ but the page keeps going, so don't you dare close the tab π¦
#define F77_ssyrk( ...)
F77_ssyrk_base(__VA_ARGS__, 1, 1)
Line 398 of cblas_f77.h.
#define F77_ssyrk_baseβF77_GLOBAL_SUFFIX(ssyrk,SSYRK)- Definition at line 202 of file
cblas_f77.h.
- Definition at line 202 of file
#define F77_stbmv( ...)β bestie it just forwards your stuff and then sprinkles on1, 1, 1:
F77_stbmv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 325 of file cblas_f77.h.
#define F77_stbmv_baseβF77_GLOBAL_SUFFIX(stbmv,STBMV)- Definition at line 161 of file
cblas_f77.h.
- Definition at line 161 of file
#define F77_stbsv( ...)β passes it along plus1, 1, 1:
F77_stbsv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 327 of file cblas_f77.h.
#define F77_stbsv_baseβF77_GLOBAL_SUFFIX(stbsv,STBSV)- Definition at line 164 of file
cblas_f77.h.
- Definition at line 164 of file
#define F77_stpmv( ...)β same lil pattern,1, 1, 1on the end:
F77_stpmv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 328 of file cblas_f77.h.
#define F77_stpmv_baseβF77_GLOBAL_SUFFIX(stpmv,STPMV)- Definition at line 162 of file
cblas_f77.h.
- Definition at line 162 of file
#define F77_stpsv( ...)β forwards with1, 1, 1:
F77_stpsv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 329 of file cblas_f77.h.
#define F77_stpsv_baseβF77_GLOBAL_SUFFIX(stpsv,STPSV)- Definition at line 165 of file
cblas_f77.h.
- Definition at line 165 of file
#define F77_strmm( ...)β this one's got four trailing ones, main character energy:
F77_strmm_base(__VA_ARGS__, 1, 1, 1, 1)
Definition at line 400 of file cblas_f77.h.
#define F77_strmm_baseβF77_GLOBAL_SUFFIX(strmm,STRMM)- Definition at line 204 of file
cblas_f77.h.
- Definition at line 204 of file
#define F77_strmv( ...)β three trailing ones, slay:
F77_strmv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 324 of file cblas_f77.h.
#define F77_strmv_baseβF77_GLOBAL_SUFFIX(strmv,STRMV)- Definition at line 160 of file
cblas_f77.h.
- Definition at line 160 of file
#define F77_strsm( ...)β four ones, periodt:
F77_strsm_base(__VA_ARGS__, 1, 1, 1, 1)
Definition at line 401 of file cblas_f77.h.
#define F77_strsm_baseβF77_GLOBAL_SUFFIX(strsm,STRSM)- Definition at line 205 of file
cblas_f77.h.
- Definition at line 205 of file
#define F77_strsv( ...)β three ones, iconic:
F77_strsv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 326 of file cblas_f77.h.
#define F77_strsv_baseβF77_GLOBAL_SUFFIX(strsv,STRSV)- Definition at line 163 of file
cblas_f77.h.
- Definition at line 163 of file
#define F77_xerbla( ...)β just one lonely1:
F77_xerbla_base(__VA_ARGS__, 1)
Definition at line 578 of file cblas_f77.h.
#define F77_xerbla_baseβF77_GLOBAL_SUFFIX(xerbla,XERBLA)- Definition at line 67 of file
cblas_f77.h.
- Definition at line 67 of file
okay entering the z era of the alphabet π all complex, all gorgeous
#define F77_zaxpy( ...)β no extra ones at all, just pure forwarding:
F77_zaxpy_base(__VA_ARGS__)
Definition at line 290 of file cblas_f77.h.
#define F77_zaxpy_baseβF77_GLOBAL_SUFFIX(zaxpy,ZAXPY)- Definition at line 90 of file
cblas_f77.h.
- Definition at line 90 of file
#define F77_zcopy( ...)β straight through, no extras:
F77_zcopy_base(__VA_ARGS__)
Definition at line 289 of file cblas_f77.h.
#define F77_zcopy_baseβF77_GLOBAL_SUFFIX(zcopy,ZCOPY)- Definition at line 89 of file
cblas_f77.h.
- Definition at line 89 of file
#define F77_zdotc_sub( ...)β forwards as-is:
F77_zdotc_sub_base(__VA_ARGS__)
Definition at line 292 of file cblas_f77.h.
#define F77_zdotc_sub_baseβF77_GLOBAL_SUFFIX(zdotcsub,ZDOTCSUB)- Definition at line 104 of file
cblas_f77.h.
- Definition at line 104 of file
#define F77_zdotu_sub( ...)β forwards as-is:
F77_zdotu_sub_base(__VA_ARGS__)
Definition at line 293 of file cblas_f77.h.
#define F77_zdotu_sub_baseβF77_GLOBAL_SUFFIX(zdotusub,ZDOTUSUB)- Definition at line 103 of file
cblas_f77.h.
- Definition at line 103 of file
#define F77_zdrot( ...)β forwards as-is:
F77_zdrot_base(__VA_ARGS__)
Definition at line 287 of file cblas_f77.h.
#define F77_zdrot_baseβF77_GLOBAL_SUFFIX(zdrot, ZDROT)- Definition at line 117 of file
cblas_f77.h.
- Definition at line 117 of file
ngl bestie look closely β this one has a space after the comma in (zdrot, ZDROT). Not a typo, that's genuinely how it's written. π
#define F77_zdscal( ...)β forwards as-is:
F77_zdscal_base(__VA_ARGS__)
Definition at line 294 of file cblas_f77.h.
#define F77_zdscal_baseβF77_GLOBAL_SUFFIX(zdscal,ZDSCAL)- Definition at line 100 of file
cblas_f77.h.
- Definition at line 100 of file
#define F77_zgbmv( ...)β one trailing1:
F77_zgbmv_base(__VA_ARGS__, 1)
Definition at line 374 of file cblas_f77.h.
#define F77_zgbmv_baseβF77_GLOBAL_SUFFIX(zgbmv,ZGBMV)- Definition at line 183 of file
cblas_f77.h.
- Definition at line 183 of file
#define F77_zgemm( ...)β two trailing ones:
F77_zgemm_base(__VA_ARGS__, 1, 1)
Definition at line 428 of file cblas_f77.h.
#define F77_zgemm_baseβF77_GLOBAL_SUFFIX(zgemm,ZGEMM)- Definition at line 220 of file
cblas_f77.h.
- Definition at line 220 of file
#define F77_zgemmtr( ...)β three trailing ones:
F77_zgemmtr_base(__VA_ARGS__, 1, 1, 1)
Definition at line 429 of file cblas_f77.h.
#define F77_zgemmtr_baseβF77_GLOBAL_SUFFIX(zgemmtr,ZGEMMTR)- Definition at line 221 of file
cblas_f77.h.
- Definition at line 221 of file
#define F77_zgemv( ...)β one trailing1:
F77_zgemv_base(__VA_ARGS__, 1)
Definition at line 373 of file cblas_f77.h.
#define F77_zgemv_baseβF77_GLOBAL_SUFFIX(zgemv,ZGEMV)- Definition at line 182 of file
cblas_f77.h.
- Definition at line 182 of file
#define F77_zgerc( ...)β clean forward, nothing tacked on:
F77_zgerc_base(__VA_ARGS__)
Definition at line 308 of file cblas_f77.h.
#define F77_zgerc_baseβF77_GLOBAL_SUFFIX(zgerc,ZGERC)- Definition at line 153 of file
cblas_f77.h.
- Definition at line 153 of file
#define F77_zgeru( ...)β clean forward too:
F77_zgeru_base(__VA_ARGS__)
Definition at line 309 of file cblas_f77.h.
#define F77_zgeru_baseβF77_GLOBAL_SUFFIX(zgeru,ZGERU)- Definition at line 152 of file
cblas_f77.h.
- Definition at line 152 of file
#define F77_zhbmv( ...)β one1:
F77_zhbmv_base(__VA_ARGS__, 1)
Definition at line 376 of file cblas_f77.h.
#define F77_zhbmv_baseβF77_GLOBAL_SUFFIX(zhbmv,ZHBMV)- Definition at line 150 of file
cblas_f77.h.
- Definition at line 150 of file
#define F77_zhemm( ...)β two ones:
F77_zhemm_base(__VA_ARGS__, 1, 1)
Definition at line 431 of file cblas_f77.h.
#define F77_zhemm_baseβF77_GLOBAL_SUFFIX(zhemm,ZHEMM)- Definition at line 196 of file
cblas_f77.h.
- Definition at line 196 of file
#define F77_zhemv( ...)β one1:
F77_zhemv_base(__VA_ARGS__, 1)
Definition at line 375 of file cblas_f77.h.
#define F77_zhemv_baseβF77_GLOBAL_SUFFIX(zhemv,ZHEMV)- Definition at line 149 of file
cblas_f77.h.
- Definition at line 149 of file
#define F77_zher( ...)β one1:
F77_zher_base(__VA_ARGS__, 1)
Definition at line 384 of file cblas_f77.h.
#define F77_zher2( ...)β one1:
F77_zher2_base(__VA_ARGS__, 1)
Definition at line 385 of file cblas_f77.h.
#define F77_zher2_baseβF77_GLOBAL_SUFFIX(zher2,ZHER2)- Definition at line 156 of file
cblas_f77.h.
- Definition at line 156 of file
#define F77_zher2k( ...)β two ones:
F77_zher2k_base(__VA_ARGS__, 1, 1)
Definition at line 435 of file cblas_f77.h.
#define F77_zher2k_baseβF77_GLOBAL_SUFFIX(zher2k,ZHER2K)- Definition at line 198 of file
cblas_f77.h.
- Definition at line 198 of file
#define F77_zher_baseβF77_GLOBAL_SUFFIX(zher,ZHER)- Definition at line 154 of file
cblas_f77.h.
- Definition at line 154 of file
#define F77_zherk( ...)β two ones:
F77_zherk_base(__VA_ARGS__, 1, 1)
Definition at line 433 of file cblas_f77.h.
#define F77_zherk_baseβF77_GLOBAL_SUFFIX(zherk,ZHERK)- Definition at line 197 of file
cblas_f77.h.
- Definition at line 197 of file
#define F77_zhpmv( ...)β one1:
F77_zhpmv_base(__VA_ARGS__, 1)
Definition at line 377 of file cblas_f77.h.
#define F77_zhpmv_baseβF77_GLOBAL_SUFFIX(zhpmv,ZHPMV)- Definition at line 151 of file
cblas_f77.h.
- Definition at line 151 of file
#define F77_zhpr( ...)β one1:
F77_zhpr_base(__VA_ARGS__, 1)
Definition at line 386 of file cblas_f77.h.
#define F77_zhpr2( ...)β one1:
F77_zhpr2_base(__VA_ARGS__, 1)
Definition at line 387 of file cblas_f77.h.
#define F77_zhpr2_baseβF77_GLOBAL_SUFFIX(zhpr2,ZHPR2)- Definition at line 157 of file
cblas_f77.h.
- Definition at line 157 of file
#define F77_zhpr_baseβF77_GLOBAL_SUFFIX(zhpr,ZHPR)- Definition at line 155 of file
cblas_f77.h.
- Definition at line 155 of file
#define F77_zrotg( ...)β clean forward:
F77_zrotg_base(__VA_ARGS__)
Definition at line 286 of file cblas_f77.h.
#define F77_zrotg_baseβF77_GLOBAL_SUFFIX(zrotg, ZROTG)- Definition at line 116 of file
cblas_f77.h.
- Definition at line 116 of file
another sneaky space after the comma here too β (zrotg, ZROTG). iykyk. π«Ά
#define F77_zscal( ...)β clean forward:
F77_zscal_base(__VA_ARGS__)
Definition at line 295 of file cblas_f77.h.
#define F77_zscal_baseβF77_GLOBAL_SUFFIX(zscal,ZSCAL)- Definition at line 98 of file
cblas_f77.h.
- Definition at line 98 of file
#define F77_zswap( ...)β clean forward:
F77_zswap_base(__VA_ARGS__)
Definition at line 288 of file cblas_f77.h.
#define F77_zswap( ...)β okay so this one is listed twice in the source, literally the exact same thing again:
F77_zswap_base(__VA_ARGS__)
Definition at line 288 of file cblas_f77.h.
not me noticing the duplicate π both of them point at line 288, so it's the same definition twice. That's just how the page has it, bestie β we don't fix, we report. π
#define F77_zswap_baseβF77_GLOBAL_SUFFIX(zswap,ZSWAP)- Definition at line 88 of file
cblas_f77.h.
- Definition at line 88 of file
#define F77_zsymm( ...)β two ones:
F77_zsymm_base(__VA_ARGS__, 1, 1)
Definition at line 430 of file cblas_f77.h.
#define F77_zsymm_baseβF77_GLOBAL_SUFFIX(zsymm,ZSYMM)- Definition at line 222 of file
cblas_f77.h.
- Definition at line 222 of file
#define F77_zsyr2k( ...)β two ones:
F77_zsyr2k_base(__VA_ARGS__, 1, 1)
Definition at line 434 of file cblas_f77.h.
#define F77_zsyr2k_baseβF77_GLOBAL_SUFFIX(zsyr2k,ZSYR2K)- Definition at line 224 of file
cblas_f77.h.
- Definition at line 224 of file
#define F77_zsyrk( ...)β two ones:
F77_zsyrk_base(__VA_ARGS__, 1, 1)
Definition at line 432 of file cblas_f77.h.
#define F77_zsyrk_baseβF77_GLOBAL_SUFFIX(zsyrk,ZSYRK)- Definition at line 223 of file
cblas_f77.h.
- Definition at line 223 of file
#define F77_ztbmv( ...)β three ones:
F77_ztbmv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 379 of file cblas_f77.h.
#define F77_ztbmv_baseβF77_GLOBAL_SUFFIX(ztbmv,ZTBMV)- Definition at line 185 of file
cblas_f77.h.
- Definition at line 185 of file
#define F77_ztbsv( ...)β three ones:
F77_ztbsv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 382 of file cblas_f77.h.
#define F77_ztbsv_baseβF77_GLOBAL_SUFFIX(ztbsv,ZTBSV)- Definition at line 188 of file
cblas_f77.h.
- Definition at line 188 of file
#define F77_ztpmv( ...)β three ones:
F77_ztpmv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 380 of file cblas_f77.h.
#define F77_ztpmv_baseβF77_GLOBAL_SUFFIX(ztpmv,ZTPMV)- Definition at line 186 of file
cblas_f77.h.
- Definition at line 186 of file
#define F77_ztpsv( ...)β three ones:
F77_ztpsv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 383 of file cblas_f77.h.
#define F77_ztpsv_baseβF77_GLOBAL_SUFFIX(ztpsv,ZTPSV)- Definition at line 189 of file
cblas_f77.h.
- Definition at line 189 of file
#define F77_ztrmm( ...)β four ones, full send:
F77_ztrmm_base(__VA_ARGS__, 1, 1, 1, 1)
Definition at line 436 of file cblas_f77.h.
#define F77_ztrmm_baseβF77_GLOBAL_SUFFIX(ztrmm,ZTRMM)- Definition at line 225 of file
cblas_f77.h.
- Definition at line 225 of file
#define F77_ztrmv( ...)β three ones:
F77_ztrmv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 378 of file cblas_f77.h.
#define F77_ztrmv_baseβF77_GLOBAL_SUFFIX(ztrmv,ZTRMV)- Definition at line 184 of file
cblas_f77.h.
- Definition at line 184 of file
#define F77_ztrsm( ...)β four ones:
F77_ztrsm_base(__VA_ARGS__, 1, 1, 1, 1)
Definition at line 437 of file cblas_f77.h.
#define F77_ztrsm_baseβF77_GLOBAL_SUFFIX(ztrsm,ZTRSM)- Definition at line 226 of file
cblas_f77.h.
- Definition at line 226 of file
#define F77_ztrsv( ...)β three ones:
F77_ztrsv_base(__VA_ARGS__, 1, 1, 1)
Definition at line 381 of file cblas_f77.h.
#define F77_ztrsv_baseβF77_GLOBAL_SUFFIX(ztrsv,ZTRSV)- Definition at line 187 of file
cblas_f77.h.
- Definition at line 187 of file
β¨ and now the type-ish macros, the little legends β¨
#define FCHARβchar *- Definition at line 43 of file
cblas_f77.h.
- Definition at line 43 of file
#define FINTβconst F77_INT *- Definition at line 46 of file
cblas_f77.h.
- Definition at line 46 of file
#define FINT2βF77_INT *- Definition at line 47 of file
cblas_f77.h.
- Definition at line 47 of file
#define FORTRAN_STRLENβsize_t- Definition at line 21 of file
cblas_f77.h.
- Definition at line 21 of file
π Function Documentation
okay bestie, here's the whole roster β every _base prototype the page lists, in the exact order it lists them, signatures copied character-for-character because we do not paraphrase a function prototype in this house π«Ά. Clock the pattern as you scroll: lots of FCHAR args up front and a trailing FORTRAN_STRLEN (or three) at the end β and keep an eye out for the two sneaky size_t exceptions, iykyk π
void F77_caxpy_base (FINT , const void * , const void * , FINT , void * , FINT )β the axpy of the complex lineup, no string-length drama attached β¨void F77_ccopy_base (FINT , const void * , FINT , void * , FINT )β copy, complex edition πvoid F77_cdotc_sub_base (FINT , const void * , FINT , const void * , FINT , void * )β conjugated dot, result via pointer πvoid F77_cdotu_sub_base (FINT , const void * , FINT , const void * , FINT , void * )β same shape, no conjugate πΈvoid F77_cgbmv_base (FCHAR , FINT , FINT , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN )β banded matvec, oneFCHARand a trailingFORTRAN_STRLENat the end of the runway πvoid F77_cgemm_base (FCHAR , FCHAR , FINT , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β twoFCHARs, twoFORTRAN_STRLENs, iconic symmetry π₯void F77_cgemmtr_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β three of each, main character energy πvoid F77_cgemv_base (FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN )β matvec moment βvoid F77_cgerc_base (FINT , FINT , const void * , const void * , FINT , const void * , FINT , void * , FINT )β the conjugated rank-1 update, noFCHARin sight π¦void F77_cgeru_base (FINT , FINT , const void * , const void * , FINT , const void * , FINT , void * , FINT )β its unconjugated twin πvoid F77_chbmv_base (FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN )β Hermitian banded matvec πvoid F77_chemm_base (FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β Hermitian matrix-matrix, doubleFCHARglow-up πvoid F77_chemv_base (FCHAR , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN )β Hermitian matvec π§void F77_cher2_base (FCHAR , FINT , const void * , const void * , FINT , const void * , FINT , void * , FINT , FORTRAN_STRLEN )β note theFORTRAN_STRLENchillin' right after the finalFINTπ«void F77_cher2k_base (FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const float * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β rank-2k, and yes that's aconst float *in the middle, no cap πΈvoid F77_cher_base (FCHAR , FINT , const float * , const void * , FINT , void * , FINT , FORTRAN_STRLEN )β rank-1 Hermitian update πvoid F77_cherk_base (FCHAR , FCHAR , FINT , FINT , const float * , const void * , FINT , const float * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β rank-k, twoconst float *cameos π¦void F77_chpmv_base (FCHAR , FINT , const void * , const void * , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN )β packed Hermitian matvec, threeconst void *in a row π«Άvoid F77_chpr2_base (FCHAR , FINT , const void * , const void * , FINT , const void * , FINT , void * , FORTRAN_STRLEN )β packed rank-2 πvoid F77_chpr_base (FCHAR , FINT , const float * , const void * , FINT , void * , FORTRAN_STRLEN )β packed rank-1, short and sweet β¨void F77_crotg_base (void * , void * , float * , void * )β givens construction, zeroFCHAR, zeroFORTRAN_STRLEN, a clean vibe check πvoid F77_cscal_base (FINT , const void * , void * , FINT )β scale that complex vector π₯void F77_csrot_base (FINT , void * X, FINT , void * , FINT , const float * , const float * )β bestie, yes, that's really a bareXsitting inside the parameter list, we copy it exactly πvoid F77_csscal_base (FINT , const float * , void * , FINT )β real scalar, complex vector, the crossover episode βvoid F77_cswap_base (FINT , void * , FINT , void * , FINT )β swap 'em πvoid F77_csymm_base (FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β symmetric mm πvoid F77_csyr2k_base (FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β rank-2k symmetric πΈvoid F77_csyrk_base (FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β rank-k symmetric, note there's only ONEconst void *before thevoid *here πvoid F77_ctbmv_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular banded matvec, tripleFCHARtripleFORTRAN_STRLENπvoid F77_ctbsv_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β the solve-y sibling π«Άvoid F77_ctpmv_base (FCHAR , FCHAR , FCHAR , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β packed triangular matvec, the args get shorter as theFORTRAN_STRLENs pile up πvoid F77_ctpsv_base (FCHAR , FCHAR , FCHAR , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β packed triangular solve π§void F77_ctrmm_base (FCHAR , FCHAR , FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β FOURFCHARs and FOURFORTRAN_STRLENs, she ate πvoid F77_ctrmv_base (FCHAR , FCHAR , FCHAR , FINT , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular matvec πvoid F77_ctrsm_base (FCHAR , FCHAR , FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β the four-by-four flavour again, love that for us π₯void F77_ctrsv_base (FCHAR , FCHAR , FCHAR , FINT , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular solve, periodt βvoid F77_dasum_sub_base (FINT , const double * , FINT , double * )β and we're in double precision now, asum via pointer π¦void F77_daxpy_base (FINT , const double * , const double * , FINT , double * , FINT )β classic axpy, double style πΈvoid F77_dcabs1_sub_base (const void * , double * )β tiny two-arg icon, genuinely minimal πvoid F77_dcopy_base (FINT , const double * , FINT , double * , FINT )β copy πvoid F77_ddot_sub_base (FINT , const double * , FINT , const double * , FINT , double * )β dot, into a pointer π₯void F77_dgbmv_base (FCHAR , FINT , FINT , FINT , FINT , const double * , const double * , FINT , const double * , FINT , const double * , double * , FINT , FORTRAN_STRLEN )β banded, oneFCHAR, one trailing length π«Άvoid F77_dgemm_base (FCHAR , FCHAR , FINT , FINT , FINT , const double * , const double * , FINT , const double * , FINT , const double * , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β the big one, symmetric in its string args β¨void F77_dgemmtr_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const double * , const double * , FINT , const double * , FINT , const double * , double * , FINT , size_t , size_t , size_t )β β οΈ bestie look closely: this is one of the TWO prototypes here that end insize_t , size_t , size_tinstead ofFORTRAN_STRLEN. Don't @ me, just copy it right πvoid F77_dgemv_base (FCHAR , FINT , FINT , const double * , const double * , FINT , const double * , FINT , const double * , double * , FINT , FORTRAN_STRLEN )β double matvec, slay πvoid F77_dger_base (FINT , FINT , const double * , const double * , FINT , const double * , FINT , double * , FINT )β rank-1, no strings attached πvoid F77_dnrm2_sub_base (FINT , const double * , FINT , double * )β norm into a pointer π§void F77_drot_base (FINT , double * , FINT , double * , FINT , const double * , const double * )β apply that rotation βvoid F77_drotg_base (double * , double * , double * , double * )β four double pointers and nothing else, a vibe πvoid F77_drotm_base (FINT , double * , FINT , double * , FINT , const double * )β modified rotation π¦void F77_drotmg_base (double * , double * , double * , const double * , double * )β the generator, all pointers πvoid F77_dsbmv_base (FCHAR , FINT , FINT , const double * , const double * , FINT , const double * , FINT , const double * , double * , FINT , FORTRAN_STRLEN )β symmetric banded matvec πΈvoid F77_dscal_base (FINT , const double * , double * , FINT )β scale it π₯void F77_dsdot_sub_base (FINT , const float * , FINT , const float * , FINT , double * )β yes, floats going IN and adouble *coming OUT, that's not a typo, that's the signature πvoid F77_dspmv_base (FCHAR , FINT , const double * , const double * , const double * , FINT , const double * , double * , FINT , FORTRAN_STRLEN )β packed symmetric matvec πvoid F77_dspr2_base (FCHAR , FINT , const double * , const double * , FINT , const double * , FINT , double * , FORTRAN_STRLEN )β packed rank-2 π«Άvoid F77_dspr_base (FCHAR , FINT , const double * , const double * , FINT , double * , FORTRAN_STRLEN )β packed rank-1, and theFORTRAN_STRLENis right there at the end β¨void F77_dswap_base (FINT , double * , FINT , double * , FINT )β swap πvoid F77_dsymm_base (FCHAR , FCHAR , FINT , FINT , const double * , const double * , FINT , const double * , FINT , const double * , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β symmetric mm, double trouble πvoid F77_dsymv_base (FCHAR , FINT , const double * , const double * , FINT , const double * , FINT , const double * , double * , FINT , FORTRAN_STRLEN )β symmetric matvec π§void F77_dsyr2_base (FCHAR , FINT , const double * , const double * , FINT , const double * , FINT , double * , FINT , FORTRAN_STRLEN )β rank-2, with a loneFINTsitting between the lastvoid/doublepointer and the length π«void F77_dsyr2k_base (FCHAR , FCHAR , FINT , FINT , const double * , const double * , FINT , const double * , FINT , const double * , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β rank-2k βvoid F77_dsyr_base (FCHAR , FINT , const double * , const double * , FINT , double * , FINT , FORTRAN_STRLEN )β rank-1, short king πΈvoid F77_dsyrk_base (FCHAR , FCHAR , FINT , FINT , const double * , const double * , FINT , const double * , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β rank-k, notice only oneconst double *in that middle stretch πvoid F77_dtbmv_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const double * , FINT , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular banded, triple everything π₯void F77_dtbsv_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const double * , FINT , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β the solve version, identical shape π«Άvoid F77_dtpmv_base (FCHAR , FCHAR , FCHAR , FINT , const double * , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β packed triangular matvec πvoid F77_dtpsv_base (FCHAR , FCHAR , FCHAR , FINT , const double * , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β packed triangular solve π§void F77_dtrmm_base (FCHAR , FCHAR , FCHAR , FCHAR , FINT , FINT , const double * , const double * , FINT , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β fourFCHARs, FOUR lengths, absolute unit πvoid F77_dtrmv_base (FCHAR , FCHAR , FCHAR , FINT , const double * , FINT , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular matvec, ate βvoid F77_dtrsm_base (FCHAR , FCHAR , FCHAR , FCHAR , FINT , FINT , const double * , const double * , FINT , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β the four-length queen again, we stan consistency πvoid F77_dtrsv_base (FCHAR , FCHAR , FCHAR , FINT , const double * , FINT , double * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular solve, periodt πvoid F77_dzasum_sub_base (FINT , const void * , FINT , double * )β complex input,double *out, the classic glow-up π¦void F77_dznrm2_sub_base (FINT , const void * , FINT , double * )β same energy, norm flavour π«void F77_icamax_sub_base (FINT , const void * , FINT , FINT2 )β index hunting, and yes that'sFINT2at the end πvoid F77_idamax_sub_base (FINT , const double * , FINT , FINT2 )β double edition, stillFINT2πvoid F77_isamax_sub_base (FINT , const float * , FINT , FINT2 )β single precision edition πΈvoid F77_izamax_sub_base (FINT , const void * , FINT , FINT2 )β complex edition,FINT2forever πvoid F77_sasum_sub_base (FINT , const float * , FINT , float * )β single precision asum, pointer party π«Άvoid F77_saxpy_base (FINT , const float * , const float * , FINT , float * , FINT )β axpy but float β¨void F77_scabs1_sub_base (const void * , float * )β two args, zero notes, iconic minimalism πvoid F77_scasum_sub_base (FINT , const void * , FINT , float * )β complex in, float out π₯void F77_scnrm2_sub_base (FINT , const void * , FINT , float * )β norm, float result βvoid F77_scopy_base (FINT , const float * , FINT , float * , FINT )β copy, obviously π¦void F77_sdot_sub_base (FINT , const float * , FINT , const float * , FINT , float * )β dot into a pointer πΈvoid F77_sdsdot_sub_base (FINT , const float * , const float * , FINT , const float * , FINT , float * )β check it: TWOconst float *up front before theFINTπ«void F77_sgbmv_base (FCHAR , FINT , FINT , FINT , FINT , const float * , const float * , FINT , const float * , FINT , const float * , float * , FINT , FORTRAN_STRLEN )β banded single precision, oneFCHARπvoid F77_sgemm_base (FCHAR , FCHAR , FINT , FINT , FINT , const float * , const float * , FINT , const float * , FINT , const float * , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β mm, double string args, she's here πvoid F77_sgemmtr_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const float * , const float * , FINT , const float * , FINT , const float * , float * , FINT , size_t , size_t , size_t )β π¨ secondsize_tsighting! Same deal as thedversion: it ends insize_t , size_t , size_t, notFORTRAN_STRLENπvoid F77_sgemv_base (FCHAR , FINT , FINT , const float * , const float * , FINT , const float * , FINT , const float * , float * , FINT , FORTRAN_STRLEN )β matvec, float flavour π§void F77_sger_base (FINT , FINT , const float * , const float * , FINT , const float * , FINT , float * , FINT )β and the list closes out on a rank-1 update with nary aFCHARin sight πvoid F77_snrm2_sub_base (FINT , const float * , FINT , float * )β the single-precision norm squad, still doing base-level business πvoid F77_srot_base (FINT , float * , FINT , float * , FINT , const float * , const float * )β rotate two float vectors, iconic behaviorvoid F77_srotg_base (float * , float * , float * , float * )β construct those rotation parameters, no capvoid F77_srotm_base (FINT , float * , FINT , float * , FINT , const float * )β modified rotation, she's fancyvoid F77_srotmg_base (float * , float * , float * , const float * , float * )β generate the modified rotation parameters, periodtvoid F77_ssbmv_base (FCHAR , FINT , FINT , const float * , const float * , FINT , const float * , FINT , const float * , float * , FINT , FORTRAN_STRLEN )β symmetric band matrix Γ vector, lowkey a whole vibevoid F77_sscal_base (FINT , const float * , float * , FINT )β scale that vector, bestievoid F77_sspmv_base (FCHAR , FINT , const float * , const float * , const float * , FINT , const float * , float * , FINT , FORTRAN_STRLEN )β symmetric packed matrix Γ vector, atevoid F77_sspr2_base (FCHAR , FINT , const float * , const float * , FINT , const float * , FINT , float * , FORTRAN_STRLEN )β packed symmetric rank-2 update, mmhmvoid F77_sspr_base (FCHAR , FINT , const float * , const float * , FINT , float * , FORTRAN_STRLEN )β packed symmetric rank-1 update, slayvoid F77_sswap_base (FINT , float * , FINT , float * , FINT )β swap those vectors, trading places energyvoid F77_ssymm_base (FCHAR , FCHAR , FINT , FINT , const float * , const float * , FINT , const float * , FINT , const float * , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β symmetric matrix Γ matrix, twoFORTRAN_STRLENs because she's extravoid F77_ssymv_base (FCHAR , FINT , const float * , const float * , FINT , const float * , FINT , const float * , float * , FINT , FORTRAN_STRLEN )β symmetric matrix Γ vector, main character behavior
void F77_ssyr2_base (FCHAR , FINT , const float * , const float * , FINT , const float * , FINT , float * , FINT , FORTRAN_STRLEN )β symmetric rank-2 update, back at it againvoid F77_ssyr2k_base (FCHAR , FCHAR , FINT , FINT , const float * , const float * , FINT , const float * , FINT , const float * , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β symmetric rank-2k update, obsessedvoid F77_ssyr_base (FCHAR , FINT , const float * , const float * , FINT , float * , FINT , FORTRAN_STRLEN )β symmetric rank-1 update, simple and stunningvoid F77_ssyrk_base (FCHAR , FCHAR , FINT , FINT , const float * , const float * , FINT , const float * , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β symmetric rank-k update, she's versatilevoid F77_stbmv_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const float * , FINT , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular band matrix Γ vector, threeFORTRAN_STRLENs, a whole trio π«Άvoid F77_stbsv_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const float * , FINT , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular band solve, same trio energyvoid F77_stpmv_base (FCHAR , FCHAR , FCHAR , FINT , const float * , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular packed matrix Γ vector, iconicvoid F77_stpsv_base (FCHAR , FCHAR , FCHAR , FINT , const float * , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular packed solve, yes queenvoid F77_strmm_base (FCHAR , FCHAR , FCHAR , FCHAR , FINT , FINT , const float * , const float * , FINT , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular matrix Γ matrix, FOURFORTRAN_STRLENs, highkey showing offvoid F77_strmv_base (FCHAR , FCHAR , FCHAR , FINT , const float * , FINT , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular matrix Γ vector, classicvoid F77_strsm_base (FCHAR , FCHAR , FCHAR , FCHAR , FINT , FINT , const float * , const float * , FINT , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular solve with matrix right-hand side, the four-length finale again πvoid F77_strsv_base (FCHAR , FCHAR , FCHAR , FINT , const float * , FINT , float * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular solve, closing out the single-precision chaptervoid F77_xerbla_base (FCHAR , void * , FORTRAN_STRLEN )β the error-handling icon herself, respectfullyvoid F77_zaxpy_base (FINT , const void * , const void * , FINT , void * , FINT )β complexy := a*x + y, but make itvoid *because double complex said trust the processvoid F77_zcopy_base (FINT , const void * , FINT , void * , FINT )β copy that complex vector, periodtvoid F77_zdotc_sub_base (FINT , const void * , FINT , const void * , FINT , void * )β conjugated dot product, the_sub_is giving subroutinevoid F77_zdotu_sub_base (FINT , const void * , FINT , const void * , FINT , void * )β unconjugated dot product, her unbothered sistervoid F77_zdrot_base (FINT , void * X, FINT , void * , FINT , const double * , const double * )β real plane rotation for a complex vector, and yes, thatXis literally in the signature, keep it exactly like that bestie πvoid F77_zdscal_base (FINT , const double * , void * , FINT )β scale a complex vector by a realdouble, cross-type slayvoid F77_zgbmv_base (FCHAR , FINT , FINT , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN )β general band matrix Γ vector, complex edition, she's long and she knows itvoid F77_zgemm_base (FCHAR , FCHAR , FINT , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β thezgemm, the legend, the main event π₯void F77_zgemmtr_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )βzgemmwith a triangular twist, three lengths because why notvoid F77_zgemv_base (FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN )β general matrix Γ vector, complex, always invitedvoid F77_zgerc_base (FINT , FINT , const void * , const void * , FINT , const void * , FINT , void * , FINT )β conjugated rank-1 update, she's got rangevoid F77_zgeru_base (FINT , FINT , const void * , const void * , FINT , const void * , FINT , void * , FINT )β unconjugated rank-1 update, equally iconicvoid F77_zhbmv_base (FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN )β Hermitian band matrix Γ vector, bougievoid F77_zhemm_base (FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β Hermitian matrix Γ matrix, two lengths, two moodsvoid F77_zhemv_base (FCHAR , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN )β Hermitian matrix Γ vector, she's servingvoid F77_zher2_base (FCHAR , FINT , const void * , const void * , FINT , const void * , FINT , void * , FINT , FORTRAN_STRLEN )β Hermitian rank-2 update, glowingvoid F77_zher2k_base (FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const double * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β Hermitian rank-2k update, and peep theconst double *in there, we love a mixed-type momentvoid F77_zher_base (FCHAR , FINT , const double * , const void * , FINT , void * , FINT , FORTRAN_STRLEN )β Hermitian rank-1 update, again with that realdoublealpha, iykykvoid F77_zherk_base (FCHAR , FCHAR , FINT , FINT , const double * , const void * , FINT , const double * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β Hermitian rank-k update, two realdoubleparams, extra and correctvoid F77_zhpmv_base (FCHAR , FINT , const void * , const void * , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN )β Hermitian packed matrix Γ vector, packed with personalityvoid F77_zhpr2_base (FCHAR , FINT , const void * , const void * , FINT , const void * , FINT , void * , FORTRAN_STRLEN )β Hermitian packed rank-2 update, serving looksvoid F77_zhpr_base (FCHAR , FINT , const double * , const void * , FINT , void * , FORTRAN_STRLEN )β Hermitian packed rank-1 update, real alpha, complex everything elsevoid F77_zrotg_base (void * , void * , double * , void * )β complex rotation parameters,doublein the mix, no further questionsvoid F77_zscal_base (FINT , const void * , void * , FINT )β scale that complex vector, periodvoid F77_zswap_base (FINT , void * , FINT , void * , FINT )β swap complex vectors, a fair tradevoid F77_zsymm_base (FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β symmetric complex matrix Γ matrix, yes she's still herevoid F77_zsyr2k_base (FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β complex symmetric rank-2k update, consistent queenvoid F77_zsyrk_base (FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN )β complex symmetric rank-k update, not a single note missedvoid F77_ztbmv_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular band matrix Γ vector, complex, three lengths, all the dramavoid F77_ztbsv_base (FCHAR , FCHAR , FCHAR , FINT , FINT , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular band solve, same cast, same lengthsvoid F77_ztpmv_base (FCHAR , FCHAR , FCHAR , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular packed matrix Γ vector, complex, packed and prettyvoid F77_ztpsv_base (FCHAR , FCHAR , FCHAR , FINT , const void * , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular packed solve, flawlessvoid F77_ztrmm_base (FCHAR , FCHAR , FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular complex matrix Γ matrix, fourFORTRAN_STRLENs, absolutely unhinged and correct πvoid F77_ztrmv_base (FCHAR , FCHAR , FCHAR , FINT , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular matrix Γ vector, complex, steadyvoid F77_ztrsm_base (FCHAR , FCHAR , FCHAR , FCHAR , FINT , FINT , const void * , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular solve, matrix right-hand side, four-length baddievoid F77_ztrsv_base (FCHAR , FCHAR , FCHAR , FINT , const void * , FINT , void * , FINT , FORTRAN_STRLEN , FORTRAN_STRLEN , FORTRAN_STRLEN )β triangular complex solve, the last one on the list, take a bow π
π AUTHOR π
Generated automatically by Doxygen for LAPACK from the source code.
And that's a wrap, bestie π β this page came from LAPACK, Version 3.12.0, for CBLAS/incl...cblas_f77.h(3), and it's been a whole journey. Go forth and pass those FORTRAN_STRLENs correctly, fr fr πβ¨π¦
π¦ where this page comes from
- arch rolling: lapack-doc 3.12.1-2 Β· custom
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms