34 return Value = (
static_cast<uint_fast64_t
>(Value) *
35 static_cast<uint_fast64_t
>(Multiplier) +
36 static_cast<uint_fast64_t
>(Constant)) % Module;
55 Multiplier(DEFAULT_MULTIPLIER), Constant(DEFAULT_CONSTANT),
56 Module(DEFAULT_MODULE), Value(DEFAULT_SEED)
58 assert(Module < UINT32_MAX);
81 thisMultiplier, uint_fast32_t thisConstant,
82 uint_fast32_t thisModule) noexcept: Multiplier(thisMultiplier),
83 Constant(thisConstant), Module(thisModule), Value(DEFAULT_SEED)
85 assert(Module < UINT32_MAX);
102 Value = Seed % Module;
151 register uint_fast32_t MaximumValue;
153 assert(Maximum < Module);
156 MaximumValue = Module - (Module + 1) % (Maximum + 1);
157 while (Generate() > MaximumValue);
158 return Value % (Maximum + 1);