38 template<
typename ExpressionType>
39 struct traits<SwapWrapper<ExpressionType> > :
traits<ExpressionType> {};
43 :
public internal::dense_xpr_base<SwapWrapper<ExpressionType> >::type
47 typedef typename internal::dense_xpr_base<SwapWrapper>::type
Base;
49 typedef typename internal::packet_traits<Scalar>::type
Packet;
58 typedef typename internal::conditional<
59 internal::is_lvalue<ExpressionType>::value,
69 return m_expression.const_cast_derived().coeffRef(row, col);
74 return m_expression.const_cast_derived().coeffRef(index);
87 template<
typename OtherDerived>
90 OtherDerived& _other = other.const_cast_derived();
92 && col >= 0 && col <
cols());
94 m_expression.coeffRef(row, col) = _other.coeff(row, col);
95 _other.coeffRef(row, col) = tmp;
98 template<
typename OtherDerived>
101 OtherDerived& _other = other.const_cast_derived();
105 _other.coeffRef(index) = tmp;
108 template<
typename OtherDerived,
int StoreMode,
int LoadMode>
111 OtherDerived& _other = other.const_cast_derived();
113 && col >= 0 && col <
cols());
116 _other.template packet<LoadMode>(
row,
col)
118 _other.template writePacket<LoadMode>(
row,
col, tmp);
121 template<
typename OtherDerived,
int StoreMode,
int LoadMode>
124 OtherDerived& _other = other.const_cast_derived();
128 _other.template packet<LoadMode>(index)
130 _other.template writePacket<LoadMode>(index, tmp);
141 #endif // EIGEN_SWAP_H