diff --git a/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/Eigen/src/Core/products/GeneralBlockPanelKernel.h index 6824bc64d..b794e6ac5 100644 --- a/Eigen/src/Core/products/GeneralBlockPanelKernel.h +++ b/Eigen/src/Core/products/GeneralBlockPanelKernel.h @@ -329,7 +329,7 @@ public: } protected: - ei_conj_helper cj; + ei_conj_helper cj; }; template @@ -1124,34 +1124,34 @@ EIGEN_ASM_COMMENT("mybegin4"); // // 32 33 34 35 ... // 36 36 38 39 ... -template +template struct ei_gemm_pack_lhs { void operator()(Scalar* blockA, const Scalar* EIGEN_RESTRICT _lhs, Index lhsStride, Index depth, Index rows, Index stride=0, Index offset=0) { - enum { PacketSize = ei_packet_traits::size }; +// enum { PacketSize = ei_packet_traits::size }; ei_assert(((!PanelMode) && stride==0 && offset==0) || (PanelMode && stride>=depth && offset<=stride)); ei_conj_if::IsComplex && Conjugate> cj; ei_const_blas_data_mapper lhs(_lhs,lhsStride); Index count = 0; - Index peeled_mc = (rows/mr)*mr; - for(Index i=0; i=PacketSize) + if(rows-peeled_mc>=Pack2) { - if(PanelMode) count += PacketSize*offset; + if(PanelMode) count += Pack2*offset; for(Index k=0; k pack_lhs; + ei_gemm_pack_lhs pack_lhs; ei_gemm_pack_rhs pack_rhs; ei_gebp_kernel gebp; diff --git a/Eigen/src/Core/products/SelfadjointMatrixMatrix.h b/Eigen/src/Core/products/SelfadjointMatrixMatrix.h index be5248752..d12710dbf 100644 --- a/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +++ b/Eigen/src/Core/products/SelfadjointMatrixMatrix.h @@ -350,7 +350,7 @@ struct ei_product_selfadjoint_matrix gebp_kernel; - ei_gemm_pack_lhs pack_lhs; + ei_gemm_pack_lhs pack_lhs; ei_symm_pack_rhs pack_rhs; for(Index k2=0; k2 gebp_kernel; ei_gemm_pack_rhs pack_rhs; - ei_gemm_pack_lhs pack_lhs; + ei_gemm_pack_lhs pack_lhs; ei_sybb_kernel sybb; for(Index k2=0; k2 gebp_kernel; - ei_gemm_pack_lhs pack_lhs; + ei_gemm_pack_lhs pack_lhs; ei_gemm_pack_rhs pack_rhs; for(Index k2=IsLower ? depth : 0; @@ -251,7 +251,7 @@ struct ei_product_triangular_matrix_matrix gebp_kernel; - ei_gemm_pack_lhs pack_lhs; + ei_gemm_pack_lhs pack_lhs; ei_gemm_pack_rhs pack_rhs; ei_gemm_pack_rhs pack_rhs_panel; diff --git a/Eigen/src/Core/products/TriangularSolverMatrix.h b/Eigen/src/Core/products/TriangularSolverMatrix.h index 1ceeca79b..3e1fc99bf 100644 --- a/Eigen/src/Core/products/TriangularSolverMatrix.h +++ b/Eigen/src/Core/products/TriangularSolverMatrix.h @@ -76,7 +76,7 @@ struct ei_triangular_solve_matrix conj; ei_gebp_kernel gebp_kernel; - ei_gemm_pack_lhs pack_lhs; + ei_gemm_pack_lhs pack_lhs; ei_gemm_pack_rhs pack_rhs; for(Index k2=IsLower ? 0 : size; @@ -217,7 +217,7 @@ struct ei_triangular_solve_matrix gebp_kernel; ei_gemm_pack_rhs pack_rhs; ei_gemm_pack_rhs pack_rhs_panel; - ei_gemm_pack_lhs pack_lhs_panel; + ei_gemm_pack_lhs pack_lhs_panel; for(Index k2=IsLower ? size : 0; IsLower ? k2>0 : k2