diff --git a/include/cuinterval/arithmetic/basic.cuh b/include/cuinterval/arithmetic/basic.cuh index cf7e8dc..643a749 100644 --- a/include/cuinterval/arithmetic/basic.cuh +++ b/include/cuinterval/arithmetic/basic.cuh @@ -919,25 +919,25 @@ inline constexpr __device__ interval rootn(interval x, std::integral auto return x; } - auto rootn_pos_n = [](interval x, std::integral auto n) -> interval { - if (n == 0) { + auto rootn_pos_n = [](interval y, std::integral auto m) -> interval { + if (m == 0) { return empty(); - } else if (n == 1) { - return x; - } else if (n == 2) { - return sqrt(x); + } else if (m == 1) { + return y; + } else if (m == 2) { + return sqrt(y); } else { - bool is_odd = n % 2; + bool is_odd = m % 2; interval domain { is_odd ? intrinsic::neg_inf() : static_cast(0), intrinsic::pos_inf() }; - x = intersection(x, domain); - if (empty(x)) { + y = intersection(y, domain); + if (empty(y)) { return empty(); } - return { intrinsic::next_after(pow(inf(x), 1.0 / n), domain.lb), - intrinsic::next_after(pow(sup(x), 1.0 / n), domain.ub) }; + return { intrinsic::next_after(pow(inf(y), 1.0 / m), domain.lb), + intrinsic::next_after(pow(sup(y), 1.0 / m), domain.ub) }; } }; diff --git a/include/cuinterval/interval.h b/include/cuinterval/interval.h index c350102..908172b 100644 --- a/include/cuinterval/interval.h +++ b/include/cuinterval/interval.h @@ -18,7 +18,8 @@ constexpr bool operator==(interval lhs, interval rhs) { auto empty = [](interval x) { return !(x.lb <= x.ub); }; - return (empty(lhs) && empty(rhs)) || lhs.lb == rhs.lb && lhs.ub == rhs.ub; + + return (empty(lhs) && empty(rhs)) || (lhs.lb == rhs.lb && lhs.ub == rhs.ub); } template diff --git a/tests/tests.cpp b/tests/tests.cpp index 95cebf2..9010ca8 100644 --- a/tests/tests.cpp +++ b/tests/tests.cpp @@ -9,7 +9,7 @@ #include #include -int main(int argc, char *argv[]) +int main() { CUDA_CHECK(cudaSetDevice(0)); diff --git a/tests/tests.h b/tests/tests.h index 189c3cf..a06e7da 100644 --- a/tests/tests.h +++ b/tests/tests.h @@ -31,7 +31,7 @@ bool check_within_ulps(T x, T y, std::size_t n, T direction) return true; } - for (int i = 0; i < n; ++i) { + for (auto i = 0u; i < n; ++i) { y = std::nextafter(y, direction); if (x == y) { diff --git a/tests/tests_loop.cu b/tests/tests_loop.cu index 2cd0218..dee02d0 100644 --- a/tests/tests_loop.cu +++ b/tests/tests_loop.cu @@ -94,8 +94,6 @@ std::vector> compute_pi_approximation(cudaStream_t stream) auto tr_last = thrust::make_transform_iterator(seq_last, to_interval_fn()); auto pi_rcp_first = thrust::make_transform_iterator(tr_first, pi_recip_fn()); auto pi_rcp_last = thrust::make_transform_iterator(tr_last, pi_recip_fn()); - auto pi_pow_first = thrust::make_transform_iterator(tr_first, pi_pow_fn()); - auto pi_pow_last = thrust::make_transform_iterator(tr_last, pi_pow_fn()); auto pi_inv_first = thrust::make_transform_iterator(tr_first, pi_inv_fn()); auto pi_inv_last = thrust::make_transform_iterator(tr_last, pi_inv_fn());