Template Struct CudaCanVectorise#
Defined in File assignOps.hpp
Struct Documentation#
-
template<typename ...Args>
struct CudaCanVectorise# Public Types
-
using First = decltype(extractFirst<Args...>())#
Public Static Functions
-
template<typename First, typename ...Rest>
static inline constexpr auto extractFirst()#
-
template<typename T>
static inline constexpr bool edgeCases()#
Public Static Attributes
-
static constexpr bool supportsVectorisation = (typetraits::TypeInfo<std::decay_t<Args>>::allowVectorisation && ...)#
-
static constexpr bool dtypesAreSame = (std::is_same_v<typenametypetraits::TypeInfo<std::decay_t<Args>>::Scalar, typenametypetraits::TypeInfo<std::decay_t<Args>>::Scalar> && ...)#
-
static constexpr bool dtypeSupportsVectorisation = ((typetraits::TypeInfo<typename CudaVectorExtractor<typename typetraits::TypeInfo<std::decay_t<Args>>::Scalar>::Scalar>::cudaPacketWidth > 1) && ...)#
-
static constexpr bool fitsEdgeCases = (edgeCases<typename typetraits::TypeInfo<std::decay_t<Args>>::Scalar>() && ...)#
-
static constexpr bool value = supportsVectorisation && dtypesAreSame && dtypeSupportsVectorisation && fitsEdgeCases#
-
using First = decltype(extractFirst<Args...>())#