naming(3)

πŸ“¦
version 1.1.2 Β· 3 versions
, in fedora 43

✨ NAME ✨

naming β€” the Naming Scheme for the Computational Routines πŸ’–

okay bestie, so this is from MEPACK and it's literally just the cheat sheet for how the routine names are built. no cap, once you see the pattern you'll never unsee it 🫢


πŸŽ€ the whole vibe

The computational subroutines that are not part of a Fortran 90 module follow the Fortran 77 old style calling conventions. And their naming scheme goes a little something like this:

SUBROUTINE AAA_FFEE_WWW(ARGUMENTS...)

So the three components AAA, EEE, and WWW have the following meanings, and yes we're going through all of them because they all matter πŸ’…

  • AAA β€” this one specifies the data type/precision for the numerical input values. It's either SLA for Single Precision Linear Algebra or DLA for Double Precision Linear Algebra. A few routines begin with different prefixes though β€” those routines are only for internal usage and are not meant to be called from outside. The reason they're visible at all is that it's necessary to fix some issues with different Fortran compilers. so like, don't touch, iykyk πŸ™ˆ
  • FF β€” two characters specifying the coefficient matrices. This can be one of the following combinations:
    • TR β€” the coefficient matrices are (quasi) upper triangular matrices.
    • TG β€” the coefficient matrices are matrix pairs with (quasi) upper triangular matrices.
    • GE β€” the coefficient matrices are general matrices.
    • GG β€” the coefficient matrices are general matrices, that appear in matrix pairs.
  • EE β€” this one specifies the equations, and it can be:
    • SYLV β€” for Sylvester equations
    • SYLV2 β€” for discrete time Sylvester equations
    • LYAP β€” for Lyapunov equations
    • STEIN β€” for Stein equations
    • CSYLV β€” for the coupled generalized Sylvester equation
    • CSYLV_DUAL β€” for the dual coupled generalized Sylvester equation
  • WWW β€” this part is optional and it specifies the details about the solver. The following strings can be part of this description:
    • L3 β€” for a level-3 solver
    • L2 β€” for a level-2 solver
    • DAG β€” for a parallel, graph-scheduled, solver
    • RECURSIVE β€” for a recursive solver
    • REFINE β€” for a solver which uses iterative refinement

🌈 one more thing about WWW

Additionally, the WWW contains hints about the optimizations in the routines. For the details on that, go read the documentation of the individual routines β€” that's where the tea actually is πŸ“


and that's the whole page bestie!! this was Version 1.1.2, dated Thu Oct 9 2025 00:00:00, and yes it's the naming(3) page from the MEPACK crew. slay, go name some routines πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from