DPC++ Runtime
Runtime libraries for oneAPI Data Parallel C++
generic_type_traits.hpp File Reference
Include dependency graph for generic_type_traits.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  cl::sycl::detail::nan_types< T, Enable >
 
struct  cl::sycl::detail::nan_types< T, enable_if_t< is_contained< T, gtl::unsigned_short_list >::value, T > >
 
struct  cl::sycl::detail::nan_types< T, enable_if_t< is_contained< T, gtl::unsigned_int_list >::value, T > >
 
struct  cl::sycl::detail::nan_types< T, enable_if_t< is_contained< T, gtl::unsigned_long_integer_list >::value, T > >
 
struct  cl::sycl::detail::convert_data_type_impl< T, B, Enable >
 
struct  cl::sycl::detail::convert_data_type_impl< T, B, enable_if_t< is_sgentype< T >::value, T > >
 
struct  cl::sycl::detail::convert_data_type_impl< T, B, enable_if_t< is_vgentype< T >::value, T > >
 
class  cl::sycl::detail::TryToGetPointerT< T >
 
class  cl::sycl::detail::TryToGetElementType< T >
 
class  cl::sycl::detail::TryToGetVectorT< T >
 
class  cl::sycl::detail::TryToGetPointerVecT< T >
 
struct  cl::sycl::detail::select_cl_vector_or_scalar< T, Enable >
 
struct  cl::sycl::detail::select_cl_vector_or_scalar< T, typename detail::enable_if_t< is_vgentype< T >::value > >
 
struct  cl::sycl::detail::select_cl_vector_or_scalar< T, typename detail::enable_if_t<!is_vgentype< T >::value > >
 
struct  cl::sycl::detail::select_cl_mptr_or_vector_or_scalar< T, Enable >
 
struct  cl::sycl::detail::TypeHelper< T >
 
struct  cl::sycl::detail::select_cl_mptr_or_vector_or_scalar< T, typename detail::enable_if_t< is_genptr< T >::value &&!std::is_pointer< T >::value > >
 
struct  cl::sycl::detail::select_cl_mptr_or_vector_or_scalar< T, typename detail::enable_if_t<!is_genptr< T >::value||std::is_pointer< T >::value > >
 
struct  cl::sycl::detail::Boolean< N >
 
struct  cl::sycl::detail::TryToGetNumElements< T, Enable >
 
struct  cl::sycl::detail::TryToGetNumElements< T, typename detail::enable_if_t< TryToGetVectorT< T >::value > >
 
struct  cl::sycl::detail::TryToGetNumElements< T, typename detail::enable_if_t<!TryToGetVectorT< T >::value > >
 
struct  cl::sycl::detail::RelationalReturnType< T >
 
struct  cl::sycl::detail::RelationalTestForSignBitType< T >
 
struct  cl::sycl::detail::RelConverter< T, Enable >
 
struct  cl::sycl::detail::RelConverter< T, typename detail::enable_if_t< TryToGetElementType< T >::value > >
 
struct  cl::sycl::detail::RelConverter< T, typename detail::enable_if_t<!TryToGetElementType< T >::value > >
 
class  cl::sycl::detail::is_same_vector_size_impl< FirstSize, Args >
 
class  cl::sycl::detail::is_same_vector_size_impl< FirstSize, T, Args... >
 
class  cl::sycl::detail::is_same_vector_size_impl< FirstSize >
 
class  cl::sycl::detail::is_same_vector_size< T, Args >
 

Namespaces

 cl
 We provide new interfaces for matrix muliply in this patch:
 
 cl::sycl
 
 cl::sycl::detail
 

Typedefs

template<typename T >
using cl::sycl::detail::is_floatn = is_contained< T, gtl::vector_float_list >
 
template<typename T >
using cl::sycl::detail::is_genfloatf = is_contained< T, gtl::float_list >
 
template<typename T >
using cl::sycl::detail::is_doublen = is_contained< T, gtl::vector_double_list >
 
template<typename T >
using cl::sycl::detail::is_genfloatd = is_contained< T, gtl::double_list >
 
template<typename T >
using cl::sycl::detail::is_halfn = is_contained< T, gtl::vector_half_list >
 
template<typename T >
using cl::sycl::detail::is_genfloath = is_contained< T, gtl::half_list >
 
template<typename T >
using cl::sycl::detail::is_genfloat = is_contained< T, gtl::floating_list >
 
template<typename T >
using cl::sycl::detail::is_sgenfloat = is_contained< T, gtl::scalar_floating_list >
 
template<typename T >
using cl::sycl::detail::is_vgenfloat = is_contained< T, gtl::vector_floating_list >
 
