From 9ea520fc4510b49408f1445b603b1f5dad267c2c Mon Sep 17 00:00:00 2001 From: Drew Lewis Date: Thu, 16 Nov 2023 15:13:53 +0000 Subject: [PATCH] Ensure that mc is not smaller than Traits::nr --- .../src/Core/products/GeneralMatrixMatrixTriangular.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h b/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h index 55b637ba8..2e0dcb90a 100644 --- a/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +++ b/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h @@ -78,11 +78,14 @@ struct general_matrix_matrix_triangular_product= nr and <= size + Index mc = (std::min)(size,(std::max)(static_cast(Traits::nr),blocking.mc())); - // !!! mc must be a multiple of nr: - if(mc > Traits::nr) - mc = (mc/Traits::nr)*Traits::nr; + // !!! mc must be a multiple of nr + if (mc > Traits::nr) { + using UnsignedIndex = typename make_unsigned::type; + mc = (UnsignedIndex(mc)/Traits::nr)*Traits::nr; + } std::size_t sizeA = kc*mc; std::size_t sizeB = kc*size;