XERBLA_ARRAY(3)

πŸ“¦ version 3.12.0, in opensuse-leap 16.0

🌸 XERBLA_ARRAY(3) β€” bestie edition 🌸

okay so real talk, this is a page from the Library Functions Manual, and the file we're stanning is:

/home/abuild/rpmbuild/BUILD/lapack-static-3.12.0-build/lapack-3.12.0/SRC/xerbla_array.f

like yes that's the whole NAME section, it's literally just the path, we don't make the rules πŸ’…


✨ SYNOPSIS ✨

Functions/Subroutines πŸŽ€

  • subroutine XERBLA_ARRAY (srname_array, srname_len, info) β€” say hi to XERBLA_ARRAY, the icon herself

πŸ’– Function/Subroutine Documentation πŸ’–

subroutine XERBLA_ARRAY (character(1), dimension(srname_len) srname_array,
    integer srname_len, integer info)

XERBLA_ARRAY β€” she's the main character, periodt.

🌟 Purpose 🌟

ok so picture this: XERBLA_ARRAY assists other languages in calling XERBLA, the LAPACK and BLAS error handler. she's the middleman, the group-chat admin, the connector 🫢
  • Rather than taking a Fortran string argument as the function's name, XERBLA_ARRAY takes an array of single characters along with the array's length.
  • Then she copies up to 32 characters of that array into a Fortran string and passes that to XERBLA.
  • And if you call her with a non-positive SRNAME_LEN, XERBLA_ARRAY will call XERBLA with a string of all blank characters. no name, no problem, blank slate energy ✨

So say some macro or other device makes XERBLA_ARRAY available to C99 by a name lapack_xerbla and with a common Fortran calling convention. Then a C99 program could invoke XERBLA via:

!>    {
!>      int flen = strlen(__func__);
!>      lapack_xerbla(__func__, &flen, &info);
!>    }

And honestly? Providing XERBLA_ARRAY is not necessary for intercepting LAPACK errors. XERBLA_ARRAY calls XERBLA. like she's helpful but she's not gatekeeping πŸ’€

🌈 Parameters 🌈

  • SRNAME_ARRAY β€” ok so SRNAME_ARRAY is CHARACTER(1) array, dimension (SRNAME_LEN). and what is it? it's The name of the routine which called XERBLA_ARRAY. the whole "who sent me here" of it all.
  • SRNAME_LEN β€” SRNAME_LEN is INTEGER, specifically The length of the name in SRNAME_ARRAY. how many characters we're working with, bestie.
  • INFO β€” INFO is INTEGER, and it's The position of the invalid parameter in the parameter list of the calling routine. it's giving "point at the problem" πŸ‘‘πŸ‘ˆ

πŸ¦‹ Author πŸ¦‹

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.

yes, four institutions, a whole collective, they ate πŸ’…


🌸 Purpose (and yes it's genuinely in here twice, no I'm not okay 😭) 🌸

XERBLA_ARRAY assists other languages in calling XERBLA, the LAPACK and BLAS error handler. instead of a Fortran string argument for the function's name, she takes an array of single characters plus the array's length. she copies up to 32 characters of that array into a Fortran string and hands it to XERBLA. called with a non-positive SRNAME_LEN? she calls XERBLA with a string of all blank characters. iconic, consistent, unbothered πŸ’–

Again, for the people in the back: some macro or other device can make XERBLA_ARRAY available to C99 as lapack_xerbla with a common Fortran calling convention, and then a C99 program could invoke XERBLA via:

!>    {
!>      int flen = strlen(__func__);
!>      lapack_xerbla(__func__, &flen, &info);
!>    }

And the caveat stays loud: Providing XERBLA_ARRAY is not necessary for intercepting LAPACK errors. XERBLA_ARRAY calls XERBLA. no cap 🧚

🌈 Parameters (round two, same as round one) 🌈

  • SRNAME_ARRAY β€” SRNAME_ARRAY is CHARACTER(1) array, dimension (SRNAME_LEN). The name of the routine which called XERBLA_ARRAY.
  • SRNAME_LEN β€” SRNAME_LEN is INTEGER. The length of the name in SRNAME_ARRAY.
  • INFO β€” INFO is INTEGER. The position of the invalid parameter in the parameter list of the calling routine.

πŸ¦‹ Author (again, still the same four) πŸ¦‹

  • Univ. of Tennessee
  • Univ. of California Berkeley
  • Univ. of Colorado Denver
  • NAG Ltd.
also, little fun fact for the vibe check: Definition at line 79 of file xerbla_array.f. ⭐

🌈 Author 🌈

Generated automatically by Doxygen for LAPACK from the source code. a bot wrote this page and honestly it did that πŸ™ˆ


okay that's the whole thing, and here's the cute sign-off: this little beauty is from LAPACK, Version 3.12.0, and the footer date/path vibe was /home/abui...bla_array.f(3) β€” go forth and call your error handler, bestie, she's slaying πŸ’œπŸŽ€βœ¨

πŸ“¦ where this page comes from