template<typename T >
using cl::sycl::detail::is_gengeofloat = is_contained< T, gtl::geo_float_list >
 
template<typename T >
using cl::sycl::detail::is_gengeodouble = is_contained< T, gtl::geo_double_list >
 
template<typename T >
using cl::sycl::detail::is_gengeohalf = is_contained< T, gtl::geo_half_list >
 
template<typename T >
using cl::sycl::detail::is_vgengeofloat = is_contained< T, gtl::vector_geo_float_list >
 
template<typename T >
using cl::sycl::detail::is_vgengeodouble = is_contained< T, gtl::vector_geo_double_list >
 
template<typename T >
using cl::sycl::detail::is_vgengeohalf = is_contained< T, gtl::vector_geo_half_list >
 
template<typename T >
using cl::sycl::detail::is_sgengeo = is_contained< T, gtl::scalar_geo_list >
 
template<typename T >
using cl::sycl::detail::is_vgengeo = is_contained< T, gtl::vector_geo_list >
 
template<typename T >
using cl::sycl::detail::is_gencrossfloat = is_contained< T, gtl::cross_float_list >
 
template<typename T >
using cl::sycl::detail::is_gencrossdouble = is_contained< T, gtl::cross_double_list >
 
template<typename T >
using cl::sycl::detail::is_gencrosshalf = is_contained< T, gtl::cross_half_list >
 
template<typename T >
using cl::sycl::detail::is_gencross = is_contained< T, gtl::cross_floating_list >
 
template<typename T >
using cl::sycl::detail::is_charn = is_contained< T, gtl::vector_default_char_list >
 
template<typename T >
using cl::sycl::detail::is_scharn = is_contained< T, gtl::vector_signed_char_list >
 
template<typename T >
using cl::sycl::detail::is_ucharn = is_contained< T, gtl::vector_unsigned_char_list >
 
template<typename T >
using cl::sycl::detail::is_igenchar = is_contained< T, gtl::signed_char_list >
 
template<typename T >
using cl::sycl::detail::is_ugenchar = is_contained< T, gtl::unsigned_char_list >
 
template<typename T >
using cl::sycl::detail::is_genchar = is_contained< T, gtl::char_list >
 
template<typename T >
using cl::sycl::detail::is_shortn = is_contained< T, gtl::vector_signed_short_list >
 
template<typename T >
using cl::sycl::detail::is_genshort = is_contained< T, gtl::signed_short_list >
 
template<typename T >
using cl::sycl::detail::is_ushortn = is_contained< T, gtl::vector_unsigned_short_list >
 
template<typename T >
using cl::sycl::detail::is_ugenshort = is_contained< T, gtl::unsigned_short_list >
 
template<typename T >
using cl::sycl::detail::is_uintn = is_contained< T, gtl::vector_unsigned_int_list >
 
template<typename T >
using cl::sycl::detail::is_ugenint = is_contained< T, gtl::unsigned_int_list >
 
template<typename T >
using cl::sycl::detail::is_intn = is_contained< T, gtl::vector_signed_int_list >
 
template<typename T >
using cl::sycl::detail::is_genint = is_contained< T, gtl::signed_int_list >
 
template<typename T >
using cl::sycl::detail::is_ulongn = is_contained< T, gtl::vector_unsigned_long_list >
 
template<typename T >
using cl::sycl::detail::is_ugenlong = is_contained< T, gtl::unsigned_long_list >
 
template<typename T >
using cl::sycl::detail::is_longn = is_contained< T, gtl::vector_signed_long_list >
 
template<typename T >
using cl::sycl::detail::is_genlong = is_contained< T, gtl::signed_long_list >
 
template<typename T >
using cl::sycl::detail::is_ulonglongn = is_contained< T, gtl::vector_unsigned_longlong_list >
 
template<typename T >
using cl::sycl::detail::is_ugenlonglong = is_contained< T, gtl::unsigned_longlong_list >
 
template<typename T >
using cl::sycl::detail::is_longlongn = is_contained< T, gtl::vector_signed_longlong_list >
 
template<typename T >
using cl::sycl::detail::is_genlonglong = is_contained< T, gtl::signed_longlong_list >
 
template<typename T >
using cl::sycl::detail::is_igenlonginteger = is_contained< T, gtl::signed_long_integer_list >
 
template<typename T >
using cl::sycl::detail::is_ugenlonginteger = is_contained< T, gtl::unsigned_long_integer_list >
 
template<typename T >
using cl::sycl::detail::is_geninteger = is_contained< T, gtl::integer_list >
 
template<typename T >
using cl::sycl::detail::is_igeninteger = is_contained< T, gtl::signed_integer_list >
 
