diff options
author | Antonio Sanchez <cantonios@google.com> | 2020-11-16 10:39:09 -0800 |
---|---|---|
committer | Antonio Sanchez <cantonios@google.com> | 2020-11-16 10:39:09 -0800 |
commit | 8e9cc5b10a16dde87c65e9e9c4471095f78e11d4 (patch) | |
tree | df2c2dc47ceb10396c1428e21068c88e903530e0 | |
parent | 9175f50d6f88bd38789f2a9c6d4f0bfe1b8b6b37 (diff) |
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<typename Eigen::internal::global_math_functions_filtering_base<double>::type>::type' (aka 'double') to 'long double' [-Wdouble-promotion]
data1[0] = Scalar((2 * k + k1) * EIGEN_PI / 2 * internal::random<double>(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<double>(0.8, 1.2));
```
Modified to explicitly cast to double.
-rw-r--r-- | test/packetmath.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
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<PacketTraits::HasCos, Packet> h; for (Scalar k = Scalar(1); k < Scalar(10000) / std::numeric_limits<Scalar>::epsilon(); k *= Scalar(2)) { for (int k1 = 0; k1 <= 1; ++k1) { - data1[0] = Scalar((2 * k + k1) * EIGEN_PI / 2 * internal::random<double>(0.8, 1.2)); - data1[1] = Scalar((2 * k + 2 + k1) * EIGEN_PI / 2 * internal::random<double>(0.8, 1.2)); + data1[0] = Scalar((2 * double(k) + k1) * double(EIGEN_PI) / 2 * internal::random<double>(0.8, 1.2)); + data1[1] = Scalar((2 * double(k) + 2 + k1) * double(EIGEN_PI) / 2 * internal::random<double>(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.)); |