C_CBLAT3.F(3)
π C_CBLAT3.F π
okay bestie, so this is the manual page for CBLAS/testing/c_cblat3.f from the LAPACK library β and no, it's not a typo, it's literally a Fortran file that lives at CBLAS/testing/c_cblat3.f (iykyk). It's part of the LAPACK family, version 3.12.0, and it's giving very much "complex BLAS level 3 test suite" energy. Let me walk you through every single function and subroutine in here, no cap. π
β¨ SYNOPSIS β¨
Functions/Subroutines
here's the whole cast of characters β literally everyone who shows up in this file:
- program
cblat3 - subroutine
cchk1(sname,eps,thresh,nout,ntra,trace,rewi,fatal,nidim,idim,nalf,alf,nbet,bet,nmax,a,aa,as,b,bb,bs,c,cc,cs,ct,g,iorder) - subroutine
cprcn1(nout,nc,sname,iorder,transa,transb,m,n,k,alpha,lda,ldb,beta,ldc) - subroutine
cchk2(sname,eps,thresh,nout,ntra,trace,rewi,fatal,nidim,idim,nalf,alf,nbet,bet,nmax,a,aa,as,b,bb,bs,c,cc,cs,ct,g,iorder) - subroutine
cprcn2(nout,nc,sname,iorder,side,uplo,m,n,alpha,lda,ldb,beta,ldc) - subroutine
cchk3(sname,eps,thresh,nout,ntra,trace,rewi,fatal,nidim,idim,nalf,alf,nmax,a,aa,as,b,bb,bs,ct,g,c,iorder) - subroutine
cprcn3(nout,nc,sname,iorder,side,uplo,transa,diag,m,n,alpha,lda,ldb) - subroutine
cchk4(sname,eps,thresh,nout,ntra,trace,rewi,fatal,nidim,idim,nalf,alf,nbet,bet,nmax,a,aa,as,b,bb,bs,c,cc,cs,ct,g,iorder) - subroutine
cprcn4(nout,nc,sname,iorder,uplo,transa,n,k,alpha,lda,beta,ldc) - subroutine
cprcn6(nout,nc,sname,iorder,uplo,transa,n,k,alpha,lda,beta,ldc) - subroutine
cchk5(sname,eps,thresh,nout,ntra,trace,rewi,fatal,nidim,idim,nalf,alf,nbet,bet,nmax,ab,aa,as,bb,bs,c,cc,cs,ct,g,w,iorder) - subroutine
cprcn5(nout,nc,sname,iorder,uplo,transa,n,k,alpha,lda,ldb,beta,ldc) - subroutine
cprcn7(nout,nc,sname,iorder,uplo,transa,n,k,alpha,lda,ldb,beta,ldc) - subroutine
cmake(type,uplo,diag,m,n,a,nmax,aa,lda,reset,transl) - subroutine
cmmch(transa,transb,m,n,kk,alpha,a,lda,b,ldb,beta,c,ldc,ct,g,cc,ldcc,eps,err,fatal,nout,mv) - logical function
lce(ri,rj,lr) - logical function
lceres(type,uplo,m,n,aa,as,lda) - complex function
cbeg(reset) - real function
sdiff(x,y) - subroutine
cchk6(sname,eps,thresh,nout,ntra,trace,rewi,fatal,nidim,idim,nalf,alf,nbet,bet,nmax,a,aa,as,b,bb,bs,c,cc,cs,ct,g,iorder) - subroutine
cprcn8(nout,nc,sname,iorder,uplo,transa,transb,n,k,alpha,lda,ldb,beta,ldc) - subroutine
cmmtch(uplo,transa,transb,n,kk,alpha,a,lda,b,ldb,beta,c,ldc,ct,g,cc,ldcc,eps,err,fatal,nout,mv)
π¦ Function/Subroutine Documentation π¦
complex function cbeg (logical reset)
bestie, this one is literally a complex function that takes a logical reset arg. β¨
Definition at line2731of filec_cblat3.f.
program cblat3
the main character of the whole file β literally the program itself. π
Definition at line1of filec_cblat3.f.
subroutine cchk1 (character*13 sname, real eps, real thresh, integer nout, integer ntra, logical trace, logical rewi, logical fatal, integer nidim, integer, dimension( nidim ) idim, integer nalf, complex, dimension( nalf ) alf, integer nbet, complex, dimension( nbet ) bet, integer nmax, complex, dimension( nmax, nmax ) a, complex, dimension( nmax*nmax ) aa, complex, dimension( nmax*nmax ) as, complex, dimension( nmax, nmax ) b, complex, dimension( nmax*nmax ) bb, complex, dimension( nmax*nmax ) bs, complex, dimension( nmax, nmax ) c, complex, dimension( nmax*nmax ) cc, complex, dimension( nmax*nmax ) cs, complex, dimension( nmax ) ct, real, dimension( nmax ) g, integer iorder)
check subroutine numero uno β it takes a whole village of arguments, like sname, eps, thresh, nout, ntra, trace, rewi, fatal, then the dimension stuff: nidim, idim, nalf, alf, nbet, bet, nmax, and all the arrays a, aa, as, b, bb, bs, c, cc, cs, ct, g, plus iorder. iconic behavior tbh. πΈ
Definition at line441of filec_cblat3.f.
subroutine cchk2 (character*13 sname, real eps, real thresh, integer nout, integer ntra, logical trace, logical rewi, logical fatal, integer nidim, integer, dimension( nidim ) idim, integer nalf, complex, dimension( nalf ) alf, integer nbet, complex, dimension( nbet ) bet, integer nmax, complex, dimension( nmax, nmax ) a, complex, dimension( nmax*nmax ) aa, complex, dimension( nmax*nmax ) as, complex, dimension( nmax, nmax ) b, complex, dimension( nmax*nmax ) bb, complex, dimension( nmax*nmax ) bs, complex, dimension( nmax, nmax ) c, complex, dimension( nmax*nmax ) cc, complex, dimension( nmax*nmax ) cs, complex, dimension( nmax ) ct, real, dimension( nmax ) g, integer iorder)
second verse, same as the first β literally the same argument list as cchk1, fr fr. β¨
Definition at line771of filec_cblat3.f.
subroutine cchk3 (character*13 sname, real eps, real thresh, integer nout, integer ntra, logical trace, logical rewi, logical fatal, integer nidim, integer, dimension( nidim ) idim, integer nalf, complex, dimension( nalf ) alf, integer nmax, complex, dimension( nmax, nmax ) a, complex, dimension( nmax*nmax ) aa, complex, dimension( nmax*nmax ) as, complex, dimension( nmax, nmax ) b, complex, dimension( nmax*nmax ) bb, complex, dimension( nmax*nmax ) bs, complex, dimension( nmax ) ct, real, dimension( nmax ) g, complex, dimension( nmax, nmax ) c, integer iorder)
third one, and notice how it's missing nbet and bet compared to cchk1 and cchk2 β it's giving "I don't need beta energy" π. still has all the other lovely args though.
Definition at line1093of filec_cblat3.f.
subroutine cchk4 (character*13 sname, real eps, real thresh, integer nout, integer ntra, logical trace, logical rewi, logical fatal, integer nidim, integer, dimension( nidim ) idim, integer nalf, complex, dimension( nalf ) alf, integer nbet, complex, dimension( nbet ) bet, integer nmax, complex, dimension( nmax, nmax ) a, complex, dimension( nmax*nmax ) aa, complex, dimension( nmax*nmax ) as, complex, dimension( nmax, nmax ) b, complex, dimension( nmax*nmax ) bb, complex, dimension( nmax*nmax ) bs, complex, dimension( nmax, nmax ) c, complex, dimension( nmax*nmax ) cc, complex, dimension( nmax*nmax ) cs, complex, dimension( nmax ) ct, real, dimension( nmax ) g, integer iorder)
back on the beta train with nbet and bet β full house again bestie. π
Definition at line1457of filec_cblat3.f.
subroutine cchk5 (character*13 sname, real eps, real thresh, integer nout, integer ntra, logical trace, logical rewi, logical fatal, integer nidim, integer, dimension( nidim ) idim, integer nalf, complex, dimension( nalf ) alf, integer nbet, complex, dimension( nbet ) bet, integer nmax, complex, dimension( 2*nmax*nmax ) ab, complex, dimension( nmax*nmax ) aa, complex, dimension( nmax*nmax ) as, complex, dimension( nmax*nmax ) bb, complex, dimension( nmax*nmax ) bs, complex, dimension( nmax, nmax ) c, complex, dimension( nmax*nmax ) cc, complex, dimension( nmax*nmax ) cs, complex, dimension( nmax ) ct, real, dimension( nmax ) g, complex, dimension( 2*nmax ) w, integer iorder)
this one's got extra storage energy β ab is 2*nmax*nmax sized and there's a w array of 2*nmax β highkey the most stacked signature here. π«Ά
Definition at line1867of filec_cblat3.f.
subroutine cchk6 (character*13 sname, real eps, real thresh, integer nout, integer ntra, logical trace, logical rewi, logical fatal, integer nidim, integer, dimension( nidim ) idim, integer nalf, complex, dimension( nalf ) alf, integer nbet, complex, dimension( nbet ) bet, integer nmax, complex, dimension( nmax, nmax ) a, complex, dimension( nmax*nmax ) aa, complex, dimension( nmax*nmax ) as, complex, dimension( nmax, nmax ) b, complex, dimension( nmax*nmax ) bb, complex, dimension( nmax*nmax ) bs, complex, dimension( nmax, nmax ) c, complex, dimension( nmax*nmax ) cc, complex, dimension( nmax*nmax ) cs, complex, dimension( nmax ) ct, real, dimension( nmax ) g, integer iorder)
last of the chk crew β same vibes as cchk1, cchk2, cchk4 but different line number, obviously. π
Definition at line2805of filec_cblat3.f.
subroutine cmake (character*2 type, character*1 uplo, character*1 diag, integer m, integer n, complex, dimension( nmax, * ) a, integer nmax, complex, dimension( * ) aa, integer lda, logical reset, complex transl)
the iconic make-r β builds arrays for days. note the dimension( nmax, * ) and dimension( * ) β those asterisks are doing a lot of lifting. β
Definition at line2321of filec_cblat3.f.
subroutine cmmch (character*1 transa, character*1 transb, integer m, integer n, integer kk, complex alpha, complex, dimension( lda, * ) a, integer lda, complex, dimension( ldb, * ) b, integer ldb, complex beta, complex, dimension( ldc, * ) c, integer ldc, complex, dimension( * ) ct, real, dimension( * ) g, complex, dimension( ldcc, * ) cc, integer ldcc, real eps, real err, logical fatal, integer nout, logical mv)
cmmch is giving matrix multiply check energy β transa, transb, m, n, kk, alpha, a, lda, b, ldb, beta, c, ldc, ct, g, cc, ldcc, eps, err, fatal, nout, mv. obsessed with the lda/ldb/ldc/ldcc leading-dimension parade. π₯
Definition at line2449of filec_cblat3.f.
subroutine cmmtch (character*1 uplo, character*1 transa, character*1 transb, integer n, integer kk, complex alpha, complex, dimension( lda, * ) a, integer lda, complex, dimension( ldb, * ) b, integer ldb, complex beta, complex, dimension( ldc, * ) c, integer ldc, complex, dimension( * ) ct, real, dimension( * ) g, complex, dimension( ldcc, * ) cc, integer ldcc, real eps, real err, logical fatal, integer nout, logical mv)
very similar to cmmch but with uplo energy added and n instead of m β the way it swaps m/n and adds uplo? that's the main character energy right there. π
Definition at line3142of filec_cblat3.f.
subroutine cprcn1 (integer nout, integer nc, character*13 sname, integer iorder, character*1 transa, character*1 transb, integer m, integer n, integer k, complex alpha, integer lda, integer ldb, complex beta, integer ldc)
printer routine #1 β prints error reports like the good little subroutine it is. π
Definition at line736of filec_cblat3.f.
subroutine cprcn2 (integer nout, integer nc, character*13 sname, integer iorder, character*1 side, character*1 uplo, integer m, integer n, complex alpha, integer lda, integer ldb, complex beta, integer ldc)
printer #2 β this one's got side and uplo instead of transa/transb/k. slay. β¨
Definition at line1062of filec_cblat3.f.
subroutine cprcn3 (integer nout, integer nc, character*13 sname, integer iorder, character*1 side, character*1 uplo, character*1 transa, character*1 diag, integer m, integer n, complex alpha, integer lda, integer ldb)
printer #3 β has side, uplo, transa, AND diag β that's four character*1 args, no beta/ldc though. it's giving "triangular energy" π
Definition at line1414of filec_cblat3.f.
subroutine cprcn4 (integer nout, integer nc, character*13 sname, integer iorder, character*1 uplo, character*1 transa, integer n, integer k, complex alpha, integer lda, complex beta, integer ldc)
printer #4 β alpha and beta are both complex here, and note there's no ldb (yet there IS lda) β stay woke. π
Definition at line1800of filec_cblat3.f.
subroutine cprcn5 (integer nout, integer nc, character*13 sname, integer iorder, character*1 uplo, character*1 transa, integer n, integer k, complex alpha, integer lda, integer ldb, complex beta, integer ldc)
printer #5 β this one's got BOTH lda and ldb back in the mix. full house. π
Definition at line2253of filec_cblat3.f.
subroutine cprcn6 (integer nout, integer nc, character*13 sname, integer iorder, character*1 uplo, character*1 transa, integer n, integer k, real alpha, integer lda, real beta, integer ldc)
wait β printer #6 is giving REAL alpha and REAL beta β not complex! plot twist bestie. πΈ
Definition at line1834of filec_cblat3.f.
subroutine cprcn7 (integer nout, integer nc, character*13 sname, integer iorder, character*1 uplo, character*1 transa, integer n, integer k, complex alpha, integer lda, integer ldb, real beta, integer ldc)
printer #7 β mixing it up: complex alpha but REAL beta, with lda AND ldb. chaotic in the best way. π¦
Definition at line2287of filec_cblat3.f.
subroutine cprcn8 (integer nout, integer nc, character*13 sname, integer iorder, character*1 uplo, character*1 transa, character*1 transb, integer n, integer k, complex alpha, integer lda, integer ldb, complex beta, integer ldc)
printer #8 β got BOTH transa AND transb, with complex everything. final form. β
Definition at line3100of filec_cblat3.f.
logical function lce (complex, dimension( * ) ri, complex, dimension( * ) rj, integer lr)
a logical function taking two complex arrays ri and rj plus an integer lr β returns a logical, obviously. π
Definition at line2637of filec_cblat3.f.
logical function lceres (character*2 type, character*1 uplo, integer m, integer n, complex, dimension( lda, * ) aa, complex, dimension( lda, * ) as, integer lda)
logical function checking residual stuff β type, uplo, m, n, aa, as, lda. big "am I passing the vibe check" energy. π₯
Definition at line2669of filec_cblat3.f.
real function sdiff (real x, real y)
literally just takes two reals x and y and returns a real β probably the diff between them, but I'm not gonna speculate (no technical claims I can't back up, bestie). π
Definition at line2785of filec_cblat3.f.
π Author π
bestie, this bad boy was Generated automatically by Doxygen for LAPACK from the source code β so like, no human author wrote this by hand, it's all Doxygen magic. π€β¨
okay so that's literally the whole page! all 22 functions/subroutines, every single arg, every single line number, nothing skipped. you're welcome bestie π
and for the sign-off: this gorgeous manual page is from LAPACK, Version 3.12.0, dated in the footer as CBLAS/testing/c_cblat3.f(3) β cute, iconic, slay. bye bestie, go call some subroutines! ππ«Άπ
π¦ 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