#pragma once #include namespace at { namespace native { // returns 2**floor(log2(n)) static int lastPow2(unsigned int n) { n |= (n >> 1); n |= (n >> 2); n |= (n >> 4); n |= (n >> 8); n |= (n >> 16); return std::max(1, n - (n >> 1)); } } // namespace native } // namespace at