naming(3)
β¨ 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 eitherSLAfor Single Precision Linear Algebra orDLAfor 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 equationsSYLV2β for discrete time Sylvester equationsLYAPβ for Lyapunov equationsSTEINβ for Stein equationsCSYLVβ for the coupled generalized Sylvester equationCSYLV_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 solverL2β for a level-2 solverDAGβ for a parallel, graph-scheduled, solverRECURSIVEβ for a recursive solverREFINEβ 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
- fedora 43: mepack-devel 1.1.2-1.fc43 Β· GPL-3.0-or-later and LGPL-2.1-or-later and BSD-3-Clause
- fedora 43: mepack-devel 1.1.2-1.fc43 Β· GPL-3.0-or-later and LGPL-2.1-or-later and BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms