>The second, more critical point: The implementation does not seem to be the
>correct inverse of the original function. Boost's implementation (with above
>modification) is:
>                 -result_type(1) / _lambda * log(eng());

>But should actually be:
>                 -log(eng()) / _lamda;

The expressions are the same because of operator associativiy. (i.e. x/y*z = (x/y)*z )

I believe you are right about the first point though.

cheers

Arnaldur