mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-02-23 18:20:47 +08:00
optiization: make hybrid small/large outer products use the unrolled path
This commit is contained in:
parent
d0b4ef81f0
commit
b44240180f
@ -93,6 +93,8 @@ template<> struct ei_product_type_selector<Small,1, Small>
|
||||
template<> struct ei_product_type_selector<1, Small,Small> { enum { ret = UnrolledProduct }; };
|
||||
template<> struct ei_product_type_selector<Small,Small,Small> { enum { ret = UnrolledProduct }; };
|
||||
template<> struct ei_product_type_selector<Small, Small, 1> { enum { ret = UnrolledProduct }; };
|
||||
template<> struct ei_product_type_selector<Small, Large, 1> { enum { ret = UnrolledProduct }; };
|
||||
template<> struct ei_product_type_selector<Large, Small, 1> { enum { ret = UnrolledProduct }; };
|
||||
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 }; };
|
||||
|
@ -47,13 +47,6 @@ struct ei_traits<ProductBase<Derived,_Lhs,_Rhs> > //: ei_traits<typename ei_clea
|
||||
};
|
||||
};
|
||||
|
||||
// enforce evaluation before nesting
|
||||
template<typename Derived, typename Lhs, typename Rhs,int N,typename EvalType>
|
||||
struct ei_nested<ProductBase<Derived,Lhs,Rhs>, N, EvalType>
|
||||
{
|
||||
typedef EvalType type;
|
||||
};
|
||||
|
||||
#define EIGEN_PRODUCT_PUBLIC_INTERFACE(Derived) \
|
||||
typedef ProductBase<Derived, Lhs, Rhs > Base; \
|
||||
EIGEN_DENSE_PUBLIC_INTERFACE(Derived) \
|
||||
|
Loading…
Reference in New Issue
Block a user