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);
|
return rep(1);
|
||||||
} else {
|
} else {
|
||||||
using dim = dimension_pow<typename Q::dimension, Num, Den>;
|
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;
|
using std::pow;
|
||||||
return quantity<dim, unit, rep>(
|
return quantity<dim, unit, rep>(
|
||||||
static_cast<rep>(pow(q.number(), static_cast<double>(Num) / static_cast<double>(Den))));
|
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()); }
|
requires requires { sqrt(q.number()); } || requires { std::sqrt(q.number()); }
|
||||||
{
|
{
|
||||||
using dim = dimension_pow<typename Q::dimension, 1, 2>;
|
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 rep = TYPENAME Q::rep;
|
||||||
using std::sqrt;
|
using std::sqrt;
|
||||||
return quantity<dim, unit, rep>(static_cast<rep>(sqrt(q.number())));
|
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()); }
|
requires requires { cbrt(q.number()); } || requires { std::cbrt(q.number()); }
|
||||||
{
|
{
|
||||||
using dim = dimension_pow<typename Q::dimension, 1, 3>;
|
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 rep = TYPENAME Q::rep;
|
||||||
using std::cbrt;
|
using std::cbrt;
|
||||||
return quantity<dim, unit, rep>(static_cast<rep>(cbrt(q.number())));
|
return quantity<dim, unit, rep>(static_cast<rep>(cbrt(q.number())));
|
||||||
|
Reference in New Issue
Block a user