RandomG.uniformRSymm

uniform distribution on the range (-to;to) for integer types, and on the (-to;0)(0;to) range for floating point types if boundCheck is true. If boundCheck=false the range changes to [-to;0)u(0;to] with a slightly lower propability at the bounds for floating point numbers. excludeZero controls if 0 is excluded or not (by default float exclude it, ints no). Please note that the probability of 0 in floats is very small due Cannot be used on unsigned types.

In here there is probably one of the few cases where c handling of modulo of negative numbers is handy

class RandomG(SourceT = DefaultEngine)
T
uniformRSymm
(
T
bool boundCheck = true
bool excludeZero = isFloat!(T)
)
(
T to
,
int iter = 2000
)

Meta