mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-01-30 17:40:05 +08:00
s/UnrolledProduct/CoeffBasedProduct
This commit is contained in:
parent
c076fec734
commit
0398e21198
@ -71,11 +71,11 @@ class NoAlias
|
||||
{ other.derived().subTo(m_expression); return m_expression; }
|
||||
|
||||
template<typename Lhs, typename Rhs>
|
||||
EIGEN_STRONG_INLINE ExpressionType& operator+=(const GeneralProduct<Lhs,Rhs,UnrolledProduct>& other)
|
||||
EIGEN_STRONG_INLINE ExpressionType& operator+=(const GeneralProduct<Lhs,Rhs,CoeffBasedProduct>& other)
|
||||
{ return m_expression.derived() += other.template flagged<0,EvalBeforeAssigningBit|EvalBeforeNestingBit>(); }
|
||||
|
||||
template<typename Lhs, typename Rhs>
|
||||
EIGEN_STRONG_INLINE ExpressionType& operator-=(const GeneralProduct<Lhs,Rhs,UnrolledProduct>& other)
|
||||
EIGEN_STRONG_INLINE ExpressionType& operator-=(const GeneralProduct<Lhs,Rhs,CoeffBasedProduct>& other)
|
||||
{ return m_expression.derived() -= other.template flagged<0,EvalBeforeAssigningBit|EvalBeforeNestingBit>(); }
|
||||
#endif
|
||||
|
||||
|
@ -87,12 +87,12 @@ public:
|
||||
template<int Rows, int Cols> struct ei_product_type_selector<Rows, Cols, 1> { enum { ret = OuterProduct }; };
|
||||
template<int Depth> 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<Small,1, Small> { enum { ret = UnrolledProduct }; };
|
||||
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<Small,1, Small> { enum { ret = CoeffBasedProduct }; };
|
||||
template<> struct ei_product_type_selector<1, Small,Small> { enum { ret = CoeffBasedProduct }; };
|
||||
template<> struct ei_product_type_selector<Small,Small,Small> { enum { ret = CoeffBasedProduct }; };
|
||||
template<> struct ei_product_type_selector<Small, Small, 1> { enum { ret = CoeffBasedProduct }; };
|
||||
template<> struct ei_product_type_selector<Small, Large, 1> { enum { ret = CoeffBasedProduct }; };
|
||||
template<> struct ei_product_type_selector<Large, Small, 1> { 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<typename Lhs, typename Rhs>
|
||||
struct ProductReturnType<Lhs,Rhs,UnrolledProduct>
|
||||
struct ProductReturnType<Lhs,Rhs,CoeffBasedProduct>
|
||||
{
|
||||
typedef typename ei_nested<Lhs, Rhs::ColsAtCompileTime, typename ei_plain_matrix_type<Lhs>::type >::type LhsNested;
|
||||
typedef typename ei_nested<Rhs, Lhs::RowsAtCompileTime, typename ei_plain_matrix_type<Rhs>::type >::type RhsNested;
|
||||
typedef GeneralProduct<LhsNested, RhsNested, UnrolledProduct> Type;
|
||||
typedef GeneralProduct<LhsNested, RhsNested, CoeffBasedProduct> Type;
|
||||
};
|
||||
|
||||
|
||||
|
@ -83,7 +83,7 @@ class ProductBase : public MatrixBase<Derived>
|
||||
typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType;
|
||||
typedef typename ei_cleantype<ActualRhsType>::type _ActualRhsType;
|
||||
|
||||
typedef typename ProductReturnType<Lhs,Rhs,UnrolledProduct>::Type CoeffBaseProductType;
|
||||
typedef typename ProductReturnType<Lhs,Rhs,CoeffBasedProduct>::Type CoeffBaseProductType;
|
||||
typedef Flagged<CoeffBaseProductType,0,EvalBeforeNestingBit> LazyCoeffBaseProductType;
|
||||
public:
|
||||
|
||||
|
@ -43,7 +43,7 @@ template<int StorageOrder, int Index, typename Lhs, typename Rhs, typename Packe
|
||||
struct ei_product_packet_impl;
|
||||
|
||||
template<typename LhsNested, typename RhsNested>
|
||||
struct ei_traits<GeneralProduct<LhsNested,RhsNested,UnrolledProduct> >
|
||||
struct ei_traits<GeneralProduct<LhsNested,RhsNested,CoeffBasedProduct> >
|
||||
{
|
||||
typedef DenseStorageMatrix DenseStorageType;
|
||||
typedef typename ei_cleantype<LhsNested>::type _LhsNested;
|
||||
@ -98,9 +98,9 @@ struct ei_traits<GeneralProduct<LhsNested,RhsNested,UnrolledProduct> >
|
||||
};
|
||||
};
|
||||
|
||||
template<typename LhsNested, typename RhsNested> class GeneralProduct<LhsNested,RhsNested,UnrolledProduct>
|
||||
template<typename LhsNested, typename RhsNested> class GeneralProduct<LhsNested,RhsNested,CoeffBasedProduct>
|
||||
: ei_no_assignment_operator,
|
||||
public MatrixBase<GeneralProduct<LhsNested, RhsNested, UnrolledProduct> >
|
||||
public MatrixBase<GeneralProduct<LhsNested, RhsNested, CoeffBasedProduct> >
|
||||
{
|
||||
public:
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user