aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Eigen/src/Core/arch/CUDA/PacketMathHalf.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h b/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
index 7f99376fb..c99c1acf7 100644
--- a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+++ b/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
@@ -39,6 +39,22 @@ __device__ half operator / (const half& a, const half& b) {
__device__ half operator - (const half& a) {
return __hneg(a);
}
+__device__ half operator += (half& a, const half& b) {
+ a = __hadd(a, b);
+ return a;
+}
+__device__ half operator *= (half& a, const half& b) {
+ a = __hmul(a, b);
+ return a;
+}
+__device__ half operator -= (half& a, const half& b) {
+ a = __hsub(a, b);
+ return a;
+}
+__device__ half operator /= (half& a, const half& b) {
+ assert(false && "tbd");
+ return a;
+}
template<> struct is_arithmetic<half2> { enum { value = true }; };