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 &&
179 inline IntrinsicType
get(
size_t index )
const {
183 const IntrinsicType xmm1(
lhs_.get( index ) );
184 const IntrinsicType xmm2(
rhs_.get( index ) );
225 template<
typename T >
238 template<
typename T >
240 return (
lhs_.isAliased( alias ) ||
rhs_.isAliased( alias ) );
264 template<
typename VT >
300 template<
typename VT >
312 const ResultType tmp( rhs );
332 template<
typename VT >
333 friend inline typename EnableIf< UseAssign<VT> >::Type
344 const ResultType tmp( rhs );
368 template<
typename VT >
369 friend inline typename EnableIf< UseAssign<VT> >::Type
380 const ResultType tmp( rhs );
404 template<
typename VT >
405 friend inline typename EnableIf< UseAssign<VT> >::Type
432 template<
typename VT >
433 friend inline typename EnableIf< UseAssign<VT> >::Type
491 template<
typename T1
494 inline const DVecDVecMultExpr<T1,T2,TF>
499 if( (~lhs).
size() != (~rhs).
size() )
500 throw std::invalid_argument(
"Vector sizes do not match" );