20 template<
typename DstEvaluatorTypeT,
typename SrcEvaluatorTypeT>
21 class generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, swap_assign_op<typename DstEvaluatorTypeT::Scalar>,
Specialized>
22 :
public generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, swap_assign_op<typename DstEvaluatorTypeT::Scalar>, BuiltIn>
25 typedef generic_dense_assignment_kernel<DstEvaluatorTypeT, SrcEvaluatorTypeT, swap_assign_op<typename DstEvaluatorTypeT::Scalar>,
BuiltIn> Base;
28 using Base::m_functor;
31 typedef typename Base::Scalar Scalar;
32 typedef typename Base::DstXprType DstXprType;
33 typedef swap_assign_op<Scalar> Functor;
36 generic_dense_assignment_kernel(DstEvaluatorTypeT &dst,
const SrcEvaluatorTypeT &src,
const Functor &func, DstXprType& dstExpr)
37 : Base(dst, src, func, dstExpr)
40 template<
int StoreMode,
int LoadMode,
typename PacketType>
43 PacketType tmp = m_src.template packet<LoadMode,PacketType>(
row,
col);
44 const_cast<SrcEvaluatorTypeT&
>(m_src).
template writePacket<LoadMode>(
row,
col, m_dst.template packet<StoreMode,PacketType>(
row,
col));
45 m_dst.template writePacket<StoreMode>(
row,
col,tmp);
48 template<
int StoreMode,
int LoadMode,
typename PacketType>
49 EIGEN_STRONG_INLINE
void assignPacket(
Index index)
51 PacketType tmp = m_src.template packet<LoadMode,PacketType>(index);
52 const_cast<SrcEvaluatorTypeT&
>(m_src).
template writePacket<LoadMode>(index, m_dst.template packet<StoreMode,PacketType>(index));
53 m_dst.template writePacket<StoreMode>(index,tmp);
57 template<
int StoreMode,
int LoadMode,
typename PacketType>
58 EIGEN_STRONG_INLINE
void assignPacketByOuterInner(
Index outer,
Index inner)
60 Index row = Base::rowIndexByOuterInner(outer, inner);
61 Index col = Base::colIndexByOuterInner(outer, inner);
62 assignPacket<StoreMode,LoadMode,PacketType>(
row,
col);
RowXpr row(Index i)
This is the const version of row(). */.
ColXpr col(Index i)
This is the const version of col().
#define EIGEN_DEVICE_FUNC
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.