diff options
author | Gael Guennebaud <g.gael@free.fr> | 2012-01-31 12:44:59 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2012-01-31 12:44:59 +0100 |
commit | 670e3af5a80ba8148cc52849dcb145276fd08d6a (patch) | |
tree | 8657151fb461642b8aaa39ce5e1cdcfa220086f7 /Eigen/src/Core/Diagonal.h | |
parent | 18e3ac0f0d779834fdb1725f29f7ceafff3e102f (diff) |
add .data() member to Diagonal<>
Diffstat (limited to 'Eigen/src/Core/Diagonal.h')
-rw-r--r-- | Eigen/src/Core/Diagonal.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/Eigen/src/Core/Diagonal.h b/Eigen/src/Core/Diagonal.h index 3a833f678..8d9a423ef 100644 --- a/Eigen/src/Core/Diagonal.h +++ b/Eigen/src/Core/Diagonal.h @@ -101,6 +101,15 @@ template<typename MatrixType, int DiagIndex> class Diagonal return 0; } + typedef typename internal::conditional< + internal::is_lvalue<MatrixType>::value, + Scalar, + const Scalar + >::type ScalarWithConstIfNotLvalue; + + inline ScalarWithConstIfNotLvalue* data() { return &(m_matrix.const_cast_derived().coeffRef(rowOffset(), colOffset())); } + inline const Scalar* data() const { return &(m_matrix.const_cast_derived().coeffRef(rowOffset(), colOffset())); } + inline Scalar& coeffRef(Index row, Index) { EIGEN_STATIC_ASSERT_LVALUE(MatrixType) |