From 6f846ef9c6ef3e838d1361a30dc11f65ddff967d Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Tue, 1 Jul 2014 17:51:53 +0200 Subject: Split StorageKind promotion into two helpers: one for products, and one for coefficient-wise operations. --- Eigen/src/Core/Product.h | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) (limited to 'Eigen/src/Core/Product.h') diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h index e381ac46a..cb4d4c924 100644 --- a/Eigen/src/Core/Product.h +++ b/Eigen/src/Core/Product.h @@ -62,8 +62,9 @@ struct traits > typedef MatrixXpr XprKind; typedef typename product_result_scalar::Scalar Scalar; - typedef typename promote_storage_type::StorageKind, - typename traits::StorageKind>::ret StorageKind; + typedef typename product_promote_storage_type::StorageKind, + typename traits::StorageKind, + internal::product_type::ret>::ret StorageKind; typedef typename promote_index_type::Index, typename traits::Index>::type Index; @@ -94,8 +95,9 @@ struct traits > template class Product : public ProductImpl<_Lhs,_Rhs,Option, - typename internal::promote_storage_type::StorageKind, - typename internal::traits<_Rhs>::StorageKind>::ret> + typename internal::product_promote_storage_type::StorageKind, + typename internal::traits<_Rhs>::StorageKind, + internal::product_type<_Lhs,_Rhs>::ret>::ret> { public: @@ -104,8 +106,9 @@ class Product : public ProductImpl<_Lhs,_Rhs,Option, typedef typename ProductImpl< Lhs, Rhs, Option, - typename internal::promote_storage_type::ret>::Base Base; + typename internal::product_promote_storage_type::ret>::ret>::Base Base; EIGEN_GENERIC_PUBLIC_INTERFACE(Product) typedef typename internal::nested::type LhsNested; -- cgit v1.2.3