7template<u
int32_t DIVISOR>
11 uint64_t rd = dividend / DIVISOR;
12 if (uint32_t(rd) == rd) {
13 CHECK(c.
div(dividend) == (dividend / DIVISOR));
14 CHECK(s.
div(dividend) == (dividend / DIVISOR));
15 CHECK(c.
mod(dividend) == (dividend % DIVISOR));
16 CHECK(s.
mod(dividend) == (dividend % DIVISOR));
20template<u
int32_t DIVISOR>
26 for (uint64_t dividend : {0ull, 1ull, 2ull, 3ull, 4ull, 5ull, 7ull,
27 100ull, 10015ull, 12410015ull, 0x1234567890ull,
28 0x7FFFFFFFFFFFFFFFull, 0x8000000000000000ull,
29 0xFFFFFFFF00000000ull, 0xFFFFFFFFFFFFFFFFull}) {
TEST_CASE("DivModByConst, DivModBySame")
Helper class to divide multiple times by the same number.
uint32_t div(uint64_t dividend) const
uint32_t mod(uint64_t dividend) const
void setDivisor(uint32_t divisor)
This file implemented 3 utility functions:
constexpr uint32_t div(uint64_t dividend) const
constexpr uint32_t mod(uint64_t dividend) const