Fix undefined behavior for generating inputs to the predux_mul test.

This commit is contained in:
Antonio Sánchez 2024-04-29 20:32:09 +00:00
parent dcceb9afec
commit a5e147305b

View File

@ -624,7 +624,8 @@ void packetmath() {
}
// Avoid overflows.
if (NumTraits<Scalar>::IsInteger && NumTraits<Scalar>::IsSigned) {
if (NumTraits<Scalar>::IsInteger && NumTraits<Scalar>::IsSigned &&
Eigen::internal::unpacket_traits<Packet>::size > 1) {
Scalar limit =
static_cast<Scalar>(std::pow(static_cast<double>(numext::real(NumTraits<Scalar>::highest())),
1.0 / static_cast<double>(Eigen::internal::unpacket_traits<Packet>::size)));