template<typename T >
using cl::sycl::detail::is_ugeninteger = is_contained< T, gtl::unsigned_integer_list >
 
template<typename T >
using cl::sycl::detail::is_sgeninteger = is_contained< T, gtl::scalar_integer_list >
 
template<typename T >
using cl::sycl::detail::is_vgeninteger = is_contained< T, gtl::vector_integer_list >
 
template<typename T >
using cl::sycl::detail::is_sigeninteger = is_contained< T, gtl::scalar_signed_integer_list >
 
template<typename T >
using cl::sycl::detail::is_sugeninteger = is_contained< T, gtl::scalar_unsigned_integer_list >
 
template<typename T >
using cl::sycl::detail::is_vigeninteger = is_contained< T, gtl::vector_signed_integer_list >
 
template<typename T >
using cl::sycl::detail::is_vugeninteger = is_contained< T, gtl::vector_unsigned_integer_list >
 
template<typename T >
using cl::sycl::detail::is_gentype = is_contained< T, gtl::basic_list >
 
template<typename T >
using cl::sycl::detail::is_vgentype = is_contained< T, gtl::vector_basic_list >
 
template<typename T >
using cl::sycl::detail::is_sgentype = is_contained< T, gtl::scalar_basic_list >
 
template<typename T >
using cl::sycl::detail::is_igeninteger8bit = is_gen_based_on_type_sizeof< T, 1, is_igeninteger >
 
template<typename T >
using cl::sycl::detail::is_igeninteger16bit = is_gen_based_on_type_sizeof< T, 2, is_igeninteger >
 
template<typename T >
using cl::sycl::detail::is_igeninteger32bit = is_gen_based_on_type_sizeof< T, 4, is_igeninteger >
 
template<typename T >
using cl::sycl::detail::is_igeninteger64bit = is_gen_based_on_type_sizeof< T, 8, is_igeninteger >
 
template<typename T >
using cl::sycl::detail::is_ugeninteger8bit = is_gen_based_on_type_sizeof< T, 1, is_ugeninteger >
 
template<typename T >
using cl::sycl::detail::is_ugeninteger16bit = is_gen_based_on_type_sizeof< T, 2, is_ugeninteger >
 
template<typename T >
using cl::sycl::detail::is_ugeninteger32bit = is_gen_based_on_type_sizeof< T, 4, is_ugeninteger >
 
template<typename T >
using cl::sycl::detail::is_ugeninteger64bit = is_gen_based_on_type_sizeof< T, 8, is_ugeninteger >
 
template<typename T >
using cl::sycl::detail::is_geninteger8bit = is_gen_based_on_type_sizeof< T, 1, is_geninteger >
 
template<typename T >
using cl::sycl::detail::is_geninteger16bit = is_gen_based_on_type_sizeof< T, 2, is_geninteger >
 
template<typename T >
using cl::sycl::detail::is_geninteger32bit = is_gen_based_on_type_sizeof< T, 4, is_geninteger >
 
template<typename T >
using cl::sycl::detail::is_geninteger64bit = is_gen_based_on_type_sizeof< T, 8, is_geninteger >
 
template<typename T >
using cl::sycl::detail::is_genintptr = bool_constant< is_pointer< T >::value &&is_genint< remove_pointer_t< T > >::value &&is_address_space_compliant< T, gvl::nonconst_address_space_list >::value >
 
template<typename T >
using cl::sycl::detail::is_genfloatptr = bool_constant< is_pointer< T >::value &&is_genfloat< remove_pointer_t< T > >::value &&is_address_space_compliant< T, gvl::nonconst_address_space_list >::value >
 
template<typename T >
using cl::sycl::detail::is_genptr = bool_constant< is_pointer< T >::value &&is_gentype< remove_pointer_t< T > >::value &&is_address_space_compliant< T, gvl::nonconst_address_space_list >::value >
 
template<typename T >
using cl::sycl::detail::is_nan_type = is_contained< T, gtl::nan_list >
 
template<typename T >
using cl::sycl::detail::nan_return_t = typename nan_types< T, T >::ret_type
 
template<typename T >
using cl::sycl::detail::nan_argument_base_t = typename nan_types< T, T >::arg_type
 
template<typename T >
using cl::sycl::detail::make_floating_point_t = make_type_t< T, gtl::scalar_floating_list >
 
template<typename T >
using cl::sycl::detail::make_singed_integer_t = make_type_t< T, gtl::scalar_signed_integer_list >
 
template<typename T >
using cl::sycl::detail::make_unsinged_integer_t = make_type_t< T, gtl::scalar_unsigned_integer_list >
 
