aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2014-09-18 22:46:46 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2014-09-18 22:46:46 +0200
commite70506dd8f63241d92ebc3df2d9c01c9af5564c8 (patch)
tree97ca7cee5986c114f344469240a12578722f78da
parent2ae20d558b33653b8ef2fe17255ed171997bcf79 (diff)
Fix inner-stride of AlignedVector3
-rw-r--r--unsupported/Eigen/AlignedVector316
-rw-r--r--unsupported/test/CMakeLists.txt4
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)