Boost logo

Boost :

From: Paul A Bristow (pbristow_at_[hidden])
Date: 2006-10-18 12:09:29

John Maddock and I have been beavering away on the many math function and statistics distributions but are uncertain if and how best
to use namespaces, so we are asking for views because we need to make rather pervasive decisions now (that we should have done
before ;-).

There are existing math functions (octonions, quaternions, acosh) in

namespace boost::math::

and John has added many more, for example:

#include <boost/math/special_functions/beta.hpp> // for ibeta(a, b, x) == Ix(a, b).
so users can write

  using boost::math::ibeta_invb;
  ibeta_invb(r, p, P);

So far, so good.

Each statistical probability distribution, like negative_binomial includes a typedef

  typedef negative_binomial_distribution<double> negative_binomial; // Reserved name of type double.

so that users have the great convenience (when using double - 99% of use?)

of specifiying distributions thus

  using boost::math::negative_binomial; // default type is double.
  negative_binomial mydist(8., 0.25);

rather than having to use the rather long full, type specified name:

  negative_binomial_distribution<double> my8dist(8., 0.25);

This seems neat, except that there are functions beta, gamma and binomial :-((

So there is a name clash when using thus:

  using boost::math::binomial;
  binomial mydist(2., 0.5); // is it a function or a probability distribution?

We are therefore considering to use namespaces to separate the math functions from the stats distributions

into namespace boost::math::distributions, or ?

so users would write:

  using boost::math::distributions::binomial;

  binomial mydist(8., 0.25);

Or should it be in namespace boost::statistics;

or boost::statistics::distributions

or should all the functions be in namespace boost::math::functions - changing much existing code :-((

or ????

Views please.


Paul A Bristow
Prizet Farmhouse, Kendal, Cumbria UK LA8 8AB
+44 1539561830 & SMS, Mobile +44 7714 330204 & SMS

Boost list run by bdawes at, gregod at, cpdaniel at, john at