From e6fa4a267af400146f4c715e7805c339e0cf16fb Mon Sep 17 00:00:00 2001 From: Gael Guennebaud Date: Thu, 24 Mar 2011 23:42:25 +0100 Subject: [PATCH] improve computation of the sub panel width --- Eigen/src/Core/products/TriangularSolverMatrix.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Eigen/src/Core/products/TriangularSolverMatrix.h b/Eigen/src/Core/products/TriangularSolverMatrix.h index 4f5f85cbc..5f881cf82 100644 --- a/Eigen/src/Core/products/TriangularSolverMatrix.h +++ b/Eigen/src/Core/products/TriangularSolverMatrix.h @@ -82,6 +82,13 @@ struct triangular_solve_matrix pack_lhs; gemm_pack_rhs pack_rhs; + // the goal here is to subdivise the Rhs panels such that we keep some cache + // coherence when accessing the rhs elements + std::ptrdiff_t l1, l2; + manage_caching_sizes(GetAction, &l1, &l2); + Index subcols = cols>0 ? l2/(4 * sizeof(Scalar) * otherStride) : 0; + subcols = std::max((subcols/Traits::nr)*Traits::nr, Traits::nr); + for(Index k2=IsLower ? 0 : size; IsLower ? k20; IsLower ? k2+=kc : k2-=kc) @@ -101,7 +108,6 @@ struct triangular_solve_matrix