1 #pragma once
3
5
6 template<typename T, int p>
8 static const bool value = (
sizeof(T) & ((1 << p) - 1)) == 0;
9 };
10
11 template<typename T,
15 };
16
17 template<typename T>
20 };
21
22
23 template<typename T, typename U>
25 static const int value =
sizeof(T)/
sizeof(U);
26 };
27
28 template<typename T>
33 };
34
35 template<typename T,
41 __host__ __device__ __forceinline__
45 }
46 };
47
48 template<typename T, typename U>
52 __host__ __device__ __forceinline__
55 }
56 };
57
58 template<typename U, typename T>
59 __host__ __device__ __forceinline__
62 }
63
64
65 template<typename T,
70 __host__ __device__ __forceinline__
74 }
75 };
76
77 template<typename T, typename U>
80 __host__ __device__ __forceinline__
83 }
84 };
85
86
87 template<typename T>
88 __host__ __device__ __forceinline__
90 T result;
93 return result;
94 }
95
96 }
97
__host__ __device__ __forceinline__ array< U, detail::aliased_size< T, U >::value > lyse(const T &in)
__host__ __device__ __forceinline__ T fuse(const typename working_array< T >::type &in)
array< U, 1 > result_type
__host__ __device__ static __forceinline__ result_type impl(const T &t)
array< U, r > result_type
__host__ __device__ static __forceinline__ result_type impl(const T &t)
__host__ __device__ static __forceinline__ void impl(const array< U, 1 > &d, const T &t)
__host__ __device__ static __forceinline__ void impl(const array< U, r > &d, T &t)
working_type< T >::type U