aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
diff options
context:
space:
mode:
authorGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2016-03-11 17:21:42 -0800
committerGravatar Benoit Steiner <benoit.steiner.goog@gmail.com>2016-03-11 17:21:42 -0800
commit048c4d6efd34ae26cebf5a6b662d4480dfe61f0e (patch)
tree85e2c67dfdbd8bd41d893bc37943cbd8015b866d /Eigen/src/Core/arch/CUDA/PacketMathHalf.h
parentb72ffcb05e2abd631a0302061e06972f5fe8b0cc (diff)
Made half floats usable on hardware that doesn't support them natively.
Diffstat (limited to 'Eigen/src/Core/arch/CUDA/PacketMathHalf.h')
-rw-r--r--Eigen/src/Core/arch/CUDA/PacketMathHalf.h46
1 files changed, 0 insertions, 46 deletions
diff --git a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h b/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
index 9e3c51d49..9e1d87062 100644
--- a/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
+++ b/Eigen/src/Core/arch/CUDA/PacketMathHalf.h
@@ -19,55 +19,9 @@
#if defined(__CUDA_ARCH__) && __CUDA_ARCH__ >= 300
-// The following operations require arch >= 5.3
-#if __CUDA_ARCH__ >= 530
-__device__ half operator + (const half& a, const half& b) {
- return __hadd(a, b);
-}
-__device__ half operator * (const half& a, const half& b) {
- return __hmul(a, b);
-}
-__device__ half operator - (const half& a, const half& b) {
- return __hsub(a, b);
-}
-__device__ half operator / (const half& a, const half& b) {
- float num = __half2float(a);
- float denom = __half2float(b);
- return __float2half(num / denom);
-}
-__device__ half operator - (const half& a) {
- return __hneg(a);
-}
-__device__ half& operator += (half& a, const half& b) {
- a = a + b;
- return a;
-}
-__device__ half& operator *= (half& a, const half& b) {
- a = a * b;
- return a;
-}
-__device__ half& operator -= (half& a, const half& b) {
- a = a - b;
- return a;
-}
-__device__ half& operator /= (half& a, const half& b) {
- a = a / b;
- return a;
-}
-
-namespace std {
-__device__ half abs(const half& a) {
- half result;
- result.x = a.x & 0x7FFF;
- return result;
-}
-}
-#endif
-
namespace Eigen {
namespace internal {
-template<> struct is_arithmetic<half> { enum { value = true }; };
template<> struct is_arithmetic<half2> { enum { value = true }; };
template<> struct packet_traits<half> : default_packet_traits