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 &&
181 inline IntrinsicType
get(
size_t index )
const {
185 const IntrinsicType xmm1(
lhs_.get( index ) );
186 const IntrinsicType xmm2(
rhs_.get( index ) );
227 template<
typename T >
240 template<
typename T >
242 return (
lhs_.isAliased( alias ) ||
rhs_.isAliased( alias ) );
266 template<
typename VT3 >
302 template<
typename VT3 >
314 const ResultType tmp( rhs );
334 template<
typename VT3 >
335 friend inline typename EnableIf< UseAssign<VT3> >::Type
366 template<
typename VT3 >
367 friend inline typename EnableIf< UseAssign<VT3> >::Type
398 template<
typename VT3 >
399 friend inline typename EnableIf< UseAssign<VT3> >::Type
410 const ResultType tmp( rhs );
464 template<
typename T1
467 inline const DVecDVecAddExpr<T1,T2,TF>
472 if( (~lhs).
size() != (~rhs).
size() )
473 throw std::invalid_argument(
"Vector sizes do not match" );