template<typename T , typename B >
using cl::sycl::detail::convert_data_type = convert_data_type_impl< T, B, T >
 
template<typename T , typename T8 , typename T16 , typename T32 , typename T64 >
using cl::sycl::detail::select_apply_cl_scalar_t = conditional_t< sizeof(T)==1, T8, conditional_t< sizeof(T)==2, T16, conditional_t< sizeof(T)==4, T32, T64 > >>
 
template<typename T >
using cl::sycl::detail::select_cl_scalar_integral_signed_t = select_apply_cl_scalar_t< T, sycl::cl_char, sycl::cl_short, sycl::cl_int, sycl::cl_long >
 
template<typename T >
using cl::sycl::detail::select_cl_scalar_integral_unsigned_t = select_apply_cl_scalar_t< T, sycl::cl_uchar, sycl::cl_ushort, sycl::cl_uint, sycl::cl_ulong >
 
template<typename T >
using cl::sycl::detail::select_cl_scalar_float_t = select_apply_cl_scalar_t< T, std::false_type, sycl::cl_half, sycl::cl_float, sycl::cl_double >
 
template<typename T >
using cl::sycl::detail::select_cl_scalar_integral_t = conditional_t< std::is_signed< T >::value, select_cl_scalar_integral_signed_t< T >, select_cl_scalar_integral_unsigned_t< T > >
 
template<typename T >
using cl::sycl::detail::select_cl_scalar_t = conditional_t< std::is_integral< T >::value, select_cl_scalar_integral_t< T >, conditional_t< std::is_floating_point< T >::value, select_cl_scalar_float_t< T >, conditional_t< std::is_same< T, half >::value, cl::sycl::detail::half_impl::BIsRepresentationT, T > >>
 
template<typename T >
using cl::sycl::detail::type_helper = typename TypeHelper< T >::RetType
 
template<typename T >
using cl::sycl::detail::SelectMatchingOpenCLType_t = typename select_cl_mptr_or_vector_or_scalar< T >::type
 
template<typename T >
using cl::sycl::detail::ConvertToOpenCLType_t = conditional_t< TryToGetVectorT< SelectMatchingOpenCLType_t< T > >::value, typename TryToGetVectorT< SelectMatchingOpenCLType_t< T > >::type, conditional_t< TryToGetPointerT< SelectMatchingOpenCLType_t< T > >::value, typename TryToGetPointerVecT< SelectMatchingOpenCLType_t< T > >::type, SelectMatchingOpenCLType_t< T > >>
 
template<typename T >
using cl::sycl::detail::common_rel_ret_t = conditional_t< is_vgentype< T >::value, make_singed_integer_t< T >, int >
 
template<typename T >
using cl::sycl::detail::rel_ret_t = typename RelationalReturnType< T >::type
 
template<typename T >
using cl::sycl::detail::rel_sign_bit_test_ret_t = typename RelationalTestForSignBitType< T >::return_type
 
template<typename T >
using cl::sycl::detail::rel_sign_bit_test_arg_t = typename RelationalTestForSignBitType< T >::argument_type
 

Functions

template<typename T , typename = typename detail::enable_if_t< TryToGetPointerT<T>::value, std::true_type>>
TryToGetPointerVecT< T >::type cl::sycl::detail::TryToGetPointer (T &t)
 
template<typename T >
TryToGetPointerVecT< T * >::type cl::sycl::detail::TryToGetPointer (T *t)
 
template<typename T , typename = typename detail::enable_if_t< !TryToGetPointerT<T>::value, std::false_type>>
T cl::sycl::detail::TryToGetPointer (T &t)
 
template<typename FROM , typename TO >
detail::enable_if_t< is_vgentype< FROM >::value &&is_vgentype< TO >::value &&sizeof(TO)==sizeof(FROM), TO > cl::sycl::detail::convertDataToType (FROM t)
 
template<typename FROM , typename TO >
detail::enable_if_t<!(is_vgentype< FROM >::value &&is_vgentype< TO >::value) &&sizeof(TO)==sizeof(FROM), TO > cl::sycl::detail::convertDataToType (FROM t)
 
template<typename T >
constexpr T cl::sycl::detail::msbMask (T)
 
template<typename T >
constexpr bool cl::sycl::detail::msbIsSet (const T x)
 
template<typename T >
static constexpr T cl::sycl::detail::max_v ()
 
template<typename T >
static constexpr T cl::sycl::detail::min_v ()
 
template<typename T >
static constexpr T cl::sycl::detail::quiet_NaN ()
 
template<typename... Args>
void cl::sycl::detail::check_vector_size ()