29 #ifndef VC_COMMON_UTILITY_H_
30 #define VC_COMMON_UTILITY_H_
34 namespace Vc_VERSIONED_NAMESPACE
42 static constexpr std::size_t nextPowerOfTwo(std::size_t x)
44 return (x & (x - 1)) == 0 ? x : nextPowerOfTwo((x | (x >> 1)) + 1);
51 static constexpr std::size_t left_size(std::size_t N)
53 return Common::nextPowerOfTwo(N - N / 2);
59 static constexpr std::size_t right_size(std::size_t N)
61 return N - left_size(N);
67 #endif // VC_COMMON_UTILITY_H_