18template <
typename... ratios>
29template <
typename ratio1,
typename ratio2,
typename... ratios>
40 typename std::conditional_t<
sizeof...(ratios) == 0,
first_two_sum,
41 typename next_helper::ratio>;
46template <
typename... ratios>
51 using ratio =
typename helper::ratio;
58 static constexpr bool value = (R::num == R::den);
Detray include(s).
Definition array_operators.hpp:18
constexpr bool is_ratio_one_v
True when the supplied ratio is exactly one.
Definition ratio.hpp:63
Helper trait to check if the ratio is one.
Definition ratio.hpp:56
static constexpr bool value
Whether the ratio's numerator and denominator are equal.
Definition ratio.hpp:58
R ratio
The sole ratio, unchanged.
Definition ratio.hpp:25
typename std::conditional_t< sizeof...(ratios)==0, first_two_sum, typename next_helper::ratio > ratio
Result of adding all ratios in the parameter pack.
Definition ratio.hpp:39
ratio_sum_helper< first_two_sum, ratios... > next_helper
Recursive helper used to add any remaining ratios.
Definition ratio.hpp:35
std::ratio_add< ratio1, ratio2 > first_two_sum
Sum of the first two ratios before folding in the remainder.
Definition ratio.hpp:32
Helper struct to sum over variadic std::ratio.
Definition ratio.hpp:19
Struct to sum over variadic std::ratio.
Definition ratio.hpp:47
ratio_sum_helper< ratios... > helper
Helper that performs the recursive sum.
Definition ratio.hpp:49
typename helper::ratio ratio
The exact rational sum of all input ratios.
Definition ratio.hpp:51