fix infinite loop
diff --git a/Eigen/src/Core/products/SelfadjointProduct.h b/Eigen/src/Core/products/SelfadjointProduct.h index 9eb5de7..35d5ded 100644 --- a/Eigen/src/Core/products/SelfadjointProduct.h +++ b/Eigen/src/Core/products/SelfadjointProduct.h
@@ -75,7 +75,8 @@ Index nc = size; // cache block size along the N direction computeProductBlockingSizes<Scalar,Scalar>(kc, mc, nc); // !!! mc must be a multiple of nr: - mc = (mc/Blocking::nr)*Blocking::nr; + if(mc>Blocking::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;