// L============================================================================= // L This software is distributed under the MIT license. // L Copyright 2021 Péter Kardos // L============================================================================= #pragma once #include namespace mathter::impl { template T sign(T arg) { return T(arg > T(0)) - (arg < T(0)); } template T sign_nonzero(T arg) { return std::copysign(T(1), arg); } template constexpr T ConstexprExp10(int exponent) { return exponent == 0 ? T(1) : T(10) * ConstexprExp10(exponent - 1); } template constexpr T ConstexprAbs(T arg) { return arg >= T(0) ? arg : -arg; } } // namespace mathter::impl