7 constexpr long double E = 2.7182818284590452353602874713526624977572470937000L;
8 constexpr long double PI = 3.1415926535897932384626433832795028841971693993751L;
10 template<
typename TYPE>
13 template<
typename TYPE>
14 TYPE max(TYPE a, TYPE b);
16 template<
typename TYPE>
17 TYPE min(TYPE a, TYPE b);
19 double pow(
double base,
int exp);
22 template<
typename TYPE>
23 auto original::abs(TYPE a) -> TYPE
25 return a > TYPE{} ? a : -a;
28 template<
typename TYPE>
29 auto original::max(TYPE a, TYPE b) -> TYPE
34 template<
typename TYPE>
35 auto original::min(TYPE a, TYPE b) -> TYPE
40 inline auto original::pow(
const double base,
const int exp) ->
double
42 if (base == 0 && exp <= 0)
47 for (
int i = 0; i < abs(exp); i += 1)
51 return exp >= 0 ? res : 1 / res;