1 | // |
2 | // Created by tommaso on 28/06/19. |
3 | // |
4 | |
5 | #ifndef OPENFPM_PDATA_MATHUTILS_HPP |
6 | #define OPENFPM_PDATA_MATHUTILS_HPP |
7 | |
8 | #include <cstdlib> |
9 | |
10 | template<unsigned int base, unsigned int exponent> |
11 | |
12 | struct IntPow |
13 | { |
14 | constexpr static size_t value = base * IntPow<base, exponent - 1>::value; |
15 | }; |
16 | |
17 | template<unsigned int base> |
18 | struct IntPow<base, 0> |
19 | { |
20 | constexpr static size_t value = 1; |
21 | }; |
22 | |
23 | template <unsigned int numerator, unsigned int denominator> |
24 | struct UIntDivCeil |
25 | { |
26 | constexpr static unsigned int value = numerator / denominator + (numerator%denominator!=0); |
27 | }; |
28 | |
29 | #endif //OPENFPM_PDATA_MATHUTILS_HPP |
30 | |