IAP GITLAB

Skip to content
Snippets Groups Projects
Commit 4547f7f3 authored by Maximilian Reininghaus's avatar Maximilian Reininghaus :vulcan:
Browse files

added cubic root

parent d1e8a0f4
No related branches found
No related tags found
1 merge request!342use std::sqrt() for sqrt(Quantity)
...@@ -468,6 +468,9 @@ namespace phys { ...@@ -468,6 +468,9 @@ namespace phys {
template <typename D, typename X> template <typename D, typename X>
friend detail::Root<D, 2, X> sqrt(quantity<D, X> const& x); friend detail::Root<D, 2, X> sqrt(quantity<D, X> const& x);
template <typename D, typename X>
friend detail::Root<D, 3, X> cbrt(quantity<D, X> const& x);
// comparison // comparison
template <typename D, typename X, typename Y> template <typename D, typename X, typename Y>
...@@ -679,6 +682,16 @@ namespace phys { ...@@ -679,6 +682,16 @@ namespace phys {
return detail::Root<D, 2, X>(std::sqrt(x.m_value)); return detail::Root<D, 2, X>(std::sqrt(x.m_value));
} }
/// cubic root.
template <typename D, typename X>
detail::Root<D, 3, X> cbrt(quantity<D, X> const& x) {
static_assert(detail::root<D, 3, X>::all_even_multiples,
"root result dimensions must be integral");
return detail::Root<D, 3, X>(std::cbrt(x.m_value));
}
// Comparison operators // Comparison operators
/// equality. /// equality.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment