diff --git a/Eigen/src/Core/products/SelfadjointProduct.h b/Eigen/src/Core/products/SelfadjointProduct.h index 8ce797cff..9eb5de772 100644 --- a/Eigen/src/Core/products/SelfadjointProduct.h +++ b/Eigen/src/Core/products/SelfadjointProduct.h @@ -74,6 +74,8 @@ struct ei_selfadjoint_product(kc, mc, nc); + // !!! mc must be a multiple of nr: + mc = (mc/Blocking::nr)*Blocking::nr; Scalar* blockA = ei_aligned_stack_new(Scalar, kc*mc); std::size_t sizeB = kc*Blocking::PacketSize*Blocking::nr + kc*size; @@ -142,7 +144,7 @@ SelfAdjointView& SelfAdjointView ei_selfadjoint_product::Flags&RowMajorBit ? RowMajor : ColMajor, + MatrixType::Flags&RowMajorBit ? RowMajor : ColMajor, !UBlasTraits::NeedToConjugate, UpLo> ::run(_expression().cols(), actualU.cols(), &actualU.coeff(0,0), actualU.outerStride(), const_cast(_expression().data()), _expression().outerStride(), actualAlpha);