C_CBLAT3.F(3)

πŸ“¦
version 3.12.1 Β· 3 versions
, in arch rolling

πŸ’… 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 line 2731 of file c_cblat3.f.

program cblat3

the main character of the whole file β€” literally the program itself. πŸ’…

Definition at line 1 of file c_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 line 441 of file c_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 line 771 of file c_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 line 1093 of file c_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 line 1457 of file c_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 line 1867 of file c_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 line 2805 of file c_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 line 2321 of file c_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 line 2449 of file c_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 line 3142 of file c_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 line 736 of file c_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 line 1062 of file c_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 line 1414 of file c_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 line 1800 of file c_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 line 2253 of file c_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 line 1834 of file c_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 line 2287 of file c_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 line 3100 of file c_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 line 2637 of file c_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 line 2669 of file c_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 line 2785 of file c_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