46 return Ratio(
a.value() /
b.value());
51template <
typename U, std::enable_if_t<is_dimensionless_v<U>,
int> = 0>
53 return Ratio(std::exp(
q.value()));
56template <
typename U, std::enable_if_t<is_dimensionless_v<U>,
int> = 0>
58 return Ratio(std::log(
q.value()));
61template <
typename U, std::enable_if_t<is_dimensionless_v<U>,
int> = 0>
63 return Ratio(std::pow(
q.value(),
static_cast<double>(
n)));
66template <
typename U, std::enable_if_t<is_dimensionless_v<U>,
int> = 0>
71template <
typename U, std::enable_if_t<is_dimensionless_v<U>,
int> = 0>
73 return Radian(std::asin(
q.value()));
76template <
typename U, std::enable_if_t<is_dimensionless_v<U>,
int> = 0>
78 return Radian(std::acos(
q.value()));
81template <
typename U, std::enable_if_t<is_dimensionless_v<U>,
int> = 0>
83 return Radian(std::atan(
q.value()));
Ratio powf(const Quantity< U > &q, const Ratio &exponent)
Radian atan_angle(const Quantity< U > &q)
Quantity< RadianTag > Radian
Ratio ratio_to(const Quantity< U > &a, const Quantity< U > &b)
Same-unit division returning a typed dimensionless Ratio.
constexpr bool is_angular_v
Ratio powi(const Quantity< U > &q, int n)
Ratio exp(const Quantity< U > &q)
Ratio ln(const Quantity< U > &q)
Radian acos_angle(const Quantity< U > &q)
Radian asin_angle(const Quantity< U > &q)
Quantity< RatioTag > Ratio