diff --git a/Eigen/src/Core/NoAlias.h b/Eigen/src/Core/NoAlias.h index e09fd0091..7e2e501b3 100644 --- a/Eigen/src/Core/NoAlias.h +++ b/Eigen/src/Core/NoAlias.h @@ -71,11 +71,11 @@ class NoAlias { other.derived().subTo(m_expression); return m_expression; } template - EIGEN_STRONG_INLINE ExpressionType& operator+=(const GeneralProduct& other) + EIGEN_STRONG_INLINE ExpressionType& operator+=(const GeneralProduct& other) { return m_expression.derived() += other.template flagged<0,EvalBeforeAssigningBit|EvalBeforeNestingBit>(); } template - EIGEN_STRONG_INLINE ExpressionType& operator-=(const GeneralProduct& other) + EIGEN_STRONG_INLINE ExpressionType& operator-=(const GeneralProduct& other) { return m_expression.derived() -= other.template flagged<0,EvalBeforeAssigningBit|EvalBeforeNestingBit>(); } #endif diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h index d7f17dd28..5e531c467 100644 --- a/Eigen/src/Core/Product.h +++ b/Eigen/src/Core/Product.h @@ -87,12 +87,12 @@ public: template struct ei_product_type_selector { enum { ret = OuterProduct }; }; template struct ei_product_type_selector<1, 1, Depth> { enum { ret = InnerProduct }; }; template<> struct ei_product_type_selector<1, 1, 1> { enum { ret = InnerProduct }; }; -template<> struct ei_product_type_selector { enum { ret = UnrolledProduct }; }; -template<> struct ei_product_type_selector<1, Small,Small> { enum { ret = UnrolledProduct }; }; -template<> struct ei_product_type_selector { enum { ret = UnrolledProduct }; }; -template<> struct ei_product_type_selector { enum { ret = UnrolledProduct }; }; -template<> struct ei_product_type_selector { enum { ret = UnrolledProduct }; }; -template<> struct ei_product_type_selector { enum { ret = UnrolledProduct }; }; +template<> struct ei_product_type_selector { enum { ret = CoeffBasedProduct }; }; +template<> struct ei_product_type_selector<1, Small,Small> { enum { ret = CoeffBasedProduct }; }; +template<> struct ei_product_type_selector { enum { ret = CoeffBasedProduct }; }; +template<> struct ei_product_type_selector { enum { ret = CoeffBasedProduct }; }; +template<> struct ei_product_type_selector { enum { ret = CoeffBasedProduct }; }; +template<> struct ei_product_type_selector { enum { ret = CoeffBasedProduct }; }; template<> struct ei_product_type_selector<1, Large,Small> { enum { ret = GemvProduct }; }; template<> struct ei_product_type_selector<1, Large,Large> { enum { ret = GemvProduct }; }; template<> struct ei_product_type_selector<1, Small,Large> { enum { ret = GemvProduct }; }; @@ -134,11 +134,11 @@ struct ProductReturnType }; template -struct ProductReturnType +struct ProductReturnType { typedef typename ei_nested::type >::type LhsNested; typedef typename ei_nested::type >::type RhsNested; - typedef GeneralProduct Type; + typedef GeneralProduct Type; }; diff --git a/Eigen/src/Core/ProductBase.h b/Eigen/src/Core/ProductBase.h index fa3207f65..6eb02f386 100644 --- a/Eigen/src/Core/ProductBase.h +++ b/Eigen/src/Core/ProductBase.h @@ -83,7 +83,7 @@ class ProductBase : public MatrixBase typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType; typedef typename ei_cleantype::type _ActualRhsType; - typedef typename ProductReturnType::Type CoeffBaseProductType; + typedef typename ProductReturnType::Type CoeffBaseProductType; typedef Flagged LazyCoeffBaseProductType; public: diff --git a/Eigen/src/Core/products/GeneralUnrolled.h b/Eigen/src/Core/products/GeneralCoeffBased.h similarity index 98% rename from Eigen/src/Core/products/GeneralUnrolled.h rename to Eigen/src/Core/products/GeneralCoeffBased.h index 32aa3afe6..0cca2d417 100644 --- a/Eigen/src/Core/products/GeneralUnrolled.h +++ b/Eigen/src/Core/products/GeneralCoeffBased.h @@ -43,7 +43,7 @@ template -struct ei_traits > +struct ei_traits > { typedef DenseStorageMatrix DenseStorageType; typedef typename ei_cleantype::type _LhsNested; @@ -98,9 +98,9 @@ struct ei_traits > }; }; -template class GeneralProduct +template class GeneralProduct : ei_no_assignment_operator, - public MatrixBase > + public MatrixBase > { public: diff --git a/Eigen/src/Core/util/Constants.h b/Eigen/src/Core/util/Constants.h index a4e8b3f78..dc7b3eea9 100644 --- a/Eigen/src/Core/util/Constants.h +++ b/Eigen/src/Core/util/Constants.h @@ -269,6 +269,6 @@ namespace Architecture enum DenseStorageMatrix {}; enum DenseStorageArray {}; -enum { OuterProduct, InnerProduct, UnrolledProduct, GemvProduct, GemmProduct }; +enum { OuterProduct, InnerProduct, CoeffBasedProduct, GemvProduct, GemmProduct }; #endif // EIGEN_CONSTANTS_H