Dear All, I'm currently working on accuracy improvements of the incomplete beta function, based on the NSWC library [1]. It's quite a long work, but it looks promising, since the implementation of the Gamma function they propose (I had to work first on Gamma before starting the actual work on Beta) seems to be much more accurate than the current implementation in CM3 (3-4 ulps, TBC).
When I'm done, I think I will replace the current impl of Gamma with the NSWC. The problem is that a few months ago, while working on MATH-753, I exposed a few constants as well as the method lanczos, which will probably no longer be necessary (NSWC does not use Lanczos, but minimax rational approximations). My worry is that we are approaching the release of 3.1, and I think it would be a shame if we froze the exposition of these constants and methods. The trouble is that my current work on Gamma and Beta is quite slow, I'm not sure I can finish it before the expected release. So, should I revert the changes made for MATH-753, and reopen this issue? This would allow the removal of method lanczos and constant LANCZOS_G, which would lay out the path to the new implementation. Alternatively, I can deprecate these fields. What do you think? [1] http://www.ualberta.ca/CNS/RESEARCH/Software/NumericalNSWC/site.html [2] https://issues.apache.org/jira/browse/MATH-753