10 #ifndef EIGEN_ARRAYWRAPPER_H 11 #define EIGEN_ARRAYWRAPPER_H 27 template<
typename ExpressionType>
29 :
public traits<typename remove_all<typename ExpressionType::Nested>::type >
40 template<
typename ExpressionType>
49 typedef typename
internal::conditional<
50 internal::is_lvalue<ExpressionType>::value,
63 inline Index rows()
const {
return m_expression.rows(); }
65 inline Index cols()
const {
return m_expression.cols(); }
74 inline const Scalar*
data()
const {
return m_expression.data(); }
79 return m_expression.coeffRef(rowId, colId);
85 return m_expression.coeffRef(index);
88 template<
typename Dest>
90 inline void evalTo(Dest& dst)
const { dst = m_expression; }
124 template<
typename ExpressionType>
126 :
public traits<typename remove_all<typename ExpressionType::Nested>::type >
137 template<
typename ExpressionType>
146 typedef typename
internal::conditional<
147 internal::is_lvalue<ExpressionType>::value,
154 using Base::coeffRef;
157 explicit inline
MatrixWrapper(ExpressionType& matrix) : m_expression(matrix) {}
160 inline Index rows()
const {
return m_expression.rows(); }
162 inline Index cols()
const {
return m_expression.cols(); }
171 inline const Scalar*
data()
const {
return m_expression.data(); }
176 return m_expression.derived().coeffRef(rowId, colId);
182 return m_expression.coeffRef(index);
207 #endif // EIGEN_ARRAYWRAPPER_H EIGEN_DEVICE_FUNC ScalarWithConstIfNotLvalue * data()
NestedExpressionType m_expression
internal::remove_all< ExpressionType >::type NestedExpression
EIGEN_DEVICE_FUNC void resize(Index rows, Index cols)
#define EIGEN_STRONG_INLINE
internal::traits< Derived >::Scalar Scalar
EIGEN_DEVICE_FUNC Index outerStride() const
EIGEN_DEVICE_FUNC Index rows() const
Expression of a mathematical vector or matrix as an array object.
EIGEN_DEVICE_FUNC const Scalar & coeffRef(Index index) const
EIGEN_DEVICE_FUNC void resize(Index newSize)
MatrixBase< MatrixWrapper< ExpressionType > > Base
EIGEN_DEVICE_FUNC const internal::remove_all< NestedExpressionType >::type & nestedExpression() const
Expression of an array as a mathematical vector or matrix.
NestedExpressionType m_expression
EIGEN_DEVICE_FUNC Index cols() const
EIGEN_DEVICE_FUNC const Scalar * data() const
EIGEN_DEVICE_FUNC const Scalar * data() const
EIGEN_DEVICE_FUNC const Scalar & coeffRef(Index rowId, Index colId) const
EIGEN_DEVICE_FUNC const Scalar & coeffRef(Index rowId, Index colId) const
EIGEN_DEFAULT_DENSE_INDEX_TYPE Index
The Index type as used for the API.
EIGEN_DEVICE_FUNC const Scalar & coeffRef(Index index) const
#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived)
ArrayBase< ArrayWrapper > Base
Base class for all 1D and 2D array, and related expressions.
internal::remove_all< ExpressionType >::type NestedExpression
EIGEN_DEVICE_FUNC Index innerStride() const
EIGEN_DEVICE_FUNC void resize(Index newSize)
const unsigned int NestByRefBit
EIGEN_DEVICE_FUNC Index outerStride() const
const internal::remove_all< NestedExpressionType >::type &EIGEN_DEVICE_FUNC nestedExpression() const
EIGEN_DEVICE_FUNC void resize(Index rows, Index cols)
#define EIGEN_DENSE_PUBLIC_INTERFACE(Derived)
EIGEN_DEVICE_FUNC Index cols() const
EIGEN_DEVICE_FUNC void evalTo(Dest &dst) const
EIGEN_DEVICE_FUNC Index innerStride() const
Base class for all dense matrices, vectors, and expressions.
EIGEN_DEVICE_FUNC Index rows() const
EIGEN_DEVICE_FUNC ScalarWithConstIfNotLvalue * data()