1#ifndef LIBSBX_MATH_CONSTANTS_HPP_
2#define LIBSBX_MATH_CONSTANTS_HPP_
9#include <libsbx/math/concepts.hpp>
13template<
floating_po
int Type>
14inline constexpr auto epsilon_v = std::numeric_limits<Type>::epsilon();
16inline constexpr auto epsilonf = epsilon_v<std::float_t>;
18inline constexpr auto epsilond = epsilon_v<std::double_t>;
20inline constexpr auto epsilon = epsilonf;
22template<
floating_po
int Type>
23inline constexpr auto pi_v = std::numbers::pi_v<Type>;
25inline constexpr auto pif = pi_v<std::float_t>;
27inline constexpr auto pid = pi_v<std::double_t>;
29inline constexpr auto pi = pif;
31template<
floating_po
int Type>
32inline constexpr auto two_pi_v =
static_cast<Type
>(2) * pi_v<Type>;
34inline constexpr auto two_pif = two_pi_v<std::float_t>;
36inline constexpr auto two_pid = two_pi_v<std::double_t>;
38inline constexpr auto two_pi = pif;