Sorry, I accidentally hit the send button and the message was cut off. Oi.
Anyway, that's basically all I had to say, at least for now. There are obviously some very difficult questions about how to organize the code, factor things properly, and create directed and useful tests. In my dreams, I would like to see a code base that not only burps out function values on request but also makes itself useful in other ways. Often clients want arrays of values, for sequences of parameters, such as 'ell' for Legendre functions or 'nu' for Bessel functions Such arrays are always computed using some iterative procedure, which is essentially the same procedure as used to compute single values. The library already has some "_array" functions that do some of these. But the best possible thing is to expose the actual recursion to the client, so that they can manipulate it and get what they want. This would also simplify the design of the underlying library code, which could reuse the same facilities. There are similar design questions about computing zeros of functions. Almost always needed in sets of many, and also closely related to other problems of interest to the client. Maybe one day, all this stuff could be made better. -- G. Jungman
