26 using Base::m_functor;
29 typedef typename Base::Scalar Scalar;
30 typedef typename Base::DstXprType DstXprType;
33 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
35 :
Base(dst, src, func, dstExpr)
38 template<
int StoreMode,
int LoadMode,
typename PacketType>
39 EIGEN_STRONG_INLINE
void assignPacket(
Index row,
Index col)
41 PacketType tmp = m_src.template packet<LoadMode,PacketType>(row,col);
42 const_cast<SrcEvaluatorTypeT&
>(m_src).
template writePacket<LoadMode>(row,col, m_dst.template packet<StoreMode,PacketType>(row,col));
43 m_dst.template writePacket<StoreMode>(row,col,tmp);
46 template<
int StoreMode,
int LoadMode,
typename PacketType>
47 EIGEN_STRONG_INLINE
void assignPacket(
Index index)
49 PacketType tmp = m_src.template packet<LoadMode,PacketType>(index);
50 const_cast<SrcEvaluatorTypeT&
>(m_src).
template writePacket<LoadMode>(index, m_dst.template packet<StoreMode,PacketType>(index));
51 m_dst.template writePacket<StoreMode>(index,tmp);
55 template<
int StoreMode,
int LoadMode,
typename PacketType>
56 EIGEN_STRONG_INLINE
void assignPacketByOuterInner(
Index outer,
Index inner)
58 Index row = Base::rowIndexByOuterInner(outer, inner);
59 Index col = Base::colIndexByOuterInner(outer, inner);
60 assignPacket<StoreMode,LoadMode,PacketType>(row, col);