sandbox
Loading...
Searching...
No Matches
constants.hpp
Go to the documentation of this file.
1// SPDX-License-Identifier: MIT
26#ifndef LIBSBX_MATH_CONSTANTS_HPP_
27#define LIBSBX_MATH_CONSTANTS_HPP_
28
29#include <cstdint>
30#include <cmath>
31#include <limits>
32#include <numbers>
33
35
36namespace sbx::math {
37
43template<floating_point Type>
44inline constexpr auto epsilon_v = std::numeric_limits<Type>::epsilon();
45
49inline constexpr auto epsilonf = epsilon_v<std::float_t>;
50
54inline constexpr auto epsilond = epsilon_v<std::double_t>;
55
61inline constexpr auto epsilon = epsilonf;
62
68template<floating_point Type>
69inline constexpr auto pi_v = std::numbers::pi_v<Type>;
70
74inline constexpr auto pif = pi_v<std::float_t>;
75
79inline constexpr auto pid = pi_v<std::double_t>;
80
86inline constexpr auto pi = pif;
87
93template<floating_point Type>
94inline constexpr auto two_pi_v = static_cast<Type>(2) * pi_v<Type>;
95
99inline constexpr auto two_pif = two_pi_v<std::float_t>;
100
104inline constexpr auto two_pid = two_pi_v<std::double_t>;
105
111inline constexpr auto two_pi = two_pif;
112
113} // namespace sbx::math
114
115#endif // LIBSBX_MATH_CONSTANTS_HPP_
constexpr auto pi_v
Pi constant for a floating-point type.
Definition: constants.hpp:69
constexpr auto pif
Pi constant for std::float_t.
Definition: constants.hpp:74
constexpr auto epsilonf
Machine epsilon for std::float_t.
Definition: constants.hpp:49
constexpr auto epsilon
Default machine epsilon.
Definition: constants.hpp:61
constexpr auto pid
Pi constant for std::double_t.
Definition: constants.hpp:79
constexpr auto two_pi_v
Two-pi constant for a floating-point type.
Definition: constants.hpp:94
constexpr auto pi
Default pi constant.
Definition: constants.hpp:86
constexpr auto two_pif
Two-pi constant for std::float_t.
Definition: constants.hpp:99
constexpr auto two_pid
Two-pi constant for std::double_t.
Definition: constants.hpp:104
constexpr auto epsilon_v
Machine epsilon for a floating-point type.
Definition: constants.hpp:44
constexpr auto two_pi
Default two-pi constant.
Definition: constants.hpp:111
constexpr auto epsilond
Machine epsilon for std::double_t.
Definition: constants.hpp:54
Core numeric concepts and type traits.