23namespace vctr::expressions
26template <
size_t extent,
class SrcType>
32 VCTR_COMMON_UNARY_EXPRESSION_MEMBERS (
SSEFilter, src)
34 VCTR_FORCEDINLINE
constexpr value_type operator[] (
size_t i)
const
40 VCTR_FORWARD_PREPARE_SIMD_EVALUATION_UNARY_EXPRESSION_MEMBER_FUNCTIONS
45 return src.getSSE (i);
49template <
size_t extent,
class SrcType>
55 VCTR_COMMON_UNARY_EXPRESSION_MEMBERS (
AVXFilter, src)
57 VCTR_FORCEDINLINE
constexpr value_type operator[] (
size_t i)
const
63 VCTR_FORWARD_PREPARE_SIMD_EVALUATION_UNARY_EXPRESSION_MEMBER_FUNCTIONS
68 return src.getAVX (i);
74 return src.getAVX (i);
78template <
size_t extent,
class SrcType>
84 VCTR_COMMON_UNARY_EXPRESSION_MEMBERS (
NeonFilter, src)
86 VCTR_FORCEDINLINE
constexpr value_type operator[] (
size_t i)
const
92 VCTR_FORWARD_PREPARE_SIMD_EVALUATION_UNARY_EXPRESSION_MEMBER_FUNCTIONS
97 return src.getNeon (i);
101template <
size_t extent,
class SrcType>
109 VCTR_FORCEDINLINE
constexpr value_type operator[] (
size_t i)
const
115 VCTR_FORWARD_PREPARE_SIMD_EVALUATION_UNARY_EXPRESSION_MEMBER_FUNCTIONS
120 return src.getSSE (i);
126 return src.getAVX (i);
132 return src.getAVX (i);
138 return src.getNeon (i);
142template <
size_t extent,
class SrcType>
150 VCTR_FORCEDINLINE
constexpr value_type operator[] (
size_t i)
const
163 VCTR_FORCEDINLINE
const value_type* evalNextVectorOpInExpressionChain (value_type* dst)
const
167 return src.evalNextVectorOpInExpressionChain (dst);
171 VCTR_FORWARD_PREPARE_SIMD_EVALUATION_UNARY_EXPRESSION_MEMBER_FUNCTIONS
176 return src.getSSE (i);
182 return src.getAVX (i);
188 return src.getAVX (i);
194 return src.getNeon (i);
Definition: SIMDFilter.h:51
Definition: SIMDFilter.h:103
Definition: SIMDFilter.h:144
Definition: SIMDFilter.h:80
Definition: SIMDFilter.h:28
Constrains a type to have a member function data() const.
Definition: ContainerAndExpressionConcepts.h:136
Constrains a type to have a member function evalNextVectorOpInExpressionChain (value_type*) const.
Definition: ContainerAndExpressionConcepts.h:112
Constrains a type to have a member function getAVX (size_t) const.
Definition: ContainerAndExpressionConcepts.h:92
Constrains a type to have a member function getNeon (size_t) const.
Definition: ContainerAndExpressionConcepts.h:84
Constrains a type to have a member function getSSE (size_t) const.
Definition: ContainerAndExpressionConcepts.h:100
Constrains a type to represent a real valued floating point number.
Definition: NumericTypeConcepts.h:83
constexpr ExpressionChainBuilder< expressions::SSEFilter > useSSE
This filter expression ensures that only SSE based accelerated evaluation of the previous expression ...
Definition: SIMDFilter.h:209
constexpr ExpressionChainBuilder< expressions::AVXFilter > useAVX
This filter expression ensures that only AVX based accelerated evaluation of the previous expression ...
Definition: SIMDFilter.h:217
constexpr ExpressionChainBuilder< expressions::NeonFilter > useNeon
This filter expression ensures that only Neon based accelerated evaluation of the previous expression...
Definition: SIMDFilter.h:225
constexpr ExpressionChainBuilder< expressions::AnySIMDFilter > useSIMD
This filter expression ensures that only SIMD based accelerated evaluation of the previous expression...
Definition: SIMDFilter.h:242
constexpr ExpressionChainBuilder< expressions::AssertSIMDFilter > assertSIMD
This filter inserts an assertion that will be hit in case that an expression is evaluated with anythi...
Definition: SIMDFilter.h:250
The main namespace of the VCTR project.
Definition: Array.h:24
typename detail::ValueType< std::remove_cvref_t< T > >::Type ValueType
If T is an expression template, it equals its return type, if it's a type that defines value_type as ...
Definition: Traits.h:201
Definition: AVXRegister.h:28
An expression chain builder is an object which supplies various operator<< overloads which build chai...
Definition: ExpressionChainBuilder.h:157
The base class to every expression template.
Definition: ExpressionTemplate.h:37
Definition: NeonRegister.h:28
Definition: SSERegister.h:28