diff options
author | Benoit Jacob <jacob.benoit.1@gmail.com> | 2010-05-09 09:41:54 -0400 |
---|---|---|
committer | Benoit Jacob <jacob.benoit.1@gmail.com> | 2010-05-09 09:41:54 -0400 |
commit | 6624b93d67dea8fd07a60a0b8508d670b45efc1e (patch) | |
tree | 50fd6df7f50388db890043dd50bb9264a7e26ed1 /Eigen | |
parent | 8f076f6817504bc2c643467b1efd7c89cde4e378 (diff) |
add important comment and move stride helpers to DenseCoeffsBase.h
Diffstat (limited to 'Eigen')
-rw-r--r-- | Eigen/src/Core/DenseBase.h | 24 | ||||
-rw-r--r-- | Eigen/src/Core/DenseCoeffsBase.h | 29 |
2 files changed, 29 insertions, 24 deletions
diff --git a/Eigen/src/Core/DenseBase.h b/Eigen/src/Core/DenseBase.h index 046c46e4e..728bd87df 100644 --- a/Eigen/src/Core/DenseBase.h +++ b/Eigen/src/Core/DenseBase.h @@ -26,30 +26,6 @@ #ifndef EIGEN_DENSEBASE_H #define EIGEN_DENSEBASE_H -template<typename Derived, bool HasDirectAccess = ei_has_direct_access<Derived>::ret> -struct ei_inner_stride_at_compile_time -{ - enum { ret = ei_traits<Derived>::InnerStrideAtCompileTime }; -}; - -template<typename Derived> -struct ei_inner_stride_at_compile_time<Derived, false> -{ - enum { ret = 0 }; -}; - -template<typename Derived, bool HasDirectAccess = ei_has_direct_access<Derived>::ret> -struct ei_outer_stride_at_compile_time -{ - enum { ret = ei_traits<Derived>::OuterStrideAtCompileTime }; -}; - -template<typename Derived> -struct ei_outer_stride_at_compile_time<Derived, false> -{ - enum { ret = 0 }; -}; - /** \class DenseBase * * \brief Base class for all dense matrices, vectors, and arrays diff --git a/Eigen/src/Core/DenseCoeffsBase.h b/Eigen/src/Core/DenseCoeffsBase.h index faebc0b14..d79b5c107 100644 --- a/Eigen/src/Core/DenseCoeffsBase.h +++ b/Eigen/src/Core/DenseCoeffsBase.h @@ -214,6 +214,11 @@ class DenseCoeffsBase : public EigenBase<Derived> } protected: + // explanation: DenseBase is doing "using ..." on the methods from DenseCoeffsBase. + // But some methods are only available in the EnableDirectAccessAPI case. + // So we add dummy methods here with these names, so that "using... " doesn't fail. + // It's not private so that the child class DenseBase can access them, and it's not public + // either since it's an implementation detail, so has to be protected. void coeffRef(); void coeffRefByOuterInner(); void writePacket(); @@ -570,4 +575,28 @@ inline static int ei_first_aligned(const Derived& m) ::run(m); } +template<typename Derived, bool HasDirectAccess = ei_has_direct_access<Derived>::ret> +struct ei_inner_stride_at_compile_time +{ + enum { ret = ei_traits<Derived>::InnerStrideAtCompileTime }; +}; + +template<typename Derived> +struct ei_inner_stride_at_compile_time<Derived, false> +{ + enum { ret = 0 }; +}; + +template<typename Derived, bool HasDirectAccess = ei_has_direct_access<Derived>::ret> +struct ei_outer_stride_at_compile_time +{ + enum { ret = ei_traits<Derived>::OuterStrideAtCompileTime }; +}; + +template<typename Derived> +struct ei_outer_stride_at_compile_time<Derived, false> +{ + enum { ret = 0 }; +}; + #endif // EIGEN_COEFFS_H |