22 #ifndef _BLAZE_MATH_EXPRESSIONS_DVECDVECADDEXPR_H_
23 #define _BLAZE_MATH_EXPRESSIONS_DVECDVECADDEXPR_H_
70 template<
typename VT1
79 typedef typename VT1::ResultType
RE1;
80 typedef typename VT2::ResultType
RE2;
81 typedef typename VT1::ReturnType
RN1;
82 typedef typename VT2::ReturnType
RN2;
83 typedef typename VT1::CompositeType
CT1;
84 typedef typename VT2::CompositeType
CT2;
85 typedef typename VT1::ElementType
ET1;
86 typedef typename VT2::ElementType
ET2;
114 template<
typename VT >
116 enum { value = useAssign };
144 enum { vectorizable = VT1::vectorizable && VT2::vectorizable &&
185 inline IntrinsicType
get(
size_t index )
const {
189 const IntrinsicType xmm1(
lhs_.get( index ) );
190 const IntrinsicType xmm2(
rhs_.get( index ) );
231 template<
typename T >
258 template<
typename VT3 >
292 template<
typename VT3 >
302 const ResultType tmp( rhs );
322 template<
typename VT3 >
323 friend inline typename EnableIf< UseAssign<VT3> >::Type
352 template<
typename VT3 >
353 friend inline typename EnableIf< UseAssign<VT3> >::Type
382 template<
typename VT3 >
383 friend inline typename EnableIf< UseAssign<VT3> >::Type
392 const ResultType tmp( rhs );
446 template<
typename T1
449 inline const DVecDVecAddExpr<T1,T2,TF>
452 if( (~lhs).
size() != (~rhs).
size() )
453 throw std::invalid_argument(
"Vector sizes do not match" );