22 #ifndef _BLAZE_MATH_EXPRESSIONS_DVECDVECMULTEXPR_H_
23 #define _BLAZE_MATH_EXPRESSIONS_DVECDVECMULTEXPR_H_
68 template<
typename VT1
77 typedef typename VT1::ResultType
RT1;
78 typedef typename VT2::ResultType
RT2;
79 typedef typename VT1::ReturnType
RN1;
80 typedef typename VT2::ReturnType
RN2;
81 typedef typename VT1::CompositeType
CT1;
82 typedef typename VT2::CompositeType
CT2;
83 typedef typename VT1::ElementType
ET1;
84 typedef typename VT2::ElementType
ET2;
112 template<
typename VT >
114 enum { value = useAssign };
142 enum { vectorizable = VT1::vectorizable && VT2::vectorizable &&
183 inline IntrinsicType
get(
size_t index )
const {
187 const IntrinsicType xmm1(
lhs_.get( index ) );
188 const IntrinsicType xmm2(
rhs_.get( index ) );
229 template<
typename T >
256 template<
typename VT >
290 template<
typename VT >
300 const ResultType tmp( rhs );
320 template<
typename VT >
321 friend inline typename EnableIf< UseAssign<VT> >::Type
330 const ResultType tmp( rhs );
354 template<
typename VT >
355 friend inline typename EnableIf< UseAssign<VT> >::Type
364 const ResultType tmp( rhs );
388 template<
typename VT >
389 friend inline typename EnableIf< UseAssign<VT> >::Type
414 template<
typename VT >
415 friend inline typename EnableIf< UseAssign<VT> >::Type
471 template<
typename T1
474 inline const DVecDVecMultExpr<T1,T2,TF>
477 if( (~lhs).
size() != (~rhs).
size() )
478 throw std::invalid_argument(
"Vector sizes do not match" );