#pragma once #include "macros.hpp" #include #include template inline auto iround(t val) -> std::enable_if_t>, int> { return (int)std::round(val); } template force_inline constexpr int signum(const t& x) { return x < t{0} ? -1 : 1; }