diff --git a/src/core/include/units/math.h b/src/core/include/units/math.h index cc86712b..cdae6963 100644 --- a/src/core/include/units/math.h +++ b/src/core/include/units/math.h @@ -58,7 +58,7 @@ template return rep(1); } else { using dim = dimension_pow; - using unit = downcast_unit(Q::unit::mag)>; + using unit = downcast_unit(Q::reference.mag) / dim::mag>; using std::pow; return quantity( static_cast(pow(q.number(), static_cast(Num) / static_cast(Den)))); @@ -78,7 +78,7 @@ template requires requires { sqrt(q.number()); } || requires { std::sqrt(q.number()); } { using dim = dimension_pow; - using unit = downcast_unit(Q::unit::mag)>; + using unit = downcast_unit(Q::reference.mag) / dim::mag>; using rep = TYPENAME Q::rep; using std::sqrt; return quantity(static_cast(sqrt(q.number()))); @@ -97,7 +97,7 @@ template requires requires { cbrt(q.number()); } || requires { std::cbrt(q.number()); } { using dim = dimension_pow; - using unit = downcast_unit(Q::unit::mag)>; + using unit = downcast_unit(Q::reference.mag) / dim::mag>; using rep = TYPENAME Q::rep; using std::cbrt; return quantity(static_cast(cbrt(q.number())));