
Matthias Schabel wrote:
If it is purely implementation, it might make sense to have a 3-stage review, where each component is focussed on. That might better support reviews from those with knowledge of one or two domains, but not the whole system.
I need to look at the code in more detail, but my suspicion is that the dependencies are something like this :
special functions depend on utilities statistical distributions depend on utilities and special functions
Yes, that's basically the way it goes.
If this is the case, we ought to be able to review the statistical distributions portion of the code independently, regarding the special functions and utilities as implementation details, then consider the special functions as a separate library, with utilities as an implementation detail, then finally the utilities themselves...
Having separate boost::math::statistics, boost::math::special_functions, and boost::math::statistics::distributions namespaces might help to compartmentalize things a bit more, too...
Special functions are currently in boost::math (this is inherited from the existing special functions that are in that namespace), distributions in boost::math::distributions, and the tools in boost::math::tools. So there is some separation already, but namespaces will no doubt get talked about at the review :-) I guess from an end user POV the tools part is the least important, while special functions are important BTW because we can't get a complete Boost.TR1 implementation without them. John.