mirror of
https://github.com/mpusz/mp-units.git
synced 2025-08-05 13:14:29 +02:00
@@ -58,7 +58,7 @@ template<std::intmax_t Num, std::intmax_t Den = 1, Quantity Q>
|
||||
return rep(1);
|
||||
} else {
|
||||
using dim = dimension_pow<typename Q::dimension, Num, Den>;
|
||||
using unit = downcast_unit<dim, pow<ratio{Num, Den}>(Q::unit::mag)>;
|
||||
using unit = downcast_unit<dim, pow<ratio{Num, Den}>(Q::reference.mag) / dim::mag>;
|
||||
using std::pow;
|
||||
return quantity<dim, unit, rep>(
|
||||
static_cast<rep>(pow(q.number(), static_cast<double>(Num) / static_cast<double>(Den))));
|
||||
@@ -78,7 +78,7 @@ template<Quantity Q>
|
||||
requires requires { sqrt(q.number()); } || requires { std::sqrt(q.number()); }
|
||||
{
|
||||
using dim = dimension_pow<typename Q::dimension, 1, 2>;
|
||||
using unit = downcast_unit<dim, pow<ratio{1, 2}>(Q::unit::mag)>;
|
||||
using unit = downcast_unit<dim, pow<ratio{1, 2}>(Q::reference.mag) / dim::mag>;
|
||||
using rep = TYPENAME Q::rep;
|
||||
using std::sqrt;
|
||||
return quantity<dim, unit, rep>(static_cast<rep>(sqrt(q.number())));
|
||||
@@ -97,7 +97,7 @@ template<Quantity Q>
|
||||
requires requires { cbrt(q.number()); } || requires { std::cbrt(q.number()); }
|
||||
{
|
||||
using dim = dimension_pow<typename Q::dimension, 1, 3>;
|
||||
using unit = downcast_unit<dim, pow<ratio{1, 3}>(Q::unit::mag)>;
|
||||
using unit = downcast_unit<dim, pow<ratio{1, 3}>(Q::reference.mag) / dim::mag>;
|
||||
using rep = TYPENAME Q::rep;
|
||||
using std::cbrt;
|
||||
return quantity<dim, unit, rep>(static_cast<rep>(cbrt(q.number())));
|
||||
|
Reference in New Issue
Block a user