aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Product.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2008-06-07 01:07:48 +0000
committerGravatar Gael Guennebaud <g.gael@free.fr>2008-06-07 01:07:48 +0000
commit69980379300b035daae6de26eb4bf394651d2de3 (patch)
treee0f75f44232947cf7d52271a3a8f11807bdae00b /Eigen/src/Core/Product.h
parenta172385720fad3b72a820da28fef158efabdb369 (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.h6
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);