diff options
author | Gael Guennebaud <g.gael@free.fr> | 2014-09-18 22:46:46 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2014-09-18 22:46:46 +0200 |
commit | e70506dd8f63241d92ebc3df2d9c01c9af5564c8 (patch) | |
tree | 97ca7cee5986c114f344469240a12578722f78da /unsupported | |
parent | 2ae20d558b33653b8ef2fe17255ed171997bcf79 (diff) |
Fix inner-stride of AlignedVector3
Diffstat (limited to 'unsupported')
-rw-r--r-- | unsupported/Eigen/AlignedVector3 | 16 | ||||
-rw-r--r-- | unsupported/test/CMakeLists.txt | 4 |
2 files changed, 9 insertions, 11 deletions
diff --git a/unsupported/Eigen/AlignedVector3 b/unsupported/Eigen/AlignedVector3 index cd5f49edb..35493e87b 100644 --- a/unsupported/Eigen/AlignedVector3 +++ b/unsupported/Eigen/AlignedVector3 @@ -60,6 +60,7 @@ template<typename _Scalar> class AlignedVector3 Scalar* data() { return m_coeffs.data(); } const Scalar* data() const { return m_coeffs.data(); } + Index innerStride() const { return 1; } inline const Scalar& coeff(Index row, Index col) const { return m_coeffs.coeff(row, col); } @@ -184,27 +185,24 @@ template<typename _Scalar> class AlignedVector3 { return m_coeffs.template head<3>().isApprox(other,eps); } + + CoeffType& coeffs() { return m_coeffs; } + const CoeffType& coeffs() const { return m_coeffs; } }; namespace internal { template<typename Scalar> struct evaluator<AlignedVector3<Scalar> > - : evaluator<Map<const Matrix<Scalar,3,1>,Aligned> >::type + : evaluator<Matrix<Scalar,4,1> >::type { typedef AlignedVector3<Scalar> XprType; - typedef Map<const Matrix<Scalar,3,1>,Aligned> MapType; - typedef typename evaluator<MapType>::type Base; + typedef typename evaluator<Matrix<Scalar,4,1> >::type Base; typedef evaluator type; typedef evaluator nestedType; - evaluator(const XprType &m) : Base(MapType(m.data())), m_map(m.data()) - { - ::new (static_cast<Base*>(this)) Base(m_map); - } - - const MapType m_map; + evaluator(const XprType &m) : Base(m.coeffs()) {} }; } diff --git a/unsupported/test/CMakeLists.txt b/unsupported/test/CMakeLists.txt index 04863a9ad..48b61cde0 100644 --- a/unsupported/test/CMakeLists.txt +++ b/unsupported/test/CMakeLists.txt @@ -29,8 +29,8 @@ endif(ADOLC_FOUND) ei_add_test(NonLinearOptimization) ei_add_test(NumericalDiff) -# TODO ei_add_test(autodiff_scalar) -# TODO ei_add_test(autodiff) +ei_add_test(autodiff_scalar) +ei_add_test(autodiff) if (NOT CMAKE_CXX_COMPILER MATCHES "clang\\+\\+$") ei_add_test(BVH) |