10 #ifndef EIGEN_FORCEALIGNEDACCESS_H 11 #define EIGEN_FORCEALIGNEDACCESS_H 29 template<
typename ExpressionType>
44 inline Index
rows()
const {
return m_expression.rows(); }
45 inline Index
cols()
const {
return m_expression.cols(); }
46 inline Index
outerStride()
const {
return m_expression.outerStride(); }
47 inline Index
innerStride()
const {
return m_expression.innerStride(); }
49 inline const CoeffReturnType
coeff(Index
row, Index
col)
const 51 return m_expression.coeff(row, col);
56 return m_expression.const_cast_derived().coeffRef(row, col);
59 inline const CoeffReturnType
coeff(Index index)
const 61 return m_expression.coeff(index);
66 return m_expression.const_cast_derived().coeffRef(index);
69 template<
int LoadMode>
72 return m_expression.template packet<Aligned>(
row,
col);
75 template<
int LoadMode>
78 m_expression.const_cast_derived().template writePacket<Aligned>(
row,
col, x);
81 template<
int LoadMode>
82 inline const PacketScalar
packet(Index index)
const 84 return m_expression.template packet<Aligned>(index);
87 template<
int LoadMode>
90 m_expression.const_cast_derived().template writePacket<Aligned>(index, x);
93 operator const ExpressionType&()
const {
return m_expression; }
105 template<
typename Derived>
115 template<
typename Derived>
125 template<
typename Derived>
126 template<
bool Enable>
136 template<
typename Derived>
137 template<
bool Enable>
146 #endif // EIGEN_FORCEALIGNEDACCESS_H void writePacket(Index index, const PacketScalar &x)
Enforce aligned packet loads and stores regardless of what is requested.
Index outerStride() const
const CoeffReturnType coeff(Index row, Index col) const
const PacketScalar packet(Index index) const
internal::dense_xpr_base< ForceAlignedAccess >::type Base
Scalar & coeffRef(Index index)
const ForceAlignedAccess< Derived > forceAlignedAccess() const
Scalar & coeffRef(Index row, Index col)
void writePacket(Index row, Index col, const PacketScalar &x)
const CoeffReturnType coeff(Index index) const
#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
const ExpressionType & m_expression
const PacketScalar packet(Index row, Index col) const
Index innerStride() const
internal::add_const_on_value_type< typename internal::conditional< Enable, ForceAlignedAccess< Derived >, Derived & >::type >::type forceAlignedAccessIf() const