Log in

No account? Create an account

An F06PJF by any other name....

Background information...Collapse )

Anyhow, all of that is a side rant. I was reading about what libraries they have installed for scientific computing. I was expecting to see the nightmare that is BLAS/LAPACK. Instead, they have a whole, new level of nightmare—NAG.

Granted, BLAS/LAPACK have Fortran roots which is largely why I call it a "nightmare". The libraries are very well-defined, very complete, very fast, and very accurate. But, they're stuck with ungodly short function names. For example, to transform a double-precision vector by a double-precision matrix, you would use the DTRSV function. If your matrix and vector are integer, single-precision, or complex, you can replace the D with Z, S, or C, respectively.

NAG came from the same sort of roots. However, when faced with the problem of only having six reliable characters for function names, they opted to forgo mnemonic value and name them after the chapter and section in which they appear in the documentation. So, the NAG equivalent of the DTRSV is F06PJF. The NAG equivalent of ZTRSV is apparently F06SJF. Now, we might get cocky and try to say that the S must somehow mean integer. But, I defy you to find any sense in their naming at all.

I am reminded of Brian Kernighan's famous words:

If at any time you make an error in the commands you type to ed, it will tell you by typing
This is about as cryptic as it can be, but with practice, you can usually figure out how you goofed.

... well, except for the part of being able to figure it out.