https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprogra...
Immense amount of effort was put in performance, correctness, feature set, and numerical stability of such widely used libraries. Replacing the without a very good reason is hardly feasible.
The point I am trying to make is that Numpy is unlikely to still be using the exact same code that was written in the 1970's unless its performance isn't critical. It is making the same function calls but the actual code will look pretty different.
Basically I refused to touch this thing, using a library which makes the code unreadable is going to be a bug magnet. I would be surprised if I was the only one having this reaction to 1960s coding convention surfacing in modern code.
So selling new licenses should be a good enough reason.
https://www.nag.co.uk/numeric/DT/nagdotnet_dtw02/html/conten...
We use the algorithm published by Clenshaw [1]_ and referenced by
Abramowitz and Stegun [2]_, for which the function domain is ...
.. [1] C. W. Clenshaw, "Chebyshev series for mathematical functions", in
*National Physical Laboratory Mathematical Tables*, vol. 5, London:
Her Majesty's Stationery Office, 1962.
.. [2] M. Abramowitz and I. A. Stegun, *Handbook of Mathematical
Functions*, 10th printing, New York: Dover, 1964, pp. 379.
http://www.math.sfu.ca/~cbm/aands/page_379.htm
Quoting numpy/core/src/npymath/npy_math_complex.c.src: /* Algorithm 312, CACM vol 10, Oct 1967. */
if (a >= 0) {
t = npy_sqrt@c@((a + npy_hypot@c@(a, b)) * 0.5@c@);
result = npy_cpack@c@(t, b / (2 * t));
}https://www.scipy.org/scipylib/faq.html#how-can-scipy-be-fas...
"Actually, the time-critical loops are usually implemented in C or Fortran. "