diff options
Diffstat (limited to 'Eigen/src/Core/arch/SYCL/TypeCasting.h')
-rw-r--r-- | Eigen/src/Core/arch/SYCL/TypeCasting.h | 64 |
1 files changed, 30 insertions, 34 deletions
diff --git a/Eigen/src/Core/arch/SYCL/TypeCasting.h b/Eigen/src/Core/arch/SYCL/TypeCasting.h index dedd5c84a..9208ab21d 100644 --- a/Eigen/src/Core/arch/SYCL/TypeCasting.h +++ b/Eigen/src/Core/arch/SYCL/TypeCasting.h @@ -16,7 +16,7 @@ * \brief: * TypeCasting * -*****************************************************************/ + *****************************************************************/ #ifndef EIGEN_TYPE_CASTING_SYCL_H #define EIGEN_TYPE_CASTING_SYCL_H @@ -24,66 +24,62 @@ namespace Eigen { namespace internal { -#ifdef __SYCL_DEVICE_ONLY__ +#ifdef SYCL_DEVICE_ONLY template <> struct type_casting_traits<float, int> { - enum { - VectorizedCast = 1, - SrcCoeffRatio = 1, - TgtCoeffRatio = 1 - }; + enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 1 }; }; -template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE cl::sycl::cl_int4 pcast<cl::sycl::cl_float4, cl::sycl::cl_int4>(const cl::sycl::cl_float4& a) { - return a. template convert<cl::sycl::cl_int, cl::sycl::rounding_mode::automatic>(); +template <> +EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE cl::sycl::cl_int4 +pcast<cl::sycl::cl_float4, cl::sycl::cl_int4>(const cl::sycl::cl_float4& a) { + return a + .template convert<cl::sycl::cl_int, cl::sycl::rounding_mode::automatic>(); } - template <> struct type_casting_traits<int, float> { - enum { - VectorizedCast = 1, - SrcCoeffRatio = 1, - TgtCoeffRatio = 1 - }; + enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 1 }; }; -template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE cl::sycl::cl_float4 pcast<cl::sycl::cl_int4, cl::sycl::cl_float4>(const cl::sycl::cl_int4& a) { - return a. template convert<cl::sycl::cl_float, cl::sycl::rounding_mode::automatic>(); +template <> +EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE cl::sycl::cl_float4 +pcast<cl::sycl::cl_int4, cl::sycl::cl_float4>(const cl::sycl::cl_int4& a) { + return a.template convert<cl::sycl::cl_float, + cl::sycl::rounding_mode::automatic>(); } template <> struct type_casting_traits<double, float> { - enum { - VectorizedCast = 1, - SrcCoeffRatio = 2, - TgtCoeffRatio = 1 - }; + enum { VectorizedCast = 1, SrcCoeffRatio = 2, TgtCoeffRatio = 1 }; }; -template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE cl::sycl::cl_float4 pcast<cl::sycl::cl_double2, cl::sycl::cl_float4>(const cl::sycl::cl_double2& a, const cl::sycl::cl_double2& b) { - auto a1=a. template convert<cl::sycl::cl_float, cl::sycl::rounding_mode::automatic>(); - auto b1=b. template convert<cl::sycl::cl_float, cl::sycl::rounding_mode::automatic>(); +template <> +EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE cl::sycl::cl_float4 +pcast<cl::sycl::cl_double2, cl::sycl::cl_float4>( + const cl::sycl::cl_double2& a, const cl::sycl::cl_double2& b) { + auto a1 = a.template convert<cl::sycl::cl_float, + cl::sycl::rounding_mode::automatic>(); + auto b1 = b.template convert<cl::sycl::cl_float, + cl::sycl::rounding_mode::automatic>(); return cl::sycl::float4(a1.x(), a1.y(), b1.x(), b1.y()); } template <> struct type_casting_traits<float, double> { - enum { - VectorizedCast = 1, - SrcCoeffRatio = 1, - TgtCoeffRatio = 2 - }; + enum { VectorizedCast = 1, SrcCoeffRatio = 1, TgtCoeffRatio = 2 }; }; -template<> EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE cl::sycl::cl_double2 pcast<cl::sycl::cl_float4, cl::sycl::cl_double2>(const cl::sycl::cl_float4& a) { +template <> +EIGEN_DEVICE_FUNC EIGEN_ALWAYS_INLINE cl::sycl::cl_double2 +pcast<cl::sycl::cl_float4, cl::sycl::cl_double2>(const cl::sycl::cl_float4& a) { // Simply discard the second half of the input return cl::sycl::cl_double2(a.x(), a.y()); } #endif -} // end namespace internal +} // end namespace internal -} // end namespace Eigen +} // end namespace Eigen -#endif // EIGEN_TYPE_CASTING_SYCL_H +#endif // EIGEN_TYPE_CASTING_SYCL_H |