Hi Warren,
In a program like this:
```
#include <boost/math/distributions/beta.hpp>
using boost::math::beta_distribution;
int main()
{
float a = 1.5f;
float b = 3.0f;
beta_distribution<float> dist(a, b);
auto m = mean(dist);
}
```
how does the name 'mean' end up in scope in 'main()'?
this is indeed a C++ question: what you are observing is called "argument dependent lookup".
Since `dist` is of a type defined in the `boost::math::beta_distribution`, the compiler will look up `mean` in the same namespace, and finds a definition there.
If you try using `mean` with a different argument the full namespace should be needed:
```
std::vector<double> v{1,2,3,4,5};
double mu = boost::math::statistics::mean(v);
```
Hope this helps,
.Andrea