blob: 43e2a0833cae65d0eed86300a91a50a21073e55f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
diff --git a/var/tmp/portage/media-libs/opencv-3.3.0-r4/work/opencv-3.3.0/modules/cudev/include/opencv2/cudev/util/saturate_cast.hpp b/./saturate_cast.hpp
index ec9804c..4359d18 100644
--- a/modules/cudev/include/opencv2/cudev/util/saturate_cast.hpp
+++ b/modules/cudev/include/opencv2/cudev/util/saturate_cast.hpp
@@ -47,6 +47,9 @@
#define OPENCV_CUDEV_UTIL_SATURATE_CAST_HPP
#include "../common.hpp"
+#if __CUDACC_VER_MAJOR__ >= 9
+#include <cuda_fp16.h>
+#endif
namespace cv { namespace cudev {
@@ -274,15 +277,25 @@ template <typename T, typename D> __device__ __forceinline__ D cast_fp16(T v);
template <> __device__ __forceinline__ float cast_fp16<short, float>(short v)
{
+#if __CUDACC_VER_MAJOR__ >= 9
+ return float(*(__half*)&v);
+#else
return __half2float(v);
+#endif
}
template <> __device__ __forceinline__ short cast_fp16<float, short>(float v)
{
- return (short)__float2half_rn(v);
+#if __CUDACC_VER_MAJOR__ >= 9
+ __half h(v);
+ return *(short*)&v;
+#else
+ return (short)__float2half_rn(v);
+#endif
}
//! @}
}}
#endif
+
|