diff options
author | 2008-06-07 01:07:48 +0000 | |
---|---|---|
committer | 2008-06-07 01:07:48 +0000 | |
commit | 69980379300b035daae6de26eb4bf394651d2de3 (patch) | |
tree | e0f75f44232947cf7d52271a3a8f11807bdae00b /Eigen/src/Core/Product.h | |
parent | a172385720fad3b72a820da28fef158efabdb369 (diff) |
* move some compile time "if" to their respective unroller (assign and dot)
* fix a couple of compilation issues when unrolling is disabled
* reduce default unrolling limit to a more reasonable value
Diffstat (limited to 'Eigen/src/Core/Product.h')
-rw-r--r-- | Eigen/src/Core/Product.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h index 3709ebf64..7af1bb3ed 100644 --- a/Eigen/src/Core/Product.h +++ b/Eigen/src/Core/Product.h @@ -47,8 +47,8 @@ struct ei_product_impl<0, Size, Lhs, Rhs> } }; -template<int Index, typename Lhs, typename Rhs> -struct ei_product_impl<Index, Dynamic, Lhs, Rhs> +template<typename Lhs, typename Rhs> +struct ei_product_impl<Dynamic, Dynamic, Lhs, Rhs> { inline static void run(int row, int col, const Lhs& lhs, const Rhs& rhs, typename Lhs::Scalar& res) { @@ -268,7 +268,7 @@ template<typename Lhs, typename Rhs, int EvalMode> class Product : ei_no_assignm { Scalar res; const bool unroll = CoeffReadCost <= EIGEN_UNROLLING_LIMIT; - ei_product_impl<Lhs::ColsAtCompileTime-1, + ei_product_impl<unroll ? Lhs::ColsAtCompileTime-1 : Dynamic, unroll ? Lhs::ColsAtCompileTime : Dynamic, _LhsNested, _RhsNested> ::run(row, col, m_lhs, m_rhs, res); |