diff options
author | 2009-08-05 15:23:35 +0200 | |
---|---|---|
committer | 2009-08-05 15:23:35 +0200 | |
commit | 88147e0a91733bde2c095cbe51c20b6d8a32ea88 (patch) | |
tree | b4885ef5e314b9f82433daac68c9c99f3e601849 /Eigen/src/Core/util | |
parent | 014c581a5b32330e202e52fc5f9d98d383461da0 (diff) |
big refactoring in Product.h:
- all specialized products now inherits ProductBase
- the default product evaluated by Assign is still here,
but it is currently enabled for small fixed sizes only
- => this significantly speed up compilation for large matrices
- I left the OuterProduct specialization empty as an exercise...
Diffstat (limited to 'Eigen/src/Core/util')
-rw-r--r-- | Eigen/src/Core/util/ForwardDeclarations.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/Eigen/src/Core/util/ForwardDeclarations.h b/Eigen/src/Core/util/ForwardDeclarations.h index d755445c1..c9ce174d2 100644 --- a/Eigen/src/Core/util/ForwardDeclarations.h +++ b/Eigen/src/Core/util/ForwardDeclarations.h @@ -48,8 +48,7 @@ template<typename NullaryOp, typename MatrixType> class CwiseNullaryOp; template<typename UnaryOp, typename MatrixType> class CwiseUnaryOp; template<typename ViewOp, typename MatrixType> class CwiseUnaryView; template<typename BinaryOp, typename Lhs, typename Rhs> class CwiseBinaryOp; -template<typename Derived, typename Lhs, typename Rhs> class ProductBase; -template<typename Lhs, typename Rhs, int ProductMode> class Product; +template<typename Derived, typename Lhs, typename Rhs> class ProductBase; template<typename Derived> class DiagonalBase; template<typename _DiagonalVectorType> class DiagonalWrapper; @@ -69,8 +68,10 @@ template<typename Functor, typename EvalType> class ReturnByValue; template<typename _Scalar, int Rows=Dynamic, int Cols=Dynamic, int Supers=Dynamic, int Subs=Dynamic, int Options=0> class BandMatrix; -template<typename Lhs, typename Rhs> struct ei_product_mode; -template<typename Lhs, typename Rhs, int ProductMode = ei_product_mode<Lhs,Rhs>::value> struct ProductReturnType; +template<typename Lhs, typename Rhs> struct ei_product_type; +template<typename Lhs, typename Rhs, + int ProductType = ei_product_type<Lhs,Rhs>::value> +struct ProductReturnType; template<typename Scalar> struct ei_scalar_sum_op; template<typename Scalar> struct ei_scalar_difference_op; |