diff --git a/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/Eigen/src/Core/products/GeneralBlockPanelKernel.h index 6a16aa661..15f3d869e 100644 --- a/Eigen/src/Core/products/GeneralBlockPanelKernel.h +++ b/Eigen/src/Core/products/GeneralBlockPanelKernel.h @@ -83,9 +83,10 @@ inline void manage_caching_sizes(Action action, std::ptrdiff_t* l1, std::ptrdiff template void computeProductBlockingSizes(Index& k, Index& m, Index& n, Index num_threads = 1) { + typedef gebp_traits Traits; + #ifdef EIGEN_TEST_SPECIFIC_BLOCKING_SIZES EIGEN_UNUSED_VARIABLE(num_threads); - typedef gebp_traits Traits; enum { kr = 16, mr = Traits::mr, @@ -99,6 +100,7 @@ void computeProductBlockingSizes(Index& k, Index& m, Index& n, Index num_threads if (n > nr) n -= n % nr; return; #endif + // Explanations: // Let's recall that the product algorithms form mc x kc vertical panels A' on the lhs and // kc x nc blocks B' on the rhs. B' has to fit into L2/L3 cache. Moreover, A' is processed @@ -108,7 +110,6 @@ void computeProductBlockingSizes(Index& k, Index& m, Index& n, Index num_threads manage_caching_sizes(GetAction, &l1, &l2, &l3); if (num_threads > 1) { - typedef gebp_traits Traits; typedef typename Traits::ResScalar ResScalar; enum { kdiv = KcFactor * (Traits::mr * sizeof(LhsScalar) + Traits::nr * sizeof(RhsScalar)),