#include #include #include #include #include template void TestComplexAlignment() { THRUST_STATIC_ASSERT( sizeof(thrust::complex) == sizeof(VectorT) ); THRUST_STATIC_ASSERT( THRUST_ALIGNOF(thrust::complex) == THRUST_ALIGNOF(VectorT) ); THRUST_STATIC_ASSERT( sizeof(thrust::complex) == sizeof(VectorT) ); THRUST_STATIC_ASSERT( THRUST_ALIGNOF(thrust::complex) == THRUST_ALIGNOF(VectorT) ); } DECLARE_UNITTEST_WITH_NAME( THRUST_PP_EXPAND_ARGS(TestComplexAlignment) , TestComplexCharAlignment ); DECLARE_UNITTEST_WITH_NAME( THRUST_PP_EXPAND_ARGS(TestComplexAlignment) , TestComplexShortAlignment ); DECLARE_UNITTEST_WITH_NAME( THRUST_PP_EXPAND_ARGS(TestComplexAlignment) , TestComplexIntAlignment ); DECLARE_UNITTEST_WITH_NAME( THRUST_PP_EXPAND_ARGS(TestComplexAlignment) , TestComplexLongAlignment ); DECLARE_UNITTEST_WITH_NAME( THRUST_PP_EXPAND_ARGS(TestComplexAlignment<__half, __half2>) , TestComplexHalfAlignment ); DECLARE_UNITTEST_WITH_NAME( THRUST_PP_EXPAND_ARGS(TestComplexAlignment) , TestComplexFloatAlignment ); DECLARE_UNITTEST_WITH_NAME( THRUST_PP_EXPAND_ARGS(TestComplexAlignment) , TestComplexDoubleAlignment );