diff options
author | Gael Guennebaud <g.gael@free.fr> | 2016-09-30 22:49:59 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2016-09-30 22:49:59 +0200 |
commit | 8b84801f7f5e66d4a81f10d75ff70a3526d2fefc (patch) | |
tree | 6bc7992531a039e43b48525a85d0ea1e9cf4b1e6 /Eigen/src/Geometry | |
parent | 67b4f458365a5813e1f5eeedb6ba7a9e157a5dd4 (diff) |
bug #1310: workaround a compilation regression from 3.2 regarding triangular * homogeneous
Diffstat (limited to 'Eigen/src/Geometry')
-rw-r--r-- | Eigen/src/Geometry/Homogeneous.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/Eigen/src/Geometry/Homogeneous.h b/Eigen/src/Geometry/Homogeneous.h index 4e2213b33..a23068c8d 100644 --- a/Eigen/src/Geometry/Homogeneous.h +++ b/Eigen/src/Geometry/Homogeneous.h @@ -402,6 +402,18 @@ struct generic_product_impl<Lhs, Homogeneous<RhsArg,Vertical>, DenseShape, Homog } }; +// TODO: the following specialization is to address a regression from 3.2 to 3.3 +// In the future, this path should be optimized. +template<typename Lhs, typename RhsArg, int ProductTag> +struct generic_product_impl<Lhs, Homogeneous<RhsArg,Vertical>, TriangularShape, HomogeneousShape, ProductTag> +{ + template<typename Dest> + static void evalTo(Dest& dst, const Lhs& lhs, const Homogeneous<RhsArg,Vertical>& rhs) + { + dst.noalias() = lhs * rhs.eval(); + } +}; + template<typename Lhs,typename Rhs> struct homogeneous_left_product_refactoring_helper { |