From 0ac2a2df9ffa81f2e5575dfdb3e56ad8a5f50893 Mon Sep 17 00:00:00 2001 From: Chip Kerchner Date: Sun, 8 Feb 2026 13:19:45 -0500 Subject: [PATCH] Prevent predux_half for DoublePacket from accidentally catching complex Packets of size >= 16 libeigen/eigen!2125 --- Eigen/src/Core/products/GeneralBlockPanelKernel.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Eigen/src/Core/products/GeneralBlockPanelKernel.h b/Eigen/src/Core/products/GeneralBlockPanelKernel.h index 7238fcd23..c2a4eab29 100644 --- a/Eigen/src/Core/products/GeneralBlockPanelKernel.h +++ b/Eigen/src/Core/products/GeneralBlockPanelKernel.h @@ -650,7 +650,9 @@ const DoublePacket& predux_half(const DoublePacket& a, template DoublePacket::half> predux_half( - const DoublePacket& a, std::enable_if_t::size == 16>* = 0) { + const DoublePacket& a, + std::enable_if_t::size >= 16 && + !NumTraits::type>::IsComplex>* = 0) { // yes, that's pretty hackish :( DoublePacket::half> res; typedef std::complex::type> Cplx;