VCTR
Loading...
Searching...
No Matches
vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes > Struct Template Reference

Supplies some handy typedefs and traits needed when implementing expression templates. More...

Classes

struct  ElementTraits
 Some common traits you want to check when constraining expression template functions. More...
 

Public Types

using CommonSrcElement = ElementTraits< std::common_type_t< std::remove_const_t< ValueType< SrcTypes > >... > >
 The common type for all source element types along with its traits.
 
using CommonElement = ElementTraits< std::common_type_t< ReturnElementType, typename CommonSrcElement::Type > >
 The common type for all source element types and the return type along with its traits.
 
using Neon = NeonRegister< typename CommonElement::Type >
 The NeonRegister type for the common element type.
 
using NeonSrc = NeonRegister< typename CommonSrcElement::Type >
 The NeonRegister type for the common source element type.
 
using NeonRet = NeonRegister< ReturnElementType >
 The NeonRegister type for the common return element type.
 
using AVX = AVXRegister< typename CommonElement::Type >
 The AVXRegister type for the common element type.
 
using AVXSrc = AVXRegister< typename CommonSrcElement::Type >
 The AVXRegister type for the common source element type.
 
using AVXRet = AVXRegister< ReturnElementType >
 The AVXRegister type for the common return element type.
 
using SSE = SSERegister< typename CommonElement::Type >
 The SSERegister type for the common element type.
 
using SSESrc = SSERegister< typename CommonSrcElement::Type >
 The SSERegister type for the common source element type.
 
using SSERet = SSERegister< ReturnElementType >
 The SSERegister type for the common return element type.
 
using Accelerate = PlatformVectorOps::AppleAccelerate< typename CommonElement::Type >
 The PlatformVectorOps::AppleAccelerate type for the common element type.
 
using IPP = PlatformVectorOps::IntelIPP< typename CommonElement::Type >
 The PlatformVectorOps::IntelIPP type for the common element type.
 

Static Public Attributes

static constexpr auto allElementTypesSame = are::same<ReturnElementType, std::remove_const_t<ValueType<SrcTypes>>...>
 Indicates if all source element types and the return types are same.
 

Detailed Description

template<class ReturnElementType, class... SrcTypes>
struct vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >

Supplies some handy typedefs and traits needed when implementing expression templates.

Member Typedef Documentation

◆ Accelerate

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::Accelerate = PlatformVectorOps::AppleAccelerate<typename CommonElement::Type>

The PlatformVectorOps::AppleAccelerate type for the common element type.

◆ AVX

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::AVX = AVXRegister<typename CommonElement::Type>

The AVXRegister type for the common element type.

◆ AVXRet

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::AVXRet = AVXRegister<ReturnElementType>

The AVXRegister type for the common return element type.

◆ AVXSrc

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::AVXSrc = AVXRegister<typename CommonSrcElement::Type>

The AVXRegister type for the common source element type.

◆ CommonElement

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::CommonElement = ElementTraits<std::common_type_t<ReturnElementType, typename CommonSrcElement::Type> >

The common type for all source element types and the return type along with its traits.

◆ CommonSrcElement

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::CommonSrcElement = ElementTraits<std::common_type_t<std::remove_const_t<ValueType<SrcTypes> >...> >

The common type for all source element types along with its traits.

◆ IPP

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::IPP = PlatformVectorOps::IntelIPP<typename CommonElement::Type>

The PlatformVectorOps::IntelIPP type for the common element type.

◆ Neon

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::Neon = NeonRegister<typename CommonElement::Type>

The NeonRegister type for the common element type.

◆ NeonRet

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::NeonRet = NeonRegister<ReturnElementType>

The NeonRegister type for the common return element type.

◆ NeonSrc

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::NeonSrc = NeonRegister<typename CommonSrcElement::Type>

The NeonRegister type for the common source element type.

◆ SSE

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::SSE = SSERegister<typename CommonElement::Type>

The SSERegister type for the common element type.

◆ SSERet

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::SSERet = SSERegister<ReturnElementType>

The SSERegister type for the common return element type.

◆ SSESrc

template<class ReturnElementType , class... SrcTypes>
using vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::SSESrc = SSERegister<typename CommonSrcElement::Type>

The SSERegister type for the common source element type.

Member Data Documentation

◆ allElementTypesSame

template<class ReturnElementType , class... SrcTypes>
constexpr auto vctr::ExpressionTemplateBase::ExpressionTypes< ReturnElementType, SrcTypes >::allElementTypesSame = are::same<ReturnElementType, std::remove_const_t<ValueType<SrcTypes>>...>
staticconstexpr

Indicates if all source element types and the return types are same.


The documentation for this struct was generated from the following file: