Update Kokkos library in LAMMPS to v3.3.0
This commit is contained in:
@ -320,6 +320,47 @@ struct TestComplexSpecialFunctions {
|
||||
r = Kokkos::exp(a);
|
||||
ASSERT_FLOAT_EQ(h_results(4).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(4).imag(), r.imag());
|
||||
#ifndef KOKKOS_WORKAROUND_OPENMPTARGET_CLANG
|
||||
r = std::log(a);
|
||||
ASSERT_FLOAT_EQ(h_results(5).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(5).imag(), r.imag());
|
||||
r = std::sin(a);
|
||||
ASSERT_FLOAT_EQ(h_results(6).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(6).imag(), r.imag());
|
||||
r = std::cos(a);
|
||||
ASSERT_FLOAT_EQ(h_results(7).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(7).imag(), r.imag());
|
||||
r = std::tan(a);
|
||||
ASSERT_FLOAT_EQ(h_results(8).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(8).imag(), r.imag());
|
||||
r = std::sinh(a);
|
||||
ASSERT_FLOAT_EQ(h_results(9).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(9).imag(), r.imag());
|
||||
r = std::cosh(a);
|
||||
ASSERT_FLOAT_EQ(h_results(10).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(10).imag(), r.imag());
|
||||
r = std::tanh(a);
|
||||
ASSERT_FLOAT_EQ(h_results(11).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(11).imag(), r.imag());
|
||||
r = std::asinh(a);
|
||||
ASSERT_FLOAT_EQ(h_results(12).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(12).imag(), r.imag());
|
||||
r = std::acosh(a);
|
||||
ASSERT_FLOAT_EQ(h_results(13).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(13).imag(), r.imag());
|
||||
r = std::atanh(a);
|
||||
ASSERT_FLOAT_EQ(h_results(14).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(14).imag(), r.imag());
|
||||
r = std::asin(a);
|
||||
ASSERT_FLOAT_EQ(h_results(15).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(15).imag(), r.imag());
|
||||
r = std::acos(a);
|
||||
ASSERT_FLOAT_EQ(h_results(16).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(16).imag(), r.imag());
|
||||
r = std::atan(a);
|
||||
ASSERT_FLOAT_EQ(h_results(17).real(), r.real());
|
||||
ASSERT_FLOAT_EQ(h_results(17).imag(), r.imag());
|
||||
#endif
|
||||
}
|
||||
|
||||
KOKKOS_INLINE_FUNCTION
|
||||
@ -328,11 +369,24 @@ struct TestComplexSpecialFunctions {
|
||||
Kokkos::complex<double> b(3.25, 5.75);
|
||||
double c = 9.3;
|
||||
|
||||
d_results(0) = Kokkos::complex<double>(Kokkos::real(a), Kokkos::imag(a));
|
||||
d_results(1) = Kokkos::sqrt(a);
|
||||
d_results(2) = Kokkos::pow(a, c);
|
||||
d_results(3) = Kokkos::abs(a);
|
||||
d_results(4) = Kokkos::exp(a);
|
||||
d_results(0) = Kokkos::complex<double>(Kokkos::real(a), Kokkos::imag(a));
|
||||
d_results(1) = Kokkos::sqrt(a);
|
||||
d_results(2) = Kokkos::pow(a, c);
|
||||
d_results(3) = Kokkos::abs(a);
|
||||
d_results(4) = Kokkos::exp(a);
|
||||
d_results(5) = Kokkos::log(a);
|
||||
d_results(6) = Kokkos::sin(a);
|
||||
d_results(7) = Kokkos::cos(a);
|
||||
d_results(8) = Kokkos::tan(a);
|
||||
d_results(9) = Kokkos::sinh(a);
|
||||
d_results(10) = Kokkos::cosh(a);
|
||||
d_results(11) = Kokkos::tanh(a);
|
||||
d_results(12) = Kokkos::asinh(a);
|
||||
d_results(13) = Kokkos::acosh(a);
|
||||
d_results(14) = Kokkos::atanh(a);
|
||||
d_results(15) = Kokkos::asin(a);
|
||||
d_results(16) = Kokkos::acos(a);
|
||||
d_results(17) = Kokkos::atan(a);
|
||||
}
|
||||
};
|
||||
|
||||
@ -369,30 +423,8 @@ TEST(TEST_CATEGORY, complex_trivially_copyable) {
|
||||
#if !defined(__ibmxl__)
|
||||
// clang claims compatibility with gcc 4.2.1 but all versions tested know
|
||||
// about std::is_trivially_copyable.
|
||||
#if !defined(__clang__)
|
||||
#define KOKKOS_COMPILER_GNU_VERSION \
|
||||
__GNUC__ * 100 + __GNUC_MINOR__ * 10 + __GNUC_PATCHLEVEL__
|
||||
#endif
|
||||
#if KOKKOS_COMPILER_GNU_VERSION == 0 || KOKKOS_COMPILER_GNU_VERSION > 500
|
||||
ASSERT_TRUE(std::is_trivially_copyable<Kokkos::complex<RealType>>::value ||
|
||||
!std::is_trivially_copyable<RealType>::value);
|
||||
#elif KOKKOS_COMPILER_GNU_VERSION > 480
|
||||
ASSERT_TRUE(
|
||||
(std::has_trivial_copy_constructor<Kokkos::complex<RealType>>::value &&
|
||||
std::has_trivial_copy_assign<Kokkos::complex<RealType>>::value &&
|
||||
std::is_trivially_destructible<Kokkos::complex<RealType>>::value) ||
|
||||
!(std::has_trivial_copy_constructor<RealType>::value &&
|
||||
std::has_trivial_copy_assign<RealType>::value &&
|
||||
std::is_trivially_destructible<RealType>::value));
|
||||
#else
|
||||
ASSERT_TRUE(
|
||||
(std::has_trivial_copy_constructor<Kokkos::complex<RealType>>::value &&
|
||||
std::has_trivial_copy_assign<Kokkos::complex<RealType>>::value &&
|
||||
std::has_trivial_destructor<Kokkos::complex<RealType>>::value) ||
|
||||
!(std::has_trivial_copy_constructor<RealType>::value &&
|
||||
std::has_trivial_copy_assign<RealType>::value &&
|
||||
std::has_trivial_destructor<RealType>::value));
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user