I finally opted for both the simplest and fastest solution: a templated class (integral type) and a templated uniform method (integral or floating-point) generating variates either in the whole integral range or in the 0.0..1.0 range. I let the burden of generating the whole floating-point range on the user side, choosing any divider of the integral generated variate.

Hence a similar speed for both types, roughly 40% faster than std.random.uniform.

Reply via email to