10 #ifndef EIGEN_FORCEALIGNEDACCESS_H 11 #define EIGEN_FORCEALIGNEDACCESS_H 29 template<
typename ExpressionType>
42 EIGEN_DEVICE_FUNC
explicit inline ForceAlignedAccess(
const ExpressionType& matrix) : m_expression(matrix) {}
44 EIGEN_DEVICE_FUNC
inline Index rows()
const {
return m_expression.rows(); }
45 EIGEN_DEVICE_FUNC
inline Index cols()
const {
return m_expression.cols(); }
46 EIGEN_DEVICE_FUNC
inline Index outerStride()
const {
return m_expression.outerStride(); }
47 EIGEN_DEVICE_FUNC
inline Index innerStride()
const {
return m_expression.innerStride(); }
49 EIGEN_DEVICE_FUNC
inline const CoeffReturnType coeff(
Index row,
Index col)
const 51 return m_expression.coeff(row, col);
54 EIGEN_DEVICE_FUNC
inline Scalar& coeffRef(
Index row,
Index col)
56 return m_expression.const_cast_derived().coeffRef(row, col);
59 EIGEN_DEVICE_FUNC
inline const CoeffReturnType coeff(
Index index)
const 61 return m_expression.coeff(index);
64 EIGEN_DEVICE_FUNC
inline Scalar& coeffRef(
Index index)
66 return m_expression.const_cast_derived().coeffRef(index);
69 template<
int LoadMode>
70 inline const PacketScalar packet(
Index row,
Index col)
const 72 return m_expression.template packet<Aligned>(row, col);
75 template<
int LoadMode>
76 inline void writePacket(
Index row,
Index col,
const PacketScalar& x)
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>
88 inline void writePacket(
Index index,
const PacketScalar& x)
90 m_expression.const_cast_derived().template writePacket<Aligned>(index, x);
93 EIGEN_DEVICE_FUNC
operator const ExpressionType&()
const {
return m_expression; }
96 const ExpressionType& m_expression;
99 ForceAlignedAccess& operator=(
const ForceAlignedAccess&);
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 Enforce aligned packet loads and stores regardless of what is requested.
Definition: ForceAlignedAccess.h:34
Namespace containing all symbols from the Eigen library.
Definition: bench_norm.cpp:85
Definition: XprHelper.h:463
const Derived & forceAlignedAccess() const
Definition: MatrixBase.h:312
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
Definition: Meta.h:33
Definition: BandTriangularSolver.h:13
Base class for all dense matrices, vectors, and expressions.
Definition: MatrixBase.h:48
Definition: ForwardDeclarations.h:17