#ifndef RUY_RUY_SIZE_UTIL_H_
#define RUY_RUY_SIZE_UTIL_H_
#include <type_traits>
#include "ruy/check_macros.h"
#ifdef _WIN32
#include <intrin.h>
#endif
namespace ruy {
template <typename Integer>
inline Integer floor_log2(Integer n) { … }
template <typename Integer>
Integer ceil_log2(Integer n) { … }
template <typename Integer>
constexpr bool is_pot(Integer value) { … }
template <typename Integer>
Integer pot_log2(Integer n) { … }
template <typename Integer>
Integer round_down_pot(Integer value) { … }
template <typename Integer>
Integer round_up_pot(Integer value) { … }
template <typename Integer, typename Modulo>
Integer round_down_pot(Integer value, Modulo modulo) { … }
template <typename Integer, typename Modulo>
Integer round_up_pot(Integer value, Modulo modulo) { … }
}
#endif