From c5bf47ab40c64835a828bc581892cafe522b49ba Mon Sep 17 00:00:00 2001 From: Gregory Chanan Date: Thu, 5 Jan 2017 08:09:09 -0800 Subject: [PATCH] Fix THHalf issues with MSVC. --- lib/TH/generic/THTensorCopy.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/TH/generic/THTensorCopy.c b/lib/TH/generic/THTensorCopy.c index d7228f68..3d243e38 100644 --- a/lib/TH/generic/THTensorCopy.c +++ b/lib/TH/generic/THTensorCopy.c @@ -4,7 +4,7 @@ void THTensor_(copy)(THTensor *tensor, THTensor *src) { - TH_TENSOR_APPLY2(real, tensor, real, src, *tensor_data = (real)(*src_data);) + TH_TENSOR_APPLY2(real, tensor, real, src, *tensor_data = *src_data;) } #define IMPLEMENT_THTensor_COPY(TYPENAMESRC, TYPE_SRC) \ @@ -25,6 +25,12 @@ void THTensor_(copy##TYPENAMESRC)(THTensor *tensor, TH##TYPENAMESRC##Tensor *src TH_TENSOR_APPLY2(real, tensor, TYPE_SRC, src, *tensor_data = (real)TH_half2float(*src_data);) \ } +#define IMPLEMENT_THTensor_COPY_TO_FROM_HALF(TYPENAMESRC, TYPE_SRC) \ +void THTensor_(copy##TYPENAMESRC)(THTensor *tensor, TH##TYPENAMESRC##Tensor *src) \ +{ \ + TH_TENSOR_APPLY2(real, tensor, TYPE_SRC, src, *tensor_data = *src_data;) \ +} + #ifndef TH_REAL_IS_HALF IMPLEMENT_THTensor_COPY(Byte, unsigned char) IMPLEMENT_THTensor_COPY(Char, char) @@ -36,7 +42,7 @@ IMPLEMENT_THTensor_COPY(Double, double) IMPLEMENT_THTensor_COPY_FROM_HALF(Half, THHalf) #else /* only allow pass-through for Half */ -IMPLEMENT_THTensor_COPY(Half, THHalf) +IMPLEMENT_THTensor_COPY_TO_FROM_HALF(Half, THHalf) IMPLEMENT_THTensor_COPY_TO_HALF(Byte, unsigned char) IMPLEMENT_THTensor_COPY_TO_HALF(Char, char) IMPLEMENT_THTensor_COPY_TO_HALF(Short, short)