From 8e9cc5b10a16dde87c65e9e9c4471095f78e11d4 Mon Sep 17 00:00:00 2001 From: Antonio Sanchez Date: Mon, 16 Nov 2020 10:39:09 -0800 Subject: Eliminate double-promotion warnings. Clang currently complains about implicit conversions, e.g. ``` test/packetmath.cpp:680:59: warning: implicit conversion increases floating-point precision: 'typename Eigen::internal::random_retval::type>::type' (aka 'double') to 'long double' [-Wdouble-promotion] data1[0] = Scalar((2 * k + k1) * EIGEN_PI / 2 * internal::random(0.8, 1.2)); ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ test/packetmath.cpp:681:40: warning: implicit conversion increases floating-point precision: 'float' to 'long double' [-Wdouble-promotion] data1[1] = Scalar((2 * k + 2 + k1) * EIGEN_PI / 2 * internal::random(0.8, 1.2)); ``` Modified to explicitly cast to double. --- test/packetmath.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'test/packetmath.cpp') diff --git a/test/packetmath.cpp b/test/packetmath.cpp index eabf69c62..81425b866 100644 --- a/test/packetmath.cpp +++ b/test/packetmath.cpp @@ -677,8 +677,8 @@ void packetmath_real() { test::packet_helper h; for (Scalar k = Scalar(1); k < Scalar(10000) / std::numeric_limits::epsilon(); k *= Scalar(2)) { for (int k1 = 0; k1 <= 1; ++k1) { - data1[0] = Scalar((2 * k + k1) * EIGEN_PI / 2 * internal::random(0.8, 1.2)); - data1[1] = Scalar((2 * k + 2 + k1) * EIGEN_PI / 2 * internal::random(0.8, 1.2)); + data1[0] = Scalar((2 * double(k) + k1) * double(EIGEN_PI) / 2 * internal::random(0.8, 1.2)); + data1[1] = Scalar((2 * double(k) + 2 + k1) * double(EIGEN_PI) / 2 * internal::random(0.8, 1.2)); h.store(data2, internal::pcos(h.load(data1))); h.store(data2 + PacketSize, internal::psin(h.load(data1))); VERIFY(data2[0] <= Scalar(1.) && data2[0] >= Scalar(-1.)); -- cgit v1.2.3