Update Kokkos library in LAMMPS to v3.3.0

This commit is contained in:
Stan Gerald Moore
2020-12-22 08:52:37 -07:00
parent b36363e0fb
commit eea14c55a9
927 changed files with 18603 additions and 46876 deletions

View File

@ -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
}