From b489ffbd2d8daec3ef901536b5defc09350d96b2 Mon Sep 17 00:00:00 2001 From: Neil Kichler Date: Tue, 16 Jul 2024 18:18:57 +0200 Subject: [PATCH] use pow instead of sqr as it is defined in std --- examples/basic/basic.cu | 4 ++++ include/cutangent/arithmetic/basic.cuh | 16 ++++++++++------ 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/examples/basic/basic.cu b/examples/basic/basic.cu index eb31167..fc9e5a4 100644 --- a/examples/basic/basic.cu +++ b/examples/basic/basic.cu @@ -28,6 +28,8 @@ constexpr auto f(auto x, auto y) auto m = x * 2; auto n = log2(x); auto o = log10(x); + auto p = tan(x); + auto q = atan(x); print(a); print(b); @@ -44,6 +46,8 @@ constexpr auto f(auto x, auto y) print(m); print(n); print(o); + print(p); + print(q); return a; } diff --git a/include/cutangent/arithmetic/basic.cuh b/include/cutangent/arithmetic/basic.cuh index 6cf5983..7159c86 100644 --- a/include/cutangent/arithmetic/basic.cuh +++ b/include/cutangent/arithmetic/basic.cuh @@ -153,35 +153,39 @@ fn tangent cos(tangent x) template fn tangent tan(tangent x) { + using std::pow; using std::tan; - return { tan(x.v), static_cast(1.0) + sqr(tan(x.v)) }; + return { tan(x.v), static_cast(1.0) + pow(tan(x.v), 2) }; } template fn tangent asin(tangent x) { using std::asin; + using std::pow; using std::sqrt; - return { asin(x.v), x.d / sqrt(1.0 - sqr(x.v)) }; + return { asin(x.v), x.d / sqrt(1.0 - pow(x.v, 2)) }; } template fn tangent acos(tangent x) { using std::acos; + using std::pow; using std::sqrt; - return { acos(x.v), -x.d / sqrt(1.0 - sqr(x.v)) }; + return { acos(x.v), -x.d / sqrt(1.0 - pow(x.v, 2)) }; } template fn tangent atan(tangent x) { using std::atan; + using std::pow; - return { atan(x.v), x.d / (1.0 + sqr(x.v)) }; + return { atan(x.v), x.d / (1.0 + pow(x.v, 2)) }; } template @@ -206,7 +210,7 @@ fn tangent log2(tangent x) { using std::log2; - return { log2(x.v), x.d / (x.v * std::numbers::ln2_v) }; + return { log2(x.v), x.d / (x.v * std::numbers::ln2_v)}; } template @@ -214,7 +218,7 @@ fn tangent log10(tangent x) { using std::log10; - return { log10(x.v), x.d / (x.v * std::numbers::ln10_v) }; + return { log10(x.v), x.d / (x.v * std::numbers::ln10_v)}; } template