An F06PJF by any other name....

So, there's this group in the College of Liberal Arts (CLA)here which supports a bunch of researchers who need more computer time than they can get out of their desktop machines. Their biggest client moved out from under their college. So, the college doesn't want to be in the business of supporting a cluster any longer. Also, there are other groupsaroundcampus that have ended up with their own outcroppings of "research computing" support staffs.

Anyhow, a bunch of these groups and my group may be trying to join forces a bit or at least fill the gap that will be left once the CLA group stops serving their remaining customers. So, I have been perusing the online docs that the CLA group has. Hopefully, it is their web pages that are way out of date, not their software:

gcc 2.95

java 1.2

Perl 5.003

It looks like their webpages are out of date. I can't believe the last time they had any news (which includes planned downtime) was February 2005.

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.