mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-05 21:24:27 +02:00
Remove ratio's numerator()
and denominator()
These have now become trivial.
This commit is contained in:
@@ -198,7 +198,7 @@ constexpr widen_t<T> compute_base_power(BasePower auto bp)
|
||||
}
|
||||
}
|
||||
|
||||
auto power = numerator(bp.power);
|
||||
auto power = bp.power.num;
|
||||
return int_power(static_cast<widen_t<T>>(bp.get_base()), power);
|
||||
}
|
||||
|
||||
@@ -495,8 +495,8 @@ namespace detail {
|
||||
template<auto BP>
|
||||
constexpr auto integer_part(magnitude<BP>)
|
||||
{
|
||||
constexpr auto power_num = numerator(BP.power);
|
||||
constexpr auto power_den = denominator(BP.power);
|
||||
constexpr auto power_num = BP.power.num;
|
||||
constexpr auto power_den = BP.power.den;
|
||||
|
||||
if constexpr (std::is_integral_v<decltype(BP.get_base())> && (power_num >= power_den)) {
|
||||
constexpr auto largest_integer_power = [=](BasePower auto bp) {
|
||||
@@ -553,7 +553,7 @@ namespace detail {
|
||||
template<auto BP>
|
||||
constexpr auto remove_positive_power(magnitude<BP> m)
|
||||
{
|
||||
if constexpr (numerator(BP.power) < 0) {
|
||||
if constexpr (BP.power.num < 0) {
|
||||
return m;
|
||||
} else {
|
||||
return magnitude<>{};
|
||||
@@ -659,7 +659,7 @@ constexpr ratio get_power(T base, magnitude<BPs...>)
|
||||
return ((BPs.get_base() == base ? BPs.power : ratio{0}) + ... + ratio{0});
|
||||
}
|
||||
|
||||
constexpr std::intmax_t integer_part(ratio r) { return numerator(r) / denominator(r); }
|
||||
constexpr std::intmax_t integer_part(ratio r) { return r.num / r.den; }
|
||||
|
||||
constexpr std::intmax_t extract_power_of_10(Magnitude auto m)
|
||||
{
|
||||
|
@@ -78,10 +78,6 @@ struct ratio {
|
||||
}
|
||||
|
||||
[[nodiscard]] friend constexpr ratio operator/(const ratio& lhs, const ratio& rhs) { return lhs * inverse(rhs); }
|
||||
|
||||
[[nodiscard]] friend constexpr std::intmax_t numerator(const ratio& r) { return r.num; }
|
||||
|
||||
[[nodiscard]] friend constexpr std::intmax_t denominator(const ratio& r) { return r.den; }
|
||||
};
|
||||
|
||||
[[nodiscard]] constexpr ratio inverse(const ratio& r) { return ratio(r.den, r.num); }
|
||||
|
@@ -63,10 +63,6 @@ static_assert(common_ratio(ratio(1, 1000), ratio(1)) == ratio(1, 1000));
|
||||
static_assert(common_ratio(ratio(100, 1), ratio(10, 1)) == ratio(10, 1));
|
||||
static_assert(common_ratio(ratio(100, 1), ratio(1, 10)) == ratio(1, 10));
|
||||
|
||||
// numerator and denominator
|
||||
static_assert(numerator(ratio(3, 4)) == 3);
|
||||
static_assert(denominator(ratio(3, 4)) == 4);
|
||||
|
||||
// comparison
|
||||
static_assert((ratio(3, 4) <=> ratio(6, 8)) == (0 <=> 0));
|
||||
static_assert((ratio(3, 4) <=> ratio(-3, 4)) == (0 <=> -1));
|
||||
|
Reference in New Issue
Block a user