22 #ifndef _BLAZE_MATH_EXPRESSIONS_DMATABSEXPR_H_
23 #define _BLAZE_MATH_EXPRESSIONS_DMATABSEXPR_H_
74 typedef typename MT::ResultType
RT;
75 typedef typename MT::ReturnType
RN;
76 typedef typename MT::CompositeType
CT;
104 template<
typename MT2 >
106 enum { value = useAssign };
131 enum { vectorizable = 0 };
175 return dm_.columns();
195 template<
typename T >
197 return dm_.canAlias( alias );
207 template<
typename T >
209 return dm_.isAliased( alias );
232 template<
typename MT2 >
245 const size_t m( rhs.
rows() );
246 const size_t n( rhs.
columns() );
248 for(
size_t i=0UL; i<m; ++i ) {
249 for(
size_t j=0UL; j<n; ++j ) {
250 (~lhs)(i,j) =
abs( (~lhs)(i,j) );
271 template<
typename MT2 >
284 const size_t m( rhs.
rows() );
285 const size_t n( rhs.
columns() );
287 for(
size_t j=0UL; j<n; ++j ) {
288 for(
size_t i=0UL; i<m; ++i ) {
289 (~lhs)(i,j) =
abs( (~lhs)(i,j) );
310 template<
typename MT2
312 friend inline typename EnableIf< UseAssign<MT2> >::Type
317 typedef typename SelectType< SO == SO2, ResultType, OppositeType >::Type TmpType;
329 const TmpType tmp( rhs );
349 template<
typename MT2
351 friend inline typename EnableIf< UseAssign<MT2> >::Type
387 template<
typename MT2
389 friend inline typename EnableIf< UseAssign<MT2> >::Type
454 template<
typename MT
484 template<
typename MT
486 inline const DMatAbsExpr<MT,SO>&
abs(
const DMatAbsExpr<MT,SO>& dm )
506 template<
typename MT,
bool SO >
507 struct RowExprTrait< DMatAbsExpr<MT,SO> >
511 typedef typename AbsExprTrait< typename RowExprTrait<const MT>::Type >::Type Type;
520 template<
typename MT,
bool SO >
521 struct ColumnExprTrait< DMatAbsExpr<MT,SO> >
525 typedef typename AbsExprTrait< typename ColumnExprTrait<const MT>::Type >::Type Type;