34template<
typename ExpressionType>
class ForceAlignedAccess
35 :
public internal::dense_xpr_base< ForceAlignedAccess<ExpressionType> >::type
39 typedef typename internal::dense_xpr_base<ForceAlignedAccess>::type Base;
40 EIGEN_DENSE_PUBLIC_INTERFACE(ForceAlignedAccess)
42 EIGEN_DEVICE_FUNC
explicit inline ForceAlignedAccess(
const ExpressionType& matrix) : m_expression(matrix) {}
44 EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
45 inline Index rows()
const EIGEN_NOEXCEPT {
return m_expression.rows(); }
46 EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
47 inline Index cols()
const EIGEN_NOEXCEPT {
return m_expression.cols(); }
48 EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
49 inline Index outerStride()
const EIGEN_NOEXCEPT {
return m_expression.outerStride(); }
50 EIGEN_DEVICE_FUNC EIGEN_CONSTEXPR
51 inline Index innerStride()
const EIGEN_NOEXCEPT {
return m_expression.innerStride(); }
53 EIGEN_DEVICE_FUNC
inline const CoeffReturnType coeff(
Index row,
Index col)
const
55 return m_expression.coeff(row, col);
60 return m_expression.const_cast_derived().coeffRef(row, col);
63 EIGEN_DEVICE_FUNC
inline const CoeffReturnType coeff(
Index index)
const
65 return m_expression.coeff(index);
68 EIGEN_DEVICE_FUNC
inline Scalar& coeffRef(
Index index)
70 return m_expression.const_cast_derived().coeffRef(index);
73 template<
int LoadMode>
74 inline const PacketScalar packet(
Index row,
Index col)
const
76 return m_expression.template packet<Aligned>(row, col);
79 template<
int LoadMode>
80 inline void writePacket(
Index row,
Index col,
const PacketScalar& x)
82 m_expression.const_cast_derived().template writePacket<Aligned>(row, col, x);
85 template<
int LoadMode>
86 inline const PacketScalar packet(
Index index)
const
88 return m_expression.template packet<Aligned>(index);
91 template<
int LoadMode>
92 inline void writePacket(
Index index,
const PacketScalar& x)
94 m_expression.const_cast_derived().template writePacket<Aligned>(index, x);
97 EIGEN_DEVICE_FUNC
operator const ExpressionType&()
const {
return m_expression; }
100 const ExpressionType& m_expression;
103 ForceAlignedAccess& operator=(
const ForceAlignedAccess&);
131inline typename internal::add_const_on_value_type<typename internal::conditional<Enable,ForceAlignedAccess<Derived>,Derived&>::type>::type
internal::add_const_on_value_type< typenameinternal::conditional< Enable, ForceAlignedAccess< Derived >, Derived & >::type >::type forceAlignedAccessIf() const
Definition ForceAlignedAccess.h:132